Record Outbound calls when Require User Consent Before Recording option is enabled

Hi,

One of our clients has offices in Germany and other countries. They must offer customers the option to opt out of call recording on Incoming and Outgoing calls for Germany. But all other offices want call recording enabled all the time for Inbound and Outbound calls, with agents having the option to use Secure Pause.

The configuration we used was to enable "Consent User Required Before Recording" on the External SIP trunk settings. For Inbound calls we have enabled "Enable Participant Recording" action in Architect Inbound Call flows, except German call flows and it works as intended.

The problem is that, for some reason, the require consent option disables all recordings for Outbound calls and there's no way to tell the system which outbound calls to record. When an agent dials out on behalf of a queue that is set in "Recording Policy" to be recorded, the call still doesn't get recorded.

Only when we disable the "consent required" on trunk, recording on outbound starts to work as per Policy setting. But it then breaks recording on German Inbound call flows as all of them start to get recorded same as everything else.

Is there a way to get outbound calls made on behalf of a queue recorded while keeping "consent required" setting enabled on trunk?

Thank you,

Patrik

We have used two trunks once for inbound and one for outbound. all onbound calls are set for enable participant recording and consent user required. for outbound it is the opposite setting to ensure that when the call is made, we initiate a manual process that will get the customer to consent and then the call goes into recording or not depending on what the consent is.
the outbound trunk is configured on the site/number plan as the only trunk to make outbound calls, we do not use the inbound trunk here.
it is a convoluted solution but works for us in Germany.
so try using two trunks

Hi Vineet,

That's exactly the configuration we're working on now. First trunk will be set with "Record calls" and "Consent required" settings enabled. We will then use "Enable participant recording" action inside Inbound flows to trigger recording where it's needed.

The second trunk is where "Record calls" is enabled, but "Consent required" is turned off. This trunk will be used for outbound calls only and set on sites to for dialling out. We can then use policies to manage the recording of outbound calls per queue, per call direction, etc.

I'm still trying to figure out how to ensure that outbound calls are not recorded by default for German queues only while allowing the agent to start or pause recording once they get customer consent. The agent is dialling out on behalf of a queue.

If we set the policy to not record calls on German queues, that will make sure calls aren't recorded by default, but then we don't have a way to let the agent trigger the Interaction recording during the call in the Genesys Cloud Agent portal natively.

We could use the API below to build a data action that would start or pause a recording by agent pressing buttons within the agent script.

PATCH /api/v2/conversations/{conversationId}/participants/{participantId}

Is there another way that you're doing it?

Thanks,

Patrik

Yes it works for us. Here is how we have setup;
Step-1: On the outbound trunk, set the trunk level recording and also consent is required setting is switched ON
Step-2: Setup the relevant SITE settings where we only use the outbound trunk for outbound calls
Step-3: Setup outbound specific queues only and name then OUT. Setup a default outbound script for these queues
Step-4: Our agents can only call using an outbound queue. We then setup a trigger that will check every outbound call to ensure that calls are only made using a queue having OUT in their name, otherwise call disconnects
Step-5: In the outbound script, we have a button to initiate call consent. This button will call an inbound callflow which will handle the consent for the customer and disconnect the call from the agent. We also have added a few other tricks here which will ensure that this call, after processing the consent from customer, will go back to the same agent who made the outbound call in the first place. This way we ensure that post consent the same agent and customer talk to each other.
Step-6: The inbound callflow that we use for consent is the same that is used for both inbound customer calls or outbound agent initiated calls

Hope this helps.
Regards

Hi Vineet,

Thank you for the steps! It took me half a day to get it working, but I got there in the end.

It's now working with a single SIP trunk, handling both inbound and outbound calls. Did you need a separate Outbound SIP trunk in your setup, or was it just a preference?

The way I set it up is:

  1. Single SIP trunk with "Recording" and "Consent Required" enabled
  2. SIP trunk is used for incoming calls based on Call Routing setup, and it's also assigned to sites to be used for dialling out
  3. Agent script is configured with a button to transfer the caller to Consent IVR. In the background, the button points to Secure Flow (set not to return to agent) and passes "Scripter.Agent ID" value to the flow. The secure flow retrieves the Agent ID using "Flow.InvocationData" and stores it in the "Set Participant Data" value of "AgentID". The Secure flow then forwards the call to an Inbound Flow with Consent IVR.
  4. The inbound flow retrieves the AgentID using "Get Participant Data" and looks up the User (agent) using "Find User by ID" to get the agent email address.
  5. The client is then asked to choose from one of these Menu options:
    - Press 1 to allow call recording
    (This option sets "Enable Participant Recording," and the client is then sent back to the agent using the "Transfer to User" action, which uses the agent's email address.)
    - Press 2 to reject call recording
    (This option doesn't enable the recording and sends the client back to the agent using the "Transfer to User" action)

From an agent's perspective, while the client is going through the Consent IVR, the agent is reserved for the caller to return because they are in a warp-up timer. I set the wrap-up on the outbound queue to a high timer, e.g., 60 seconds, which is more than enough for the client to choose whether they agree to the call being recorded or not. When they choose, the call connects straight to the agent.

From a reporting perspective, it looks like a single call with a single interaction ID, except we get two wrap-up codes. One for the first part of the call before the transfer to Consent IVR and the second part after the client returns back to the Agent.

Out of interest, could you tell me how you transfer the client call from Agent Script to Inbound Flow and back to Agent and what functions you've used?

I tried to use "Transfer to Queue" with the "Preferred Agent Routing" setup pointing back to the agent after the client made their selection in the Consent IVR, but the Inbound call flow kept failing with the message playback "Sorry and Error occurred...". Yet the call still rang on the agent, and they could answer it before the error message was completed and the call disconnected. It was an odd behaviour, so I switched to using "Transfer to User" to get the client back to the agent, and that worked.

Thanks,

Patrik

Inside the script, I have a custom action which is executed once the button is clicked. Inside the custom action, I have the step perform blind transfer to queue using string variable named something like outboundconsent. Set the value of this variable outboundconsent to your_inbound_queue_name_with_consent_IVR@localhost. Note the @localhost as this is what will actually transfer the call as an inbound call to the callflow, and this is the trick.
Agent routing is dealt with exactly as you have done.

Regards

Thanks, Vineet, for all your help!