Skip to main content
Skip table of contents

Template Contact Flows

We’ve developed the below templated Contact Flows to assist you in setting up your environment.
Additionally, there is a Lex Bot at the bottom for use with a more advanced solution to gather customer attributes through chat if you do not have the functionality within your Website Code to gather the customer attributes needed to find the customer profile.

Amazon Connect Voice

Basic voice call flow to serve incoming phone calls does the following:

  • Starts voice recording, turns on logging and sets the dialed number custom attribute.

  • It then prompts the user to press 1 if they are calling about an existing issue and have the case support number ready (or press 0 or hold the line if not)

  • If the caller inputs the case number then the corresponding customer attribute is set which will be used by Connect app for Zendesk to bring up the corresponding ticket for the agent.

  • There’s also an optional block which invokes the pause/resume recording module. If you’ve installed this add-on package from AWS Serverless Application Repository, it will enable your agents to pause and resume call recordings. To make it work, you’ll need to update the lambda reference in the module, once your SAR package is successfully installed. To enable it in the sample flow, just re-route the flow accordingly.

Zendesk_SampleFlow_Call Zendesk_PauseResumeRecording_module

Outbound Whisper

This flow can be used in place of the default outbound whisper flow that comes with Connect. It does the following:

  • Sets recording and optionally Contact Lens analytics. If Zendesk Contact Lens add-on package is installed from AWS Serverless Application Repository, then this will automatically add the conversation transcript, keywords used (if defined), and sentiment analysis to the corresponding ticket.

  • Sets outbound_cli custom contact attribute, based on the outbound CLI (number) of the used outbound queue. This enables Connect app for Zendesk to correctly report the outbound CLI.

  • Sets the all_outbound flag, to signal the app to create a ticket for every outbound call. Set this value to false if you don't want calls that are not associated with users or tickets to create new users and tickets.

  • Optionally sets the ticket_assignment flag to agent, so that agents can decide whether to create a new ticket or attach the call to an existing one.

  • Optionally configures the pause/resume recording functionality. This is equivalent to the pause/resume recording module described above, except that it’s not possible to invoke a module from an outbound whisper flow (modules are only available to inbound flows). Same as above, it requires installation of the add-on package from SAR and updating the lambda reference.


Amazon Connect Chat (Basic Chat)

This is a basic contact flow to be used as a template for chat conversations. It does the following:

  • First it sets the chat disconnect flow which allows customer to resume the same chat session within 15 minutes after the agent has terminated the chat. (chat disconnect flow is provided below)

  • Then it sets the chat queue and checks the hours of operation - if chat is initiated outside of these hours then an information about the operating hours is displayed to the customer and chat closes.

  • It also checks the queue availability and if at capacity it will advise the customer to try again a bit later, otherwise it places the incoming chat in the queue where the next available agent will pick it up from.

  • If there’s an error at anytime during the flow, the relevant error message will be displayed to the customer and the chat will close.

Zendesk_ChatDisconnect_Flow Zendesk_SampleFlow_Chat_NoLex

Amazon Connect Chat (Advanced Chat with Lex)

Based on the Basic Chat above, this version adds a Lex bot that attempts to identify the customer. Note - for this to work you need to import the bot provided below in the Lex console first and then update the reference to it in the relevant block of this contact flow.
This flow incorporates all the elements of the Basic Chat and in addition does the following:

  • Checks the three custom attributes containing email, phone number or name, if any was submitted during chat initialisation from the client - client apps can supply this information with a bit of custom code in the chat widget JavaScript snippet.

  • If none of the values are present then the Lex bot prompts the user to supply any of those. Lex detects which type of information was submitted and the flow then sets the appropriate custom attribute which is ultimately used by Connect app for Zendesk to bring up (pop) the corresponding customer.

  • Lex bot then also asks customer if the conversation will be about an existing or a new issue and in case of existing one requests the case number. This (if supplied) then enables Connect app for Zendesk to bring up the corresponding ticket for the agent.


Amazon Connect VoiceID

If you’d like to use capability of authenticating your customers based on their voiceprint, you can use the VoiceID module and its sample flow that hosts it as a staring point. For this to work you need to first install our Zendesk Search add-on package from AWS Serverless Application Repository.

The VoiceID module sequence is as follows:

  • Starts audio streaming, enables VoiceID and sets related parameters

  • Invokes Zendesk search API to retrieve customer’s Zendesk data, based on the calling number. Note that Zendesk Search app offers a number of other search methods as well.

  • If the customer is found their voice id is set as retrieved from their data. Next, their enrolment status is checked.

    • If they’re already enrolled, the customer is asked to speak for 10-15 seconds to match their voice with the stored voiceprint. If they’re authenticated a custom contact attribute zendesk_user is set, which will be used by Connect app for Zendesk to bring up the corresponding customer for the agent. If not authenticated, then the manual ticket assignment mode is activated via another custom contact attribute.

    • If the customer is not enrolled or are opted out then the above logic is skipped.

  • If the customer is not found in Zendesk or doesn’t have a voice id assigned yet, then a new (unique) voice id is set for them and is later used by the app to store it in Zendesk.

The VoiceID flow is just a host flow for the VoiceID module, to show the minimum flow blocks to be included when utilizing voiceID.

Zendesk_VoiceID_module Zendesk_SampleFlow_VoiceID

Zendesk Search

This sample contact flow shows how you can utilize capabilities of the Zendesk Search add-on package (which you need to install from AWS Serverless Application Repository first). The flow is relatively complex, but essentially follows these few steps:

  • Attempts to retrieve a customer data from Zendesk, based on the calling number.

  • If successful it then proceeds to check if there are any recent open tickets for that customer and, if there are, asks the customer if the call is related to the most recent ticket by stating its subject. It also offers to choose between options to create a new ticket or input a case number for a different ticket. If there are no recent open tickets it just offers the latter two options.

  • If a customer wasn’t found it offers options to enter either a Zendesk user id, or an account number (a custom Zendesk field), or skip the process. If the customer enters either of these two, it then attempts to find the customer in Zendesk, based on the entered data. If found, it will proceed with the same checks for a recent ticket and presenting relevant options as above. If not, it returns back to asking for user id or account number or to skip.

Throughout the flow the relevant custom contact attributes are set, to pop the user or ticket to the agent when the call is connecting, or to allow them to decide for themselves whether to create a new ticket or attach the call to an existing one (manual ticket assignment).


JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.