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

WhatsApp Business API para notificação de mudança de serviço

O cenário envia ao cliente um modelo personalizado de WhatsApp quando a empresa muda como um serviço ou processo funciona para eles.

Visão geral do caso de uso

O cenário envia ao cliente um modelo de WhatsApp personalizado quando a empresa muda a forma como um serviço ou processo funciona para eles. A mensagem inclui o nome do cliente, o serviço ou processo afetado e um breve resumo do que mudou. Um botão de URL estático abre o portal ou a página de detalhes.

Exemplo de modelo

Olá, {{1}}! O status do seu {{2}} foi atualizado. {{3}} Se você precisar de ajuda — estamos aqui.

Saiba mais
  • {{1}}
    nome do cliente
  • {{2}}
    serviço ou processo (por exemplo, entrega em casa, integração, visita de manutenção)
  • {{3}}
    resumo da mudança (por exemplo, nova data 25 de junho 10:00–12:00, etapa de upload de documentos adicionada)
  • “Saiba mais”
    botão — fixo no modelo Meta
WhatsApp Business API for service process change notification

Quando usá-lo

Acesse isso quando um serviço contínuo ou um processo de múltiplas etapas mudar para um cliente — uma janela de entrega remarcada, etapas de integração atualizadas, termos de plano revisados — e eles podem não ter uma conversa aberta no WhatsApp, então apenas um modelo aprovado pode alcançá-los primeiro. Isso se encaixa em equipes de logística e de serviço de campo ajustando cronogramas de visitas, negócios de assinatura e SaaS alterando a integração ou os termos do plano, e agências conectando eventos de processo de CRM ou BPM atualizados ao WhatsApp para envio.

Menos chamadas de suporte sobre o que mudou.
Três variáveis do corpo carregam o nome do cliente, o serviço ou processo afetado e um breve resumo da mudança no WhatsApp, para que a atualização permaneça em um chat que eles já verificam, em vez de um e-mail ou login em portal.
Menos faltas em compromissos e janelas de entrega
Quando uma janela de visita ou entrega muda, o resumo da alteração é enviado no momento em que o back office, CRM ou integração emite o evento de mudança de serviço ou processo, para que o cliente veja a nova janela antes que a antiga expire.
Ação proativa fora da janela de 24 horas
Um modelo de utilitário aprovado pode iniciar a conversa quando não há sessão ativa, o que as mensagens de sessão em texto livre não podem fazer após a janela ser fechada.
Acompanhamento de autoatendimento com um toque
Um botão de URL estático fixo no template Meta abre o portal ou a página de detalhes para qualquer coisa que o resumo não cobre, enquanto apenas as três variáveis do corpo são enviadas via API.
Entregas rastreáveis para follow-up de CRM
O resultado da entrega é registrado após o envio, para que o back-office ou os fluxos de trabalho de integração possam lidar com erros e anexar a notificação ao mesmo registro de cliente que acionou o evento de mudança.

Fluxo de Trabalho

  1. Gatilho

    O back office, CRM ou integração emite um evento de mudança de serviço/processo.

    event · triggered

  2. Captura de evento

    O sistema identifica o número de telefone do destinatário e os campos de alteração.

    phone: "+…"

  3. Construir & enviar

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

    POST /sendTemplate

  4. Entregue

    O cliente recebe a notificação do WhatsApp com o resumo das mudanças.

    delivered

  5. Status rastreado

    O resultado da entrega é registrado; os erros são tratados de acordo com as regras da plataforma.

    status: "read"

WhatsApp Business API for service process change notification

Implementação técnica

Pré-requisitos

  1. Chave da API 1MSG · Como obter a Chave da API
  2. Conta do WhatsApp Business · Como Conectar o WABA
  3. Modelo do WhatsApp · Como Aprovar o Modelo WABA
  4. Cliente que Opta por · Como Gerenciar o Consentimento

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_SERVICE="___"         # {{2}} service name
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_SERVICE=$TEST_SERVICE" \
            "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}} service name → ${TEST_SERVICE}
# {{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_SERVICE}" },
        { "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 com 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-o; os retornos de chamada de entrega e hookInfo são baseados nisso

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

200 Entendido!Webhook 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ê preferir não receber callbacks, consulte 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 aguardando 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

Serviço ao Cliente
WhatsApp Business API para suporte — reação e confirmações
Este cenário combina sendReaction e readMessage durante a janela de atendimento ao cliente de 24 horas.
Serviço ao Cliente
WhatsApp Business API para suporte — botões interativos
Este cenário envia uma mensagem interativa com o sendButton durante a janela de atendimento ao cliente de 24 horas.
Serviço ao Cliente
WhatsApp Business API para resposta de sessão — solicite mais.
Este cenário envia uma mensagem de texto livre pelo WhatsApp com sendMessage dentro da janela de atendimento ao cliente de 24 horas.
Serviço ao Cliente
WhatsApp Business API para notificação de resolução
O cenário envia um template personalizado pelo WhatsApp quando o ticket de suporte do cliente é resolvido.
Serviço ao Cliente
WhatsApp Business API — repasse ao especialista com contato
Este cenário envia um cartão de contato do WhatsApp com sendContact durante a janela de atendimento ao cliente de 24 horas.
Serviço ao Cliente
WhatsApp Business API para lembrete de resposta pendente
O cenário envia ao cliente um template personalizado de WhatsApp quando o suporte está bloqueado aguardando sua resposta.
Serviço ao Cliente
WhatsApp Business API para notificação de agente atribuído
O cenário envia ao cliente um template personalizado pelo WhatsApp quando um ticket de suporte é designado a um especialista.
Serviço ao Cliente
WhatsApp Business API para confirmação de recebimento
O cenário envia ao cliente um modelo de WhatsApp personalizado logo após a submissão de um formulário de aplicação ou solicitação.

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