Expert Workflows

Prev Next

Expert Workflows let you create advanced call routing systems for your business. Completely customizable, Expert Workflows go beyond basic menus and greetings and ensure the caller experience is based on their needs, and your procedures.

Let’s dive into the details.  

Who can use this

All Dialpad plans include standard workflows.

Expert Workflows require configuration assistance from Dialpad's Professional Services team.

Note

The External API step is available in the standard workflow builder. While you can still use External API steps in the Expert workflow builder, it is recommended to use the standard workflow builder using the standard External API step.

What can Expert Workflows do?

With almost endless configuration options, Expert Workflows let you personalize your workflow by:

  • Collecting caller data: Uses voice prompts to gather information from callers and store it for further use in the call flow.

  • Making personalized decisions: Routes callers to the most appropriate agent (or Department) based on their responses or stored data.

  • Accessing external data: Connects to other systems to retrieve caller information which then personalizes the experience.

  • Sending notifications: Keeps callers informed by sending SMS or email updates throughout the call flow.

  • Perform tasks: Completes specific tasks such as creating a service ticket or accessing and modifying customer order information.

Note

While this guide provides a basic overview, creating complex Expert Workflows requires some technical knowledge. If you're new to this, it's recommended to reach out to Dialpad's Professional Services team for assistance in building your custom workflow solution.

Access Expert Workflows

Once Professional Services has enabled Expert Workflows, you'll see an Expert step in your workflow builder.

View of the Workflow builder steps menu. The Expert step option is highlighted.

Once you’ve created and named your Expert Step, select Launch Expert to open the Expert Workflow builder.

The Expert step in a draft workflow. The Launch Expert option is highlighted in the Expert step node.

The Expert Workflow builder provides a drag-and-drop interface where you can connect different elements (nodes) to create a flowchart for your routing.

To add a node:

  1. Select a component from the node menu

  2. Drag and drop it into position on the canvas

  3. Select the node to add widgets and routing details

  4. Name the node and add a description (optional)

  5. Connect nodes using the circle and square connectors on the top and bottom of each node

    1. Select and drag from a circle (output) to a square (input) to connect.

    2. Select the square (input) and drag to open canvas space to disconnect.

    3. Change a connection by selecting it and dragging one end of the connection to another node.

  6. Select Publish to save your workflow

Workflow builder features

The Expert Workflow builder has several built-in features to help you create complex workflows. Let’s look at what you can do.

Local change toolbar

The local change controls help builders manage workflow development. These features apply to your current editing session only.

Here, you can:

Undo and redo changes you've made.

  • Save a local checkpoint of your workflow at any point.

  • Restore your workflow to the last saved local checkpoint, in case you make a mistake.

  • Clear any saved local checkpoints if you no longer need them.

  • Print your workflow to an image file for documentation purposes.

Important

Saving changes immediately affects your live workflow, so be sure you've reviewed everything before saving.

Navigation controls

The navigation controls at the top of your workflow canvas let you zoom in and out, and move around the workflow canvas for better viewing.

You can also long-hold the mouse to drag the canvas within the display.

Quick paste

The quick paste button lets you paste your last copy or cut, making it fast and easy to duplicate elements within your workflow.

Expert Workflow Nodes

Dialpad provides 9 different types of Expert Workflow nodes, each with a customizable name and description.

Let’s look at each node type.

Prompt and Wait

The Prompt and Wait node combines "Send Message" and "Wait for Message" to play a message and gather caller input.

Send Message

The Send a Message node plays pre-recorded messages (using a widget), information bubbles, or progress messages. Let's look at how each one works.

  • Widget: The Widget node provides call control elements such as playing prompts, transferring or hanging up.

  • Information Bubble:  Information bubbles act as a debugging milestone for voice calls. Messages marked as Information Bubble will not be played back to callers, but appear in the logs for backend analysis.  

    • Information Bubble should not normally be used with Prompt and Wait as it would cause the workflow to stop for input.

  • Progress: Progress messages are not audible to callers, they create a report tag for custom reporting modules. When custom reporting is enabled, Progress messages can be formatted into specific strings for build data reporting but should not be used with Prompt and Wait nodes.

    • Progress messages should be used with Send Message nodes only.

    • In the reporting string Workflow-^Name of Workflow>::Step-^<Step Name or desc> “-^” and “::” are defined delimiters in the reporting message.

    • When a Progress message is selected for reporting, select the data type as Task.

Wait for Message

The Wait for Message node pauses the workflow until the caller provides input.

Remember

Don’t forget to set timeouts to avoid indefinite pauses.

When designing an workflow, you do not need to use Send Message and Wait for Message as separate voice controls.

Voice Widget

The Voice Widget node lets designers send and use voice controls on the call. Choose from the 11 available widgets:

  • Voice Call-Park: Holds the call while longer operations are running.

  • Voice Call-Record: Records the call.

  • Voice Call-Resume: Resume the call after it was parked.

  • Voice Call-Terminate: Ends the call.

  • Voice Call-Transfer: Transfers the call to another destination like Department, person, or external number.

  • Voice Call-IVR-Collect: Gathers input from the caller.

  • Voice Call-IVR-Menu: Collects a menu choice from the caller.

  • Voice Media-Wait: Plays media and waits until finished.

  • Voice Play-Media: Plays a media file.

  • Voice Play-Prompt: Play a text-to-speech prompt.

  • Voice Prompt-Wait: Plays a text-to-speech prompt and waits for input.

Note

Some widgets require adding a "Wait for Message" node afterward for input.
This node does not explicitly include an input node—if your voice controls require an input node (required for all controls except call-park), you’ll need to add a Wait for Message or Prompt and Wait step after this node.

Go-to Another

The Go-to Another node directs callers to a different Iworkflow within your system. If the target workflow does not terminate the call, your workflow proceeds to the node below when the target workflow finishes. When creating a Go-to Another node, you’ll need to add the target workflow details.

To generate the expert URL name for a target workflow, you’ll need:

  • Workflow Name (without spaces).

    • Example: Acme Sales

  • Workflow ID (the letters and numbers after “workflow_” of your target workflow url).

    • Example: https://dialpad.com/workflows/workflow_IVR555555-4444444444

Then, compose your go-to target URL as follows:

WORKFLOW/<WORKFLOW ID>/<WORKFLOW Name without spaces>

Based on the example above, our target workflow URL will be:

WORKFLOW/WORKFLOW555555-4444444444/AcmeSales

Place this value into the Target Workflow Name.

Assign

The Assign node creates or updates variables to store information during the call, allowing for personalization.

If the variable does not exist, the variable will be created and assigned the given value.

New variables must be alphanumeric characters with no spaces or _ characters.

If the variable already exists the current value will be overwritten. See this Help Center article for details on system variables.

Notes

This node does not explicitly include an input node—if your voice controls require an input node (required for all controls except call-park), you’ll need to add a Wait for Message or Prompt and Wait step after this node.

Conditional Branch

The Conditional Branch node routes callers based on specific criteria (caller input, variables, expressions). This keeps wait times low, helps you prioritize VIPs, and ensures your team receives the information they need.  

Dialpad offers 3 different types of conditional branching.

  • Customer Input: Based on the last variable input by the caller.

  • Context Variable: Based on any variables created or assigned in the call flow.

    • i.e . System-generated variables such as ‘customer.businessid.phone’

  • Expression: Based on combination checks of regular expressions.

Once the conditional element is configured, you can create multiple workflow branches that will route to a unique step for that variable.

External API (Server)

Note

External APIs can be added as a step in the standard workflow builder. For details, check out this Help Center article.

The External API node makes dynamic calls to external servers to retrieve or update information. Requires a JSON-based REST API.

Once an API call is made, this node also allows you to parse JSON responses and store specific attributes in the workflow.

API calls should finish in 2-3 seconds. If the APIs take longer on voice calls, use call-park before the API call and call-resume after the API call. This will prevent the call from being disconnected or routed to your configured fallback path (such as voicemail) in case of timeout.

Dialpad only supports GET, POST, and PUT REST API methods.

Notes

  • If you’d like to restrict API access, you can do this via an authorization header or public gateway IPs.

  • The API endpoint should be accessible over the internet, as the request will come from the Dialpad cloud. If you want to restrict API access, you can either use the appropriate authorization header or ask for our public gateway IPs to restrict traffic on their firewall.

  • If an API is secured using SSL, it must be standard SSL signed. We do not support custom-signed authority for HTTP.

  • Variables and Attributes in the response parsing are case-sensitive.

  • For API-initiated campaigns, outbound calls must have an assigned DID for a power dialer in order for the call transfer to occur without issue.

Close Session

The Close Session node ends the call interaction.

Expert External APIs in Workflows

Dialpad Expert Mode has an External API node. This node allows the IVR to fetch data from a separate platform (such as a CRM) via REST APIs. Here are some guidelines to help you successfully deploy more complex IVRs.

Reference and Test API request locally

Ensure the API is accessible via the public internet. Use tools like Postman or the command line via curl requests to mimic how the external API component performs.

Once the API is tested from your local machine, you should know:

  • The request URL.

  • The request method (GET, POST, or PUT).

  • The request body (if required by the API).

  • The request headers (usually required by the API).

    Note

    Headers are structured as JSON objects.

  • The response body possibilities.

    Tip

    Save these responses locally with a preferred JSON text editor, such as Sublime Text or Notepad++.

Set up the Workflow Outline

To set up the workflow, go to your Dialpad Admin Settings.

  1. Select Channels & Workflows > Workflows

  2. Select Create workflow and create a name for the workflow.

    Tip

    Try to create a unique name for the workflow so other team members will know what it does by the name alone.

    Window to create a workflow and give it a name.

  3. Select + to add a step

  4. In the Add step window, select Expert

  5. Add the following expert step components in order and connect them:

    • Call Park - This is available in the Voice Widget component. Selecting the widget drop-down for voice/call-park

    • Send Message - This is for logging your request parameters

    • External API (Server) - This is for the API request

    • Call Resume - This should use the Prompt and Wait component, selecting the voice/call-resume widget

    • Send Message - This is for logging response parameters

  6. Select Publish Expert, then select Publish Workflow. The expert flow should resemble the one below.Example of a completed IVR workflow with an external API added with an Expert node.

Important reminders when using Expert nodes

  • Every expert node MUST end with a send message node.

  • If there is no match in the expert branch node, it must be mapped to a node.

  • Post JSON Body values must be wrapped in quotes in order to be saved or updated.

Create Test Contact Center or Department

To test the workflow:

  1. Assign the workflow to a Department or Contact Center with an active phone number

    Note

    If a test routing group isn’t available, set up a new one. Add a phone number and change the Call Routing configuration to point to the new workflow.

    Call Routing Options, adding an Expert Workflow as an option.

  2. After assigning the workflow, make an initial call to ensure the new routing group successfully reaches the new workflow.

    You will be able to review logs for the workflow in the Conversation History.

Add in API Details to Workflow

After setting up the basic API skeleton, add in the details of the API request.

URL

Copy the URL and paste it into the text field. If desired, use variables within the URL (wrap them in double curly braces); however, make sure that the beginning of the URL (https://) remains in the URL.

Method

The method used in the request. Valid options are only GET, POST, and PUT

Additional Headers

For the header field, create a valid JSON object with the Header Name as the key.

Note

The Content Type headers are always assumed to be application/JSON unless overwritten by this Additional Headers field. Below is an example:

{"BearerToken":"XXYY","Authorization":"Bearer XXYY"}

Editing the CSV JSONPath field

The External API node uses JSONPath to extract data from the API response and assign values in the response to workflow Variables. The format is [IVR variable name]:[JSON Path]. If there is more than one, they must be comma-separated.

To develop this expression Variable:JSONPath comma-separated list, use an external tool like jsonpath.com to find every value needed to be extracted from the API response.

Example JSON response

{
                    "firstName": "John",
                    "lastName": "doe",
                    "age": 26,
                    "address": {
                    "streetAddress": "naist street",
                    "city": "Nara",
                    "postalCode": "630-0192"
                    },
                    "phoneNumbers": [
                    {
                    "type": "iPhone",
                    "number": "0123-4567-8888"
                    },
                    {
                    "type": "home",
                    "number": "0123-4567-8910"
                    }
                    ]
                    }

To edit the JSONPath:

Note

Post JSON Body values must be wrapped in quotes in order to be saved or updated. For more details, see Variables below.

  1. Copy the body of the API response into a JSONPath tester and find the JSON Path for each variable needing to be pulled out

  2. Choose a variable name. The variable name goes first, then a colon, and then the JSONPath expression. See the example below:

    JSONPath expression

    first:firstName, (= "John")
                                last:lastName, (="doe")
                                streetAddress:address.streetAddress
                                city:address.city
                                phoneNo1:phoneNumbers[0].number
                                phoneType1:phoneNumbers[0].type
                                phoneNo2:phoneNumbers[1].number
                                phoneType2:phoneNumbers[1].typefirst:firstName, (= "John")

    After removing the new lines, the CSV JSONPath text field in the External API node look like the example below:

    CSV JSONPath for External API node

    first:firstName,last:lastName,streetAddress:address.streetAddress,city:address.city,phoneNo1:phoneNumbers[0].number,phoneType1:phoneNumbers[0].type ,phoneNo2:phoneNumbers[1].number,phoneType2:phoneNumbers[1].type
  3. After adding this into the text field, select Save and publish the IVR workflow

Variables

These are some variables you can use for JSON APIs.

Variable encoding

Variables can be url encoded or transposed to JSON using the following formatting on the variable:

  • JSON: {{exampleVariableName|type=json}}

  • URL Encoded: {{exampleURLString|type=urlqueryvalue}}

  • Number in JSON Body value: "{{num|type=jsonnumber}}"

  • Boolean in JSON Body value: "bool":"{{bool|type=jsonboolean}}"

Add in Logging

Once this work is complete, you need to add logging. The two send message nodes before and after the API request are used for recording some of this data to the Conversation History for troubleshooting.

If any variables are used in the API request, include those in the first request, but also include the response.

There are two built-in variables: response.status and response.code. These must be logged in the response message. Additionally, log all of the variables created with the CSV JSONPath.

An IVR workflow in expert mode shows the response of an External API node.

Now, you can start testing!

Testing and Add-ons

Perform an initial test call and find the call within the Conversation History. The output of the IVR shows the response values from the IVR within the logs.

To view the response values from the IVR, go to your Conversation History.

  1. Filter on the Only Digital Conversation Type

    View of the Conversation History, filtered on Only Digital interactions.

  2. Open the session and select the Transcript to see the response values from the IVR

    A view of an open digital interaction, showing the transcript with IVR responses displayed.

Note

The IVR Session History opens in another browser tab or window and provides basic information.

If desired, add Branches (within the Expert Node or outside) to provide prompts or messages if the API is successful or not.

Tips and tricks

Expert Workflows can be tricky, let’s look at a few important tips and requirements.

  • Last Node: The final node in your workflow shouldn't be an input node.

  • Use a "Send Message" node with a tracing message instead.

  • Long API Calls: Use "Voice Call-Park" before and "Voice Call-Resume" after API calls that might take longer than a few seconds.

  • Conditional Branches Outside Expert Workflows: You can use conditional branches even in standard workflows. Variables set in an expert workflow are accessible within standard branches.

  • External API Requirements: Ensure a JSON-based REST API with a reachable endpoint and standard SSL certificate (if applicable).

  • API-initiated campaigns: Ensure you have an assigned DID for your power dialer.

Frequently asked questions

Why is Expert Flow greyed out?

Expert workflows require configuration by Dialpad's Professional Services team. For assistance, contact your Customer Success Manager or Sales Team.

How can I prevent timeouts during API calls?

Use "Voice Call-Park" and "Voice Call-Resume" to manage potential timeouts while awaiting API responses.