## Overview

Each produced sales-recovery stage (abandoned cart, payment pending, payment declined and overdue) sends
a **card** to the customer. On this screen you customize that card's **copy** **per stage and per
language**, with no AI automation involved. Anything you leave untouched keeps the shipped Conversa Labs
message — so you only change what you want.

`Due soon` remains reserved for compatibility with historical data, but it has no event producer and
is not offered for configuration or automation yet.

Beyond the body, you also edit the card's **auxiliary labels** and configure, **per stage and per
language**, the **approved WhatsApp template** used when the 24h window is closed.

## Prerequisites

- Sales recovery must be enabled on the account.
- Administrator permission to change settings.
- To configure sending outside the window: a **WhatsApp Cloud** inbox with templates approved by Meta.

## Step by step

1. Open **Sales recovery → Messages**.
2. Pick the **language** in the selector at the top. It opens on the **account language** and lists
   **every language the installation enables** (up to 40), showing how many already carry your copy
   ("N of M languages with content").
3. For each stage, write the body in **Markdown**. Leave it empty to use that language's shipped
   message — the **Default** badge means the stage is inheriting the built-in copy.
4. Use the **variables** button (`{x}`) to insert data like `{{contact.name}}`, the amount and the pay
   link from the customer's latest event. The picker offers **only the variables that actually
   resolve** in that message.
5. Open the **Auxiliary labels** block to adjust the card's **6** captions and button texts.
6. The **Outside the 24h window (WhatsApp Cloud)** block shows up **open, right under each stage**. Pick
   the approved template for that stage **in that language**, map the `{{1}}`, `{{2}}`… parameters and,
   if the template has a link button, fill in its value. If no template exists yet, use **Create from my
   text** to generate one from the body you wrote.
7. Check the **preview** per channel and, if you want, use **Send test** to deliver the message to a
   real conversation.
8. **Save messages** — including after creating a template, because **creating the template does not
   store the configuration**. To revert a stage to the default, use **Restore default** — the
   customization is removed **on the server**, not only on screen.

## Settings & options

### Languages and fallback

Language is no longer a fixed trio of tabs: it is a **selector** with every language the installation
enables. At send time, Conversa Labs looks for the copy in this order:

1. the **contact's** language;
2. the same base language (for example, `pt_BR` ↔ `pt`);
3. the **account** language;
4. the **shipped default** message.

### Auxiliary labels

The card is more than the body: it carries captions and button texts. The **6 auxiliary labels** sit in
a collapsible block under the body and follow the same language and restore rules.

### Outside the 24h window (WhatsApp Cloud)

The block appears **open and inline right under each message type** — it is not a section you have to
expand. The template is **per message type and per language** — each stage has its own, instead of a
single template for the whole module. It gives you:

- **Pick the approved template** from the catalog.
- **Sync from Meta** and **Create from my text** are **always visible**. When the action is unavailable,
  the button appears **disabled with the reason written next to it**: the inbox is not WhatsApp Cloud,
  the account does not have the **WhatsApp Inbox Suite**, or your profile does not manage inboxes.
- **Sync from Meta** refreshes the list of approved templates.
- **Create from my text** generates the template **from that stage's text in that language**, submitting
  it to Meta as a **UTILITY** template, converting each `{{ variable }}` into `{{1}}`, `{{2}}`… and
  pre-mapping them. With no text to generate from, the button is disabled and the screen asks you to
  **write the text first**.
- After submission the template is **not approved yet**: it appears in the selector marked **awaiting
  approval** and only starts delivering once Meta approves it and you sync. Submitting again with the
  **same name replaces the pending draft** instead of failing.
- **Creating the template does not save the configuration** — click **Save messages** to store the
  mapping.
- The **`{{n}}` parameter mapping** and the **link-button** field, when the template has one.
- **Native buttons**: by default the payment link goes out as a **button** on WhatsApp instead of a bare
  URL in the text. Turn it off per message type under **Delivery → Native buttons**. On WhatsApp Cloud,
  Meta delivers **a single button**, so the PIX code stays in the body; on WhatsApp Web both go out.
- **Delivery**: picks **which WhatsApp inbox's** approved-template catalog is browsed. Everything that
  depends on that inbox — why syncing/creating is unavailable, how many templates were filtered out, the
  link to manage them, and the **Sync from Meta** button — is stated **once** there, not repeated under
  every message. The send itself
  still leaves through the conversation's own inbox.

Templates whose **header requires media or a variable** are not listed here — this send has no way to
fill that header — and the screen states **how many were left out**. They remain usable from the inbox's
own **Templates** tab, linked directly from this screen.

Important notes:

- **WhatsApp Web (WazMeow) has no 24h window** — for those inboxes the template block does not appear.
- **360dialog** can **select** a template but **cannot create** one — creation is Cloud-only.
- Meta matches **name + language + approved**. A template in the wrong language is flagged on screen and
  would be rejected on send.

### Preview and test send

The preview is **rendered server-side**, per channel, and shows only the channels the account actually
has. It also displays the **resolved out-of-window template**, with the values each parameter will
carry. **Send test** delivers the message to a chosen conversation, honouring the 24h window: if the
window is closed and no template is configured, the test is **skipped with the reason stated on
screen**.

### Variables

The picker lists only what resolves in that context. **Contact**, **account**, **conversation**,
**inbox**, **agent**, **CRM** and **organization** data now really render (they used to come out blank),
alongside the **commerce event** data that triggered the card.

## Tips, limits & best practices

- Bodies are **Markdown** and each channel shows what it supports: attachments are dropped on LINE,
  TikTok and X; raw HTML disappears in email and the widget; `*bold*` on WhatsApp shows as a pair of
  asterisks. The preview spells this out so you never write something that only works on one channel.
- Customize your audience's main language first, then the others — the "N of M" counter helps you track
  coverage.
- Configure the out-of-window template **in the same language** as the body: they are pairs, not a
  single global setting.
- After "Create from my text", the template sits **awaiting approval** at Meta — use **Sync from Meta**
  to see when it is approved and starts delivering.

## Troubleshooting

- **The message went out as the default copy:** the stage carried the **Default** (empty) badge in that
  language, or the contact's language has no copy and the fallback landed on the shipped default.
- **Nothing was sent outside the window:** confirm there is an **approved template** configured **for
  that stage and that language**.
- **The template shows as flagged:** it is in a different language from the card — swap it for an
  approved template in the right language.
- **"Create from my text" is disabled:** the reason is written next to the button — the inbox is not
  WhatsApp Cloud (on 360dialog you pick an already-approved template), the account does not have the
  WhatsApp Inbox Suite, your profile does not manage inboxes, or there is no text in that stage and
  language to generate the template from.
- **I created the template but it doesn't show up / isn't used:** right after submission it sits
  **awaiting approval** — it only delivers once Meta approves it and you use **Sync from Meta**. Also
  confirm you clicked **Save messages**: creating the template does not store the configuration.
- **I can't find a template in the list:** templates with a **media header or a header variable** are not
  listed here; use them from the inbox's own **Templates** tab.
- **The test send was skipped:** the conversation was outside the 24h window and the card had no
  template configured — the screen states the reason.

## See also

- E-commerce lifecycle: Kiwify/Hotmart/Nuvemshop/Shopify webhooks
- [WhatsApp Inbox Suite: Templates, Flows and Calls](/hc/ajuda/articles/inboxes-channels-whatsapp-inbox-suite-en)