Make Calls

Launching single tests or advanced bulk outbound campaigns via CSV.

View as Markdown

The Make Calls interface is your command center for outbound traffic. Located in the sidebar, it allows you to bypass the API and trigger calls directly from the UI.

1. Single Call (Testing)

Designed for rapid QA. Use this to verify your Script logic before launching a campaign.

Select Campaign

Choose the Outbound Campaign. This loads the default Agent, Script, and Caller ID strategy.

Enter Destination

Enter the phone number in E.164 format (e.g., +1234567890).

Fill Variables

The system automatically detects variables in your script.

  • Base Values: You can fill in default values (e.g., customer_name = "Test User") here.

Launch

Click Launch Call. The system places the call immediately.


2. Bulk Calls (CSV Upload)

The Bulk Call engine is designed for scale. You can upload thousands of contacts, and the system will process them according to your concurrency limits.

Base Configuration vs. Overrides

  • Base Config: You set default variables in the UI (e.g., campaign_name = "Winter Sale").
  • CSV Overrides: Any value in the CSV row overrides the base configuration for that specific call.

The CSV Schema

Iqra AI supports a sophisticated CSV format that allows you to change the Agent, Language, or Retries per row.

Required Column:

  • to_number: The destination phone number (International format).

Advanced Columns (Optional):

HeaderDescription
from_number_idOverride the Caller ID (Must be a valid UUID from your Numbers tab).
dynamic_variablesA JSON object string containing specific variable values.
override_agent_idUUID of a different Agent to handle this specific call.
override_agent_script_idUUID of a different Script to run.
override_agent_language_codeForce a language (e.g., en, ar) for this call.
override_retry_on_call_declinedJSON configuration for retry logic.

Example CSV Data

Notice how dynamic_variables accepts a JSON object for complex data injection.

to_number,dynamic_variables,override_agent_language_code
+96899999999,"{""first_name"": ""Ali"", ""balance"": 500}",en
+97150000000,"{""first_name"": ""Fatima"", ""balance"": 120}",ar

CSV Formatting

When putting JSON inside a CSV column, you must escape double quotes by doubling them (e.g., ""key"": ""value"").


Scheduling & Expiry

You don't have to call everyone right now. You can manage the Time Window of the blast.

1. Start Time

  • Immediate: Begins processing the queue instantly.
  • Scheduled: Holds the queue until a specific future date/time.

2. Max Schedule Try (Expiry)

This is a critical "Safety Switch."

  • The Problem: You upload 5,000 leads at 4:00 PM. Your concurrency limit is 10 calls. The queue is slow. By 9:00 PM, the system is still dialing, disturbing people at night.
  • The Solution: Set Max Schedule Try to 08:00 PM.
  • Behavior: If a queued call attempts to launch after 8:00 PM, the system cancels it automatically.

Monitoring Progress

Once launched, the job creates a Queue.

  1. Go to the Conversations Tab.
  2. Filter by Status: Queued.
  3. Concurrency: The system respects the limits defined in your Billing Plan. If you have 50 slots, it processes 50 rows at a time.

On this page