Skip to main content
A campaign is how you point an agent at a list of people instead of one number at a time. You upload contacts, set a calling window and retry policy, assign agents, and Osvi manages the queue.

Creating a campaign

Go to Campaigns → Create Campaign:
1

Setup

Name the campaign and pick its type:
  • Outbound — call a list of contacts you upload.
  • Inbound — receive calls on the campaign’s assigned numbers (and track the ones you miss).
2

Timing and retries

  • Schedule — start immediately, or pick a date with a start and end time. Calls are only placed inside the window; anything unfinished waits for the next one.
  • Retry settings — the retry policy for contacts who don’t pick up, editable later on the campaign’s Overview tab.
Campaigns can be activated and deactivated at any time from the list — deactivating pauses calling without losing queue state.

The campaign page

Opening a campaign gives you four tabs: Overview, Agents, Contacts, and Queue.
Campaign Overview with campaign information and retry settingsCampaign Overview with campaign information and retry settings
Overview holds the campaign’s details — type, calling window, and creation date — and its retry policy:
  • Retry unanswered calls — the master switch.
  • Quick retries — how many times to retry and how long to wait between attempts.
  • Follow-up schedule — optional. Without one, retries use the flat delay above; with one, you can space later attempts out over days.
  • How it works — a summary of what a contact will actually experience, ending with the total number of attempts they’ll receive.

Assigning agents

The Agents tab with an assigned agent and its Stop Calling controlThe Agents tab with an assigned agent and its Stop Calling control
On the Agents tab, Add Agent assigns one or more agents to handle the calls. Each row shows whether that agent is Active, with its own Stop Calling control, so you can pause one agent without touching the rest. Assigning multiple agents spreads the list across them for more concurrent calling.

Uploading contacts

The Contacts tab with Upload CSV, the format requirements, and recent uploadsThe Contacts tab with Upload CSV, the format requirements, and recent uploads
On the Contacts tab, Upload CSV takes a file with two columns:
  • Download sample CSV on the same tab gives you the expected format.
  • Any extra columns are carried along as contact metadata, available to the agent’s prompt via {{variable}} templating and echoed back in webhook results as trigger data.
On upload, Osvi flags duplicate phone numbers within the file and skips numbers on the DND list, showing you exactly what was excluded. Recent uploads lists every file with its status, and each one can be downloaded again — useful for checking exactly which list a batch of calls came from.

Monitoring a running campaign

The Queue tab is the live view, refreshing every 30 seconds.
The Queue tab with queue distribution, buffer and worker counts, and queue actionsThe Queue tab with queue distribution, buffer and worker counts, and queue actions
Total queue distribution splits everything still pending into three: Alongside it: Buffer is the contacts being dialled right now, Workers running is how many agents are processing calls, and Total queued is everything still pending. Queue actions clear pending work — all of it, or just the normal queue, the callbacks, or the not-picked retries. Clearing doesn’t touch contacts already called.
Per-agent breakdown with queue counts, buffer entries, and per-agent queue actionsPer-agent breakdown with queue counts, buffer entries, and per-agent queue actions
Per-agent breakdown repeats all of that for each assigned agent, so you can see which agent is actually working the list. Expanding one shows whether its worker is running, its own queue counts, the buffer entries currently being dialled (phone, name, and whether each is a callback or a not-picked retry), and queue actions that apply to that agent alone. Elsewhere:
  • Conversations — every campaign call lands in the call log; filter by campaign or by a specific upload to review outcomes.
  • Missed Calls tab (inbound campaigns) — every call you didn’t answer, with an export button.

Practical tips

The Calls by hour chart on the dashboard shows when people in your list actually answer. A 10:00–13:00 window typically outperforms a full-day spray.
Upload a 10-row CSV of your own team’s numbers, run it end-to-end, and check the analysis results before releasing the full list. Uploads are released to the queue individually, so a pilot costs nothing.
Non-answers are retried automatically under the campaign’s retry policy — there’s no need to re-upload them.