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

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.

Visão geral do caso de uso

O cenário envia um modelo de marketing personalizado pelo WhatsApp quando o CRM divide uma base que optou por participar em segmentos de público e atribui termos de oferta personalizados a cada um. A mensagem inclui o nome do cliente, o contexto do segmento que explica por que a oferta se encaixa para eles, e os detalhes da oferta específicos do segmento. Um botão de URL estático abre a página da oferta personalizada.

Exemplo de modelo

Olá {{1}}! Como membro de {{2}}, preparamos uma oferta para você: {{3}}. Clique no botão abaixo para ver sua oferta pessoal e resgatá-la.

Veja minha oferta
  • {{1}}
    nome do cliente
  • {{2}}
    segmentar contexto (nível VIP, região, nível do plano ou rótulo do grupo RFM)
  • {{3}}
    detalhes da oferta específica do segmento (termos de desconto, bônus ou vantagens)
  • “Veja minha oferta”
    botão — fixo no template Meta
WhatsApp Business API for segment personal offer broadcast

Quando usar.

Use este cenário quando você realiza uma campanha de marketing, mas precisa de diferentes termos de oferta para cada segmento de audiência — nível VIP, região, plano de assinatura ou grupo RFM — e cada contato deve ver termos que correspondam ao seu segmento, em vez de uma única comunicação genérica. Isso se aplica a níveis de fidelidade no varejo, impulsos de atualização de nível de plano SaaS e agências enviando ofertas segmentadas para marcas de clientes a partir de divisões de CRM.

Um modelo, muitas ofertas específicas por segmento
Três variáveis de corpo carregam o nome de contato, o rótulo de contexto de segmento e os termos da oferta personalizada, para que o CRM possa mapear diferentes valores por segmento, enquanto reutiliza um único modelo de MARKETING aprovado.
Ofertas que parecem ser feitas para o destinatário
A variável de contexto do segmento nomeia o nível ou grupo ao qual o contato pertence, assim, a mensagem explica por que os termos se aplicam a eles, em vez de parecer uma transmissão em massa.
Alcance segmentos que aceitaram participar fora da janela de 24 horas.
Um modelo de MARKETING aprovado entrega ofertas segmentadas no WhatsApp mesmo quando nenhuma conversa está aberta, de modo que a campanha não depende de uma mensagem recebida recente.
Menos divisão de listas manual e reescrita
O CRM define segmentos e fornece campos de personalização na exportação, e o template é enviado de acordo com o gatilho do segmento — nenhum representante precisa reconstruir listas ou reescrever os termos da oferta manualmente para cada nível.
Rastreamento de entrega por segmento
Os resultados de entrega são registrados por segmento para o rastreamento de desempenho da campanha, para que o marketing possa comparar o alcance e o engajamento entre os grupos VIP, regional e de categorias de plano.

Fluxo de Trabalho

  1. Desencadear

    O CRM ou automação de marketing define segmentos de público e mapeia termos de ofertas personalizadas por segmento.

    event · triggered

  2. Capturar evento

    O sistema resolve números de telefone e campos de personalização de segmentos para cada contato.

    phone: "+…"

  3. Construir & enviar

    Um modelo específico para segmento é construído com três variáveis de corpo e um botão de URL estático.

    POST /sendTemplate

  4. Entregue

    Cada contato que optou recebe a mensagem de oferta do WhatsApp com os termos correspondentes ao seu segmento.

    delivered

  5. Status rastreado

    Os resultados de entrega são registrados por segmento para o acompanhamento de desempenho da campanha.

    status: "read"

WhatsApp Business API for segment personal offer broadcast

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 do WhatsApp · Como Aprovar o Modelo do 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_PRODUCTCONTEXT="___"         # {{2}} product context
TEST_DETAILS="___"         # {{3}} change details

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_PRODUCTCONTEXT=$TEST_PRODUCTCONTEXT" \
            "TEST_DETAILS=$TEST_DETAILS"; 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 context → ${TEST_PRODUCTCONTEXT}
# {{3}} change details → ${TEST_DETAILS}
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_PRODUCTCONTEXT}" },
        { "type": "text", "text": "${TEST_DETAILS}" }
      ]
    }

  ]
}
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": true significam que 1MSG aceitou a mensagem para envio — não que ela já tenha chegado ao telefone do cliente. Salve o campo id (parece como wamid.…) para correlacionar os callbacks de entrega.

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

    Aceito para envio — não ainda no telefone do cliente

  • id

    Armazene isso; os callbacks de entrega e hookInfo dependem disso.

A entrega em si chega mais tarde, como um retorno separado. Registre um webhook (POST …/webhook) e 1MSG POSTs atualizações de status para seu endpoint HTTPS em uma carga hooks[] de nível superior.

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

    enviado, entregue, lido — ou um status de falha quando aplicável

  • id

    Correla o callback com o id retornado pela chamada de envio

  • timestamp

    Segundos Unix, como uma string

Se você prefere não receber chamadas de retorno, faça uma consulta GET {base}/{channel}/hookInfo?messageId=<id> em vez disso. Na prática, a entrega geralmente é concluída em segundos — mas o contrato da API não garante isso, então nunca bloqueie um fluxo 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 de WhatsApp de início frio requerem um template aprovado pela Meta.

Relacionado

Campanhas de Marketing
WhatsApp Business API para mensagem de marketing pós-visita
O cenário envia um modelo de marketing personalizado via WhatsApp logo após uma visita presencial, passeio pelo showroom, consulta ou contato telefônico.
Campanhas de Marketing
WhatsApp Business API para anúncio de lançamento de produto
O cenário envia um modelo de marketing personalizado pelo WhatsApp quando um único produto, linha de serviço, tarifa ou recurso é lançado.
Campanhas de Marketing
WhatsApp Business API para recomendações por broadcast
O cenário envia um template de marketing pelo WhatsApp quando um mecanismo de recomendação ou merchandiser prepara uma seleção de itens para um contato.
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 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 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.

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