Automação de WhatsApp para solicitações de fossa séptica em SP: Guia Técnico

Como implementar automação no WhatsApp Business API para gerenciar solicitações de fossa séptica em São Paulo com WordPress e integrações nativas.

Como transformar o caos de mensagens no WhatsApp em um fluxo previsível de agendamentos para limpeza de fossa séptica? Empresas de saneamento em São Paulo recebem dezenas de solicitações diárias — muitas fora de horário, incompletas ou duplicadas — enquanto a equipe perde tempo copiando dados para planilhas. A automação via WhatsApp Business API resolve isso, mas exige arquitetura sólida no WordPress para escalar sem violar políticas do Meta ou a LGPD.

O cenário típico: cliente manda “preciso limpar fossa”, bot responde com template aprovado pedindo endereço e tipo de imóvel, valida CEP na Grande SP, agenda no calendário da equipe e notifica técnico via push. Tudo auditável, com handoff humano quando a conversa sai do script. Abaixo, detalhamos a implementação profissional, do registro do número ao dashboard de métricas.

Registro e verificação do número no Meta Business Manager

O primeiro passo burocrático costuma ser o maior gargalo. A conta WABA exige CNPJ ativo, site com política de privacidade visível e número de telefone fixo ou móvel dedicado — não pode ser o mesmo do atendimento pessoal. No Meta Business Manager, cadastre a empresa, adicione o número e submeta para verificação. O Meta pode solicitar vídeo do local físico ou conta de água/luz em nome da empresa. Aprovação leva de 24h a 5 dias úteis. Enquanto aguarda, configure o ambiente de desenvolvimento no WordPress usando a sandbox do Meta (número de teste) para validar webhooks e templates.

Dica prática: se a empresa atende múltiplas cidades, registre um número por DDD principal (11, 19, 12) para aumentar taxa de entrega e confiança do cliente. Cada número exige verificação separada, mas compartilha a mesma conta WABA.

Templates de mensagem (HSM): estrutura e aprovação

Mensagens proativas fora da janela de 24h exigem templates aprovados (Highly Structured Messages). Para fossa séptica, recomendo quatro templates iniciais:

  1. Boas-vindas + coleta: “Olá {{1}}! Recebemos sua solicitação de limpeza de fossa. Para agendar, precisamos do endereço completo (rua, número, bairro, CEP) e tipo de imóvel (residencial/comercial/condomínio).”
  2. Confirmação de agendamento: “Agendado para {{1}} às {{2}}. Técnico {{3}} fará o serviço. Valor estimado: {{4}}. Confirma? Responda SIM ou NAO.”
  3. Lembrete 24h antes: “Lembrete: amanhã {{1}} às {{2}} nossa equipe fará limpeza de fossa em {{3}}. Alguém precisará estar no local para liberar acesso.”
  4. Pós-serviço + NPS: “Serviço concluído em {{1}}. Avalie de 1 a 5: {{2}}. Dúvidas? Responda aqui.”

Variáveis {{1}}, {{2}}… são preenchidas via API no momento do envio. Submeta templates em português (BR) com categoria “UTILITY”. O Meta costuma aprovar em minutos se o texto não tiver caráter promocional. Guarde os template names e namespaces para usar no código.

Webhook seguro no WordPress: recepção e validação

Crie endpoint REST customizado no tema ou plugin: POST /wp-json/minha-api/v1/whatsapp/webhook. Valide assinatura X-Hub-Signature-256 com App Secret para garantir origem legítima. Responda 200 OK em < 1s para evitar reentrega do Meta. Processe payload assíncrono via wp_schedule_single_event ou fila Redis/RabbitMQ se volume > 500 msgs/dia.

add_action( 'rest_api_init', function() {
    register_rest_route( 'minha-api/v1', '/whatsapp/webhook', [
        'methods'  => 'POST',
        'callback' => 'processar_webhook_whatsapp',
        'permission_callback' => '__return_true',
    ] );
} );

function processar_webhook_whatsapp( WP_REST_Request $request ) {
    // Validar assinatura HMAC SHA256
    $assinatura = $request->get_header( 'X-Hub-Signature-256' );
    $body       = $request->get_body();
    $esperado   = 'sha256=' . hash_hmac( 'sha256', $body, get_option( 'whatsapp_app_secret' ) );
    if ( ! hash_equals( $esperado, $assinatura ) ) {
        return new WP_REST_Response( [ 'erro' => 'Assinatura inválida' ], 401 );
    }
    // Agendar processamento assíncrono
    wp_schedule_single_event( time(), 'processar_mensagem_whatsapp', [ json_decode( $body, true ) ] );
    return new WP_REST_Response( [ 'status' => 'recebido' ], 200 );
}

No hook processar_mensagem_whatsapp, parseie entry[0].changes[0].value.messages[0]. Extraia from (telefone cliente), text.body (mensagem), timestamp. Se for primeira mensagem do cliente (fora janela 24h), só pode responder com template aprovado — use enviar_template_whatsapp( $telefone, 'boas_vindas_coleta', [ $nome_cliente ] ).

Validação de endereço e roteamento geográfico

São Paulo tem 96 distritos e CEPs que não cobrem áreas rurais ou ocupações irregulares. Integre API ViaCEP ou Google Places Autocomplete no fluxo: quando cliente envia CEP, valide se está na área de atendimento. Se fora, responda template educativo: “Atendemos apenas Grande SP (lista de cidades). Indique endereço dentro da área ou ligue para (11) 9999-9999.”

Para roteamento interno, classifique por região (Zona Norte, Sul, Leste, Oeste, Centro, ABC, Guarulhos, Osasco) e atribua à equipe mais próxima. Armazene no custom post type solicitacao_fossa com meta fields: regiao, tecnico_atribuido, status (nova, agendada, em_andamento, concluida, cancelada).

Handoff bot → humano: quando e como transferir

Defina gatilhos claros de escalação: cliente digita “falar com atendente”, “reclamação”, “urgente”, ou bot não entende após 2 tentativas. Use endpoint POST /conversations/{conversation_id}/assign da API Graph para atribuir a atendente específico. No WordPress, crie interface simples no admin: lista de conversas aguardando humano, botão “Assumir” que dispara atribuição via API.

Durante handoff, passe contexto: “Cliente {{nome}} no {{endereco}} precisa limpeza fossa 1000L. Já coletamos dados. Aguarda confirmação de horário.” Isso evita repetição e melhora experiência. Configure away message automático fora do horário comercial: “Nosso horário é 7h-19h. Deixe sua solicitação que retornamos no próximo dia útil.”

Conformidade LGPD: consentimento, logs e exclusão

Cada interação gera dado pessoal. No primeiro template, inclua botão “Aceito receber atualizações via WhatsApp” (quick reply). Armazene timestamp + IP + user agent do consentimento em tabela customizada wp_whatsapp_consentimentos.

Implemente:

  • Retenção máxima 2 anos após último contato.
  • Job cron diário (wp_cron) para anonimizar registros expirados: apague mensagem, telefone, endereço; mantenha apenas solicitacao_id, data, status para métricas agregadas.
  • Endpoint DELETE /wp-json/minha-api/v1/whatsapp/dados/{telefone} para exercício de direito do titular (art. 18 LGPD).
  • Log de auditoria imutável (append-only) com wp_insert_post em post type whatsapp_auditoria — quem acessou, quando, qual ação.

Dashboard de métricas no admin WordPress

Desenvolva página customizada no admin (add_menu_page) com grids AJAX:

  • Conversas hoje: total, novas, agendadas, concluídas.
  • Tempo médio 1ª resposta (meta: < 5 min em horário comercial).
  • Taxa conversão: agendamentos / conversas iniciadas.
  • Top 5 bairros com mais solicitações (heatmap simples via Chart.js).
  • Alertas: templates rejeitados nas últimas 24h, webhooks com falha, números próximos de limite de taxa.

Use WP_List_Table para tabela paginada de solicitações com filtros por data, região, status, técnico. Exportação CSV para gestão operacional.

Testes de falha e runbook de incidentes

Simule cenários em staging:

  1. Webhook timeout (> 1s): Meta reentrega 3x em 20 min. Garanta idempotência via message_id único processado.
  2. Template rejeitado: Meta retorna erro 131049. Logue, alerte via Slack/email, pare envios até corrigir texto.
  3. Rate limit (erro 429): Implemente exponential backoff + fila persistente. Monitore x-rate-limit-remaining no header.
  4. Número bloqueado por qualidade: Meta desativa se Quality Rating cai para “Low” por 7 dias. Runbook: pausar automação, auditar últimas 500 msgs, corrigir template/opt-out, solicitar revisão no Business Manager.

Documente tudo em RUNBOOK_WHATSAPP.md no repositório: contatos de suporte Meta, links para Business Manager, credenciais vault (Bitwarden/1Password), checklist de rollback.

Integração com área do cliente e histórico

Para clientes recorrentes (condomínios, indústrias), vincule número WhatsApp ao user WordPress na área restrita. Ao receber mensagem, busque user_id por meta_key = '_whatsapp_phone'. Exiba no painel do cliente: próximas manutenções, histórico de serviços, laudos técnicos, faturas. Isso transforma o WhatsApp em canal de notificação, não só entrada de lead.

Veja como estruturamos essa área restrita em área restrita para gestão de condomínios e empresas em São Paulo e como o formulário de emergência coleta dados iniciais em formulário de emergência para limpeza de fossa séptica 24 horas. Para métricas de conversão específicas do nicho, analytics de conversão para leads de desentupimento no Mandaqui detalha funis e eventos GA4.

A automação bem-feita reduz 70% do trabalho manual de triagem, elimina agendamentos duplicados e dá visibilidade real à operação. Comece pequeno: um número, quatro templates, webhook básico. Meça, itere, adicione handoff, dashboard, LGPD. O WhatsApp vira sistema de gestão, não apenas chat. Para execução imediata em campo, conte com limpeza de fossa séptica Sampa como parceiro operacional na Grande São Paulo.

Checklist prático

0 de 9 concluídos

Perguntas frequentes

É necessário ter conta verificada no WhatsApp Business API para automação?

Sim, a automação profissional exige conta verificada no WhatsApp Business API (WABA) com número aprovado pelo Meta. Contas pessoais ou Business App não suportam webhooks e templates escaláveis para volume comercial.

Como tratar LGPD ao coletar dados via WhatsApp para serviços de fossa?

Armazene apenas dados essenciais (nome, endereço, tipo de serviço) com consentimento explícito via template aprovado. Implemente política de retenção automática e exclusão sob demanda no painel WordPress, registrando logs de auditoria.

Qual a melhor forma de rotear solicitações urgentes para equipe de plantão?

Use webhooks para classificar palavras-chave como 'emergência', 'vazamento' ou 'transbordamento' e dispare notificação push/Slack para equipe de plantão via plugin de integração, enquanto respostas padrão seguem fila normal.

Posso usar o mesmo número para atendimento humano e bot simultaneamente?

Sim, configure handoff no fluxo: o bot tria e coleta dados, depois transfere para atendente humano via 'Assign Conversation' na API. O número permanece único, mas a gestão de sessão separa automação de humano.

Como evitar bloqueio do número por spam em campanhas de manutenção preventiva?

Envie apenas templates aprovados (HSM) para contatos que optaram por receber avisos. Respeite limites de taxa da API, use variáveis dinâmicas e ofereça opt-out claro em cada mensagem. Monitore qualidade diariamente.

Quais plugins WordPress facilitam essa integração sem código pesado?

Plugins como 'WP Webhook', 'FluentCRM' ou 'AutomatorWP' conectam formulários Gravity Forms/Contact Form 7 à API do WhatsApp via webhook nativo. Para casos complexos, desenvolvimento customizado com 'wp_remote_post' garante controle total.