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

WhatsApp Business API para resposta de sessão — preços

Esse cenário envia uma mensagem de texto livre pelo WhatsApp com sendMessage dentro da janela de atendimento de 24 horas, após o cliente perguntar sobre Preços.

Visão geral do caso de uso

Este cenário envia uma mensagem de texto livre pelo WhatsApp com sendMessage dentro da janela de atendimento ao cliente de 24 horas após o cliente perguntar quanto custa um produto ou serviço.

Exemplo de modelo

Olá,{{1}}! O preço para «{{2}}» é{{3}}. Se você precisar de um orçamento personalizado ou desconto por volume, responda aqui e nosso gerente irá ajudar.

  • {{1}}
    nome do cliente
  • {{2}}
    nome do produto ou serviço
  • {{3}}
    preço formatado com moeda
WhatsApp Business API for session reply — price inquiry

Quando usar isso?

Alcance este cenário quando um potencial cliente perguntar quanto custa um produto ou serviço em uma conversa aberta no WhatsApp e você precisar da cotação antes que eles sigam em frente. Isso se aplica a equipes de vendas que puxam preços ao vivo do CRM ou de uma API de catálogo, pequenas empresas que lidam com solicitações de orçamento no chat, e agências que conectam lojas de clientes a respostas de sessão em vez de templates de início frio.

Preços atuais, não modelos desatualizados
Três variáveis de corpo carregam o nome do cliente, o nome do produto e o preço formatado da sua busca no backend, para que o orçamento reflita o preço atual da lista em vez de um valor fixo do template.
Respostas mais rápidas do que a pesquisa manual
A pergunta sobre o preço de entrada chega via webhook, seu backend resolve o SKU e o preço de lista, e sendMessage é acionado dentro da sessão aberta — nenhum representante copia números de uma planilha.
O diálogo permanece aberto para negociação.
A mensagem convida o cliente a responder para orçamentos personalizados ou descontos por volume no mesmo tópico, assim perguntas de acompanhamento não requerem um novo início de template.
Menos conversas paradas sobre preços
O nome do produto e o valor formatado aparecem no chat do cliente assim que sua fonte de preços retorna um valor, para que o prospect possa fazer perguntas de acompanhamento ou prosseguir na mesma sessão, em vez de esperar por um representante.

Fluxo de Trabalho

  1. Status rastreado

    Uma mensagem de cliente inbound com uma pergunta sobre preços chega via webhook.

    status: "read"

  2. Captura de evento

    Seu backend resolve o SKU do produto e o preço atual da lista.

    phone: "+…"

  3. Construa e envie

    Uma mensagem de texto da sessão envia a citação com o nome do produto e o valor formatado.

    POST /sendMessage

  4. Entregue

    O cliente continua o diálogo para descontos ou finalização da compra na mesma sessão.

    delivered

WhatsApp Business API for session reply — price inquiry

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. Janela de sessão aberta 24 horas · Como funciona a janela de 24 horas
  4. Consentimento do cliente · Como Gerenciar o Consentimento dos Clientes
  5. Endpoint de webhook · Como Configurar Webhooks

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)



# === Test data ===
TEST_PHONE="___"                 # client phone in international format · requires open 24-hour session window
TEST_CUSTOMERNAME="___"         # {{1}} customer name
TEST_PRODUCTORSERVICENAME="___"         # {{2}} product or service name
TEST_PAYMENTAMOUNT="___"         # {{3}} payment amount

PHONE_NORM="$(printf '%s' "$TEST_PHONE" | tr -cd '0-9')"

for pair in "CHANNEL_ID=$CHANNEL_ID" "API_TOKEN=$API_TOKEN" "TEST_PHONE=$TEST_PHONE" \
            "TEST_CUSTOMERNAME=$TEST_CUSTOMERNAME" \
            "TEST_PRODUCTORSERVICENAME=$TEST_PRODUCTORSERVICENAME" \
            "TEST_PAYMENTAMOUNT=$TEST_PAYMENTAMOUNT"; 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}/sendMessage"

read -r -d '' PAYLOAD <<JSON || true
{
  "phone": "${PHONE_NORM}",
  "body": "Hello, Alexey! The price for «Premium Plan (annual)» is 49 900 RUB. If you need a custom quote or volume discount, reply here and our manager will help."
}
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": true1MSGaceitoA mensagem para envio ainda não chegou ao telefone do cliente.idcampowamid.…para correlacionar os retornos de entrega.

200 OKResposta
{
  "sent": true,
  "id": "wamid.HBgLMzgwNjM5...",
  "message": "Message accepted for delivery"
}
  • sent

    Aceito para envio.nãoainda no telefone do cliente

  • id

    Armazene isso; retornos de entrega.hookInfofocam nisso

A entrega em si chega mais tarde, como um callback separado. Registre um webhookPOST …/webhook) e 1MSG envia atualizações de status para o seu endpoint HTTPS em um nível superiorhooks[]carga.

200 OKWebhook de status de entrega — payload recebido
{
  "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.idretornado pela chamada de envio

  • timestamp

    Segundos Unix, como uma string

Se você preferir não receber retornos de chamada, cancele.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 ela.

Erros comuns

StatusRespostaCausa
200Message was not sent: empty bodyNo body in the request.
200Message was not sent: provide chatId, phone, bsuid, or usernameNo recipient the channel could resolve.
200wrong fileThe media could not be fetched or uploaded — not a reachable URL, not valid base64.
403access deniedThe token is wrong, or belongs to a different channel than the URL.
200Message was not sent: filenamesendFile called without a filename, so the media has no extension to send.

Perguntas Frequentes

Não — este cenário utiliza uma mensagem de sessão dentro da janela de atendimento ao cliente de 24 horas.

Relacionado

Engajamento de Leads & Conversão
WhatsApp Business API para resposta a solicitação de cliente
Esse cenário envia uma mensagem de texto livre pelo WhatsApp com sendMessage dentro da janela de atendimento de 24 horas após o cliente perguntar.
Engajamento de Leads & Conversão
WhatsApp Business API para resposta de sessão sobre disponibilidade
Este cenário envia uma mensagem pelo WhatsApp com sendMessage dentro da janela de atendimento de 24 horas, após o cliente perguntar se um item está disponível.
Engajamento de Leads & Conversão
WhatsApp Business API para suporte à decisão de compra
Este cenário envia um modelo de WhatsApp personalizado para um cliente potencial enquanto ele ainda está decidindo.
Engajamento de Leads & Conversão
WhatsApp Business API para lembrete de acompanhamento de propostas
O cenário envia ao prospect um modelo de mensagem personalizada pelo WhatsApp, lembrando-o de revisar a proposta comercial.
Engajamento de Leads & Conversão
WhatsApp Business API para catálogo de produtos interativo
Este cenário envia uma lista interativa com sendList durante a janela de sessão de 24 horas.
Engajamento de Leads & Conversão
WhatsApp Business API para consulta antes da compra
O cenário envia ao cliente uma mensagem de template personalizada pelo WhatsApp, convidando-o para uma consulta pré-compra.
Engajamento de Leads & Conversão
WhatsApp Business API para notificação de novos leads
O cenário envia um template personalizado de WhatsApp para o gerente de vendas quando um novo lead é capturado.
Engajamento de Leads & Conversão
WhatsApp Business API para qualificação de leads.
Esse caso de uso envia um novo lead um modelo de WhatsApp com uma saudação personalizada: a mensagem substitui o nome do lead e o contexto do produto.

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