Important: This feature is currently behind a feature flag and is not yet available for all accounts. Contact Aircall Support to confirm availability before beginning setup.

Omni-Flow routing lets Salesforce decide where each incoming Aircall call should go. Instead of routing calls to a fixed team, a Salesforce Omni-Flow evaluates your routing rules in real time and tells Aircall which queue or agent to dial. This is useful when your routing logic lives in Salesforce and you want calls to follow it automatically.

Setting this up involves configuration in both Salesforce and the Aircall Dashboard. Read through the requirements and constraints below before you start, since some of them affect decisions you'll make during setup.

Before you start

What you need

  • Admin access to both the Aircall Dashboard and your Salesforce org.
  • The Aircall Service Cloud Voice (SCV) Partner Telephony integration installed and connected in Salesforce.
  • One Aircall number dedicated exclusively to routing. This number must be linked to only one integration; linking it to more than one will break routing.
  • The Aircall team ID for each queue you plan to map. Find it in the browser URL when you open a team in the Aircall Dashboard (for example: dashboard.aircall.io/teams/243537).

Constraints to know before you configure

These aren't edge cases, they affect how you set things up.

  • No simultaneous ringing. Omni-Flow routing doesn't support simultaneous ringing. Use the Randomly or Longest Idle ringing rule only.
  • Minimum ring time. The Ring for setting on your routing number must be at least 44 seconds.
  • One integration per routing number. If the number is connected to more than one integration, routing will not work.
  • Agent access required. Every agent who will receive routed calls must have Call and Data access on the routing number in Aircall. Without this, call logging and status synchronization will fail even if the call connects.
  • Small call delay. Because Aircall makes an API call to Salesforce before ringing, there's a brief delay between a call arriving and agents hearing it ring.

How the routing works

When a call arrives on the routing number:

  1. Aircall sends the call details (caller number, call ID, dialed number, and flow name) to your Salesforce Omni-Flow.
  2. The Omni-Flow evaluates its rules and returns a target: either a queue or a specific agent.
  3. Aircall dials that target and the call connects.

If the Omni-Flow can't resolve a target, the call falls back to the queue you define during setup.

Setup overview

The full configuration has two parts:

  • Part 1 (Salesforce): Create a routing configuration and fallback queue, set up call center routing maps for your queues and agents, grant the required permissions, and build the Omni-Flow.
  • Part 2 (Aircall Dashboard): Using the values you created in Part 1, set the routing number to Ring via API and configure the request, response, and ringing settings. Then give routed agents Call and Data access.

Part 1: Salesforce

You'll complete seven steps in Salesforce: creating a routing configuration, creating a fallback queue, understanding how routing maps work, mapping your queues, mapping your agents, granting permissions, and building the Omni-Flow.

Step 1: Create a routing configuration

Steps

  1. In Salesforce, go to Setup.
  2. In Quick Find, type Routing Configuration and select it.
  3. Click New.
Routing configuration
  1. Enter a name, developer name, routing priority, and routing model.
  2. Click Save.
Routing configuration > save
Important: The routing model must be set to External. Any other setting will prevent Aircall from routing calls through Omni-Flow.

Step 2: Create a fallback queue

Steps

  1. In Salesforce, go to Setup.
  2. In Quick Find, type Queues and select it.
  3. Click New.
Queues.jpeg
  1. Provide a label and name, then select a routing configuration whose routing model is External Routing.
  2. Add Voice Call from the object list.
  3. Click Save
queue - save
queue voice call

Step 3: Understand routing maps

A call center routing map connects a Salesforce queue or user to their corresponding identity in Aircall. You need one map per queue and one per agent you want to route to.

  • Queue maps can be created directly in Salesforce (Step 4).
  • Agent maps can only be created through the Aircall Dashboard or the Salesforce API (Step 5).

Step 4: Map your queues

Steps

  1. In Salesforce Setup, search for Partner Telephony Call Center and open it.
  2. Open Aircall SCV Partner Telephony.
partners telephony contact centers
  1. Scroll to Queue Mapping and click Add.
Partner Telephony Contact Centers .jpeg
  1. Select the Salesforce queue you want to map.
  2. Enter the corresponding Aircall team ID, where you can find in your browser URL when accessing the team in the Aircall Dashboard.
  3. Click Finish.
Note: If your Omni-Flow routes to multiple queues, repeat these steps for each queue.

Step 5: Map your agents

Agent maps can only be created or deleted through the API. Use whichever option fits your workflow.

Option A: From the Aircall Dashboard

Steps

  1. Go to Aircall Dashboard > Integrations and open your Salesforce integration settings.
  2. Scroll to Create Call Center Routing Map and open the dropdown.
  3. Select the agent or agents to add, then click Save.
Note: A mapping is only created when the agent's email address is identical in both Aircall and Salesforce. If there's no match, no mapping is created. Once created, mappings cannot be edited or deleted from the Dashboard, use Salesforce Inspector, Data Loader, or Workbench to manage them.

Option B: Using Salesforce Inspector, Data Loader, or Workbench

Prepare a CSV file with the columns below and insert the records as CallCenterRoutingMap objects.

ColumnDescription
DeveloperNameThe Salesforce user ID or queue name combined with the call center value, separated by an underscore.
MasterLabelThe master label of the routing map record.
CallCenterIdThe ID of the Aircall call center in Salesforce.
ReferenceRecordIdThe Salesforce user ID the mapping is for.
ExternalIdThe Aircall user ID for the agent.

Step 6: Grant the required permissions

To create and manage call center routing maps, users need specific permissions. You'll clone an existing Aircall permission set and add them.

Steps

  1. In Salesforce, click the gear icon and go to Setup.
grant permissions
  1. In Quick Find, type Permission Sets and select it.
  2. Find Aircall SCV User, click Clone, name the clone Aircall SCV Omniflow User, and click Save.
grant permissions
  1. Open the cloned permission set and select App Permissions.
  2. Click Edit and enable the following, then click Save:
  • Contact Center Admin
  • Contact Center Admin (Partner Telephony)
  • Contact Center Supervisor
  • Manage Call Centers
Grant Permissions 3.jpeg
  1. Go back to the permission set and select System Permissions.
Grant Permissions System Permissions.jpeg
  1. Click Edit, enable Customize Application, then click Save.
Grant Permissions Enabled Custom Applications.jpeg
  1. Click Manage Assignments, then Add Assignment.
Grant Permissions Maanage Assiments.jpeg
Grant Permissions Add Assignment.jpeg
  1. Select the users who need these permissions, click Next, then click Assign.
Grant Permissions Select User.jpeg
  1. Click Done.

Step 7: Create the Omni-Flow

Build the routing logic in Salesforce Flow Builder. For step-by-step guidance on creating an Omni-Channel flow, refer to Salesforce's documentation: [Create an Omni-Channel Flow](PLACEHOLDER — confirm correct URL before publishing).

Tip: Note the developer name (API name) you give this flow. You'll need it for the flowDevName value in Part 2.

Part 2: Aircall Dashboard

Set the routing number to Ring via API

To know more about the Ring via API widget, see Smartflows widgets: Smart Routing: Ring to (via API) widget.

Steps

  1. Go to Aircall Dashboard > Numbers, select the number, and go to the Call Distribution tab.
  2. Click Edit and select Ring via API as the call distribution method.
Screenshot 2026-09-16 at 10.19.40.png

Selecting Ring via API opens a configuration panel in the sidebar. Complete each section below.

Request configuration

  • URL: https://integrations-omniflow.aircall.io/v1/salesforce/omniflow-routing
  • Method: POST
  • Authentication: None
  • Body: copy the JSON below and replace the three values marked with your own:
{
  "callerNumber": "{{callerNumber}}",
  "callUUID": "{{callUUID}}",
  "targetNumber": "{{targetNumber}}",
  "lineId": "{{lineId}}",
  "flowDevName": "YOUR_FLOW_DEVELOPER_NAME",
  "fallbackQueue": "YOUR_FALLBACK_QUEUE_ID",
  "dialedNumber": "YOUR_ROUTING_NUMBER_IN_E164"
}
Note: Leave {{callerNumber}}, {{callUUID}}, {{targetNumber}}, and {{lineId}} exactly as shown, these are Aircall dynamic variables that populate automatically at call time.

The three values to replace, all of which you already have from Part 1:
- flowDevName: the developer name of the Omni-Flow you created in Part 1, Step 7.
- fallbackQueue: the Salesforce ID of the fallback queue you created in Part 1, Step 2. You can find this ID in Salesforce under Setup > Queues; it appears in the URL when you open the queue.
- dialedNumber: your routing number in E.164 format (for example, +12025550100).

Response configuration

  • Response type: Dynamic Target (ID)
  • Path to Target Type: data.target_type
  • Path to Target Value: data.value

Ringing settings

  • Set Ring for to at least 44 seconds.
  • Set the ringing rule to Randomly or Longest Idle. Do not use simultaneous ringing.

Give agents Call and Data access

Steps

  1. Go to Aircall Dashboard > Numbers, select the number, and go to the Teams & Users tab.
  2. Add every agent who will receive routed calls under Call and Data access.
Important: Skipping this step doesn't always prevent calls from connecting, but it will cause call logging and status synchronization to fail for any agent not added here.

FAQs

Why is Omni-Flow returning a queue even though I configured it to route to an agent?

This is a known issue. To resolve it, open the route work settings in the Salesforce Flow Builder, change the Service channel field to Messaging, save, then switch it back to Phone and save again.

Why are voicemails showing as missed calls?

This happens when no Voicemail step is present in the Aircall call distribution for the routing number. Open the call flow for your routing number, available in Aircall Dashboard > Numbers and add a Voicemail step after the Ring to (via API) step.

Screenshot 2026-09-17 at 17.42.45.png

Why is there a delay before agents hear the call ringing?

This is expected. Before Aircall can ring anyone, it must first call the Salesforce Omni-Flow endpoint and wait for a routing target to be returned.

An agent isn't receiving routed calls. What should I check?

Check two things. First, confirm the agent has Call and Data access on the routing number in the Aircall Dashboard. Second, confirm the agent has a call center routing map and that their email address in Aircall matches their email address in Salesforce exactly. If the emails don't match, no mapping will have been created.

Can I use this with simultaneous ringing?

No. Omni-Flow routing requires the ringing rule to be set to Randomly or Longest Idle. Simultaneous ringing isn't supported.

What happens if the Omni-Flow cannot resolve a target?

The call falls back to the queue defined in the fallbackQueue field of your Ring via API request body.