_wait_for_user_confirm
Section: General
Default Value: false
Valid Values: Boolean
Changes Take Effect: Immediately
True to wait for confirmation of the customer's availability. If this option is set to true, the service sends a push notification to the customer's device to get confirmation that the customer is ready to have a conversation with the agent. This scenario is possible only if the _wait_for_agent option is set to true.
_call_direction
Section: General
Default Value: USERORIGINATED
Valid Values: USERORIGINATED, USERTERMINATED
Changes Take Effect: Immediately
This is a default value, automatically populated when using the predefined User-Terminated scenario. You do not need to change this value.
- If this option is set to USERORIGINATED, the customer's device will initiate the call to get connected to the agent.
- If this option is set to USERTERMINATED, the agent or the system will initiate the call to contact the customer.
_customer_number
Section: no category
Default Value:
Valid Values: phone_number
Changes Take Effect: Immediately
Customer's phone number. The parameter is mandatory to match the call with service data when the call direction is set to USERORIGINATED. Also used to establish the connection with the customer when the call direction is USERTERMINATED.
This option is mandatory.
_wait_for_agent
Section: General
Default Value: true
Valid Values: Boolean
Changes Take Effect: Immediately
True to wait for an agent to connect. If this option is set to true,
the service will wait for the agent to initiate the interaction and to send the notification to the customer. If the option is set to false, the interaction can start right after the creation of the service instance. In voice scenarios,
the access information will be returned immediately with the service ID.
This option is mandatory.
IVR Classic Callback
In this scenario, the IVR handling an inbound call has logic to check for a long waiting time and offers to call back the caller. To see an implementation example of this IVR, refer to the Classic Callback Sample.
Call Flow
IVR Check Wait Time
- IVR: Requests a statistic to determine the estimated wait time for the target.
- IVR: If the waiting time is above the configured threshold, offers a callback.
Start Callback
- IVR: Callback is accepted and IVR submits a request to the callback service.
- Callback service: Returns GMS service ID to the IVR.
- Callback service: If _wait_for_agent = true, waits for an agent to be available.
- Callback service: Calls the customer number.
- Customer: Accepts the call.
Connect to Agent
- Callback service: Identifies that a human has answered the call.
- Callback service: Reserves the target to route the call.
- Callback service: Routes the call to the target.
- Callback service terminates.
Create your Scenario
In the Admin UI > Services > Configured Services tab, add a Callback service with one of the User-Terminated scenario as the Common Default Configuration (see Adding a Service for details).
Enter the service name, which is the callback execution name of your service. It will be used in URLs to access this service. For example, if you set this name to voice-userorig-immediate, your service URL will be:
http://host:port/{base-web-application}/service/callback/voice-userterm-immediate
When you add this service and default configuration, many options are automatically populated with the appropriate default values.
Configure the Scenario
The following parameters are mandatory in the configuration of your callback service and in the parameters of the requests that your application submits:
Option | Description |
---|---|
_customer_number
Normally provided as a request parameter |
Customer's phone number. The parameter is mandatory to match the call with service data when the call direction is set to USERORIGINATED. Also used to establish the connection with the customer when the call direction is USERTERMINATED.
Important This is a request parameter that you can use in REST queries.
|
_call_direction = USERTERMINATED | This is a default value, automatically populated when using the predefined User-Terminated scenario. You do not need to change this value.
|
_wait_for_user_confirm = false | True to wait for confirmation of the customer's availability. If this option is set to true, the service sends a push notification to the customer's device to get confirmation that the customer is ready to have a conversation with the agent. This scenario is possible only if the _wait_for_agent option is set to true.
|
Include the Originating Call in Callback Historical Reporting
To connect the originating call to the Callback Historical Reporting, the IVR should add the following Callback KVPs to the attached data of the originating call.
- _CB_SERVICE_ID: Set this value to the GMS Service ID. This value is returned in the _id key in the response to the callback service request.
- _CB_T_SERVICE_START:
- If the callback was not scheduled, set this value to the time at which the callback service was requested.
- For a scheduled callback, set this value to the scheduled time. The required format is number of seconds since January 1, 1970, 00:00:00 UTC; for example, you can get this value in javascript as follows: Math.floor((new Date()).getTime()/1000)
- _CB_T_CALLBACK_ACCEPTED: Set to the time at which the caller accepted the callback. The format is the same as for _CB_T_SERVICE_START.
Terminate the Originating Call
After you have requested a callback and set the required attached data, the originating call might be set to the ABANDONED state. To avoid this issue, you can customize your SCXML code.
For example, open the Composer project of the Classic Callback sample and, under Workflows, edit the classic.workflow SCXML.
- Add a new Block of type State before Exit, for example, ProperlyTerminatingOriginatingCall.
- Edit the Body and add the following script: