A campaign is a list of contacts that the Ori dialler calls automatically using a chosen bot, within rules you set for pacing, time windows, and retries. You build one through a five-step wizard.

Before you start

Confirm the following so the campaign runs cleanly:
  • the bot has passed test calls and is ready for live use
  • the outbound numbers you want to dial from are configured under Carriers
  • your contact CSV has clean phone numbers and a phone_number column
  • the calling time window and working days are approved for the client
  • the concurrency you plan to use is safe for available capacity
To start, open Campaigns in the sidebar and select New Campaign. This opens the wizard at /dashboard/campaigns/new.
The same wizard is used to edit a campaign. Editing is only allowed while a campaign is in draft or paused status. Once a campaign has run, its name, bot, and contacts lock for audit safety — see Locked fields after the first run.

The wizard at a glance

The wizard has five steps, shown as pills across the top. The current step is highlighted in the brand colour; completed steps turn green. You can click back to revisit a step, but the wizard checks required fields before letting you move forward.
1

Basics

Name the campaign and pick the bot.
2

Number Pool

Choose which outbound numbers the dialler calls from.
3

Dialler Config

Set concurrency, the calling window, retries, callbacks, and redial rules.
4

Upload CSV

Upload the contact list.
5

Review

Check every value, then create.

Wizard buttons

These buttons appear across the wizard. Not all are visible on every step.
ButtonWhere it appearsWhat it does
Back link (arrow)Top of page, all stepsReturns to the campaign list or campaign detail, depending on where you came from. Leaves the wizard.
BackSteps 2–5Returns to the previous step. Your entries are kept.
NextSteps 1–4Advances to the next step once required fields pass validation. Stays disabled (greyed out) until they do.
BrowseStep 4 (Upload CSV) onlyOpens your computer’s file picker to choose a CSV.
Create CampaignStep 5 (Review) onlySubmits the campaign. On success you are taken to the campaign detail page. Shows “Creating…” or “Saving…” while it works. Disabled if the campaign is not editable (for example, already running or completed).
If the Next button looks greyed out, a required field on the current step is empty or invalid. There is no error pop-up — the button simply stays disabled until the step is complete.

Step 1 — Basics

Name the campaign and choose the bot that will speak to contacts.
FieldRequiredWhat to enterDefault / validation
Campaign NameYesA clear, human-readable name. Combine client, segment, date, and purpose, for example “Q2 Renewal Drive”.None. Disabled if identity is locked.
BotYesThe bot that runs the conversation. Pick the one already tested for this campaign.None. Disabled if identity is locked.
The bot list is drawn from your existing bots. If the bot you need is missing, create it first — see Create a bot.

Locked fields after the first run

Once a campaign has been started or restarted, the Campaign Name and Bot fields become read-only and a notice appears:
These fields stay fixed so old and new attempts remain audit-safe.
If you need a different name, bot, or contact set on an already-run campaign, use Clone from the campaign list or detail page to copy it into a fresh draft you can edit freely.

Step 2 — Number Pool

Choose the outbound numbers (DIDs) the dialler will place calls from. The list is drawn from your configured carriers.
FieldRequiredWhat to enterNotes
Select outbound numbersYes (at least one)Tick the checkbox next to each number you want to dial from. Each row shows the number and, where set, a label such as “(Support team)”.Scrollable list. The dialler rotates across all ticked numbers during the run.
Operations guidance:
  • choose numbers approved for this client and campaign
  • avoid inbound-only DIDs
  • select enough numbers to support your intended concurrency
  • carrier dial-rate (CPS) capacity is configured separately under Carriers, not here

Step 3 — Dialler Config

This step controls pacing, the calling schedule, and how the dialler retries and re-dials contacts. It is the longest step.

Concurrency and mode

FieldRequiredWhat to enterDefault / validation
Concurrency LimitYesThe number of calls allowed to run at the same time.Defaults to 50 if left blank or below 1. Clamped to at least 1 when you click away.
Campaign ModeYesSingle Day — the campaign stops when the time window ends and does not resume. Multi Day — dialling pauses at the cutoff and resumes the next working day; the campaign stays running.Default: Single Day.
Always-onNoOnly shown when mode is Multi Day. When enabled, the campaign never auto-completes and stays running until you stop it manually. The CSV becomes optional, so you can feed contacts over time via the API or by appending CSVs.Off by default.
Concurrency is the seat budget — how many conversations can be live at once. It is the protection limit for available capacity, not the rate at which new calls are launched. The carrier’s own dial-rate limit also applies, and the tighter of the two wins.

Time window and working days

FieldRequiredWhat to enterDefault
Time Window: StartYesThe earliest time of day dialling may begin, in 24-hour HH:MM format.09:00
Time Window: EndYesThe latest time of day dialling may run, in 24-hour HH:MM format.18:00
Time Window: TimezoneYesThe timezone the window is measured in. Options include Asia/Kolkata (IST), Asia/Dubai (GST), Asia/Singapore (SGT), Asia/Tokyo (JST), Europe/London, Europe/Berlin, America/New_York, America/Chicago, America/Los_Angeles, and UTC.Matches your display timezone when you create the campaign.
Working DaysYesTick the days of the week the campaign may dial within the window.All seven days selected.

Retries

FieldRequiredWhat to enterDefault / validation
Max AttemptsYesThe most times a single contact may be called, including the first attempt.Defaults to 3 if blank or below 1.
Retry Delay (minutes)YesHow many minutes to wait before a contact becomes eligible for its next attempt.Defaults to 30 if blank or below 1.
Retry on System DispositionsNoTick which automatic call outcomes should trigger a redial: no_answer, rejected, RNR, error, timeout.None ticked by default.
Custom Retry DispositionsNoA comma-separated list of business disposition names from post-call analysis that should also redial, for example callback_requested, not_available.Saved as a list.
The most common retryable outcomes are no_answer, rejected, RNR, error, and timeout. Tick the ones that match how the client wants unreached contacts handled.

Redial and stop rules

These two optional rules adjust retry behaviour based on how long the last connected call lasted. They help you avoid re-dialling people you genuinely reached, and re-dial people who only connected for a moment.
FieldRequiredWhat to enterDefault / validation
Stop redials after a meaningful connectNoWhen enabled, cancels any remaining redials if the last connected call lasted longer than the threshold below.Off by default.
Connected longer than (seconds)NoThe duration that counts as “meaningfully reached”. Only shown when the stop rule is enabled.Defaults to 30 if blank or below 1.
Redial after a short connectNoWhen enabled, redials whenever the last connected call was shorter than the threshold below — a brief connect is treated as not yet a real conversation.Off by default.
Connected shorter than (seconds)NoThe duration below which a connect counts as “too short”. Only shown when the redial rule is enabled.Defaults to 15 if blank or below 1.
If you enable both rules and set the stop-after threshold below the redial-under threshold, the wizard shows a warning. Connects that fall between the two values are ambiguous and the stop rule wins, so contacts in that range will not be redialled. Set the stop-after value at or above the redial-under value to avoid this.

Callbacks and exclusion

FieldRequiredWhat to enterDefault
Callback DetectionNoWhen enabled, post-call analysis detects when a customer asks to be called back and schedules that callback inside this campaign.Off by default.
Sticky exclusionNoWhen enabled, a contact that has been excluded stays suppressed even if it is later re-added through the API or by re-uploading a CSV. When off, a deliberate re-add will be dialled again.Off by default.
Callback detection is the campaign half of a double gate. For the bot to actually schedule callbacks, the bot’s own callback setting must also be enabled. See Callbacks.
There is no answering-machine detection toggle in this wizard. Calls that reach a machine are still counted on the campaign detail screen, but machine detection is not switched on or off here.

Step 4 — Upload CSV

Upload the contact list. You can drag a file onto the dropzone or use Browse to pick one.
FieldRequiredWhat to provideLimits and behaviour
Contacts (CSV upload)See noteA CSV that includes a phone_number column. Any other columns become per-call variables the bot can use.Maximum 100 MB or 500,000 rows.
When you select a valid file, a preview table shows the header and the first few rows so you can confirm the columns are correct before continuing. Whether the CSV is required depends on the campaign:
  • Single Day, or Multi Day without Always-on — a CSV is required.
  • Always-on (Multi Day) — the CSV is optional, because contacts can be added over time.
Uploading a new CSV on a draft campaign replaces the existing contact list. The wizard shows: “Optional. Uploading a CSV on a draft campaign replaces the existing contact list.”
On a campaign that has already run, the CSV is locked and cannot be replaced. The wizard shows: “CSV contacts are locked for this campaign. Use Clone if you need a different contact set.” Clone the campaign to start a fresh draft with a new list.
For column formatting, accepted phone-number formats, and how skipped rows are handled, see Upload leads.

Step 5 — Review

The final step shows a read-only grid of everything you configured: name, bot, selected numbers, the CSV, concurrency, mode, always-on, the time window, max attempts, retry delay, callback detection, and sticky exclusion. Before you click Create Campaign, confirm:
  • the bot name is correct
  • the number-pool count matches what you intended
  • the CSV preview looks right
  • concurrency is safe for available capacity
  • the time window and working days are correct
  • the retry and redial rules match the campaign brief
Click Create Campaign. On success a toast confirms “Campaign created” (or “Campaign updated” when editing) and you land on the campaign detail page.
A newly created campaign stays in draft status and does not dial anything until you press Start on the campaign list or detail page. This gives you a final chance to review before live calls begin.

Edit-mode notices

When you open the wizard to edit an existing campaign, you may see one of these notices:
NoticeMeaning
”Only draft and paused campaigns can be edited. Current status: [status].”The campaign cannot be edited in its current state. Pause it first, or clone it.
”Campaign name, bot, and contacts are locked after the first run. You can rotate outbound numbers and adjust dialler config before pressing Start.”The campaign has run before. You can still change the number pool and dialler settings, but not the identity or contacts.

What’s next

  • Upload leads — CSV formatting, phone-number rules, and per-call variables
  • Callbacks — how detected callbacks are scheduled and tracked