Call Flow Steps

Within the drag-and-drop call flow builder, admins have access to a series of configurable steps to add to their call flows to construct complicated routing logic. Each of the call flow step types is outlined below.



The dial step is our most basic component that allows IVR builders to create a decision path to determine who to route calls to within various points of an IVR. 

  • Users - Any User
  • Call Queue - Route to a Call Queue of many reps/agents who can accept the call
  • Skill - Route a call to a group of users associated with a skill.
  • RecordOwner - The Salesforce Lead or Contact Owner of the record
  • PhoneNumber - A manually entered phone number (often used to route calls to third party destinations)


In the example above, when the caller hits this part of the Call Flow, this step decides where to route the call. Additionally, a phone number can be manually entered. Other options such as Record this call and Call Disposition Not Required may be checked. The recording settings set at the granular call flow level will supersede account values.  Lastly, at the bottom the Task/Activity Subject and Comments can contain the text that is placed in those fields. 


The Greeting step is quite simple, this step allows an admin to insert audio messaging at any point in the call flow. There are also several options for how the greeting can be played to the caller:


  • Text-to-Speech - Type your prompt and will convert it to speech. Voice can be configured for Female or Male and supports the following languages:
    • English - American
    • English - British
    • Spanish 
    • French
    • German
  • Record Message - Type in your phone number and record your greeting
  • Upload MP3 - Upload an existing MP3 recording via a file picker.
  • From Library - Choose a recording from the Library of existing recording files
  • Voicemail Greeting - Choose from an existing Voicemail recording file.


Similar to Prompt step, the menu allows the end user to enter digits but restricts to single digits 0-9, * and #. By adding a menu step to a call flow, admins can define steps to be completed following the input of a defined number within a call flow step. 

No response will direct the call in situations where the caller does not input any digits before the input timeout.



The prompt step is where the platform can prompt the caller to press or say digits to be routed to the next step. The prompt allows for single or multi-digit input (up to 20 digits) to progress to the next step. For example, “Press or say 1 for Sales, Press or say 2 for Support” and in this case the following step will be a Dial step to route to the queues for Sales or Support. 

Additionally, the Any Response option will direct a caller in the case where they enter a value not configured in the Flow. This will override the Invalid Response audio you have configured.

No response will direct the call in situations where the caller does not input any digits before the input timeout.



In this example above, when the caller presses or says 1, they’ll be routed to the Sales team queue. Additionally, if they press or say 2, they’ll be routed to the Support team queue.

When setting up the Prompt assignment, you can decide which digit(s) the user must press followed by # in the Activate this function when the caller enters field for the following step. 

Additionally, the platform can listen for words spoken to move forward in the IVR Call Flow as well. Adding spoken words to the  Or when the caller says any of the following words or phrases, separated by commas will allow to listen for words as well.


This Call Flow step allows for the caller to leave a voicemail either for an individual or to a queue. 


There are several options for how the voicemail prompt can be played to the caller:

  • Text-to-Speech - Type your prompt and will convert to speech in a male of female voice in the following languages:
    • English - American
    • English - British
    • Spanish 
    • French
    • German
  • Record Message - Type in your phone number and record your greeting
  • Upload MP3 - Upload an existing MP3 recording
  • From Library - Choose a recording from the Library
  • Voicemail Greeting  - Choose from an existing Voicemail

Additionally, in this step the Admin can choose who receives the voicemail in the ringDNA dialer as well as the email notification (Person or Queue. Voicemail assignment allows the Admin to choose which user the voicemail call task is assigned to in Salesforce."



The SMS step allows for the ability to send an SMS message to the caller. If the Text a phone number field is filled out with another phone number, that number will receive the SMS message, if left blank the caller who called in will receive the SMS message. 



Additionally, fill out the Enter the message text below text area with the text the caller will receive. In the example above, a Case is being created automatically upon the caller dialing in, so as part of the SMS step we are sending the caller a text confirming their Case number. 


The Time step in the Call Flow builder allows you to route calls based on business hours. When used, all calls within the defined time period will be routed to the open step with calls outside of the timeframe being passed to the closed step. If you have set holiday hours for your account, a default voicemail will be used for calls during those defined days. 



In the example above, we set the time step at the very beginning of the call flow to route for business hours. Additionally, you can decide which Time Zone and add the business hours on a per day basis. Multiple time steps can be used in sequence to allow for shift based routing and other solutions. 

Also, note you can check the Use Holiday Schedule to bring in your specific customer holidays. To set the Holiday Schedule, go to Account > Overview > Holiday Schedule to add one or many holiday schedules to take into account in other countries. 


The Conference step allows for up to 40 participants on a conference call. The conference will begin as soon as 2 participants join the call. 


Moderator   - <Optional> Choose who will be the moderator of the Conference call. If a moderator is chosen, the Conference Call will not start until the moderator joins.

Hold Music

  • Choose from 6 options to provide Hold Music for the participants
    • Classical
    • Ambient
    • Electronica
    • Guitar
    • Rock
    • Soft Rock
  • Upload your own hold music
    • Upload from MP3
    • From Library
    • Voicemail Greeting


The Hangup step will disconnect the call if it reaches this part of the Call Flow. 


Post Call Survey

The Post Call Survey allows for another short Call Flow to collect feedback from the end user on their experience. For example, after calling a Sales or Support line and the Agent disconnects the call, you’ll hear a Survey that asks to press 1 for a good experience or press 2 for a Subpar experience. This allows the company to collect feedback which are visible on Salesforce reports and adjust where needed. 



Master Call Flow

In the above, the Master Call Flow is calling the Survey Child Call Flow to be run when an agent hangs up. 


Post Call Survey Flow

Post Call Survey Call Flows can only contain Menu, Prompt or Greeting steps.

Once the Post Call Survey has collected data, it’ll be seen within Salesforce under the Call Flow > Call Flow Steps object. 



The Callout step allows a call flow to call out to Salesforce during a call.  Essentially, allowing Salesforce to handle complex, custom, call logic and returning information for to execute. The Call Out step will call a Salesforce APEX class. You can pass variables in the Call Out step to Salesforce, allowing Salesforce to have access to data. 

Some common uses of the Call Out:

  • Automatic Case Creation
  • Territory Based Routing
  • Validate Account Number/Digits against the Account
  • Anything Specific to Salesforce

When using the call out you will supply the Path of the Apex class that you are going to call. Optionally you can pass in Apex Input variables to the Apex class. The variables can be system variables or hard coded values.  Salesforce will return a map of two strings, a variable name and the value. This return map needs to be identified with a unique key, called Saved Output

It is important to note that your Apex Class should return a ‘response’ map like the one outlined below



global class SampleCallout {@HttpPost

  global static Map<String, String> getCallInfo(String X, String Y) {

    Map<String, String> response = new Map<String, String>();  


    response.put('Z', Z);


    return response;






In this example, the Callout is executing an Apex Class to create a Case automatically. The inputs are the Caller’s phone number as well as the Queue and in return the callout will create a new Case, associate the Contact with the case if the Phone Number matches and relate the Account to the Case. 


Callout Path

In the Path you will need to put the path of the Apex Class. 

Path = RingDNASupportController

Next we will pass a variable, the caller ID, to Salesforce as well as the queueName as a constant


Caller = {{caller.from}}

queueName = Support 

Once the Apex Class executes, it’ll pass back a mapped response captured in the Case output variable


Case= {caller=+19495551212, case=00001334}


The Loop flow step enables a child step to be executed for every value in an input list.

An example of using a Loop step is to dial a list of users dynamically. A Callout returns a list of Salesforce User Ids given the context of the call. This list is passed into the Loop step. The Loop contains a Dial step which dials each user consecutively until one answers.


All of the arguments below are required for a valid flow step definition.

  • List of Values—This can be a static pipe-separated list of strings (helpful for quick testing) or a variable substitution expression using Mustache templates, the standard for substitution elsewhere in the flow engine. Sample usage: {{apex.agentIdsToDial}}
  • Current Item Name—This is the name used to store the current list item in the flow state. It’s typically referenced in the child flow step to perform some action, like dial a number or agent ID from the list of values.
  • Loop Body Step—The loop body step is a required child flow step to be executed for every loop iteration. To assign a loop body step, drag a flow step to the “Drop a function here” label in the flow editor.
  • Loop Completed Step—This is an optional child flow step executed upon completion of the loop. To assign a loop completed step, drag a flow step to the “Loop Completed - Drop a function here” label in the flow editor.


The Branch step allows for the ability to route the incoming call based on logic. It can be used on its own to route based on the area code or country code of the caller. The example below demonstrates Territory based routing. In this example, the Branch will be used in conjunction with the Call Out to decide how to route the call. In this case, let's say we have 2 territories, East and West, and the Territory is a field that lives on the Account object in Salesforce.  



The callout will return a value in this case named calloutResp and with it get the territory name from the Account. As seen here below, the Branch will decide if the call goes to the East or West Rep based on the information it gets back from the Callout. 



The Call Flow steps are very flexible and can substitute variables within a step to perform more complex functions. These variables can be variables you have generated or system-level variables.  

Below is a list of system variables that can be used within call flow steps. These variables allow the call flow access to data gathered by at the time of a call.





Will provide the caller ID of the caller


Will provide the number the caller called


Will provide the US area code from the caller ID of the caller


Will provide a unique ID produced by for every call


Will provide the international country code from the caller ID of the caller


Calculate Avg Wait Time in the queue


How many callers are in the queue



Was this article helpful?