> Source: https://docs.virtuo.in/vio/telephony/outbound-campaigns > Run an outbound calling campaign in Vio: upload a contacts CSV, let the dialer pace and retry automatically, and read the AI campaign analytics. # Outbound campaigns **The Outbound Dialer turns a contact list into a batch of AI calls. Upload a CSV, press start, and Vio paces the calls, retries no-answers, and runs your agent on each one — then hands you AI analytics on how the campaign went.** For a single follow-up your agent booked itself, see [**Callbacks**](/vio/telephony/callbacks) instead. **Call only people who agreed to be called.** Outbound calling is subject to consent and do-not-call rules. Upload contacts who have opted in, honour every do-not-call and opt-out request, and call within permitted hours. You are responsible for the list you dial. ## Upload your contacts A campaign runs off a **contacts CSV**. At minimum it needs two columns: | Column | Required | Purpose | |---|---|---| | `name` | Yes | The contact's name — used to personalise the call. | | `phone` | Yes | The number Vio dials, in full international format. | | *(any extra column)* | No | Becomes a per-call **`{{variable}}`** your agent can use. | Any extra column you add — say `city`, `order_id`, or `plan` — becomes a **`{{variable}}`** available to the agent on that contact's call. Reference them in your script exactly like `{{name}}` so the agent greets and personalises per contact. Tie this to your [**Persona & prompt**](/vio/agents/persona), where `{{name}}` and friends are used. ## Launch a campaign ### Create the campaign In the **Outbound Dialer**, create a campaign and choose the agent that will make the calls, and the number it dials from (the number needs **outbound enabled** — see [**Phone numbers**](/vio/telephony/numbers)). ### Upload the contacts CSV Provide your CSV with `name` and `phone`, plus any extra columns you want as `{{variables}}`. ### Start the campaign Press **Start**. Vio **paces** the calls automatically — it doesn't dial the whole list at once — and **retries no-answers** on its own up to a limit. **Pause** any time to stop new calls; in-progress calls finish. ### Track progress Watch the live counters — **total**, **dialed**, and **successful** — as the campaign runs. Every call also lands in [**Call logs**](/vio/call-logs) with its transcript, recording, and cost. ## Read AI campaign analytics When a campaign has calls behind it, Vio produces **AI campaign analytics**: a **funnel** of what happened across the list, plus a shortlist of **which contacts are ripe for a manual call** — the ones a human should follow up with personally. You can **re-analyze on demand** as more calls complete, so the picture stays current. For per-call detail (sentiment, goal-met, extracted data) open the call in [**Call logs**](/vio/call-logs). ## Frequently asked **Q. Does Vio call everyone on the list at once?** No. The dialer **paces** calls deliberately rather than blasting the list, which is gentler on your carrier and your callees. It also **retries no-answers** automatically, so you don't have to re-upload missed numbers. **Q. How do I personalise each call?** Add columns to your CSV beyond `name` and `phone`. Each becomes a **`{{variable}}`** the agent can drop into its script — reference them the same way as `{{name}}`. See [**Persona & prompt**](/vio/agents/persona). **Q. Can I stop a campaign midway?** Yes. **Pause** stops new calls from being placed; calls already in progress finish normally. Resume when you're ready. **Q. Which number does a campaign dial from?** The number you chose for the campaign — and it must have **outbound enabled**. Turn that on per number in [**Phone numbers**](/vio/telephony/numbers), or set up a carrier in [**SIP trunks (BYOC)**](/vio/telephony/sip-trunks). ## Next step After a campaign, review outcomes in [**Call logs**](/vio/call-logs) and the trends in [**Analytics**](/vio/call-logs/analytics).