Uma prefeitura de cidade com 100 mil habitantes na região Sul recebe em média 500 ligações por dia em sua central de atendimento. Mais da metade são consultas simples: "meu IPTU venceu?", "alvará saiu?", "quando passa o caminhão de lixo na minha rua?". Cada ligação custa R$ 4,80 entre tempo de atendente, telefonia e infraestrutura. R$ 2.400 por dia em consultas que poderiam ser respondidas em 3 segundos por um sistema automatizado.
O WhatsApp tornou-se o canal preferido do cidadão brasileiro pra interagir com qualquer instituição — incluindo o setor público. Pesquisa do TIC Domicílios 2024 mostrou que 96% dos usuários conectados no Brasil têm WhatsApp instalado, contra 82% que usam app de banco e 41% que acessam portais governamentais. Onde o cidadão está, o serviço público precisa estar. Este guia mostra como prefeituras, secretarias e órgãos públicos estruturam atendimento automatizado via WhatsApp respeitando LGPD setor público (Lei 13.709) e ficando dentro do compliance de contratação.
Casos de uso priorizados em GovTech
Cada secretaria tem seu próprio fluxo, mas alguns padrões se repetem em prefeituras de todo porte:
- Notificação proativa: alvará pronto, IPTU vencendo, agendamento confirmado
- Consulta por CPF: protocolo de processo, situação cadastral, débitos
- Notificação de obras: rua bloqueada, falta d'água programada, troca de coleta
- Acessibilidade: envio de áudio com explicação para baixa alfabetização
- Encaminhamento: roteamento para secretaria correta com base em pergunta livre
Caso 1: Notificação de alvará pronto
Cidadão pediu alvará, sistema interno aprovou, antes ficava aguardando ele descobrir indo na prefeitura. Agora dispara WhatsApp.
import axios from "axios";
const ZAP = axios.create({
baseURL: "https://api.zap-api.tech/v1",
headers: { Authorization: `Bearer ${process.env.ZAP_TOKEN}` },
});
// Webhook do sistema interno (1Doc, Atende.Net, sistemas legados)
app.post("/webhook/sistema-interno", async (req, res) => {
res.status(200).send("ok");
const { evento, protocolo, cidadaoTelefone, cidadaoNome, secretaria } = req.body;
if (evento === "ALVARA_APROVADO") {
await ZAP.post(`/instances/${process.env.INSTANCE_ID}/messages`, {
to: cidadaoTelefone,
type: "text",
text: {
body: `Olá ${cidadaoNome}! Seu alvará (protocolo ${protocolo}) foi APROVADO ✅. Retire na ${secretaria} de seg a sex, 9h-16h, ou solicite envio digital respondendo "ENVIAR DIGITAL".`,
},
});
}
});
Caso 2: Consulta de protocolo por CPF
Cidadão manda mensagem com CPF, sistema responde com situação atualizada.
app.post("/webhook/zap", async (req, res) => {
res.status(200).send("ok");
const { type, instanceId, message } = req.body;
if (type !== "message.received") return;
const cpfMatch = message.body.match(/\d{3}\.?\d{3}\.?\d{3}-?\d{2}/);
if (!cpfMatch) return;
const cpf = cpfMatch[0].replace(/[\.\-]/g, "");
const protocolos = await db.query(
"SELECT protocolo, descricao, situacao, atualizado_em FROM protocolos WHERE cpf=$1 ORDER BY atualizado_em DESC LIMIT 5",
[cpf]
);
if (protocolos.rows.length === 0) {
return ZAP.post(`/instances/${instanceId}/messages`, {
to: message.from,
type: "text",
text: { body: "Não encontrei protocolos para esse CPF. Confira o número ou abra novo protocolo na prefeitura." },
});
}
const lista = protocolos.rows
.map((p) => `📋 ${p.protocolo} — ${p.descricao}\n Situação: ${p.situacao} (${p.atualizado_em.toLocaleDateString()})`)
.join("\n\n");
await ZAP.post(`/instances/${instanceId}/messages`, {
to: message.from,
type: "text",
text: { body: `Encontrei ${protocolos.rows.length} protocolos:\n\n${lista}` },
});
});
Caso 3: Acessibilidade via áudio
Para população com baixa alfabetização, áudio sintetizado entrega informação de forma muito mais acessível que texto. TTS (text-to-speech) integrado com a ZAP API:
import textToSpeech from "@google-cloud/text-to-speech";
import { uploadToS3 } from "./storage";
async function enviarAudio(telefone, texto) {
const client = new textToSpeech.TextToSpeechClient();
const [response] = await client.synthesizeSpeech({
input: { text: texto },
voice: { languageCode: "pt-BR", ssmlGender: "FEMALE" },
audioConfig: { audioEncoding: "OGG_OPUS" },
});
const audioUrl = await uploadToS3(response.audioContent, `audios/${Date.now()}.ogg`);
await ZAP.post(`/instances/${process.env.INSTANCE_ID}/messages`, {
to: telefone,
type: "audio",
audio: { url: audioUrl },
});
}
Caso 4: Notificação de obra ou interrupção de serviço
Rua vai ficar interditada por 3 dias para troca de tubulação. Antes, panfleto na porta (caro, lento, ignorado). Agora, mensagem geo-segmentada para celulares cadastrados naquele CEP.
const moradores = await db.query(`
SELECT telefone FROM cidadaos
WHERE cep IN ('80540-000', '80540-100', '80540-200')
AND opt_in_notificacao = true
`);
for (const m of moradores.rows) {
await ZAP.post(`/instances/${process.env.INSTANCE_ID}/messages`, {
to: m.telefone,
type: "text",
text: {
body: `🚧 Aviso da Prefeitura: Sua rua terá obra de troca de tubulação dias 5 a 7/06, das 8h às 17h. Pode haver falta d'água. Encha caixa antes. Mais info: prefeitura.gov.br/obras`,
},
});
}
LGPD no setor público
Setor público tem regras específicas na LGPD (artigos 23 a 32):
- Base legal "execução de políticas públicas": dispensa consentimento explícito para finalidades públicas (Art. 23, I)
- Obrigatoriedade de transparência: publicar Política de Privacidade no portal oficial
- DPO (Encarregado): obrigatório para órgãos públicos (Art. 41)
- Compartilhamento limitado: não pode passar dados de cidadão para empresas privadas sem base legal
Para WhatsApp, isso significa: notificações administrativas (alvará, IPTU, obras) podem usar base "obrigação legal" sem consentimento expresso. Campanhas de marketing/promoção exigem opt-in.
Compliance de contratação
Para contratar SaaS de WhatsApp, prefeitura tem 3 caminhos:
- Dispensa de licitação: valor abaixo de R$ 50 mil/ano (Art. 75 Lei 14.133/21)
- Adesão a Ata de Registro de Preços: usar ata de outro órgão que já licitou
- Pregão eletrônico: para volumes maiores, especifica RFP detalhada
SaaS deve aceitar nota de empenho e prazo de pagamento de até 30 dias úteis após atesto.
Armadilhas comuns em GovTech WhatsApp
Projetos de setor público têm particularidades que causam falhas diferentes das do setor privado:
- Número de celular desatualizado no cadastro: base de dados de cidadão do setor público frequentemente tem número desatualizado (cadastro de 5-10 anos atrás). Taxa de entrega inicial pode ser baixa. Planeje rotina de atualização cadastral via formulário web ou central 156.
- Falta de opt-in explícito: para campanha (não apenas notificação transacional), órgão público precisa base legal clara. Notificação de alvará pronto usa "obrigação legal"; campanha de vacinação usa "política pública de saúde". Documente a base antes de disparar.
- Múltiplos números de WhatsApp por secretaria: cidadão recebe mensagem de "Secretaria de Saúde" pelo número X, depois de "Prefeitura" pelo número Y, depois de "IPTU" pelo número Z. Fragmentação confunde e reduz confiança. Prefira número único de atendimento com roteamento interno por secretaria.
- Sem monitoramento de entrega: órgão dispara 30.000 mensagens e não sabe quantas chegaram. Configure webhook de status (
message.status) e log de entregas — é auditável e exigível por controlador público. - Bot sem escalada para humano: cidadão com situação complexa (dívida ativa contestada, processo administrativo) precisa de humano. Bot que não escala vira rejeição do serviço. Sempre tenha "falar com atendente" no menu.
Métricas de impacto para relatório de gestão
Gestor público precisa justificar investimento. Métricas que aparecem em relatório de gestão:
- Redução de ligações na central 156: meça volume de ligações 60 dias antes e 60 dias depois. Cada ligação desviada para WhatsApp tem custo menor.
- Taxa de notificação entregue: % de cidadãos notificados que confirmaram recebimento (reply ou botão). Benchmark: 65-75% em bases com opt-in recente.
- Tempo médio de agendamento: antes do WhatsApp (ligação → espera → confirmação): 15-40 min. Com WhatsApp automatizado: 2-3 min. Diferença quantificável em relatório.
- Satisfação do cidadão (NPS): pergunta simples 7 dias após atendimento. Serviços públicos que implementam WhatsApp com self-service bem-feito saem de NPS 22 para 51 em médio prazo.
FAQ
Como contratar via dispensa de licitação?
Para gastos abaixo de R$ 50 mil/ano (limite atualizado pela Lei 14.133/21), a contratação é direta via dispensa. Documento: termo de referência simplificado + 3 propostas de fornecedores + proposta vencedora justificada. Tempo médio de processo: 5-15 dias úteis.
Funciona com sistemas legados (1Doc, Atende.Net, IPM)?
Sim — qualquer sistema com API REST ou webhook. Para sistemas SEM webhook, polling de 5-15 minutos consultando "novos protocolos" funciona. Para sistemas que só geram arquivo CSV/XML, batch processor lê arquivo e dispara mensagens.
Como organizar interlocutor único quando há várias secretarias?
Duas opções: (a) bot principal recebe pergunta livre e roteia por palavra-chave ("alvará" → Obras, "IPTU" → Fazenda, "vacina" → Saúde); (b) cidadão escolhe secretaria via menu de buttons no início da conversa. Opção B tem onboarding mais claro mas exige cidadão entender estrutura interna — preferir A.
Cidadão pode usar WhatsApp pra denunciar irregularidade?
Pode, e é um caso de uso poderoso. Bot recebe denúncia, valida que tem mínimo de informação (texto + opcional foto/áudio), gera protocolo, encaminha pra ouvidoria. Anonimato é preservado se cidadão pedir — telefone é hash em vez de plaintext no protocolo público.
Há risco de segurança no WhatsApp para dados sensíveis?
WhatsApp tem criptografia ponta-a-ponta entre dispositivos. Para dados sensíveis (CPF, prontuário, processo), recomenda-se: (a) nunca enviar dados completos no body — apenas confirmação de status; (b) link assinado com expiração para o portal seguro; (c) auditoria de quem acessou cada mensagem (logs imutáveis).
Reduza ligações na sua central em 60%. A ZAP API atende prefeituras e órgãos públicos com SLA, contratação por dispensa e integração com sistemas legados. Criar conta grátis e teste o template de notificação proativa.