External IVR API
The 8x8 External IVR API is a HTTP API
that provides tenants the ability to integrate with an external IVR system. The feature is embedded in the current 8x8 virtual contact center IVR server.
Once a customer call enters the 8x8 IVR server, a
tenant administrator has the capability to configure the IVR script to relay a
call to an external IVR server.
This document describes the supported parameters for using
the External IVR API. Examples are provided for references.
API requests are authenticated using a token that is issued to a valid 8x8
security reasons, the External IVR API only accepts request using HTTPS, so
that request headers and response data are encrypted.
In order to make an API request, you must first obtain an
authentication token that has been issued for your tenant. This token combines
username and password into a single long string. To get your token, log into
the Configuration Manager, select "Integration", and click the
"API Token" tab. The "Action Request Token" needs to be used in all
API requests. Next, click the "New Token" button. This generates a
new private token for your tenant. You will use this token in all requests to
this API. You may generate a new token at any time; however, once a new token
is generated, the old token becomes invalid.
up an incoming call channel to route a call to external IVR:
Add new "Forward to External IVR" node to an
existing IVR script
Assign label name and access phone number of the
external IVR server.
resume action when external IVR server terminate the call without sending API
request via this API interface or fail to connect the external IVR server. If an external IVR request was successfully
submitted before the call the terminated, the resume action will have no effect
and the call will be routed base on the API request.
The following parameters are
allowed parameters that can be passed along with the External IVR URL using GET
or POST method.
System provided tenant id
Unique sip call id
unique sip call id of the call, which is defined in Call-ID header of a SIP
Type of call routing action to be
wForwardAgent (not yet
Action parameter. The parameter
will be defined base on action type.
wForwardACD – a
valid queue id
wForwardAgent – a
valid agent id
attribute can be used to pass name value pairs that will be used for
populating the transaction panel when an agent is offered the interaction.
Each name value pair is enclosed by [ ] and the name/value are separated by
a limit of 500 characters.
Tenant name can be found in Configuration Manager under "Home
>> Profile" panel
The per-tenant unique queue id can be obtained under "Queues"
panel in Configuration Manager
External call data to be passed back to 8x8 Virtual Contact
Center platform, which will then be available for agent to view in AGUI call
The data should be in name value pair separated by |
character. And each name value pair should be enclosed with open and close
square brackets, such as [name|value]
extIvrData=[First Name|John][Last Name|Smith]
API Request URL
The web callback API makes it
easy to submit a query, for experimentation, testing or debugging purposes. From
a web browser, simply enter the URL. For
request above will try to route to call to queue with id 102 after the call is
terminated from the external IVR system.
Revise your query URL based on the login URL of your tenant:
For tenants in Cananda: https://www.mycontactual.ca/SC/externalIvrAction.php
For tenants in UK: https://www.mycontactual.co.uk/SC/externalIvrAction.php
following script will redirect a call to queue with id 114 once the IVR server
hangs up the call.
<do label="mainmenu" choices="1" repeat="10">
Welcome to the 8 by 8 External IVR Demo.
To redirect your call to an ACD queue, press 1.
<on event="choice:1" next="#redirectQ"/>
<say>Invalid choice. Please try again.</say>
<assign var="tenant" value="klvm2"/>
<assign var="token" value="92bd5cbf9ab120b3a47bdef9284b323d"/>
<assign var="action" value="wForwardACD"/>
<assign var="sip_id" value="$session.SIPCallID;"/>
<assign var="param" value="114"/>
<assign var="extIvrData" value="[First Name|John][Last Name|Smith][Account
Please wait while we redirect your call.
<fetch value="https://8x8.com/SC/externalIvrAction.php" submit="sip_id, tenant,
token, action, param, extIvrData" method="post" var="retValue" />
thank you for waiting. your call is being redirected to queue $param;.