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

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.

Visão geral do caso de uso

O cenário envia um modelo de marketing personalizado pelo WhatsApp logo após uma compra concluída, quando uma oferta de acompanhamento é relevante — um reabastecimento, produto complementar ou o próximo serviço no ciclo. A mensagem inclui o nome do cliente, o produto que ele comprou e detalhes da oferta recomendada. Um botão de URL estático abre a página da oferta.

Exemplo de modelo

Olá,{{1}}! Com base na sua compra recente de "{{2}}", temos uma oferta de acompanhamento para você:{{3}}Toque no botão abaixo para ver a oferta e fazer o pedido novamente.

Ver oferta
  • {{1}}
    nome do cliente
  • {{2}}
    nome do produto da compra anterior
  • {{3}}
    detalhes da oferta de acompanhamento (reposição, produto complementar, próximo serviço)
  • “Ver oferta”
    botão — fixo no template Meta
WhatsApp Business API for post-purchase follow-up offer

Quando usá-lo

Use este cenário quando um cliente recém-comprou um produto e a empresa tem uma próxima compra natural para oferecer — um reabastecimento, produto complementar ou o próximo passo em um ciclo de serviço — enquanto o pedido ainda está fresco. Isso se encaixa em marcas de e-commerce e D2C sugerindo reabastecimentos dias após a entrega, negócios de assinaturas e consumíveis motivando reordens antes que o estoque acabe, e agências conectando gatilhos pós-pedido do Shopify, WooCommerce ou CRM em fluxos de vendas cruzadas no WhatsApp.

Repita a receita enquanto a compra está fresca.
O gatilho pós-compra é ativado dias após a entrega ou conclusão do serviço, então a oferta de acompanhamento chega ao cliente pelo WhatsApp enquanto ele ainda se lembra do que comprou — e não meses depois, quando ele já trocou de marca.
Ofertas vinculadas ao que realmente compraram
Três variáveis de corpo carregam o nome do cliente, o produto adquirido e a oferta de acompanhamento recomendada, assim a mensagem é percebida como um próximo passo lógico, em vez de um disparo de marketing genérico.
Contato em conformidade fora da janela de 24 horas
Um modelo de MARKETING aprovado entrega a oferta de venda cruzada ou recarga mesmo quando nenhuma conversa está aberta, para que o negócio não dependa do cliente enviar a mensagem primeiro.
Menos acompanhamento manual após pedidos.
O histórico de pedidos resolve os campos de telefone e compra, o modelo é construído automaticamente e a entrega é registrada — assim, os representantes não precisam reescrever o contexto do pedido ou se lembrar de enviar cada oferta de acompanhamento manualmente.
Análise de cross-sell no mesmo registro de pedido
O resultado da entrega é enviado de volta para a plataforma de e-commerce ou CRM, assim as campanhas de recompra relatam sobre o mesmo pedido que acionou a oferta de acompanhamento.

Fluxo de trabalho

  1. Construa e envie

    A plataforma de e-commerce ou CRM dispara um gatilho de acompanhamento pós-compra quando o pedido é elegível.

    POST /sendTemplate

  2. Registrar evento

    O sistema resolve o número de telefone do destinatário e os campos de compra a partir do histórico de pedidos.

    phone: "+…"

  3. Uma oferta de acompanhamento personalizada

    Um modelo de oferta de acompanhamento personalizada é construído com três variáveis de corpo e um botão de URL estático.

    POST /sendTemplate

  4. Entregue

    O cliente recebe a mensagem de marketing pelo WhatsApp com o contexto da compra e a oferta recomendada.

    delivered

  5. Status rastreado

    O resultado da entrega é registrado para a análise de campanhas de recompra e cross-sell.

    status: "read"

WhatsApp Business API for post-purchase follow-up offer

Implementação técnica

Pré-requisitos

  1. Chave da API 1MSG · Como obter a chave da API
  2. Conta do WhatsApp Business · Como Conectar WABA
  3. Modelo de WhatsApp · Como Aprovar o Modelo WABA
  4. Opt-in do cliente · Como Gerenciar 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_ADDITIONALINFO="___"         # {{3}} 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_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}} 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_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 envio ainda não chegou ao cliente.idcampowamid.…para correlacionar chamadas 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; retornos de entrega.hookInfoestão focados nisso

A entrega em si chega mais tarde, como um retorno 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

    Correla o retorno com oidretornado pela chamada de envio.

  • timestamp

    Segundos Unix, como uma string

Se você preferir não receber ligações, não responda à pesquisa.GET {base}/{channel}/hookInfo?messageId=<id>em vez disso. Na prática, a entrega muitas vezes é concluída dentro de segundos — mas o contrato da API não garante isso, então nunca bloqueie um fluxo aguardando por ela.

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 frias do WhatsApp requerem um modelo aprovado pelo Meta.

Relacionado

Campanhas de Marketing
WhatsApp Business API para aviso de oferta limitada
O cenário envia um modelo de marketing personalizado pelo WhatsApp como o segundo contato de uma promoção que já está em andamento e prestes a encerrar.
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 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.
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.

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