> 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-voice-agents/how-to-create-your-first-campaign-in-dapta/whatsapp-fallback.md).

# WhatsApp fallback

Reach the contacts your sequence couldn't get on the phone. When the call attempt you choose ends without reaching the contact, because nobody answered or a voicemail picked up, Dapta sends an approve

Some contacts simply never pick up. **WhatsApp fallback** gives those numbers one more chance to convert: when the call attempt you choose doesn't reach the contact, because nobody answered or a voicemail picked up, Dapta sends them an approved WhatsApp template.

It is the mirror image of the call fallback available on text sequences — same idea, opposite direction. Here the call comes first and the message is the safety net.

{% hint style="info" %}
The fallback only goes to contacts the call didn't reach. A contact who talked with your agent is not messaged, and neither is a contact you removed with **Exclude from sequence**.
{% endhint %}

***

## How it works

1. The sequence dials the contact according to your **Max Attempts Per Contact** and **Attempts Per Day** settings.
2. Dapta waits for the call of the attempt you chose in **Send after attempt** to finish. By default that is the **last** attempt.
3. If that call didn't reach the contact, because nobody answered or a voicemail picked up, Dapta sends the WhatsApp template from the sender you selected.

[Who gets the message](#who-gets-the-message) explains each case.

For a full explanation of how attempts are counted and rescheduled, see [Call Logic & Limits](/ai-voice-agents/how-to-create-your-first-campaign-in-dapta/call-logic-and-limits.md).

***

## Enabling WhatsApp fallback

WhatsApp fallback is configured on the sequence's **Settings** tab, in the **WhatsApp fallback** block at the end of the **Advanced Settings** accordion. Check the [requirements](#requirements) first: you need a connected WhatsApp line and at least one Meta-approved template.

**Step 1: Open the sequence and go to the Settings tab.**

Go to **Sequences**, open the call sequence you want to add the fallback to, and select the **Settings** tab.

***

**Step 2: Open Advanced Settings and scroll down to the WhatsApp fallback block.**

It sits at the end of the **Advanced Settings** accordion. While it is off you only see the title and the **Enable** switch.

<figure><img src="https://3835013762-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCy5rSNtQmtqYCGzJlNEB%2Fuploads%2Fgit-blob-6eceb3290c0e7314828222a9ac5251420c80f67e%2Fwhatsapp-fallback-01-enable.png?alt=media" alt="WhatsApp fallback block switched off, with the Enable switch"><figcaption><p>The <strong>WhatsApp fallback</strong> block, switched off.</p></figcaption></figure>

***

**Step 3: Turn on Enable.**

The block opens and shows every fallback field.

<figure><img src="https://3835013762-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCy5rSNtQmtqYCGzJlNEB%2Fuploads%2Fgit-blob-0fc5ed33388289aaad8e9ccdc8a922ff5aa3850b%2Fwhatsapp-fallback-02-configuration.png?alt=media" alt="WhatsApp fallback block enabled, with WhatsApp sender, Template, Send after attempt and Template variables"><figcaption><p>The fallback switched on: sender, template, attempt and variables.</p></figcaption></figure>

***

**Step 4: Choose the WhatsApp sender.**

Pick the WhatsApp number the message goes out from. It is usually the line your contacts already recognise.

***

**Step 5: Choose the Template.**

Pick the template to send. The list shows only **Meta-approved** templates that the sender you chose can send, so pick the sender first. If the one you want is missing, it is probably still in review, was rejected, or isn't available on that line.

***

**Step 6: Decide when the message goes out with Send after attempt.**

* **Leave it empty** to send the message after the **last** call attempt.
* **Enter a number** (for example `2`) to send it after that attempt, without waiting for every attempt to run out. The contact's remaining attempts still go ahead.

**Choosing when it fires**, further down, explains each option.

***

**Step 7: Map the Template variables.**

Each variable in your template gets its own row. On the right, pick the contact field that fills it. In the example, `contact_name` is filled with **Contact Name**. Every variable the template needs must have a field: until you pick one, the row shows **Choose a contact field**. Contacts whose mapped field is empty may not receive the fallback.

To save time, click **Auto-map**: AI fills the template and conversation variables from your contact fields, and the button shows **Mapping...** while it works. Check the result before saving. Variables with a numbered name, such as **Body · variable 1**, give it nothing to match on, so you map those yourself.

***

**Step 8: Map the Conversation variables (optional).**

If the WhatsApp agent on the line you chose declares conversation variables, the block lists them under **Conversation variables (optional)**. Map each one to a contact field to pass contact data to the WhatsApp agent, so it already knows it when the contact replies. Rows you leave empty are skipped.

***

**Step 9: Save the sequence.**

Save your changes. From then on, contacts the chosen attempt doesn't reach get the template.

### Configuration

| Field                                 | Required                        | Description                                                                                                              |
| ------------------------------------- | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| **WhatsApp sender**                   | Yes                             | The WhatsApp number the fallback message is sent from.                                                                   |
| **Template**                          | Yes                             | The approved WhatsApp template to send. Only Meta-approved templates that the chosen sender can send appear in the list. |
| **Send after attempt**                | No                              | The attempt number after which the template is sent. Leave it empty to send it after the **last** attempt.               |
| **Template variables**                | When the template has variables | Map each variable in your template to a contact field (for example `first_name`).                                        |
| **Conversation variables (optional)** | No                              | Map the variables the WhatsApp agent on that line declares to contact fields. Shown only when that agent declares some.  |

{% hint style="warning" %}
The sequence will not save with the fallback enabled until you have selected a WhatsApp sender and a template, and picked a contact field for every template variable. If the senders or templates fail to load, save the sequence without the fallback and try again.
{% endhint %}

### Choosing when it fires

**Send after attempt** controls how patient the fallback is:

* **Leave it empty** — the message goes out after the last call attempt. Most conservative, and the default.
* **Set it to a lower number** — the message goes out earlier, after the attempt you specify, and the remaining attempts still go ahead. Useful when you would rather reach someone on WhatsApp than keep dialing a number that clearly is not answering.

{% hint style="info" %}
A number higher than your sequence's **Max Attempts Per Contact** counts as the last attempt.
{% endhint %}

### Who gets the message

Dapta checks the call of the attempt you chose once that call has finished, even if the sequence has already started dialing the next attempt:

* **The call didn't reach the contact**: nobody answered, the call failed, or it ended within 30 seconds without the call analysis marking it successful. The template is sent.
* **A voicemail picked up**: Dapta treats a call as a voicemail when it ended because of silence after more than 30 seconds and up to 60 seconds, and the call analysis didn't mark it successful. The template is sent. A voicemail also ends the contact's calls: the contact is marked **Completed** and isn't called again.
* **The call reached the contact**: it lasted more than 30 seconds without being a voicemail, or the call analysis marked it successful. No message is sent.
* **The contact was excluded** with **Exclude from sequence** (status **Excluded**): it is never messaged.

Each contact gets at most one fallback message. Using **Reset attempts** on the contact, or adding it to the sequence again, lets it receive one more.

***

## Requirements

Before enabling the fallback, make sure you have:

* A **connected WhatsApp channel** in your workspace to send from.
* At least one **Meta-approved template** that the line can send — templates pending review or rejected cannot be used.

Template approval, quality ratings, and messaging limits are governed by Meta, not by Dapta. If you are new to WhatsApp templates, the text agent sequence docs cover those rules in depth.

***

## Related pages

{% content-ref url="/pages/5MPXltpjbRmsnZdLbpCA" %}
[Create a sequence](/ai-voice-agents/how-to-create-your-first-campaign-in-dapta/create-a-campaign.md)
{% endcontent-ref %}

{% content-ref url="/pages/8yIUCoPD1oNPbiGLgIRU" %}
[Call Logic & Limits](/ai-voice-agents/how-to-create-your-first-campaign-in-dapta/call-logic-and-limits.md)
{% endcontent-ref %}

{% content-ref url="/pages/3IUmiIqvNy2PCTCUH36g" %}
[Call fallback](/ai-text-agents/campaigns/call-fallback.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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.dapta.ai/ai-voice-agents/how-to-create-your-first-campaign-in-dapta/whatsapp-fallback.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
