Landis Contact Center for Microsoft Teams
  • About
  • Getting Started
  • Setup
    • Organization Settings
    • Set Up Users
    • Set Up Queue
      • Calling Queue
      • Chat Queue
        • Web Chat
    • Set Up IVR
    • Set Up Queue or IVR Resource Account
      • Option 1: Teams Admin Center
      • Option 2: Contact Center (Preview)
    • Set Up Policy Call Recording
    • Set Up Sentiment Analysis
    • Set Up Business Hours Sets
    • Set Up Holiday Hours Sets
    • Set Up Organization Units
    • Set Up Wall boards
    • Set Up Wrap-Up Question Set
    • Set Up Scheduled Reports
    • Set Up Auto Attendant [Teams]
    • Install Teams App
    • Failover Options
  • Daily Usage
    • Agent
      • My Settings
      • Agent Panel
      • Transferring Calls
    • Supervisor / Manager
      • Monitor Live Calls
        • Call Barge
        • Pick Call
        • Listen In
        • Whisper In
      • Listen to Recordings
      • Manage Agent Status
      • Manage Agent Queue Sign-ins
  • Analytics & Reports
    • Home
    • Dashboard
    • Live Calls
    • Queue Status
    • Agent Status
    • Wallboards
    • Queue Summary
    • Agent Summary
    • IVR Summary
    • Queue Details
    • Agent Details
    • IVR Details
    • Recordings
    • Abandoned Calls
    • Queue Calls by Hour
    • Agent Timeline
    • Wrap Up Answers
    • Callback Requests
    • Data Collection Records
    • Call Details
  • Administration
    • Call Settings Policies
    • Data Access Policies
    • Data Collection
    • Direct Call Records Groups
    • Organization Units
    • Queue and IVR Access Control
    • Roles
    • Settings
    • Users
    • Webhooks
  • Maintenance
    • Delete Stuck Live Calls
    • Retrieve Stuck Live Calls
    • Delete Stuck Agent Panel Calls
    • Diagnostics
    • Audit Logs
  • Appendix
    • Agent Status Profiles
    • App Service Information
    • Audio Prompts
      • Audio Files
    • Call Popup
    • Call Loop Detection
    • Create Resource Account Using PowerShell
    • Event Webhook
    • External Recording/audio prompt Storage
    • Feature States
    • Hang Up
    • Integration Permissions
    • IVR Data Dip Power Automate Flow Configuration
    • JSON IVR Design (deprecated)
    • Languages
    • Microsoft Azure Cognitive Services
    • Presence API Service Account
    • Queue Alerting Type
    • Queue Call Back
    • Queue Priority
    • Queue Routing Type
    • Remove Contact Center
    • Report Options
      • Search
      • Date Range Selector
      • Export to Excel
      • Add Filters
      • Edit Columns
    • Reroute on No Answer (RONA)
    • Skills Based Routing
      • Skill Category
      • User Skills
      • Queue Skills
    • Skype for Business Hybrid
    • Teams API Service Account
    • Teams Presence Based Routing
    • Terms and Conditions
    • Timezone Reference
    • Transfer to PSTN
    • Trial Expiration
  • Definitions
    • [Contact Center] Service
    • [Contact Center] Organization
  • Service Health
    • Current Incidents
    • Incident Reports
  • What's new in Contact Center
Powered by GitBook
On this page

Was this helpful?

  1. Setup

Set Up IVR

Last updated 20 days ago

Was this helpful?

If the Add button does not appear for a user, verify the user has a data access policy assigned to an OU that gives them IVR create permissions. The same applies to the Edit or delete buttons.

  1. Navigate to Queues & IVRs | IVRs | Add

  2. Enter a Name and Description for the IVR.

  3. Create the IVR Flow using the Designer tab

  4. Setup resource account. See

IVR Designer

The Designer Tab can be used to create an IVR flow. Blocks can be added, edited and deleted by using the controls on the top left corner.

There are 8 call blocks that either trigger the flow or perform an action:

Block

Description

Triggers the flow

Sends or retrieves data from an external API

Transfers or ends the call

Plays audio prompt

Play Prompt (optional) and Listen for (DTMF) Tone Block

Listens for DTMF until the # and stores it into a variable

Records audio, converts the speech to text, and stores the text into a variable.

Performs a regex match

Plays text

Routing based on business hours set

Routing based on holiday hours set

Creates a new callback record in the reports

Sends a prompt to OpenAI and stores the response in a variable

  • Each flow begins with the Root block which triggers the flow when there is an incoming call.

  • There can be multiple of the same call blocks which perform different actions.

  • Each instance of a block has a unique ID.

  • The Transition to Block property specifies the Name/ID of next block that will perform the next action.

  • The Name field is not optional

  • The Description field is optional.

Variables

  • Variables can be created and referenced in blocks.

    • Default variables are CallerNumber, CallerName, and ScenarioId.

    • Variables are case sensitive.

    • Only DataDip, VoiceInput, Regex, AIQueary, and MultiTone blocks can create new variables. The names of the variables created by these blocks are prefixed by the block name followed by _result, e.g. AccountNumber_result.

    • Variables can be referenced in the following blocks: DataDip, Regex, CallAction, TextToSpeech, AIQuery, and Callback. For more details on using variables in these blocks, refer to the examples below.

Example Root Block:

Explanation: When there is an incoming call, the next action will be the block with ID 2

Example Data Dip Block:

If Input Parameter Names field is empty, the body of the HTTP POST will include all the available variables. If variables are specified, only the contents of those variables will be included in the body of the post. Multiple variables are required to be separated by commas.

Example Call Action Block:

  • Type of Action To Take options:

    • Transfer To Queue/IVR

    • Transfer To User

    • Transfer To Voicemail

    • End Call

  • On Transfer Failure (optional)

    If the transfer fails, an alternative block can be selected. This is recommended when using a variable as the transfer destination.

Note: Variable can be used for the action target. The variable name is required to be placed inside curly braces. If transferring to a user or user voicemail, the content of the variable is required to be the Azure Active Directory object ID of the user.

Explanation: Disconnect Call.

Example Play Prompt Block:

The block will play back the specified audio prompt.

Explanation: The audio file will play that is specified. The next action will be the block with ID 5.

Example Play Prompt (optional) and Listen for (DTMF) Tone Block:

The block will listen for a tone while and after a prompt is played.

  • Prompt URI Values

    • URI

    • Empty (no prompt)

  • Repeat URI Values

    • URI

    • DoNotPlay (no prompt. Will skip the next timeout period.)

    • Empty (replays prompt URI or plays default prompt if prompt URI is null)

  • Cannot Connect URI Values (Plays only if On Timeout Go To is empty)

    • URI

    • DoNotPlay (no prompt)

    • Empty (plays default prompt)

  • On Timeout Go To

    • Next ID Number

    • Empty

  • Number Of Repeats

    • 0-1000

  • Repeat Wait Seconds

    • 0-1000

If Cannot Connect URI is empty, the Cannot Connect Uri will be played before the call is automatically disconnected.

Explanation: Audio prompt is played. If no buttons are pressed, after 10 seconds the repeat prompt is played. Again if no buttons are pressed, after another 10 seconds the call will timeout and the next block will be ID 6. If 0 is pressed at anytime, the next action will be ID 6. If 1 is pressed, the next action will be ID 7.

Example MultiTone Block:

The block can play an audio prompt and will collect DTMF digits until the pound key is pressed. The DTMF digits will be stored in a variable.

Note: Pause on Pound and Pause time are settings not currently enabled.

Explanation: Block will collect DTMF digits until the pound key is pressed and store the digits in a variable named GatherAccountNumber_result. Next block is ID 8.

Example VoiceInput Block:

The block can play an audio prompt and will record the caller until either the stop key is pressed, or the max silence timeout is met. The audio recording will be converted to text and stored in a variable.

  • Play Beep (when recording is started) (optional)

  • Audio Prompt that is played (before recording is started) (optional)

  • Stop Tone or key to End the recording

  • Max Silence Timeout in Seconds. The system will try to detect silence and will stop the recording after the amount of silence specified.

  • Max Recording Duration in Seconds. Max time the system will record a caller.

  • Language. The language spoken by the caller.

  • On Action Failure (optional)

    • The On Action Failure is used if the audio does not contain text or if there is an error converting the audio to text.

Explanation: After the audio prompt is played, a beep will play indicating the caller is being recorded. After the caller is done speaking, they can either press the # key or wait until the recording stops. The audio recording is converted to text and stored in a variable named NewVoiceInput_result.

Example Regex Block:

The block will perform one or multiple regex matches on a variable. The expressions are evaluated in order top down. On No Match Found option is used if no matches are found. The Regex Replace field is optional but can be used to create a variable to be referenced in a later block.

Explanation:

If NewDataDip_result variable matches 123, the call will be transferred to Queue01 and "Queue01" will be stored in a variable.

If NewDataDip_result variable matches 456, the call will be transferred to Queue02 and "Queue02" will be stored in a variable

If NewDataDip_result does not match 123 or 456, the call will be transferred to Queue01.

Example Text To Speech:

The block will play the text in the Text field. The language and voice can be customized under Show advanced voice settings.

Note: Variables can be used in the text. The variable name is required to be placed inside curly braces. When an opening curly brace is entered, a dropdown list of available variables will appear, and they can be selected from the list.

Explanation: Block will play the contents of the Text field. Next block is ID 7.

Example Business Hours:

The block will determine the call action if during business hours or during an off time.

Explanation: Business hours set "Default" will be observed using Eastern Standard Time. On hours next block is 6. DefaultOff action next block is 7

Example Holiday Hours:

The block will determine the call action when during a holiday hours set.

Explanation: The "2023 Holidays" will be observed using Easter Standard Time. If the current time is during the 2023 holiday hours set, next block is 6. When off holiday, next block is 7.

Example Callback Block

The block will create a callback record.

Note: The Callback Contact and Callback Description fields are free text fields. If variables used in these fields, they required to be placed inside curly braces. When an opening curly brace is entered, a dropdown list of available variables will appear, and they can be selected from the list.

Explanation: A call back record will be created with the Callback Contact being the CallerNumber variable. The Callback Description will be what was captured in a previous voice input block. Link to Parent is enabled, so the callback record will be associated with the IVR or Queue that transferred the call. If it was not enabled, it will be linked to this IVR. Next block is 5.

Example AI Query

The block sends the prompt to Open AI and stores the response in a variable.

Note: Variables can be used in the Prompt text. The variable name is required to be placed inside curly braces. When an opening curly brace is entered, a dropdown list of available variables will appear, and they can be selected from the list.

Explanation: The text in the prompt field will be sent to OpenAI. The response will be stored in NewAIQuery_result variable. Next block is 8.

For information about Data Value fields on Root State, DataDip, VoiceInput, Regex, AIQuery, and MultiTone blocks, see

Variables can used to populate Data Collection fields. See

Explanation: A HTTP post is sent to the URL. A Microsoft Flow is triggered by the HTTP POST. A decision is made by the Power Automate Flow and the returned response will be stored in the "datadip_result" variable. See . The next action will be the block with ID 7. If there is no response to the HTTP POST after 30 seconds, the next block will be 6.

Transfer to PSTN. E.164 format required. Prerequisites are required. See

Speech recognition API Key is required for production use. See step 3 and 4 in

Set Up Queue or IVR Resource Account
Data Collection
IVR Data Dip Power Automate Flow Configuration
Transfer to PSTN
Set Up Sentiment Analysis
Data Collection
Root
DataDip
CallAction
PlayPrompt
ListenToTone
MultiTone
VoiceInput
Regex
TextToSpeech
BusinessHours
HolidayHours
Callback
AIQuery