Skill de IA para API do WhatsAppMais
1msg official logo

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.

visão geral do caso de uso

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. A mensagem inclui o nome do cliente, o contexto da pesquisa e um breve lembrete para preencher o formulário. Um botão de URL estático abre o mesmo link da pesquisa do pedido original.

Modelo

Olá, {{1}}! {{2}}. {{3}} Por favor, complete a pesquisa — leva cerca de um minuto.

Complete a pesquisa
  • {{1}}
    nome do cliente
  • {{2}}
    tópico da pesquisa ou contexto (por exemplo, compra recente, caso de suporte encerrado, visita de serviço)
  • {{3}}
    Item aguardado ou instrução de lembrete (ex.: você ainda não terminou a pesquisa rápida — link abaixo)
  • “Complete a pesquisa”
    botão — fixo no modelo Meta
WhatsApp Business API for survey completion reminder

Quando usar isso

Utilize este cenário quando um cliente recebeu uma pesquisa de satisfação ou feedback, mas não a completou dentro da janela esperada e a equipe precisa enviar um lembrete pelo WhatsApp de forma compliant, em vez de uma mensagem manual de um agente ou outro e-mail. Isso se encaixa em follow-ups de CSAT ou NPS pós-interação, helpdesks lembrando os clientes de finalizar uma pesquisa de caso e agências conectando regras de lembrete do CRM ou de análises de produto.

Taxas de conclusão de pesquisas mais altas
O lembrete chega no WhatsApp com o nome, contexto da pesquisa e prompt de conclusão como três variáveis de corpo, para que o follow-up fique em um canal que o cliente já utiliza, em vez de um e-mail de pesquisa que eles ignoram após o primeiro pedido.
Acompanhamento em conformidade sem um chat aberto
O gatilho de lembrete envia um modelo aprovado quando a pesquisa ainda está pendente, de modo que o lembrete chega ao cliente mesmo quando não há conversa aberta e respostas em texto livre não são permitidas.
Sem mensagens de lembrete de agente manual
The workflow resolves the recipient phone and reminder fields, builds the template with three body variables and a static URL button, so agents do not retype survey context or chase incomplete responses by hand.
Contexto da pesquisa antes de tocar
O nome do cliente e o tópico da pesquisa aparecem no corpo da mensagem, para que o cliente saiba qual pesquisa pendente está finalizando antes de tocar no botão fixo Completar pesquisa que abre o formulário.
Entrega registrada para análise de acompanhamento
O resultado da entrega é registrado de volta no CRM ou na pilha de análises, enquanto a conclusão é rastreada no formulário vinculado, de modo que o desempenho do lembrete permaneça vinculado ao mesmo registro da pesquisa.

Como funciona

  1. Disparar

    O Como funciona do CRM ou da pesquisa dispara um lembrete quando a conclusão ainda está ausente após o limite.

    event · triggered

  2. Capturar evento

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

    phone: "+…"

  3. Construir & enviar

    Uma mensagem de modelo personalizado é 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 lembrete da pesquisa pelo WhatsApp com o contexto da solicitação pendente.

    delivered

  5. Status rastreado

    O resultado da entrega está registrado; a conclusão da pesquisa é monitorada fora do WhatsApp no formulário vinculado.

    status: "read"

WhatsApp Business API for survey completion reminder

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 WhatsApp · Como Aprovar 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_TOPIC="___"         # {{2}} topic or subject
TEST_AWAITEDITEM="___"         # {{3}} awaited item

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_AWAITEDITEM=$TEST_AWAITEDITEM"; 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}} awaited item → ${TEST_AWAITEDITEM}
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_AWAITEDITEM}" }
      ]
    }

  ]
}
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. Guarde 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 conectados a isso

A entrega em si chega mais tarde, como uma chamada de retorno separada. Registre um webhook (POST …/webhook) e a 1MSG envia atualizações de status para seu endpoint HTTPS em um hooks[] dados.

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 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 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 início frio no WhatsApp requerem um modelo aprovado pela Meta.

Relacionado

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

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