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

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.

Visão geral do caso de uso

O cenário envia um modelo de WhatsApp personalizado quando novos itens ou uma coleção aparecem no catálogo. A mensagem inclui o nome do contato, o tópico de chegadas ou o nome da coleção, e um breve destaque do que chegou. Um botão de URL estático abre a página de novos itens.

Exemplo de modelo

Hello! How can I assist you today?{{1}}! Novidades chegaram:{{2}}. {{3}}Toque no botão abaixo para explorar o que acabou de chegar.

Veja os novos lançamentos
  • {{1}}
    nome do cliente ou contato
  • {{2}}
    nome do tópico ou coleção de novos lançamentos
  • {{3}}
    destaque breve do que chegou ou por que navegar agora
  • “Veja os novos lançamentos”
    botão — fixo no modelo Meta
WhatsApp Business API for new arrivals broadcast

Quando usar isso

Use este cenário quando seu catálogo ganhar novos estoques — uma entrega que chegou, uma coleção sazonal ou um menu renovado — e você quer que os contatos que optaram por receber informações saibam disso antes que descubram por conta própria. Isso se encaixa em lançamentos de moda e varejo, anúncios de reposições em e-commerce, e restaurantes promovendo novos pratos para os clientes que retornam.

Tráfego enquanto o estoque é novo
Quando o inventário ou PIM sinaliza novas chegadas, o template alcança os contatos que optaram por receber informações no WhatsApp com o nome da coleção e destaque em três variáveis do corpo, para que a intenção de navegação aumente enquanto o lançamento ainda é novidade.
Anúncios que nomeiam a queda
Três variáveis de corpo carregam o nome do contato, o tópico das chegadas e o que chegou, fazendo com que a mensagem seja uma atualização específica de reposição em vez de uma notificação genérica de catálogo.
Um toque na página de itens novos
Um botão de URL estático fixo no template Meta abre a página de novos lançamentos ou coleção, para que os contatos possam navegar sem precisar esperar dentro da janela de resposta de 24 horas.
Sem contato manual com novos estoques
O evento catálogo-ao-vivo cria e envia o modelo automaticamente a partir dos campos do PIM ou do inventário, assim ninguém precisa reescrever os nomes das coleções ou se lembrar de notificar cada segmento manualmente.
Acompanhamento de entrega de campanhas
O resultado da entrega é registrado para análise de marketing ou acompanhamento de CRM, para que a equipe saiba se o anúncio teve impacto antes de planejar a próxima divulgação.

Fluxo de trabalho

  1. Gatilho

    O estoque, PIM ou POS emite um evento de novos produtos ou coleção ao vivo para o segmento.

    event · triggered

  2. Captura de evento

    O sistema resolve números de telefone dos destinatários e campos de personalização do payload da campanha.

    phone: "+…"

  3. Construir e enviar

    Uma mensagem de template personalizada é construída com três variáveis de corpo e um botão de URL estático.

    POST /sendTemplate

  4. Entregue

    Contatos que optaram recebem o anúncio de novas chegadas pelo WhatsApp.

    delivered

  5. Status rastreado

    O resultado da entrega é registrado para análise de campanhas de marketing ou acompanhamento de CRM.

    status: "read"

WhatsApp Business API for new arrivals 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 de WhatsApp · Como Aprovar o Template 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": truemean 1MSGaceitoa mensagem para enviar — não que já tenha chegado ao telefone do cliente.idcampowamid.…para correlacionar retornos de chamada.

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

    Aceito para envio.nãoainda no telefone do cliente

  • id

    Armazene isso; retornos de entrega ehookInfoestão focados nisso

A entrega em si chega mais tarde, como uma chamada de retorno separada. Registre um webhook (POST …/webhook) e 1MSG POSTs atualizações de status para o 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 retorno com oidretornado pela chamada de envio

  • timestamp

    Segundos Unix, como uma string

Se você prefere não receber ligações, faça uma enquete.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 a frio requerem um template aprovado pela Meta.

Relacionado

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.
Campanhas de Marketing
WhatsApp Business API para envio de banner promocional
O cenário envia um modelo de WhatsApp personalizado quando o marketing lança uma campanha visual.
Campanhas de Marketing
WhatsApp Business API para ofertas promocionais
O cenário envia um modelo de marketing personalizado pelo WhatsApp para contatos que optaram por receber quando uma campanha promocional começa.
Campanhas de Marketing
WhatsApp Business API para reengajar leads interessados
O cenário envia um modelo personalizado de WhatsApp para um lead ou cliente que demonstrou interesse anteriormente, mas ficou inativo.
Campanhas de Marketing
WhatsApp Business API para mensagem de boas-vindas
O cenário envia um modelo personalizado WhatsApp quando um usuário conclui o cadastro.

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