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 — when a contact doesn’t pick up, retry after a wait (5 min, 10 min, 30 min, 1 hour, or a custom interval) up to a max attempts count (default 2).
Campaigns can be activated and deactivated at any time from the list — deactivating pauses calling without losing queue state.

Assigning agents

On the campaign’s Agents tab, add one or more agents to handle the calls. Each assigned agent has its own start/stop control, so you can pause one agent’s calling without touching the rest. Assigning multiple agents spreads the list across them for more concurrent calling.

Uploading contacts

On the Contacts tab, upload a CSV with two columns:
phone, person_name
9876543210, Ravi Kumar
9876501234, Anita Desai
  • A sample CSV is downloadable from the same tab.
  • Tick No header if your file starts directly with data.
  • 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. An upload doesn’t start calling by itself — press Upload to Queue to release it (optionally scheduling the release for a specific date and window). Flush Queue clears pending calls if you need to stop a release.

Monitoring a running campaign

  • Queue tab — live counts of queued, in-progress, and completed calls, with per-contact status.
  • 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.
A contact who doesn’t pick up is retried after the wait interval up to the max attempts — there’s no need to re-upload non-answers.