Consent for transcription and recording only available once per conversation

Consent for transcription and recording only available once per conversation

It's another beautiful day for Dynamics 365 Contact Center, it's brimming with hope and flawlessly implemented business processes. But for some weird reason you can't find out how to withdraw consent after it's been given. Well I'm here to tell you that you are not alone, and that there's nothing you can do about it.

First, let's talk about how consent works in D365CC. In order to set it up you need to enable "Request for User Consent"

Now, for the one who actually reads the walls upon walls of text in CSAC (Copilot Service Admin Center), you might have seen the yellow text telling you "You are responsible for configuring your BOT to obtain user consent..."

Yes, that means you have to use a bot, and you have to set it up yourself. Documentation on how to do this isn't particularly easy to figure out (#WallOfTextDocumentation). It is really simple though, the thing you need to do is perform a Send an Event action under advanced in Copilot Studio

The event you want to send is Sys.ConsentEvent with a boolean parameter. Also, the event is a text field, no lookup or autocomplete. Yeah, magic strings by design

PLEASE NOTE! The consent is by default opt-in, which means if unless you specifically opt-out it will always assume the customer has consented.

Now this might not be an issue for use case, but for a lot of use cases it is. Seeing as how you only send the consent event once (well technically you can send it multiple times, but only the first one will take effect), you cannot use it creatively in any way or let the customer change consent during the conversation. Here are a couple of examples:

  1. You set consent to false at the start of the IVR menu, because you don't need/want to record the dial-in options. Transcription and recording will then be unavailable for the entire call, you cannot turn it on at the end of the IVR menu.
  2. The customer set consent in the IVR, during the call they change their mind. If they're talking with a person they can always pause transcription manually if they are diligent, but they can never start a transcription if consent was rejected in the menu

Combine this with the fact that you can't use the Start/Stop transcription dataverse message programmatically (only supported through UI, trust me I've tried), that means the initial consent is final.

Possible resolutions

To be honest there's not much you can do from your end. You can set consent to true by default and then try to make some wizardry with deletion rules and flows, but then you're not actually using the consent based functionality.

Realistically there are 2 things Microsoft can change to give you more flexibility.

  1. Allow consent to be changed, simply respect the latest event instead of the first one
  2. Allow the start/stop transcription/recording message from any session, let us run it from copilot studio so we can have it off during the menu, and then we can turn it on before transferring to a human