Genesys Cloud - Main

 View Only

Sign Up

Expand all | Collapse all

Playing a pre-recorded disclosure message during an interaction.

  Thread closed by the administrator, not accepting new replies.
  • 1.  Playing a pre-recorded disclosure message during an interaction.

    Posted 06-07-2022 13:22
    No replies, thread closed.
    Hey everyone!

    Not sure if this has been discussed previously but my organization is looking for an option to play a pre-recorded message on a call. To give a little background we have a couple of different disclosures that we have to state verbatim based on different paths during a call with our consumer base. Is there any way to have these disclosures pre-recorded and implement a button to play a prerecorded message on the line with the caller and have them provide acknowledgment via key press?
    #Unsure/Other

    ------------------------------
    David Mitchell
    Security Service Federal Credit Union
    ------------------------------


  • 2.  RE: Playing a pre-recorded disclosure message during an interaction.

    Posted 06-08-2022 03:53
    No replies, thread closed.
    The closest out of the box option would be a secure flow. The agent would transfer to the secure flow from a script and that would play the message with the option to acknowledge at the end and that data be returned to the agent. However the agent would effectively be on hold and not listen to the message with the caller. Using Audiohook with a 3rd party may also be a way to achieve this but as the feature is quite new I've not extensively tested all scenarios.

    ------------------------------
    Richard Chandler
    Connect
    ------------------------------



  • 3.  RE: Playing a pre-recorded disclosure message during an interaction.

    Posted 06-09-2022 01:35
    No replies, thread closed.
    Hello David

    As Richard mentions this can be implemented as a Secure Flow however the recording stops so you are not able to audit it.

    If it requires to be recorded then we implement by having agent consulting in a call flow (in architect) that plays the prompt (disclosure message) and can include a 'press 1 to confirm' if needed, which could also update an external tag for reporting. Because it is a consult the agent can make a conference out of it in case they require to observe / assist the caller.

    Both these options can be implemented as buttons in the agent script to make it easier.

    ------------------------------
    Thanks and regards
    Blair Wilkinson
    CVT Global Enablement
    ------------------------------



  • 4.  RE: Playing a pre-recorded disclosure message during an interaction.

    Posted 06-09-2022 08:17
    No replies, thread closed.
    I wonder if you could use the button to do a simple consult transfer to a Dummy Queue and then play message through an in-queue flow,  then have it disconnect the consult leaving the Agent and the Caller still on the line and imprinting the disclaimer on the recording for posterity?

    That's a lot of ands...

    I've not done it before, but I think the path is clear and seems somewhat elegant.
    If you could stack on Attributes during the calls journey you might even be able to use the same in-queue flow to play different messages.

    ------------------------------
    Chris Martin
    CCS Medical
    ------------------------------



  • 5.  RE: Playing a pre-recorded disclosure message during an interaction.

    Posted 01-05-2023 13:49
    Edited by Ryan Cheesman 01-05-2023 15:04
    No replies, thread closed.

    Any luck with this David?  I've gone into the deep end on this one myself and am stuck.  I setup up an agent script with a consult transfer button that goes to an inbound flow, that invokes a bot flow to read the disclosure, then listen for the customer to accept / say yes. then when the script terminates, the caller is merged back to the agent.

    The problem is that a consult transfer places the customer on hold and the agent hears the disclosure.  I need to flip that around, or at least to turn the consult into a conference so that hey both hear the messaging and responses.  I started down the path of looking at the conversation API and am struggling with the Output Contract.  In API explorer I have had partial success in forcing a live call/"customer" off hold, but most of the time it responds with 200 but does nothing.  I read that changing a live call is not allowed.  Not sure how this can actually be accomplished.

    I've called into other IVR's and have been played disclosures before and can't imagine that people aren't doing them in Genesys.

    My requirements require us to save the call recording that includes the customer stating their full name (which is a separate challenge), the disclosure itself, then a verbal approval / yes response from the customer.  The recording needs to be saved for 5 years (another challenge to treat these calls seperately from others into the same queue).

    Would love to hear from anyone who's had luck with this type of requirement.

    I found the following API that can change the consult direction, or to have both, but I cannot seem to get the partcipantId out of the conversation API to input it into this one, I need to figure out the output contract for the conversation or converstation/call API:

    api/v2/conversations/calls/{conversationId}/participants/{participantId}/consult

    UPDATE:
    Found the following helpful post:  Display participant Attributes in the Script - Genesys Cloud Applications / Architect - Genesys Cloud Developer Forum - Thank you yuezhong!

    Was able to use it to build my Output contract and more importantly, setup the Response to filter and get the partcipantId.  Now that I can get this part, I can use it to feed into the consult API to see if I can make this whole process work.

    Get Conversation Customer ParticipantId by ConversationId

    INPUT CONTRACT:
    {
    "title": "ConversationRequest",
    "type": "object",
    "required": [
    "CONVERSATIONID"
    ],
    "properties": {
    "CONVERSATIONID": {
    "type": "string"
    }
    },
    "additionalProperties": true
    }

    OUTPUT CONTRACT:
    {
    "title": "CustAttr",
    "type": "object",
    "properties": {
    "id": {
    "type": "string"
    }
    },
    "additionalProperties": true
    }

    REQUEST:
    {
    "requestUrlTemplate": "/api/v2/conversations/${input.CONVERSATIONID}",
    "requestType": "GET",
    "headers": {
    "Content-Type": "application/json; charset=UTF-8"
    },
    "requestTemplate": "${input.rawRequest}"
    }

    RESPONSE:
    {
    "translationMap": {
    "customerAttributes": "$.participants[?(@.purpose =='customer')]"
    },
    "translationMapDefaults": {},
    "successTemplate": "${successTemplateUtils.firstFromArray(\"${customerAttributes}\")}"
    }

    I'll respond with a new message once I round out this solution and get the consult API Data Action working.

    ------------------------------
    Ryan Cheesman
    Senior Manager, IT Integration Services
    Tandem Diabetes Care Inc. | positively different
    ------------------------------



  • 6.  RE: Playing a pre-recorded disclosure message during an interaction.

    Posted 01-05-2023 15:22
    Edited by Ryan Cheesman 01-05-2023 17:43
    No replies, thread closed.

    Got the following Error.  Is it possible to run this Data Action with user context via an agent script button?  I'm wondering if I can setup the button to call a data action to initiate the consult transfer using the "Post" method?

    https://developer.genesys.cloud/devapps/api-explorer#post-api-v2-conversations-calls--conversationId--participants--participantId--consult

    "message": "REST call for action execute failed. Message: Request to backend service failed. Response from web service: {\"message\":\"This request requires a user context. Client credentials cannot be used for requests to this resource.\",\"code\":\"not.a.user\",\"status\":400,\"
    BTW, this works in API Explorer, but not as a Data Action.  API Explorer states it needs OAuth Client Creds with the Credential scope, but the Data Action states that Client Creds cannot be used and that it requires user context.

    If there was a scripter.action for ConsultTransfer, but that takes the "SpeakTo" parameter for Destination, Both or Object then it could be invoked via the agent script and it would work fine.



    ------------------------------
    Ryan Cheesman
    Senior Manager, IT Integration Services
    Tandem Diabetes Care Inc. | positively different
    ------------------------------



  • 7.  RE: Playing a pre-recorded disclosure message during an interaction.

    Posted 01-05-2023 15:28
    No replies, thread closed.
    Hey Ryan,

    I was never able to successfully implement this change in our system, and we eventually abandoned trying to utilize this function. Apologies that I couldn't provide any insight on this effort.

    ------------------------------
    David Mitchell
    Security Service Federal Credit Union
    ------------------------------



  • 8.  RE: Playing a pre-recorded disclosure message during an interaction.

    Posted 01-05-2023 17:44
    No replies, thread closed.
    Thanks for your response.  It seems like such a common need.  It is baffeling to me that it is not already a blueprint, or a templated / documented feature.

    ------------------------------
    Ryan Cheesman
    Senior Manager, IT Integration Services
    Tandem Diabetes Care Inc. | positively different
    ------------------------------



  • 9.  RE: Playing a pre-recorded disclosure message during an interaction.

    Posted 01-06-2023 10:26
    No replies, thread closed.
    Rather than consult transfer, it is probably better to leverage the upcoming ACD conference instead (currently in beta), if you need the customer being able to listen to the disclosure audio right off the bat.

    ------------------------------
    Daniel Ho
    Product Line Manager – Recording and Quality Management, Genesys Cloud
    Workforce Engagement Management (WEM)
    ------------------------------



  • 10.  RE: Playing a pre-recorded disclosure message during an interaction.

    Posted 01-06-2023 17:26
    No replies, thread closed.
    I'll look into the Beta as that is what I would rather do.  Thank you.  For now, I found a workaround that is doable for the time being.

    ------------------------------
    Ryan Cheesman
    Senior Manager, IT Integration Services
    Tandem Diabetes Care Inc. | positively different
    ------------------------------



  • 11.  RE: Playing a pre-recorded disclosure message during an interaction.

    Posted 01-06-2023 17:39
    No replies, thread closed.

    What I am doing for now is I've added a loop to the disclosure call flow that uses a data action to query the current conversation/call looking for the status of "Confined" and if confined, I play a prompt/message asking the agent to place themselves on mute, then to resume the customer (in the agent script UI).  I added in some dead air time to slow down the loop to give the agent some time to click through their UI.  If they don't do it, it checks again and nags them.  The customer hears on hold music.  Once the customer is out of confinement, the call flow continues with playing the disclosure. It's clunky, but it meets the minimum requirement for this request.  I am looking forward to a script action or a flow data action that can be invoked to start a conference with the disclosure, but it should be a scripter action to work the cleanest.

    The Data Action to query the Conversation is as follows:  (hope it helps others down the line as it was not straight forward to create, at all)

    REQUEST:

    {
    "requestUrlTemplate": "/api/v2/conversations/${input.CONVERSATIONID}",
    "requestType": "GET",
    "headers": {
    "Content-Type": "application/json; charset=UTF-8"
    },
    "requestTemplate": "${input.rawRequest}"
    }

    RESPONSE:

    {
    "translationMap": {
    "customerAttributes": "$.participants[?(@.purpose =='customer')]"
    },
    "translationMapDefaults": {},
    "successTemplate": "${successTemplateUtils.firstFromArray(\"${customerAttributes}\")}"
    }

    INPUT CONTRACT:

    {
    "title": "ConversationRequest",
    "type": "object",
    "required": [
    "CONVERSATIONID"
    ],
    "properties": {
    "CONVERSATIONID": {
    "default": "your guid here",
    "type": "string"
    }
    },
    "additionalProperties": true
    }

    OUTPUT CONTRACT:

    {
    "title": "CustAttr",
    "type": "object",
    "properties": {
    "id": {
    "type": "string"
    },
    "name": {
    "type": "string"
    },
    "address": {
    "type": "string"
    },
    "purpose": {
    "type": "string"
    },
    "held": {
    "type": "boolean"
    },
    "muted": {
    "type": "boolean"
    },
    "confined": {
    "type": "boolean"
    },
    "recording": {
    "type": "boolean"
    },
    "startTime": {
    "type": "string"
    },
    "endTime": {
    "type": "string"
    },
    "connectedTime": {
    "type": "string"
    },
    "ani": {
    "type": "string"
    },
    "dnis": {
    "type": "string"
    },
    "wrapupRequired": {
    "type": "boolean"
    }
    },
    "additionalProperties": true
    }



    ------------------------------
    Ryan Cheesman
    Senior Manager, IT Integration Services
    Tandem Diabetes Care Inc. | positively different
    ------------------------------



  • 12.  RE: Playing a pre-recorded disclosure message during an interaction.

    Posted 01-06-2023 17:43
    No replies, thread closed.

    If anyone has an Output Contract for "Conversations" API or "Conversations/call" that captures all of the returned objects/arrays, that would be super helpful to have in the future.  I cannot get the conversations current status using what I posted.  Would have to create a separate Data Action to try to get it as it is call.status.

    The Translations are nice for specific uses, but it woudl be great to not need them and to have an Output contract that accepted the full response from the API.  Also, the raw Response via Data Actions looks totally different that what you get via API Explorer, which exacerbates the complexity of developing them.



    ------------------------------
    Ryan Cheesman
    Senior Manager, IT Integration Services
    Tandem Diabetes Care Inc. | positively different
    ------------------------------