Inbound Routing

Handling incoming calls, configuring IVR language selection, and defining event webhooks.

View as Markdown

Inbound Routes define the logic for calls made by customers to your business phone numbers. They act as the dispatcher, deciding which Agent should pick up, what language should be spoken, and what data should be synced to your CRM.

The Inbound Flow

Creating a Route

Navigate to Business Dashboard -> Inbound Routing -> Add Route.

Language & IVR

Iqra AI features a built-in Programmatic IVR for language selection.

  • Single Language: If you only select one language (e.g., English), the agent picks up immediately.
  • Multi-Language: If you select multiple (e.g., English & Arabic), the system automatically plays a pre-recorded message: "Press 1 for English. Press 2 for Arabic."

Select which of your connected Phone Numbers will use this route.

Prerequisite: Phone Numbers

Before creating a Inbound Route, you must have a phone number available in your workspace.

Manage your numbers in Phone Numbers Tab.

Agent Assignment

Select the Agent and the Opening Script.

  • Context: Enable "Inject Caller Number" if you want the LLM to know the phone number of the person calling.

Configuration

Fine-tune the call behavior (Pickup Delay, Max Duration, Silence Detection).


Post-Analysis

Before the call ends, you can configure how the system analyzes the conversation. This data is available in the Call Ended webhook.

  1. Navigate to the Post Analysis tab in your Route settings.
  2. Select a Template defined in the Post Analysis Module.
  3. Context Variables: The LLM will receive the following data to generate the summary/tags:
VariableTypeDescription
call_queue_idStringUnique ID for this specific call attempt.
call_queue_created_atDatetimeWhen the call entered the platform.
call_queue_enqueued_atDatetimeWhen the call was placed in the processing queue.
call_queue_processing_started_atDatetimeWhen the system started handling the logic.
call_queue_completed_atDatetimeWhen the queue item finished (if applicable).
call_queue_statusStringCurrent status (e.g., ringing).
call_queue_route_idStringThe ID of this Inbound Route.
call_queue_calling_number_idStringThe database ID of the business number being dialed.
call_queue_calling_number_providerStringThe carrier (e.g., Twilio, Telnyx).
call_queue_provider_call_idStringThe Carrier's unique Call SID (Use for debugging with Twilio support).
call_queue_caller_numberStringThe phone number of the person calling.
conversation_idStringUnique UUID for the conversation.
conversation_start_timeDatetimeWhen the conversation began.
conversation_end_timeDatetimeWhen the conversation finished.
conversation_end_typeStringReason for termination (e.g., completed, failed).
conversation_turnsObjectRaw JSON array of speaker turns.
conversation_turns_simplifiedStringReadable transcript of the chat.

Actions (Webhooks)

Actions allow you to trigger Custom Tools when specific call events occur.

Configuration

  1. Create a Custom Tool first (e.g., "Update CRM").
  2. Select that tool in the Action dropdown.
  3. Map the Available Variables (below) to the Tool's Input Schema.

1. Ringing Action

Triggered when the phone network indicates the call is ringing (before pickup).

VariableTypeDescription
call_queue_idStringUnique ID for this specific call attempt.
call_queue_created_atDatetimeWhen the call entered the platform.
call_queue_enqueued_atDatetimeWhen the call was placed in the processing queue.
call_queue_processing_started_atDatetimeWhen the system started handling the logic.
call_queue_completed_atDatetimeWhen the queue item finished (if applicable).
call_queue_statusStringCurrent status (e.g., ringing).
call_queue_route_idStringThe ID of this Inbound Route.
call_queue_calling_number_idStringThe database ID of the business number being dialed.
call_queue_calling_number_providerStringThe carrier (e.g., Twilio, Telnyx).
call_queue_provider_call_idStringThe Carrier's unique Call SID (Use for debugging with Twilio support).
call_queue_caller_numberStringThe phone number of the person calling.

2. Call Picked Action

Triggered the moment the Agent connects to the call.

VariableTypeDescription
call_queue_idStringUnique ID for the call attempt.
call_queue_created_atDatetimeWhen the call started ringing.
call_queue_enqueued_atDatetimeWhen queued.
call_queue_processing_started_atDatetimeWhen processing began.
call_queue_statusStringStatus (e.g., processing).
call_queue_campaign_idStringThe Route ID.
call_queue_calling_number_idStringBusiness number ID.
call_queue_calling_number_providerStringCarrier Name.
call_queue_provider_call_idStringCarrier Call SID.
call_queue_caller_numberStringCustomer phone number.
conversation_idStringUnique UUID for the active conversation session.

3. Call Ended Action

Triggered when the call disconnects. This contains the richest data payload.

VariableTypeDescription
call_queue_idStringUnique ID for the call attempt.
call_queue_created_atDatetimeWhen the call started ringing.
call_queue_enqueued_atDatetimeWhen queued.
call_queue_processing_started_atDatetimeWhen processing began.
call_queue_completed_atDatetimeWhen the call fully finalized.
call_queue_statusStringFinal status (e.g., completed).
call_queue_campaign_idStringThe Route ID.
call_queue_calling_number_idStringBusiness number ID.
call_queue_calling_number_providerStringCarrier Name.
call_queue_provider_call_idStringCarrier Call SID.
call_queue_caller_numberStringCustomer phone number.
conversation_idStringUnique UUID for the conversation.
conversation_start_timeDatetimeExact start time of audio.
conversation_end_timeDatetimeExact end time of audio.
conversation_end_typeStringagent_hangup, user_hangup, timeout, or error.
conversation_turnsObjectFull structured JSON array of every turn.
conversation_turns_simplifiedStringHuman-readable transcript string.

On this page