Skip to main content
8x8 Support

IVR Components in ContactNow

An IVR is made up of several components linked together. Learn more about the individual IVR components with a description of their functionalities listed here.

An IVR is made up of several components linked together. The panel on the right of your screen whilst in IVR creation, contains all the components that can be used to build your IVR. To add a component to your IVR click and drag it onto the main area and drop it where you want it to appear.

When a component is added it is automatically given a description. The default is a number, which starts at 1 and works upwards. You can change the description in the properties panel on the right.

Listed below are the individual components with a description of their functionality.


The Menu component is used to play an audio message to the caller and then wait for them to press a key on their telephone keypad.


In the properties panel you can set up the audio messages.

  • Menu - This message can be interrupted by the caller who may be familiar with the menu and wishes to short-cut it. In such instances this message is played second and is optional.
  • Intro - This message cannot be interrupted by the caller pressing a button. Legal statements, terms and conditions, and disclaimers that must be read out completely. This message is played first and is optional.
  • Invalid - This message plays if the caller presses a button that there is no configuration for. This message is optional.

For each message you have the option to enter in an audio file ID (Advanced), choose and existing file, upload a new Wave (.wav) file or use Text to speech.

Audio files and text to speech files may take up to 10 minutes to be installed on all parts of the network. Please wait 10 minutes after uploading new prompts before testing.


The Exit component is used to hang up the call.


Play Message

The Play message component plays an audio file to the caller before moving onto the next component. In the properties panel you can upload an audio file ID (Advanced). Choose existing file, upload a new Wave (.wav) file or use Text to speech.


Do Not Call

The Do Not Call component adds the caller’s phone number to the default DNC list for the customers contact center. In order to make changes to active records, you must ensure the Select component comes before the Do Not Call component. This will search for records with the callers number and apply the Do Not Call outcome.


The Do Not Call component hangs up the call and ends the IVR. Messages you want to play to the caller before their number is removed must be placed before this component.


The Queue component transfers the call into another Inbound queue. The IVR ends but the call continues.



The Dial component dials the phone number specified in the properties panel. When the call is answered the caller is transferred from the IVR. You can also set the route for the customer if the call is not answered.


The Call option setting allows you to overwrite this default

  • Neither - By default, the IVR will pass through the DID number dialed by the caller to the phone being dialed by the IVR.
  • Forward Customer CLI - Select this option to pass through the original caller’s CLI.
  • Show Call ID - This option passes the Call ID so that data captured within the IVR can be shown in a script using APIs.


The Outcome component sets the desired outcome to the call.


Pick the outcome you would like to set from the drop down list. The Advanced tab lets you to use a variable that you have set somewhere else in the IVR as the Outcome. Once the variable has been entered return to the Basic tab and select VAR= from the list.


The Capture component plays an audio message asking the caller to enter information using their keypad and records their response in a variable.


In the Properties panel there are three input boxes and the audio prompt settings.

  • Variable - This is the variable name which can be used to store the captured key presses. The variable name for this field should just be the name and not contain a $ sign.
  • Input Length - This is the maximum length of the captured value. As soon as the required number of characters have been captured the call flow will continue to the next component. The call will automatically move onto the next component after five seconds.
  • Reference Audio - This is the audio prompt played to the caller before starting the capture. The selection of the audio message is as the Menu component.

Say Digits

The Say Digits component reads out the value stored in a variable.


Enter the variable name into the Captured PIN field. It must start with a dollar ($) sign.


The Post component is used to Post all the information available to your (or a third party) server. The information will be accurate up to the point in the IVR where the Post component is reached. In order to differentiate exactly what point in the IVR your server has been queried, you can pass any values you like on the URL.


For example, your URL might look like this:

In order for the IVR to be able to respond to your server, the server-side script should return a JSON-encoded string with the following keys set:

  • cmd - The value associated with this key must always be “goto.”
  • arg - The value associated with this key should be the menu id or description of the menu that the IVR system should traverse next. The JSON string can also have other keys set, excluding the following reserved names: db, qid, ccid, in_id, cli, ddi, urn, callid, grouping.
  • You can use these extra keys to provide custom variables which can be re-used later in the IVR call flow. For example your server may return an account balance, which you would then read out to the caller using the Say Digits component.

In order to access the custom variables, the variable name is set on a piece of data in the IVR interface, prefixed by the $ (dollar) symbol. For example, if you set a key in your JSON string called my_var, then the value associated with this key can be set on an item of data, through the interface, by assigning $my_var as the value for this piece of data. Custom variables sent back in the JSON-string, should have a key comprising a letter or underscore, following by one or more letters, underscores, or numbers. For items of data represented by a select box in the interface, a variable to use can be defined in the advanced section on the properties pane for that component. Audio options have their own advanced section where a variable can be defined. For data that is represented by a text box, that allows a variable to be used as its value, the variable name is typed directly into the text box. The variable MUST be prefixed by a dollar sign ($).

The variable field for the capture command should *not* be prefixed by a dollar, as this is a variable being created by the IVR system, not sent to it by your server.

System Post Fields (These fields will be sent to the defined URL in GET parameters)

Field Description
qid ID of the current queue
customer ID of the current call (same as callid field)
callerid Caller ID (same as cli field)
Date Time in 'YYYY-MM-DD HH:MM:SS' format
url The URL the request was sent to
ccid ID of the reseller (ID in call_centres table)
in_id ID in incoming table cli Caller ID (same as callerid field)
ddi The queue DID that was dialed
urn URN of the record callid ID of the current call (same as customer field)
grouping ID of the campaign live 0 if the customer has hung up

Match is used to redirect an incoming call using the Caller ID of the caller.


It looks in selected datasets of the campaign and finds the first record matching the Caller ID in the 'Match Field.' Then the value of 'Redirect Field' of the matched record is saved in '$_REDIRECT_DID' variable. So if 'Match Field' is HomePhone and 'Redirect Field' is WorkPhone, then a record is searched in the HomePhone field using the Caller ID and the caller is redirected to the number in WorkPhone field.

To make Match & Redirect work a Dial component have to be added and '$_REDIRECT_DID' has to be entered into its Number field. 'Match & Redirect' button can be clicked on Dial component properties to put the variable in.


Select Record component of the IVR allows the selection of a customer record based on given search criteria.


IVR calls, do not, by default, have any customer record assigned. With the select component, you can assign a customer to the call so that the agent does not have to search for the customer when the call reaches an inbound queue.This feature can also be used to execute an advanced outcome behavior from within the IVR system.

Icon Please Note: It should be considered when using this component that it can identify a record of the same URN within any of your campaign tables, please therefore ensure you select the correct table.


The Label component can be used to annotate your IVR. It has no effect on the call.



  • Was this article helpful?