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

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.

Visão geral do caso de uso

O cenário envia um modelo de marketing personalizado pelo WhatsApp quando a empresa publica conteúdo educativo ou de entretenimento para contatos que optaram por recebê-lo. A mensagem inclui o nome do cliente, o tópico ou título do conteúdo e um breve teaser sobre o valor contido. Um botão de URL estático abre o guia completo, artigo, checklist, estudo de caso ou vídeo com um toque.

Exemplo de modelo

Olá{{1}}! Escolhemos algo útil para você:{{2}}. {{3}}Toque no botão abaixo para ler ou assistir ao conteúdo completo.

Conteúdo aberto
  • {{1}}
    nome do cliente
  • {{2}}
    tópico ou título do conteúdo
  • {{3}}
    o que o leitor aprenderá ou ganhará
  • “Conteúdo aberto”
    botão — fixo no template Meta
WhatsApp Business API for content engagement broadcast

Quando usá-lo

Use este cenário quando você já tem uma lista de opt-in no WhatsApp e deseja compartilhar conteúdo que agregue valor primeiro — um guia, artigo, checklist, estudo de caso, vídeo ou dica — que mantém o público engajado sem vender nada diretamente. Isso se encaixa para marcas de educação que compartilham dicas semanais, equipes B2B enviando materiais de como fazer entre os ciclos de produto, e agências conduzindo ondas de engajamento de conteúdo para marcas de clientes. Não é para notícias da empresa sobre você, promoções de desconto, ou fluxos de nutrição interativos com respostas rápidas.

Mantenha o canal aquecido sem um discurso de vendas.
Um modelo de MARKETING aprovado oferece conteúdo educativo ou de entretenimento fora da janela de 24 horas, para que os contatos recebam valor de você em vez de mais uma linha de desconto.
Conteúdo que menciona o leitor e o tópico.
Três variáveis de corpo carregam o nome do contato, o título do conteúdo e o teaser de valor, de modo que a mensagem é percebida como uma escolha útil em vez de uma transmissão genérica.
Um link estático para o conteúdo completo
Um botão de URL fixo no template Meta abre a página do guia, artigo, checklist, estudo de caso ou vídeo, para que o contato consuma o conteúdo com um toque, em vez de uma conversa de vai e vem.
Menos distribuição manual de conteúdo
CRM ou automação de conteúdo fornece os campos de segmentação e personalização, e o template é enviado com esse gatilho — nenhum representante reconstrói a lista ou retipa os teasers para cada contato.
Rastreamento de engajamento em envios de conteúdo
Os resultados de entrega e os clicks nos links são registrados para a execução da transmissão, para que o marketing saiba quantos contatos que se inscreveram abriram a peça antes de planejar a próxima onda de conteúdo.

Fluxo de Trabalho

  1. Desencadear

    O conteúdo ou marketing seleciona um segmento que optou por participar para a transmissão de engajamento.

    event · triggered

  2. Captura de evento

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

    phone: "+…"

  3. Construa e envie

    Um template de conteúdo personalizado é 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 por participar recebe a mensagem de engajamento de conteúdo do WhatsApp.

    delivered

  5. Status rastreado

    As entregas e os cliques em links são registrados para rastreamento de engajamento e acompanhamento.

    status: "read"

WhatsApp Business API for content engagement broadcast

Implementação técnica

Pré-requisitos

  1. 1MSG API Key · Como obter a chave da API
  2. Conta comercial do WhatsApp · Como Conectar WABA
  3. Modelo de WhatsApp · Como Aprovar o Template 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_TOPIC="___"         # {{2}} topic or subject
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_TOPIC=$TEST_TOPIC" \
            "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}} topic or subject → ${TEST_TOPIC}
# {{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_TOPIC}" },
        { "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": true1MSGaceitoMensagem para enviar — não que já esteja no telefone do cliente.idcampo.wamid.…) para correlacionar os retornos 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 e callbacks.hookInfoestão focados nisso

A entrega em si chega mais tarde, como um retorno separado. Registre um webhook (POST …/webhook) e 1MSG publica atualizações de status no 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 comidretornado pela chamada

  • timestamp

    Segundos Unix, como uma string

Se você prefere não receber retornos de chamada, não se inscreva.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 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 a frio requerem um modelo aprovado pela Meta.

Relacionado

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 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 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.
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.

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