> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nedzo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Campaigns

> Run outbound calling campaigns from a saved contact view. Set the agent, daily minute cap, follow-ups, and calling days and hours, then track every contact the campaign reaches.

A campaign calls everyone in a saved contact view with one of your voice agents. The view decides who gets called. The campaign decides when, how often, and how much it can spend each day.

Open **Campaigns** from the sidebar, between Contacts and Workflows. Any member of the workspace can use it.

<Note>
  Outbound calling campaigns are not the same as A2P 10DLC campaigns. A 10DLC campaign is your SMS carrier registration. See [A2P 10DLC registration](/telephony/a2p-10dlc-registration).
</Note>

## Before you start

You need two things:

* **A voice agent** to place the calls. Any voice agent can be picked. See [Voice agents](/agents/voice-agents).
* **A saved view** on the Contacts page. The view's filter decides who is enrolled. See [Saved views](/concepts/contacts).

If either list is empty, the picker in the campaign panel says **No voice agents yet** or **No saved views yet**.

## Create a campaign

1. On the Campaigns page, click **New campaign**.
2. Fill in the fields below.
3. Click **Create campaign**.

New campaigns start as **Draft**, so creating one never starts calls. Switch it on from the list when you are ready.

### Fields

| Field               | Range                                 | Default           | What it does                                                |
| ------------------- | ------------------------------------- | ----------------- | ----------------------------------------------------------- |
| Name                | Up to 200 characters                  | —                 | How the campaign shows in the list. Required.               |
| Agent               | Any voice agent                       | —                 | The agent that places the calls. Required.                  |
| Daily usage cap     | 1–10,000 minutes                      | 60                | Connected talk minutes the campaign may use per day.        |
| View                | Any saved view                        | —                 | Everyone the view matches gets enrolled. Required.          |
| Maximum follow-ups  | 0–20                                  | 2                 | Attempts after the first. `0` means call once and stop.     |
| Calling days        | Mon–Sun                               | Mon–Fri           | Days the campaign may call. Pick at least one.              |
| Local calling hours | 9:00 AM – 8:00 PM, in 15-minute steps | 9:00 AM – 5:00 PM | The window calls go out in, in each contact's own timezone. |

To change a campaign later, open the **…** menu on its row and pick **Edit**. The same panel opens with a **Save changes** button.

## Calling days and hours

Campaigns only call between **9:00 AM and 8:00 PM in the contact's local time**. You cannot pick a window outside those hours.

* **15-minute steps.** Start times run from 9:00 AM to 7:45 PM. End times run from 9:15 AM to 8:00 PM.
* **Exact edges.** The window is used to the minute. A 9:30 AM – 5:45 PM window starts calling at 9:30 AM and places its last call before 5:45 PM.
* **The end is not included.** An 8:00 PM end means the last call starts before 8:00 PM.
* **The end must come after the start.** Otherwise you see *"The window has to end after it starts"*.
* **Calling days follow the contact's day too.** A Mon–Fri campaign can still call a contact in Los Angeles on Friday evening, even after your workspace clock has moved to Saturday.

### Campaigns saved with older hours

Campaigns created before this rule may have hours outside 9:00 AM – 8:00 PM.

* **When you edit one**, the panel shows the saved hours as they are and flags them: *"Calls can only be scheduled between 9:00 AM and 8:00 PM"*. You cannot save until you pick a valid window.
* **If you never edit it**, the campaign still only dials inside 9:00 AM – 8:00 PM. A saved 8:00 AM – 9:00 PM window dials from 9:00 AM to 8:00 PM. A window that sits fully outside those hours dials nobody.

### Which timezone is used

Each contact is called in their own timezone, not yours.

1. If the contact has a valid timezone, Nedzo uses it.
2. If the contact has no timezone, Nedzo uses your workspace timezone, but only if you have set one. The default UTC does not count.
3. If neither works, the contact is not called.

A contact is also not called when their timezone does not fit their phone number's country. Nedzo never guesses a timezone from the phone number. Fix these contacts by setting a timezone on the contact record.

## Daily usage cap

The cap counts **connected talk minutes**, rounded up per call. It does not count calls that never connect.

* When the cap is used up, the campaign moves to **Capped** and starts no new calls.
* Calls already running are never cut off, so the total can go a little over the cap.
* A capped campaign goes back to **Live** on its own on its next calling day.
* The cap's day runs midnight to midnight in your workspace timezone. Minutes used on a non-calling day count toward the most recent calling day, so no extra cap opens.

Each call is also limited by the agent's **Max call duration**. See [How Max call duration works](/agents/voice-agents#how-max-call-duration-works).

## Attempts and follow-ups

* A contact gets at most **Maximum follow-ups + 1** calls.
* Nedzo waits at least 5 hours between two calls to the same contact. Calls from other campaigns, workflows, and manual dials count toward this gap too.
* Contacts with the fewest attempts are called first. Among those, the one who has waited longest goes first.

How the last call ended decides what happens next:

| Outcome                                                                                                  | Next step                             |
| -------------------------------------------------------------------------------------------------------- | ------------------------------------- |
| Follow up, No answer, Voicemail                                                                          | Called again, up to the attempt limit |
| Appointment booked, Transferred, Positive, Not interested, Wrong number, Do not call, Callback requested | Not called again by this campaign     |

Nedzo does not schedule callbacks. A contact whose call ended in *Callback requested* lands in the **Waiting on callback** filter on the campaign's page, so your team can follow up.

## Who gets enrolled

Enrolment comes only from the saved view. You cannot add a contact to a campaign by hand.

* A regular sync pulls in everyone the view matches.
* A contact who stops matching the view is stopped with the reason *No longer in the view*.
* If the view is deleted, the campaign stops calling and the list shows **View unavailable**.

To change who is in a campaign, change the view's filter.

## Start, pause, and delete

Each row on the Campaigns page has an on/off switch next to its status.

| Status        | Meaning                                               |
| ------------- | ----------------------------------------------------- |
| **Draft**     | Not dialling yet                                      |
| **Live**      | Calling contacts inside its days and hours            |
| **Paused**    | Stopped by hand                                       |
| **Capped**    | Daily minutes spent. Resumes on the next calling day. |
| **Completed** | Finished. It cannot be switched back on.              |

* Switching on a **Draft** or **Paused** campaign makes it **Live**.
* Switching off a **Live** or **Capped** campaign makes it **Paused**.
* **Delete** in the **…** menu stops the campaign and removes it. This cannot be undone.

## Campaign list

| Column        | What it shows                                                                              |
| ------------- | ------------------------------------------------------------------------------------------ |
| Status        | The status and on/off switch                                                               |
| Name          | Opens the campaign's page                                                                  |
| Agent         | The agent placing calls                                                                    |
| View          | The saved view it enrols from                                                              |
| Remaining     | Contacts still to be called. Turns amber at 0, meaning nobody is left to call in the view. |
| Dials         | Every call placed, all time                                                                |
| Pickups       | Answered calls: any outcome other than No answer or Voicemail                              |
| Booked        | Calls that ended in Appointment booked                                                     |
| Minutes today | Minutes used against the daily cap, for example `88/133`                                   |

## Campaign page

Click a campaign's name to see everyone it enrolled. Filter the list by **All**, **Callable**, **Waiting on callback**, **Skipped**, or **Stopped**.

| Column       | What it shows                                                             |
| ------------ | ------------------------------------------------------------------------- |
| Contact      | Name and phone, with a badge when the contact is skipped or stopped       |
| Attempts     | Calls placed to this contact so far                                       |
| Last outcome | How the last call ended, or *Not called yet*                              |
| Next attempt | When the next call is due, for example *in 3h* or *due now*, or *Stopped* |

**Skipped** contacts can't be dialled. The badge gives the reason: *No phone number*, *No timezone*, *On Do Not Contact*, or *Suppressed*.

**Stopped** contacts were *Removed by hand*, *Stopped over the API*, or dropped because they are *No longer in the view*.

To stop calling one contact, click the trash icon on their row and confirm **Remove**. Only this campaign stops calling them. Other campaigns can still reach them, and it is not the same as Do Not Contact.

## Example

A dental office wants to fill cancelled slots next week.

1. On Contacts, save a view of patients tagged `recall-due`.
2. Create a campaign with the office's booking agent and that view.
3. Set the daily cap to 120 minutes and follow-ups to 2.
4. Pick Mon–Fri and 10:00 AM – 6:30 PM.
5. Switch the campaign on.

Each patient gets up to three calls, at least 5 hours apart, between 10:00 AM and 6:30 PM their time. The campaign stops for the day once it has used 120 talk minutes.
