Skill de IA para API do WhatsAppMais
1msg official logo

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.

visão geral do caso de uso

Este cenário envia ao cliente um modelo curto personalizado do WhatsApp pedindo que confirme se está satisfeito. A mensagem inclui o nome deles e o assunto a ser avaliado (por exemplo, uma entrega recente ou um caso de suporte). Dois botões de resposta rápida permitem que eles respondam satisfeito ou insatisfeito com um toque; cada escolha chega via webhook para o CRM ou análise.

Template exemplo

Olá, {{1}}! Você está satisfeito com {{2}}? Toque em um botão abaixo — leva apenas alguns segundos. Obrigado, seu feedback nos ajuda a melhorar.

Satisfeito
  • {{1}}
    nome do cliente
  • {{2}}
    tópico ou assunto sendo avaliado (por exemplo, entrega recente, visita, caso de suporte)
  • “Satisfeito”
    botão — fixado no modelo Meta
WhatsApp Business API for satisfaction confirmation

Quando usá-lo

Acesse este cenário quando precisar de uma confirmação clara de satisfação sim ou não após um pedido, visita, entrega ou caso de suporte, e não houver chat aberto no WhatsApp — apenas um modelo aprovado pode iniciar a conversa. Ele se adequa às equipes de varejo e entrega que verificam a satisfação pós-pedido, empresas de serviços confirmando que uma consulta recente foi bem, e equipes de suporte ou SaaS realizando um pulso binário de CSAT após o fechamento sem enviar clientes para links de pesquisa externos.

Sinal de satisfação claro com um toque
O cliente confirma se está satisfeito ou insatisfeito com um toque rápido de resposta dentro do WhatsApp — nome e tópico aparecem como duas variáveis de corpo — em vez de ignorar um link de pesquisa por e-mail.
Resultados estruturados sem busca manual
O CRM aciona o modelo em um gatilho pós-interação, resolve o telefone e o tópico do registro e armazena cada escolha de botão dos eventos de webhook como feedback pronto para análise.
Respostas enquanto a experiência está fresca
The confirmation goes out right after delivery, visit, or ticket closure, so satisfaction is captured in the channel the client already uses before memory fades.
Respostas de insatisfação podem abrir um acompanhamento na mesma conversa
Um tap não satisfeito chega via webhook dentro da janela de sessão de 24 horas, permitindo que a automação ou um gerente responda no WhatsApp sem iniciar uma nova campanha de saída.
Mensagem inicial compatível quando não há sessão
Um modelo aprovado com duas variáveis de corpo e rótulos de resposta rápida fixos é a única maneira de solicitar a confirmação de satisfação quando mensagens de saída em texto livre não são permitidas e nenhuma conversa está aberta ainda.

Como funciona

  1. Build & send

    O CRM ou Como funciona do produto ativa um gatilho de confirmação de satisfação pós-interação quando um verificador está pendente.

    POST /sendTemplate

  2. Capture event

    O telefone do cliente, o nome e o tópico de satisfação são resolvidos a partir dos dados do gatilho ou do registro do CRM.

    phone: "+…"

  3. Um modelo personalizado é

    Um modelo personalizado é enviado com duas variáveis de corpo e botões de resposta rápida para satisfeito / não satisfeito.

    POST /sendTemplate

  4. Status rastreado

    O cliente clica em um botão — o evento chega via webhook e é registrado como um resultado de satisfação.

    status: "read"

  5. Entregue

    CRM ou análises armazenam o resultado; respostas insatisfatórias podem ser direcionadas para um acompanhamento dentro da janela da sessão.

    delivered

WhatsApp Business API for satisfaction confirmation

Implementação técnica

Requisitos Prévios

  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
  5. Webhook endpoint · Como Configurar webhook

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

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"; 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}
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}" }
      ]
    }

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

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

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

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

FAQ

Sim — mensagens de WhatsApp de cold-start exigem 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 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.
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 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