1msg official logo

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.

visão geral do caso de uso

O cenário envia ao cliente um modelo de WhatsApp personalizado após um pedido ser entregue, pedindo que avaliem a qualidade da entrega. A mensagem inclui o nome do cliente, número do pedido e um breve convite para a pesquisa. Um botão com URL estático abre o formulário de feedback da entrega ou a página da pesquisa.

Modelo

Olá, {{1}}! O pedido #{{2}} foi entregue. {{3}} Por favor, avalie a qualidade da entrega — leva cerca de um minuto.

Avaliar entrega
  • {{1}}
    nome do cliente
  • {{2}}
    número do pedido
  • {{3}}
    Por favor, avalie sua experiência de entrega de 1 a 5. Isso leva apenas 1 minuto
  • “Avaliar entrega”
    botão — fixo no modelo da Meta
WhatsApp Business API for post-delivery survey

Quando usar

Use este cenário quando um pedido for marcado como entregue e a equipe precisar de uma pesquisa de satisfação de entrega estruturada no WhatsApp ao invés de uma mensagem de acompanhamento manual ou pesquisa apenas por email. Isso se encaixa em marcas de e-commerce e D2C que coletam feedback de 1 a 5 estrelas ou NPS após a entrega final, equipes de logística que realizam pesquisas pós-entrega padronizadas e agências que conectam gatilhos de entrega concluída dos Como funciona, WMS ou e-commerce personalizados.

Taxas de resposta mais altas em pesquisas pós-entrega
A solicitação da pesquisa chega no WhatsApp com nome, número do pedido e prompt da pesquisa como três variáveis no corpo, assim a solicitação de avaliação aparece em um canal que o cliente já utiliza, em vez de uma pesquisa por e-mail que eles nunca abrem.
Mensagem inicial em conformidade após a entrega
A transportadora ou OMS dispara um modelo aprovado quando o pedido é entregue, de modo que a solicitação de pesquisa chega ao cliente mesmo quando não há uma conversa aberta e respostas em texto livre não são permitidas.
Nenhuma mensagem de pesquisa de entrega manual
O acionador de entrega concluída resolve os campos de telefone do destinatário e de pesquisa, constrói o modelo com três variáveis de corpo e um botão de URL estático, para que a equipe não precise reescrever o contexto do pedido ou lembrar de enviar um link de pesquisa.
Order context before they rate
O nome do cliente e o número do pedido aparecem no corpo da mensagem, assim o cliente sabe qual pedido entregue está avaliando antes de clicar no botão fixo de Avaliar entrega que abre o formulário de pesquisa.
Entrega registrada para análises de acompanhamento
O resultado da entrega é registrado de volta na plataforma de e-commerce ou no CRM, enquanto a conclusão da pesquisa é rastreada no formulário vinculado, de modo que o acompanhamento da qualidade da entrega permaneça vinculado ao mesmo registro de pedido.

Como funciona

  1. Gatilho

    O transportador ou OMS dispara um evento de entrega concluída quando o pedido chega ao cliente.

    event · triggered

  2. Capturar evento

    O sistema resolve o número de telefone do destinatário e os campos da pesquisa.

    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 o pedido de pesquisa de entrega pelo WhatsApp.

    delivered

  5. Status rastreado

    O resultado da entrega foi registrado; a conclusão da pesquisa é acompanhada fora do WhatsApp.

    status: "read"

WhatsApp Business API for post-delivery survey

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 ===
TEST_PHONE="___"                 # client phone in international format
TEST_CUSTOMERNAME="___"         # {{1}} customer name
TEST_PROCESS="___"         # {{2}} process name
TEST_INFO="___"         # {{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_PROCESS=$TEST_PROCESS" \
            "TEST_INFO=$TEST_INFO"; 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}} process name → ${TEST_PROCESS}
# {{3}} additional info → ${TEST_INFO}
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_PROCESS}" },
        { "type": "text", "text": "${TEST_INFO}" }
      ]
    }

  ]
}
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 o 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-o; os callbacks de entrega e hookInfo estão vinculados a isso

Delivery itself arrives later, as a separate callback. Register a webhook (POST …/webhook) and 1MSG POSTs status updates to your HTTPS endpoint in a top-level hooks[] payload.

200 OKWebhook de status de entrega — dados recebidos
{
  "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 de envio

  • timestamp

    segundos Unix, como uma string

Se você preferir não receber callbacks, faça polling em GET {base}/{channel}/hookInfo?messageId=<id> em vez disso. Na prática, a entrega frequentemente é 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 início frio exigem um modelo aprovado pela Meta.

Relacionado

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 de qualidade de serviço
O cenário envia ao cliente um modelo WhatsApp personalizado após uma interação de serviço, pedindo para avaliar a qualidade do serviço recebido.
Pesquisas & Feedback
WhatsApp Business API para pesquisa rápida com botão
Este cenário envia ao cliente um curto modelo personalizado de WhatsApp pedindo um feedback rápido.
Pesquisas & Feedback
WhatsApp Business API para solicitação de revisão pós-compra
O cenário envia ao cliente um modelo de WhatsApp personalizado após a compra, pedindo para avaliar o produto e compartilhar feedback.
Pesquisas & Feedback
WhatsApp Business API para solicitação de avaliação de serviço
O cenário envia ao cliente um modelo de WhatsApp personalizado após a conclusão do serviço, pedindo para avaliar a qualidade do que foi entregue.

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