Example in-queue call flow for Direct Routing

The following example is an in-queue call flow for directly routing interactions. The example uses data actions designed specifically for the example flow.

In this example, the IVR routes a caller to a particular agent based on information retrieved from the Platform API with example data actions for Direct Routing.

  1. In Get Alerting Timeout, the Call Data Action uses the Get Alerting Timeouts actions example to retrieve the alerting timeout values the contact center admin set for the current queue for the various media types (calls, emails, and messages). The alerting timeout values determine the number of seconds the IVR displays an alert for an agent before the alert times out and the IVR routes the call to a backup agent, another queue or back to the current queue.
    1. If the Call Data Action fails or times out, then Architect repeats the action. If the Call Data Action fails or times out again, then Architect disconnects.
    2. If the Call Data Action succeeds, then Architect proceeds to Get User By Phone Number. The action uses the example in Get User by Address to look up the callee’s name based on the phone number dialed by the caller to reach the IVR system.
    3. If the Call Data Action fails or times out, then Architect repeats the action. If the Call Data Action fails or times out again, then Architect disconnects.
    4. If the Call Data Action succeeds, then Architect proceeds to the Update Data action. The Update Data action assigns the FindUserById(Task.userId) value to the task level variable DirectRoutingAgent
  2. In the Hold Music action, the Hold Music action plays the default hold audio prompt for the duration of the alerting timeout that Get Alerting Timeouts retrieved for calls and assigned to the task level variable alertTimeout in step 1b.
  3. In Get Agent Backup Settings, the Call Data action uses the Get Direct Agent Backup Settings to retrieve, based on the direct routing agent’s ID, whether to wait for the agent, the agent wait time, the ID of the agent’s backup user and queue.
  4. If the Call Data Action fails or times out, then Architect repeats the action. If the Call Data Action fails or times out again, then Architect disconnects.
  5. If the Call Data Action succeeds, then Architect proceeds to a Decision action to determine whether to wait for the agent, based on the value assigned to the task level variable waitForAgent in step 7.
  6. If the Boolean value assigned to the waitForAgent variable is true, then Architect proceeds to the Yes path of the Decision action:
    1. Architect uses the Play User Greeting action to play the personal greeting for the direct routing agent.
    2. Architect then proceeds to the Transfer to Voicemail action and specifies the customer’s telephone number for callback purposes with the expression ToPhoneNumber(Call.Ani).
  7. If the Boolean value assigned to the waitForAgent variable is false, then Architect proceeds to the No path of the Decision action:
    1. Architect uses the Decision action to determine whether a backup queue ID is set.
    2. If the backup agent ID is not set, then Architect proceeds to play the default hold audio prompt for the duration of the alerting timeout that the Get Alerting Timeouts data action retrieved for calls and assigned to the task level variable alertTimeout in step 1.
    3. Architect proceeds to a Transfer to ACD action and transfers the interaction to the backup queue. 

Click the image to enlarge.

Example in-queue call flow for direct routing