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:
- Aircall sends the call details (caller number, call ID, dialed number, and flow name) to your Salesforce Omni-Flow.
- The Omni-Flow evaluates its rules and returns a target: either a queue or a specific agent.
- 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
- In Salesforce, go to Setup.
- In Quick Find, type Routing Configuration and select it.
- Click New.
- Enter a name, developer name, routing priority, and routing model.
- Click 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
- In Salesforce, go to Setup.
- In Quick Find, type Queues and select it.
- Click New.
- Provide a label and name, then select a routing configuration whose routing model is External Routing.
- Add Voice Call from the object list.
- Click Save
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
- In Salesforce Setup, search for Partner Telephony Call Center and open it.
- Open Aircall SCV Partner Telephony.
- Scroll to Queue Mapping and click Add.
- Select the Salesforce queue you want to map.
- Enter the corresponding Aircall team ID, where you can find in your browser URL when accessing the team in the Aircall Dashboard.
- 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
- Go to Aircall Dashboard > Integrations and open your Salesforce integration settings.
- Scroll to Create Call Center Routing Map and open the dropdown.
- 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.
| Column | Description |
|---|---|
| DeveloperName | The Salesforce user ID or queue name combined with the call center value, separated by an underscore. |
| MasterLabel | The master label of the routing map record. |
| CallCenterId | The ID of the Aircall call center in Salesforce. |
| ReferenceRecordId | The Salesforce user ID the mapping is for. |
| ExternalId | The 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
- In Salesforce, click the gear icon and go to Setup.
- In Quick Find, type Permission Sets and select it.
- Find Aircall SCV User, click Clone, name the clone Aircall SCV Omniflow User, and click Save.
- Open the cloned permission set and select App Permissions.
- Click Edit and enable the following, then click Save:
- Contact Center Admin
- Contact Center Admin (Partner Telephony)
- Contact Center Supervisor
- Manage Call Centers
- Go back to the permission set and select System Permissions.
- Click Edit, enable Customize Application, then click Save.
- Click Manage Assignments, then Add Assignment.
- Select the users who need these permissions, click Next, then click Assign.
- 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
- Go to Aircall Dashboard > Numbers, select the number, and go to the Call Distribution tab.
- Click Edit and select Ring via API as the call distribution method.
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
- Go to Aircall Dashboard > Numbers, select the number, and go to the Teams & Users tab.
- 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.
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.