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

WhatsApp Business API para nova notificação da equipe de feedback

O cenário envia um modelo de WhatsApp personalizado para o gerente da equipe quando novos feedbacks de clientes são capturados.

visão geral do caso de uso

O cenário envia ao gerente da equipe um modelo de WhatsApp personalizado quando o feedback de um novo cliente é capturado. A mensagem inclui o nome do cliente, o tópico do feedback e um breve resumo. Um botão de URL estático abre o painel de feedback.

Modelo exemplo

🔔 Novo feedback

Cliente: {{1}}

Tópico: {{2}}

Detalhes: {{3}}

Revise o feedback e faça o acompanhamento se necessário.

Feedback aberto
  • {{1}}
    nome do cliente
  • {{2}}
    tópico de feedback ou nome da pesquisa (por exemplo, classificação pós-visita, CSAT de entrega)
  • {{3}}
    resumo de feedback (avaliação, pontuação ou trecho curto de comentário)
  • “Feedback aberto”
    botão — fixado no modelo da Meta
WhatsApp Business API for new feedback team notification

Quando usar isso

Atingir este cenário quando um cliente envia feedback por meio de uma pesquisa, widget de avaliação ou formulário e a equipe de operações ou qualidade precisa saber imediatamente — não depois de checar e-mail ou atualizar um painel. Isso se encaixa nas equipes de sucesso do cliente monitorando CSAT e NPS, equipes de qualidade encaminhando avaliações pós-visita ou pós-entrega para um gerente de plantão, e integradores conectando webhooks de pesquisa a alertas internos do WhatsApp.

Seguimento mais rápido sobre o novo feedback
A plataforma de pesquisa ou CRM emite um evento de novo-feedback, e o modelo aprovado chega ao telefone do gerente com o nome do cliente, tópico e resumo como três variáveis de corpo — antes que as pontuações baixas fiquem sem atenção na caixa de entrada.
Alertas que chegam primeiro ao celular
A mensagem vai para o WhatsApp no telefone do gerente em vez de e-mail, assim a equipe vê o novo feedback sem abrir um painel; apenas um modelo aprovado pode iniciar a conversa quando não há chat aberto.
Uma toque no registro de feedback
Um botão de URL estático fixo no modelo da Meta abre o painel de feedback, para que o gerente não precise procurar a nova entrada após ler o alerta — apenas as três variáveis de corpo são enviadas via API.
Entrega registrada para análise de qualidade
O resultado do envio é registrado após a entrega, então CRM ou Como funciona podem acompanhar se o alerta chegou ao gerente designado.

Como funciona

  1. Gatilho

    A plataforma de pesquisa ou CRM emite um evento de novo-feedback.

    event · triggered

  2. Evento de captura

    O sistema resolve os campos de número de telefone do gerente da equipe e resumo de feedback.

    phone: "+…"

  3. Criar & enviar

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

    POST /sendTemplate

  4. Entregue

    O gerente recebe o alerta do WhatsApp no celular.

    delivered

  5. Status rastreado

    O resultado da entrega é registrado; o gerente abre o painel de feedback através do botão para acompanhar.

    status: "read"

WhatsApp Business API for new feedback team notification

Implementação técnica

Pré-requisitos

  1. 1MSG API Key · Como obter a chave da API
  2. Conta do WhatsApp Business · Como Conectar WABA
  3. Modelo 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 ===
MANAGER_PHONE="___"                 # manager phone in international format
TEST_CUSTOMERNAME="___"         # {{1}} customer name
TEST_TOPIC="___"         # {{2}} topic or subject
TEST_REQUESTDETAIL="___"         # {{3}} request detail

PHONE_NORM="$(printf '%s' "$MANAGER_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" "MANAGER_PHONE=$MANAGER_PHONE" \
            "TEST_CUSTOMERNAME=$TEST_CUSTOMERNAME" \
            "TEST_TOPIC=$TEST_TOPIC" \
            "TEST_REQUESTDETAIL=$TEST_REQUESTDETAIL"; 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}} request detail → ${TEST_REQUESTDETAIL}
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_REQUESTDETAIL}" }
      ]
    }

  ]
}
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 manager."
    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 id campo (parece 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 estão vinculados a isso

A entrega em si chega mais tarde, como um callback separado. Registre um webhook e 1MSG envia atualizações de status para seu endpoint HTTPS em um POST …/webhookdados hooks[]payload

200 OKWebhook de status de entrega — dados que você recebe
{
  "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 callback com o id retornado pela chamada send

  • 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 poucos 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 modelo aprovado pela Meta.

Relacionado

Pesquisas & Feedback
WhatsApp Business API para acompanhamento de feedback negativo
O cenário envia ao cliente um modelo de WhatsApp personalizado após ele enviar uma avaliação de satisfação neutra ou baixa.
Pesquisas & Feedback
WhatsApp Business API para pesquisa pós-ticket
O cenário envia ao cliente um modelo de WhatsApp personalizado após a conclusão de um ticket, convidando-o a compartilhar sua opinião em uma breve pesquisa.
Pesquisas & Feedback
WhatsApp Business API para feedback do serviço
O cenário envia ao cliente um modelo de WhatsApp personalizado quando uma etapa específica do serviço é concluída, pedindo que avaliem como foi essa etapa.
Pesquisas & Feedback
WhatsApp Business API para confirmação de satisfação
Este cenário envia ao cliente um curto modelo WhatsApp personalizado pedindo para confirmar se está satisfeito.
Pesquisas & Feedback
WhatsApp Business API para solicitação de revisão de texto
O cenário envia ao cliente um modelo de WhatsApp personalizado após uma interação concluída, pedindo que deixe um comentário ou depoimento por escrito.
Pesquisas & Feedback
WhatsApp Business API para lembrete de conclusão de pesquisa
O cenário envia ao cliente um modelo de WhatsApp personalizado quando um pedido de pesquisa ainda está pendente após a primeira solicitação.
Pesquisas & Feedback
WhatsApp Business API para solicitação de pesquisa pós-visita
O cenário envia um modelo de WhatsApp personalizado ao cliente após a visita ou consulta, pedindo que compartilhe feedback sobre a experiência.
Pesquisas & Feedback
WhatsApp Business API para pesquisa pós-entrega
O cenário envia ao cliente um modelo WhatsApp personalizado após o pedido ser entregue, pedindo para avaliar a qualidade da entrega.

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