Skip to main content

When a customer calls

How to set up call routing and IVR options for phone using Workflows.

Written by Beth-Ann Sher

Use this article to build a phone workflow that routes inbound calls — including setting up an IVR (Interactive Voice Response) menu, collecting caller data, verifying caller identity with a one-time passcode (OTP), assigning calls to your team, and configuring deflection options like voicemail and callbacks. Before you start, make sure you've configured Intercom Phone and at least one phone number. You'll need Admin access to create and publish workflows.

Overview of an example phone workflow in the Intercom Workflows builder, showing steps from the inbound call trigger through IVR reply options to call assignment.

If you selected Configure with a workflow when you set up call routing for your phone number, you’ll now need to build the workflow.

Note:

  • Phone number assignment in your phone settings controls whether inbound calls are routed through a workflow. If your workflow isn't being triggered, check that the phone number is set to Configure with a workflow in Settings > Channels > Phone and that calls are matched to the correct workflow.

  • Building phone workflows requires access to Intercom Phone. Contact your workspace admin if phone settings aren't visible in your workspace. You'll need Admin access to create and publish workflows.

Example of a completed phone workflow showing steps connecting from the inbound call trigger through routing actions to call endings such as voicemail or hang-up.


How to create a phone workflow

Go to Fin AI Agent > Workflows and click New workflow.

The Fin AI Agent Workflows overview page with the New workflow button visible in the top right.

Click Create from scratch and select the trigger “When customer calls”.

Trigger selection screen in the Workflows builder with 'When customer calls' highlighted as the selected trigger.

How to configure your workflow trigger settings

If you want to trigger the Workflow for anyone who dials in, select leads and users as the audience. Or you can create separate Workflows per audience segment.

Trigger settings panel with the audience set to 'Leads and users'.

If you want to route users based on the phone number they called, you can do this by using the "Workspace phone number" attribute in the audience rules.

Audience rules panel with 'Workspace phone number' selected as a condition for routing callers based on which number they dialed.

You can also decide when this Workflow should trigger by enabling Scheduling. For example, you might want to trigger this Workflow during office hours only.

Scheduling section of the trigger settings with options to limit when the workflow triggers, for example during office hours only.

Click Save and close to start building your Workflow. The workflow builder will open with your trigger configured.

The workflow builder will open. Continue by adding the steps that define how your calls are handled — choose from the options in the sections below. When you're ready to go live, click Set live in the top right.


How to collect caller data in phone workflows

You can use the Collect data step in phone workflows to capture caller input and save it to a conversation data attribute (CDA). The value is stored automatically and appears in the conversation attributes panel when the call connects to a teammate.

The Collect data step as it appears in the phone workflow builder, showing the step card and configuration options.

  1. In your phone workflow, click + Add step and select Collect data.

    The + Add step dropdown in the phone workflow builder with the Collect data option highlighted.
  2. Select an attribute you want to save the caller's response to. Only supported CDA types are selectable — unsupported types appear greyed out.

    The attribute selector panel showing supported CDA types that can be selected for the Collect data step, with unsupported types greyed out.
  3. Choose your input mode: Fixed-length digits, Variable-length digits, or Speech.

    • Fixed-length digits — the caller enters an exact number of digits (for example, a 9-digit account number). Use this for structured data where the length is always the same.

    • Variable-length digits — the caller enters any number of digits and confirms with # or *. Use this when the input length varies.

    • Speech — the caller speaks a free-form response, which is transcribed and saved as text. Use this for open-ended responses only — not for account numbers, IDs, or other structured data where accuracy is critical

  4. Configure the prompt the caller will hear. Either type a message in the text field (it will be converted to speech) or click the microphone icon to upload a pre-recorded audio file (.mp3).

    The Collect data step prompt configuration panel, showing a text field for typed prompts and a microphone icon for uploading a pre-recorded audio file.
  5. Click Save and close. The step is added to your workflow and will capture caller input when the workflow runs.

Important: Keep the following limitations in mind when using Collect data in phone workflows:

  • CDAs only — data can only be saved to conversation data attributes (CDAs). Standard person and company attributes are not supported and will appear greyed out in the attribute selector.

  • Unsupported attribute types — boolean, list, file, object, and relationship CDA types are not supported and are disabled in the UI.

  • Speech mode and numeric attributes — speech mode is not available for integer or decimal number attributes. Use fixed-length or variable-length digit modes for numeric data.

  • Speech transcription accuracy — speech is transcribed by Twilio (Intercom's telephony provider). Accents, background noise, and poor call quality may affect accuracy. For structured data like account numbers or reference codes, digit modes are strongly recommended.

  • Re-prompting — if a caller provides invalid input, the workflow automatically re-prompts them. This behavior isn't configurable.


How to verify caller identity with phone OTP

Use the Verify phone with OTP step to confirm who's on the line before sharing sensitive account information.

How it works

The Verify phone with OTP step sends a 6-digit code via SMS (text message) to the caller's phone number. A spoken prompt then asks them to enter the code on their keypad during the live call. The workflow branches based on the outcome:

  • User verified: The caller entered the correct code. Typically, route them to an agent.

  • User verification unsuccessful: The caller failed verification. Route them to voicemail, email verification, or a limited self-serve path.

  • User verification skipped: The caller opted out. Route them to a restricted fallback.


How to set up the Verify phone with OTP step

  1. In your phone workflow, click + Add step and select Verify phone with OTP from the verification steps menu.

  2. Optionally configure the spoken-prompt language. By default, the prompt plays in English.

  3. Configure the three outcome branches:

    • User verified: Route the caller here if they enter the correct code — typically to an agent.

    • User verification unsuccessful: Route the caller here if they fail verification — for example, send them to voicemail, offer email verification, or a limited self-serve path.

    • User verification skipped: Route the caller here if they opt out of verification.

  4. Click Save and close. The step is added to your phone workflow.

Note: This step is only available in phone (voice) workflows. It sits alongside the existing Verify email with OTP action in the verification steps menu.

What callers experience during phone OTP verification

When a caller reaches the Verify phone with OTP step in a phone workflow:

  1. They receive a 6-digit OTP code via SMS.

  2. A spoken prompt asks them to enter the code on their phone’s keypad.

  3. The workflow follows the User verified, User verification unsuccessful, or User verification skipped branch based on what they do.

How phone OTP verification works for landline callers

When the Verify phone with OTP step runs for a caller on a landline, Intercom can't send an SMS (text message) to a landline number. To avoid dead-ending these callers, you can set up email verification over for the same live call — the caller stays on the line while a one-time passcode is sent to their email address instead.


IVR options and routing

Use the Workflows builder to configure your phone call flow — add messages, IVR (Interactive Voice Response) reply options, branches, and routing actions. Each option is described in the sections below.

Tip: You can now define and maintain partial IVR workflows in a single place using Phone Reusable Workflows. This allows for improved consistency and easier updates across multiple phone lines. Learn more about Phone Reusable Workflows to enhance your IVR routing options.

Important:
When using phone reusable workflows during live calls, the system follows this sequence:

  1. The original phone workflow pauses

  2. The reusable workflow executes

  3. The original workflow resumes

If the reusable workflow isn’t designed to return control cleanly, or if it duplicates actions from the parent workflow, this can result in:

  • Accidental call disconnections

  • Unexpected or repeated steps after the workflow resumes

Design reusable workflows carefully to avoid overlapping routing, hang-up, or voicemail actions.

Note: If a caller doesn't make a selection, IVR options are automatically repeated approximately 20 seconds after the last audio prompt finishes playing. This interval is fixed and can't be changed.

How to add messages to a phone workflow

In a phone workflow, the Message step converts text you type into speech played to the caller. Text-to-speech prompts are currently only available in English.

Tip: If you're using Fin Voice in the same workflow, be aware that Fin Voice uses a different voice engine to the text-to-speech used here. This means callers may notice a difference in voice between IVR messages and when Fin itself speaks. To keep things consistent, consider uploading a pre-recorded Audio Snippet (.mp3) that matches the tone and style of your configured Fin Voice.

Note: To provide prompts in German, set a language override in the workflow for the customer. This ensures the Messenger and automation language matches the desired language for phone call events.

The Message step configuration panel showing a text field where typed content is converted to speech for the caller.

Alternatively, you can upload an Audio Snippet you’ve recorded by clicking on the microphone icon in the text editor and selecting the audio file from your device.

Note: The audio snippet must be in .mp3 (audio/mpeg) format.

The Message step editor with the microphone icon in the toolbar for uploading a pre-recorded audio file in .mp3 format.

How to route callers with branches

Branches are a great way to route customers down different paths depending on conditions that you set. To add a branch, click + Add step and select Branches from the dropdown.

Example phone workflow with two branch paths — one for calls during office hours and one for calls outside office hours, each leading to different routing steps.

For example, you can have a different message if a customer calls outside of your office hours.

Branch condition configured for 'Outside office hours', with a Message step added to that path.

Tip: To add a text-to-speech message to any branch path, click + Add step in that branch and select Message.

The + Add step menu within a branch path with the Message option highlighted.

Important: If you have call recordings turned on for your workspace, please ensure you include a text block within your phone workflow telling customers their call will be recorded. We recommend including this as a message before the call is assigned, but its placement is up to you. If you have recording consent enabled on your phone number, callers will hear a consent prompt before the call is routed and must press 1 to accept or 2 to decline. Make sure your consent message — whether custom or the default — explicitly tells callers to press 1 to continue, otherwise callers won't interact with the prompt and your phone workflow will never trigger.

How to trigger branches based on office hours

When you select "Office hours" as the branch condition, you can configure whether this is during or outside of your default or team office hours. This ensures your team's availability aligns perfectly with your operational needs for each branch of the IVR.

Branch condition configuration panel with 'Office hours' selected, showing options for during or outside of default or team office hours.

How to set up IVR reply options

Use reply options for customer input. To add a reply option, click + Add step and select Reply options from the dropdown.

The Reply options configuration panel showing the introduction message field where text is entered to be converted to speech for the caller.

Enter an introduction message which will be converted to speech, or upload an Audio Snippet you’ve recorded. This message should introduce and match the reply options you give below.

Individual reply options mapped to keypad numbers in the Reply options step, for example 'For support press 1'.

Now enter the reply option for each key, e.g. “For support PRESS 1”.

Configured reply options with keypad number assignments and label text in the Reply options step.

Important:

  • Make sure your introduction message matches the reply options, as the introduction message will be what your customer hears on the phone.

  • A yellow warning ⚠️ will show on the introduction message when the phone workflow is in edit mode, however once the phone workflow is saved, that warning message will be removed.

Click the + Add button for:

  • Reply option - add another reply option for a different path.

  • + Add button options within the Reply options step, including Reply option, Start over button, and Save reply value to attribute.

    Start over button - add a start over option for customers to go back to the start of the Workflow

  • Save reply value to attribute - Save the reply option each customer selects as attributes for reporting and downstream visibility — including linking to a list-type conversation data attribute (CDA) so the reply buttons auto-populate from your data.

The + Add button dropdown within the Reply options step, showing the Reply option, Start over button, and Save reply value to attribute options.

Link to a conversation data attribute

Link the reply buttons step to a list-type conversation data attribute (CDA). The CDA's options auto-populate as reply buttons — no manual entry needed. When a caller makes their selection, that value is written directly to the conversation, giving downstream steps and teammates full visibility into what the customer chose. This removes the need for longer branching workflows just to capture caller intent.

Language selection mode

Select Language selection as the mode to pre-populate the reply buttons with options from Intercom's 47 supported languages. When the caller makes their selection, their chosen language is written to the conversation's language system-defined attribute using the locale code (e.g., "en"). This opens the door for auto-translation in future workflow steps.

How to assign and route calls

Once a caller makes a selection in a Reply options step, use the action paths in the workflow builder to define what happens next. For example, select Hold and assign call to route the call to your team. The call rings to an available teammate; if they decline, it moves to the next available teammate.

The Hold and assign call step in the phone workflow builder.

This step must come at the end of a path.

Tip: A call will be part of a conversation you can view on the Help Desk. This means standard conversation actions can also be applied, such as tag conversation, mark as priority, add note, set conversation data, etc.

Click on the Hold and assign call step to select the team.

The Hold and assign call configuration panel with a dropdown to select the team inbox.

Selecting the dropdown to 'Assign to' will present a list of Team inboxes rather than individual Teammates.

You can also select when the call is considered 'unanswered' by configuring which conditions must be met. Then click Save and close.

Unanswered call configuration options, where you set the conditions for when a call is treated as unanswered.

Now decide what happens if the call is unanswered. Unanswered calls can be assigned to another team or you can choose one of the available call deflection options (e.g. send to voicemail or forward call to a secondary team).

Available call deflection options for unanswered calls, including sending to voicemail, forwarding, or assigning to another team.

You must include a call ending step, such as Send to voicemail, Forward call, or Hang up, to ensure calls are properly concluded within your designed flow.

How to configure custom hold music

By default, callers placed on hold hear Intercom's default hold music. You can replace this with your own tracks — set a workspace-wide playlist, override it per workflow step, or both.

How to set a workspace-wide hold music playlist

Go to Settings > Phone > Phone Calls > Hold music to upload your music file:

The Hold music section in Settings > Phone > Phone Calls, showing the playlist interface where you can upload, reorder, name, and toggle shuffle and loop for MP3 tracks.
  • Upload tracks in MP3 format

  • Drag tracks to reorder them

  • Toggle shuffle and loop on or off

  • Name each track

How to override hold music per workflow step

The Hold & Assign step includes a hold music section where you can assign different tracks to different queues — for example, a VIP queue and standard support can each play different tracks. This overrides the workspace playlist for that specific step.

Note:

  • If a track becomes unavailable, the system automatically steps down to the workspace playlist, then to the Intercom default — no manual intervention is needed.

  • Custom hold music is available on Intercom helpdesk only. It's not available on Fin standalone.

How to manually answer calls before they're auto-assigned

You can answer calls in the queue before they get automatically assigned. This feature gives teammates more control over assignment by being able to manually pick up high-priority calls.

  1. In the conversation view you will see an ‘Answer’ button available on call cards

  2. The call starts as soon as you click Answer

Tip: You can answer calls in the queue before they get automatically assigned. In the conversation view, click the Answer button on the call card — the call starts immediately. This gives teammates more control over assignment by allowing them to manually pick up high-priority calls.

How to send calls to voicemail

The Send to voicemail step can be used to deflect calls to voicemail (e.g. when the team is unavailable, or is out of office hours). Click on the Send to voicemail step to customize the voicemail greeting that plays when a customer is transferred to voicemail.

The Send to voicemail configuration panel with a field to customize the voicemail greeting that plays when a caller is deflected.

The voicemail greeting is able support multiple languages but will not auto-translate text-to-speech. Content included in this text box should be translated to the respective language selected in the drop down.

Choose to set follow-up actions, or add rules based on information you’ve collected during the Workflow.

Voicemail step follow-up actions panel, where you can configure rules or actions to run after a voicemail is left.

How to offer callers a callback

The Request callback step lets you offer callers the option to request a callback rather than waiting on hold. Add it to your phone workflow as a call overflow option — useful when your team is busy, out of office, or the wait queue is too long.

In these scenarios, you can offer your customers an option to request a callback or stay in the queue and wait on hold (or offer other deflection options). If the customer requests a callback, they will keep their place in the call queue and the callback request will be shown to teammates in the inbox.

Add the Request callback step to your Workflow, then inform the customer that a callback will be requested using a pre-recorded audio file or text-to-speech prompt.

The Request callback step card as it appears in the phone workflow builder.

In order to make callbacks, you need to have outbound calls enabled for phone numbers you’ll want to make outbound calls from. You can turn this on from your phone number settings.

How callbacks work in Intercom

What happens when a caller reaches the Callback step

When a caller reaches the Callback step in your call workflow, the following occurs:

  • The call ends immediately

  • A callback request is created using the phone number the caller dialed from

  • The conversation is assigned to the team you selected in the workflow

There are no voice prompts at this stage. Intercom does not say “we’ll call you back,” ask for a phone number, or explain next steps.


The Callback step’s sole purpose is to end the call and queue a callback request.

What happens next

Once the callback request is created:

  • Intercom automatically looks for an available agent on the assigned team

  • An available agent receives a callback request, which they can accept or ignore

  • If ignored, Intercom will offer the callback to another available agent

  • When an agent accepts, they see the customer’s phone number and place the outbound call

All routing and assignment is handled automatically — no manual setup is required.

What this means for callers

If a caller reaches the Callback step and the call ends right away, this is expected behavior.

If you want callers to hear a message such as:

  • “We’ll call you back shortly”

  • “Your callback has been requested”

  • Any explanation of next steps

You’ll need to add a Message step before the Callback step in your workflow to play that message.

Key things to know

  • Automatic assignment: Callback requests are sent to available agents and the callback is an outbound call from the agent

  • No agents available: The callback stays queued and Intercom keeps retrying for up to 4 hours

Note: By default, callbacks go out from the number the customer originally called. You can change this by enabling Use default outbound number for callbacks in Phone Settings.

The 'Use default outbound number for callbacks' toggle in Phone Settings.

When enabled, callbacks follow the same cascade as regular outbound calls: the teammate's personal default number first, then the workspace default, and finally the original conversation number.

Note: The Use default outbound number for callbacks toggle is workspace-wide. It applies to all callbacks across your workspace and cannot be configured per teammate or per phone number.

How to forward calls to an external number

You are able to use the Forward call action if you want to automatically forward the call to an external number, e.g. a live answering service or an external team.

Forwarded calls will be charged as an outbound call to the receiving number.

Click on the Forward call widget to enter the external phone number, set follow-up actions after the call is transferred, or add rules based on information you’ve collected during the Workflow.

The Forward call configuration panel with a field to enter the external phone number and options for post-transfer follow-up actions.

Tip: If you have Switch set up and you want to allow customers to contact you via the Messenger, you can use the "Forward call" action in your workflow to forward the call to your Switch number.

How to end calls with a hang-up step

Use this action to hang up the call for the customer. For example, you might like to add the Hang up action to a path if a customer calls outside of office hours.

The Hang up step at the end of a workflow path in the phone workflow builder.

This step must come at the end of a path.

Click on the Hang up widget to set follow-up actions after the call ends (such as close conversation), or add rules based on information you’ve collected during the Workflow.

The Hang up configuration panel with follow-up action options, such as closing the conversation after the call ends.

How to collect post-call ratings

Add the Ask for call rating step to immediately collect customer feedback at the end of a call with your team. This is super useful for gauging call satisfaction and providing valuable insights for continuous improvement.

The Ask for call rating step in the workflow builder, positioned after the Hold and assign call step.

Tip: Call ratings will be available in the Customer satisfaction report and in Custom reports.

Click on the Ask for call rating step to customize the text-to-speech message that plays when asking for feedback.

The Ask for call rating configuration panel with a customizable text-to-speech field for the post-call feedback prompt.

The message can support multiple languages.

  • Remember, you must include a call ending step, such as Send to voicemail, Forward call, or Hang up, at the end of each path to ensure calls are properly concluded within your designed flow.

  • In order for a teammate to be assigned a phone call, they must be a member of the team to which the call is routed.

  • You can apply SLAs (Service Level Agreements) to phone calls by adding an Apply SLA step to your phone workflow. See Phone SLAs (Speed of Answer) for setup details.

  • Calls always create a conversation in the Inbox by design. There is no supported way to prevent call conversations from being generated, or to selectively block customer replies in call workflows — this is a channel restriction.

Tip: To automate actions after a call ends — such as triaging abandoned calls, auto-closing answered conversations, or routing outbound no-answers — use the When a phone call ends trigger. This is separate from the When a customer calls trigger and runs post-call. See Automate actions when a phone call ends for setup steps and example workflows.


💡Tip

Need more help? Get support from our Community Forum
Find answers and get help from Intercom Support and Community Experts


Did this answer your question?