💬 Shared Inbox do WhatsApp na nova PlataformaMais
1msg official logo

WhatsApp Business API para reativação de clientes inativos

O cenário envia um modelo de marketing personalizado pelo WhatsApp para um cliente existente que comprou ou usou o serviço antes, mas está inativo há meses.

Visão geral do caso de uso

O cenário envia um modelo de marketing personalizado via WhatsApp para um cliente existente que comprou ou usou o serviço antes, mas está inativo há meses. A mensagem inclui o nome deles, o último produto que compraram, a data do último pedido ou visita e um incentivo personalizado para reconquistá-los. Um botão de URL estático abre a página da loja ou da conta para que possam comprar novamente.

Exemplo de modelo

Olá{{1}}! Sentimos sua falta — seu último pedido foi em{{3}}para{{2}}. {{4}}Clique no botão abaixo para voltar e fazer compras conosco novamente.

Compre novamente
  • {{1}}
    nome do cliente
  • {{2}}
    nome do último produto adquirido
  • {{3}}
    data do último pedido ou visita
  • {{4}}
    detalhes do incentivo ou oferta de reconquista
  • “Compre novamente”
    botão — fixado no modelo Meta
WhatsApp Business API for inactive customer reactivation

Quando usá-lo

Use este cenário quando você já tem clientes pagantes ou ativos que ficaram inativos por meses — sem pedidos, visitas ou logins recentes — e você quer recuperá-los antes que eles desistam de vez. Ele se adapta a segmentos de recência em e-commerce baseados no histórico de compras, equipes de SaaS que estão reengajando usuários que pararam de fazer login após uso anterior, e agências que estão recuperando clientes inativos para marcas de clientes. Não é para leads inativos que nunca se converteram, nem para vendas adicionais logo após uma compra recente.

Recupere a receita de clientes que você já conquistou.
A campanha tem como alvo pessoas que já compraram ou usaram o serviço, então um retorno custa um modelo enviado em vez de adquirir um estranho do zero.
Lembretes baseados em histórico de compras reais
Quatro variáveis de corpo contêm o nome do cliente, o último produto, a data da última atividade e a oferta de reconquista, assim a mensagem é apresentada como um acompanhamento pessoal, e não como uma promoção em massa.
Alcance compradores que não efetuaram compras fora da janela de 24 horas.
Um modelo de MARKETING aprovado é entregue pelo WhatsApp mesmo quando nenhuma conversa está aberta, portanto, a reativação não depende de uma mensagem recebida recente.
Menos construção manual de listas para reengajamento
O CRM ou o e-commerce fornecem os campos de recência e última compra, e o template é enviado com esse gatilho — nenhum representante reconstitui planilhas ou reescreve ofertas para cada cliente inativo.
Rastreamento de campanha de prevenção à evasão
Os resultados de entrega são registrados para análises de prevenção de churn, para que o marketing saiba quantos clientes inativos receberam a mensagem de reconquista antes de medir os retornos em outros lugares.

Fluxo de Trabalho

  1. Desencadear

    A plataforma de CRM ou ecommerce sinaliza um segmento de recência de clientes inativos além do limite de inatividade.

    event · triggered

  2. Capturar evento

    O sistema resolve números de telefone e o contexto da última compra para cada contato no segmento.

    phone: "+…"

  3. Construir e enviar

    Um modelo de recuperação personalizada é construído com quatro variáveis de corpo e um botão de URL estático.

    POST /sendTemplate

  4. Entregue

    Cada cliente que optou por receber mensagens recebe uma mensagem de reativação pelo WhatsApp.

    delivered

  5. Status rastreado

    Os resultados da entrega são registrados para acompanhamento e rastreamento de campanhas de prevenção de cancelamento.

    status: "read"

WhatsApp Business API for inactive customer reactivation

Implementação técnica

Pré-requisitos

  1. 1MSG API Key · Como obter a chave da API
  2. Conta do WhatsApp Business · Como Conectar WABA
  3. Modelo de WhatsApp · Como Aprovar o Template WABA
  4. Consentimento do cliente para receber comunicações · Como Lidar com o Consentimento dos Clientes

Exemplos de código

#!/usr/bin/env bash
set -euo pipefail

# === Configuration (replace "___" placeholders) ===

API_BASE_URL="https://api.1msg.io"        # production 1MSG API base URL
CHANNEL_ID="___"                           # channel ID from 1MSG dashboard
API_TOKEN="___"                            # channel JWT token (Bearer)

TEMPLATE_NAME="___"                        # approved template name
TEMPLATE_NAMESPACE="___"                   # template namespace (required — send fails without it)
TEMPLATE_LANGUAGE="___"                    # template language code, e.g. "en"



# === Test data ===
TEST_PHONE="___"                 # client phone in international format
TEST_CUSTOMERNAME="___"         # {{1}} customer name
TEST_PRODUCTNAME="___"         # {{2}} product name
TEST_DATE="___"         # {{3}} date or time
TEST_ADDITIONALINFO="___"         # {{4}} additional info

PHONE_NORM="$(printf '%s' "$TEST_PHONE" | tr -cd '0-9')"

for pair in "CHANNEL_ID=$CHANNEL_ID" "API_TOKEN=$API_TOKEN" \
            "TEMPLATE_NAME=$TEMPLATE_NAME" "TEMPLATE_NAMESPACE=$TEMPLATE_NAMESPACE" \
            "TEMPLATE_LANGUAGE=$TEMPLATE_LANGUAGE" "TEST_PHONE=$TEST_PHONE" \
            "TEST_CUSTOMERNAME=$TEST_CUSTOMERNAME" \
            "TEST_PRODUCTNAME=$TEST_PRODUCTNAME" \
            "TEST_DATE=$TEST_DATE" \
            "TEST_ADDITIONALINFO=$TEST_ADDITIONALINFO"; do
    val="${pair#*=}"
    if [ -z "$val" ] || [ "$val" = "___" ]; then
        echo "Missing configuration value: ${pair%%=*}" >&2
        exit 1
    fi
done

if [ -z "$PHONE_NORM" ]; then
    echo "Error: phone number has no digits after normalization" >&2
    exit 1
fi

URL="${API_BASE_URL%/}/${CHANNEL_ID}/sendTemplate"

# params carries body ONLY. Button text is fixed in the Meta template — no button param.

# {{1}} customer name → ${TEST_CUSTOMERNAME}
# {{2}} product name → ${TEST_PRODUCTNAME}
# {{3}} date or time → ${TEST_DATE}
# {{4}} additional info → ${TEST_ADDITIONALINFO}
read -r -d '' PAYLOAD <<JSON || true
{
  "phone": "${PHONE_NORM}",
  "template": "${TEMPLATE_NAME}",
  "namespace": "${TEMPLATE_NAMESPACE}",
  "language": { "policy": "deterministic", "code": "${TEMPLATE_LANGUAGE}" },
  "params": [
    {
      "type": "body",
      "parameters": [
        { "type": "text", "text": "${TEST_CUSTOMERNAME}" },
        { "type": "text", "text": "${TEST_PRODUCTNAME}" },
        { "type": "text", "text": "${TEST_DATE}" },
        { "type": "text", "text": "${TEST_ADDITIONALINFO}" }
      ]
    }

  ]
}
JSON

RESPONSE="$(curl -s -w '\n%{http_code}' -X POST "$URL" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer ${API_TOKEN}" \
    -d "$PAYLOAD")"

HTTP_CODE="$(printf '%s' "$RESPONSE" | tail -n1)"
BODY="$(printf '%s' "$RESPONSE" | sed '$d')"

case "$BODY" in
    *'"sent":true'*) ok=1 ;;
    *) ok=0 ;;
esac

if [ "$HTTP_CODE" -ge 200 ] && [ "$HTTP_CODE" -lt 300 ] && [ "$ok" -eq 1 ]; then
    echo "Message sent to client."
    echo "API response: $BODY"
else
    echo "Send failed. HTTP status: $HTTP_CODE" >&2
    echo "$BODY" >&2
    exit 1
fi

Status de resposta e entrega

HTTP 2xx e JSON"sent": truemean 1MSGaceitoa mensagem para enviar — não que já tenha chegado ao telefone do cliente.idcampowamid.…) para correlacionar os callbacks de entrega.

200 OKResposta
{
  "sent": true,
  "id": "wamid.HBgLMzgwNjM5...",
  "message": "Message accepted for delivery"
}
  • sent

    Aprovado para envio.nãoainda no telefone do cliente

  • id

    Armazene isso; retornos de entrega.hookInfoestão focados nisso

A entrega em si chega mais tarde, como um callback separado. Registre um webhookPOST …/webhook) e 1MSG envia atualizações de status para seu endpoint HTTPS em um nível superiorhooks[]carga.

200 OKWebhook de status de entrega — payload recebido
{
  "hooks": [
    {
      "id": "gBGGeSaGViBfAgnlzOSHEwK9O6F",
      "type": "message",
      "status": "sent",
      "timestamp": "1654864094",
      "recipient_id": "556123122026"
    }
  ]
}
  • status

    sent, delivered, read— ou um status de falha quando aplicável

  • id

    Correlaciona o callback com oidretornado pela solicitação de envio

  • timestamp

    Segundos Unix, como uma string

Se você não quiser receber ligações de retorno, não participe da pesquisa.GET {base}/{channel}/hookInfo?messageId=<id>em vez disso. Na prática, a entrega muitas vezes é concluída em segundos — mas o contrato da API não garante isso, então nunca faça o fluxo ficar bloqueado esperando por isso.

Erros comuns

StatusRespostaCausa
200Message was not sent: template is not definednamespace, template or language missing from the request body.
200template name (…) does not exist in <language>The template is approved in a different language than the one requested.
200Message was not sent: provide chatId, phone, bsuid, or usernameNo recipient the channel could resolve.
403access deniedThe token is wrong, or belongs to a different channel than the URL.
429too many requests. please try laterThe channel is over its send rate.

Perguntas Frequentes

Sim — mensagens do WhatsApp com início frio exigem um modelo aprovado pelo Meta.

Relacionado

Campanhas de Marketing
WhatsApp Business API para difusão de ofertas pessoais
O cenário envia um modelo de marketing por WhatsApp quando o CRM divide uma base com consentimento em segmentos de público e atribui termos de oferta a cada um.
Campanhas de Marketing
WhatsApp Business API para engajamento de conteúdo
O cenário envia um template de marketing pelo WhatsApp quando a empresa publica conteúdo educacional ou de entretenimento para contatos optados.
Campanhas de Marketing
WhatsApp Business API para notícias da empresa
O cenário envia um modelo de WhatsApp personalizado quando a empresa publica notícias sobre a empresa ou serviços.
Campanhas de Marketing
WhatsApp Business API para acompanhamento pós-compra
O cenário envia um modelo de marketing pelo WhatsApp após uma compra, quando uma oferta de acompanhamento é relevante — reabastecimento ou produto complementar.
Campanhas de Marketing
WhatsApp Business API para transmissão de campanha sazonal
O cenário envia um template de marketing personalizado pelo WhatsApp quando uma campanha sazonal baseada em calendário é ativada.
Campanhas de Marketing
WhatsApp Business API para envio de convites para eventos
O cenário envia um template de marketing para WhatsApp personalizado para contatos que optaram por receber informações sobre um evento público futuro.
Campanhas de Marketing
WhatsApp Business API para catálogo de produtos e serviços
O cenário envia um modelo de marketing personalizado pelo WhatsApp para contatos que optaram por receber, quando a empresa atualiza seu catálogo completo.
Campanhas de Marketing
WhatsApp Business API para transmissão de novidades
O cenário envia um modelo personalizado de WhatsApp quando novos itens ou uma coleção aparecem no catálogo.

Crie para o WhatsApp em horas
sem complicações de infraestrutura