> For the complete documentation index, see [llms.txt](https://docs.dapta.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.dapta.ai/ai-text-agents/campaigns/create-a-campaign.md).

# Create a sequence

Create a WhatsApp sequence with an approved template, a sending schedule, and mapped contacts.

Open **Text Agents → Sequences** and choose the create action. This guide follows the file-import flow. Have a connected WhatsApp line assigned to the intended agent and an [approved template for that line](/ai-text-agents/channels/message-templates.md).

## 1. Choose the message and sender

Enter the sequence name and objective, select the WhatsApp channel, and select its approved template. Check the sending number before continuing; a template approved for another provider/account may not be available here.

Use **Save and continue** to advance. Do not assume that closing the wizard preserves a usable draft: complete the final step and confirm the sequence appears in the list.

## 2. Set the schedule

Choose the start date and time zone. Add the allowed days and time windows; when using several windows on the same day, keep them ordered and non-overlapping.

The end date is optional:

* Set it when outreach must stop at a defined time.
* Leave it empty for an open-ended sequence. There is no automatic one-year end date.
* An open-ended sequence can wait for more contacts after its current contacts are processed. It does not complete merely because the queue is empty.

The schedule limits dispatch; it does not guarantee delivery or override provider restrictions. See [message logic and limits](/ai-text-agents/campaigns/message-logic-and-limits.md).

## 3. Upload contacts

Choose the file route if a source chooser is shown, then upload a **CSV or XLSX of 5 MB or less**. Use one row per contact and include a phone-number column plus the data your template needs.

If you choose **Skip**, you can finish without importing a list. This is not a guarantee of a paused draft: the sequence can start and wait for contacts. Only skip when you have a supported way to supply contacts later.

See [importing contacts](/ai-text-agents/campaigns/importing-contacts.md) for formatting, mapping, and partial-import outcomes.

## 4. Map, review, and finish

1. Map the recipient phone-number field to the correct column.
2. Map every required template variable and review the preview using real rows from your file.
3. Optionally map conversation variables used by the Text Agent. These provide context; they do not replace required template values.
4. Recheck the sender, template, time zone, schedule, and contact consent.
5. Click **Finish**, wait for the result, and review any import errors.

{% hint style="warning" %}
Finishing can start the sequence immediately if its schedule is open. Use a future start time when you need a review period; do not rely on an assumed draft state. If a request times out, check the list and imported contacts before trying to create it again.
{% endhint %}

## Confirm the first run

Open the sequence and check its status and **Conversations**. **Waiting for schedule** or **Waiting for contacts** can be normal, not errors. Check each recipient's delivery separately from whether they replied.

Configure an optional [call fallback](/ai-text-agents/campaigns/call-fallback.md) in the sequence settings after creation. It is a separate voice action, not another WhatsApp send.

*Source review: September 17, 2026.*

{% content-ref url="/pages/uRpzLaOCmIdzifXeO9xO" %}
[Managing your sequence](/ai-text-agents/campaigns/managing-your-campaign.md)
{% endcontent-ref %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.dapta.ai/ai-text-agents/campaigns/create-a-campaign.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
