What is IVR in Regal?

IVR stands for Interactive Voice Response. It's a visual workflow tool used to configure how inbound calls are handled before connecting to an agent or exiting the flow via other methods (e.g. forward to external line). When configured properly, IVR flow can improve inbound caller experience as well as agent efficiency. Check back for examples of how brands are achieving that through IVR configuration.

Here is a video walkthrough of how to use Regal's IVR product.

Where to Create or Edit IVR in Regal?

  • Currently, you can go to Settings > IVR to create a new IVR, or access your list of existing IVR>

  • The IVR tables view will show you the list of IVR you have, with corresponding status and other metadata. Take action to edit the existing IVR, or create new ones through New IVR Flow button.

  • The IVR configuration canvas is similar to the Journey Builder, with a trigger for each workflow, action nodes, logic nodes, and exit nodes. Configure individual nodes, connect them, and Save as Live to officially, Note: below view is illustrative. Only Send to Agents is currently available in production. See below for more information on Send to Agent node. 

How to Associate Phone Numbers with IVRs?

Configure active phone numbers and select the IVR flow to use for each number. Draft IVR's cannot be saved as live until at least one phone number is associated with the flow. Callers will go through the designated IVR experience depending on the phone number they dialed in. 

To configure, go to Settings > Active Phone Numbers > Edit > Select saved IVR in the modal.

Regal's Default IVR Flow

Send to Agent node encompasses a few components that make up the Regal default IVR flow.

  • Inbound Calls only are first routed through an IVR which plays a welcome message to customers before creating Inbound Call tasks for Agents. The IVR is responsible for letting the customer if there are no available Agents and provide alternative options to leave a message or get a call back.

Step by step detail when calls go to Send to Agent node:

IVR Nodes

----Action Nodes----

[Say / Play Node]

Say/Play node allows users to say or play certain messages to the caller. It is commonly used for greetings or automated information that does not require a human to relay. With Regal's contact data, you can use personalized greetings with their names and/or the agent they spoke with. 

Node UI in canvas

Drag an empty Say/Play node to IVR canvas to start configuration. Configured nodes will display the node name and a preview of the text or recording selected. 

 

Node detail

Configure the node by selecting the prompt type, either speech-to-text with Say a Message, or select a previously uploaded IVR recording with Play a Message.

Personalized Say Message

For the Say a Message option, you can dynamically reference contact attributes to create a more personalized greeting or prompt! Use handlebars by typing {{ to initiate the list of variables dropdown for selection. For example, you can reference:

  • contact attributes with the prefix "contact" e.g. {{contact.firstName}}
  • custom properties with the prefix "contact.customProperties" e.g.{{contact.customProperties.subscriptionStatus}}
  • Regal properties with the "contact.rvProperties" e.g., {{contact.rvProperties.friendly_timezone}}

You can view the full list of available properties by inspecting a contact from the Audience Page. In below example, we are greeting the contact by their first name (or "there" as a placeholder for unrecognized contacts). Then we let them know their dedicated agent will be with them shortly. Make sure your message aligns with your routing configuration - in this case, we want to make sure in routing rules the dedicated agents is the first option for routing.  

Upload IVR Recording

Upload recording used in IVR in Settings > Recordings tab. Select IVR as the Recording Type to make them show up in Say/Play and other IVR nodes.

[Gather Input Node]

Gather Input node allows you to gather keypress input from callers. It is commonly used to collect information (e.g. account number) or caller intent. Gathered values can be used for splitting callers down different paths (see Split below), or updating contact attributes in Regal system.

Node UI in canvas

Drag an empty Gather Input node to IVR canvas to start configuration. Configured nodes will display the node name and a preview of the text or recording selected. If valid keypress was collected, the caller will continue down the "Key Press" path. Otherwise, they will continue down the "No Input" path.

Node detail

Name of gather is required so that the value can be referenced later in IVR flow. Configure the prompt you want callers to hear by selecting the prompt type, either speech-to-text with Say a Message, or select a previously uploaded IVR recording with Play a Message. "Loops" indicate how many times you want the message to be repeated to callers. 

Stop gather criteria are used to indicate when you want the keypress collection to stop. You can use any of these condition to stop the gathering process: max time, max digit, or on keypress. Gathering will stop as long as one of them is satisfied. And a max time is required to be set. 

   

[Split Node]

Split node is a "traffic control" node to direct callers down different IVR paths based on certain criteria. Currently we support splitting callers based on Contact Attributes, Phone Numbers, Gather Input digit, and Send to Agents Keypress Exit digit. 

Split on Contact Attribute

If you wish to send caller to different IVR path based on attributes on the contacts, select the Contact Attribute to split on in the Split Criteria section. In the selection dropdown, attributes of your environment are automatically pulled in for selection. Then, add "branches" for the split by inputting the appropriate operators and value to split on. A max of 12 branches can be configured for a single split node.

If the contact is not found, and/or the value of the field on contact does not match any of the configured value branch, it will continue in the "No Match" branch. 

Here's an example of a Split node based on contact timezone:

Split on Phone Number

If you wish to send caller to different IVR path based on phone numbers they called to or called from, select the Phone Number to split on in the Split Criteria section. For "called to" number, choose Regal Phone Number option. Only those numbers configured with this IVR will be shown in the list of dropdown options. See here for how to configure numbers with IVR. For "called from" number, choose Contact Phone Number option (caller does not need to be an existing contact to use this option.)

Add "branches" for the split by inputting the appropriate operators and value. A max of 12 branches can be configured for a single split node. Caller with no match to the branches will continue in the "No Match" branch. 

Here are some examples of Split node using Regal Phone or Contact Phone: 

Split on Gather Input

If you wish to send caller to different IVR path based on previously gathered input from callers such as keypress, select the Gather Input in the Split Criteria section. Only Gather Input nodes that exist in the same IVR can be referenced for splitting. You can select them by name in the second Split Criteria dropdown.

Add "branches" for the split by indicating keypress options for each path. A max of 12 branches can be configured for a single split node. If the caller input does not match any of the branches, it will continue in the "No Match" path. 

Here is an example of Split node on Gather Input: 

   

Field Type and Operators

Supported contact attribute field types: String, Integer, Boolean.

Only fields of supported types will show in the autocomplete dropdown list of attributes. 

Supported operators by field type:

[Check Hours Node]

Check Hours node allows you to check whether the incoming call is inside or outside a set of business hours. It is often used to check whether the business or a particular team is still open to receive calls in the IVR. Routing decisions can be different based on whether it is inside or outside the hours selected.

Node UI in canvas

Drag an empty Check Hours node to IVR canvas to start configuration. Configured nodes will display the selected hours. If call happened during the selected times, the caller will continue down the "Inside Hours" path. Otherwise, they will continue down the "Outside Hours" path.

Node detail

Configure new business hours using the link or select previously configured business hours from the drop down. Selected business hours will be displayed as preview within the node detail. 

   

Configure Hours

Using the links from Check Hour node editor, or go to Settings > General Settings, you can create new custom business hours or edit previously saved business hours. Custom business hours for different teams can be created and referenced in IVR. 

Note: Default Business Hours is the only set of hours that control out of office responses. 

  

 

[Webhook Node]

Webhook node lets you connect to an external url or internal Regal endpoint, so that you can conduct a custom action. For example, you may trigger an email to the contact in an external system, or update the contact’s attributes in Regal to surface to agents.

Node UI in canvas

Node detail

Configure below information and save webhook node:

  • Endpoint URL: input the destination url
  • Method: POST only (other methods coming soon)
  • Custom Header: optionally, configure headers such as authorization keys for the destination url
  • JSON Payload: input required JSON payload for POST method, where you can reference dynamic variables. Trigger dynamic reference by pressing the {...} icon or use "{{" to see the menu. Dynamic variables available for reference in payload:
    • Contact Attributes of the caller record in Regal. Select attribute to incorporate from the dropdown. 
    • Phone Numbers for called to and called from phone numbers.
    • Gather Input digits collected from the caller during this step.
    • Keypress Exits - the exit digit collected from any Send to Agents node.
    • The handlebars expression inside {{}} will be noting the selected node using their friendlyIds. An example JSON payload may look like this:
      •  
      • {
        "traits":
        {"phone": "{{call.customerPhone}}",
        "call reason":"new application"},
        "name": "Custom Event Name",
        "properties":
        {"gathered digits":"{{gather_4.digits}}",
        "exit keypress":"{{sendToAgent_10.digits}}"}
        } 

Caveats

  • Webhook request will time out after 10 seconds. Calls with failed or timed out webhook request will still continue in the IVR to the next designated action, so that the call itself is not impacted.
  • In the JSON payload, if a referenced node (e.g. gather_4) is not connected to the webhook node in an active way, or no longer in the IVR canvas, you will not be able to save the IVR as live. You will get an "IVR failed to save" error toast.
    • See below example, the IVR will NOT be able to save because webhook is referencing a gather node that is not connected in the flow:

----Exit Nodes----

[Send to Agents Node]

Send to Agents Node is an Exit node where a call task will be created for agents, with a max caller wait time for agents to accept the call task. Upon timeout caller will continue in the IVR flow. You can enable an optional exit path by allowing user to select a keypress for alternative exit options (e.g. VM, ASAP callback). Task attributes can be appended on the call task for routing purposes. 

Screen Shot 2024-06-28 at 9.07.04 AM.png

Configure Node

  • Timeout Criteria section is required to determine the maximum hold time (in seconds) a caller can wait in the queue, as well as the recording file they will hear during the hold. The recording will be played on repeat to the callers. If the call is not accepted by an agent before timeout, the call continues in the "Call Timeout" exit branch of the node. Configure the next action you want to take in the canvas (e.g. Say node to tell callers a max wait time has been reached, or a Forward node to transfer the call)

Screen Shot 2024-06-28 at 9.07.24 AM.png

  • Keypress Exits can be used to give additional options to the callers while they wait for agents in queue. When the toggle is turned on, the IVR will "listen" for keypress from callers during the wait, and immediately exit through "Keypress Exit" branch upon receiving a single digit. When toggled on, you must include the keypress prompt in your recording (e.g. "Press 1 for Voicemail, Press 2 for ASAP Callback"). Configure the next action in the canvas. See below for example

  • Task Attributes section can be optionally configured to add additional attributes for routing purposes. Either Custom Value (static) or Gather Input (dynamic) values can be used to populate the task attributes. Configure routing rules using these new attributes for agent targeting. 

 

[Forward Call Node]

Forward Call is an exit node, with no exit branch in the IVR for further connection. Commonly, users use the node to forward the caller to an external phone number, e.g. forward low priority calls to BPO teams for overflow. 

Make sure to use +1XXXXXXXXXX format for US numbers in the input area.

 

[Voicemail Node]

Voicemail node offers an alternative exit option if agents are not available to pick up the call, or when no agents is staffed to answer the call live. For example, if a contact calls in after business hours, you may want to direct them to a voicemail box. 

 

ASAP Callback Node

Similar to Voicemail, ASAP Callback node offers an alternative exit option if agents are not available to pick up the call, or when no agents is staffed to answer the call live. For example, when all agents are busy, you may want to direct them to an ASAP callback option.