--- title: Agente de IA para WhatsApp com Express.js e Zavu description: Aprenda a receber webhooks do WhatsApp em uma API Express, verificar assinaturas e responder com agentes de IA gerenciados pela Zavu. date: 2025-12-23 author: Jennifer Villalobos locale: pt source: https://www.zavu.dev/pt/blog/whatsapp-ai-agents-express tags: Agentes IA, WhatsApp, Express, Node.js --- # Agente de IA para WhatsApp com Express.js e Zavu # Agente de IA para WhatsApp com Express.js e Zavu Express continua sendo uma escolha rapida para criar webhooks. Use-o com o AI Gateway da Zavu para liberar agentes inteligentes no WhatsApp sem lidar com SDKs de IA separados. ## Setup ```bash mkdir whatsapp-agent && cd whatsapp-agent npm init -y bun install @zavudev/sdk express dotenv ``` Estrutura: ``` src/ ├── app.js ├── webhook.js └── zavu.js .env ``` ## Cliente Zavu (`src/zavu.js`) ```javascript import Zavudev from '@zavudev/sdk' export const zavu = new Zavu({ apiKey: process.env.ZAVUDEV_API_KEY }) ``` ## Webhook (`src/webhook.js`) ```javascript import crypto from 'crypto' import { zavu } from './zavu.js' export function verifySignature(payload, signature) { const digest = crypto .createHmac('sha256', process.env.ZAVU_WEBHOOK_SECRET) .update(payload) .digest('hex') return crypto.timingSafeEqual(Buffer.from(digest), Buffer.from(signature)) } ``` `src/app.js`: ```javascript import express from 'express' import bodyParser from 'body-parser' import { verifySignature } from './webhook.js' import { zavu } from './zavu.js' const app = express() app.use(bodyParser.json({ verify: (req, res, buf) => (req.rawBody = buf) })) app.post('/webhooks/whatsapp', async (req, res) => { const signature = req.headers['x-zavu-signature'] if (!verifySignature(req.rawBody, signature)) { return res.status(401).send('invalid signature') } const event = req.body if (event.type === 'message.received') { await zavu.senders.agent.reply({ senderId: process.env.ZAVU_SENDER_ID, contactId: event.data.contact.id, messageId: event.data.message.id }) } res.json({ status: 'ok' }) }) app.listen(process.env.PORT || 3000) ``` ## Criando o agente Via dashboard (Senders → AI Agent) ou codigo: ```javascript await zavu.senders.agent.create({ senderId: process.env.ZAVU_SENDER_ID, name: 'Atendente Express', provider: 'zavu', model: 'gpt-4o-mini', systemPrompt: `Voce e um atendente Zavu. Seja direto e gentil.`, includeContactMetadata: true, contextWindowMessages: 10, enabled: true }) ``` ## Modelos suportados | Provider | Modelos | |----------|---------| | OpenAI | gpt-4o, gpt-4o-mini | | Anthropic | claude-3-5-sonnet, claude-3-opus | | Google | gemini-pro | | Mistral | mistral-large | ## Recursos extras - **Knowledge Bases**: anexar docs (onboarding, politicas) ao agente. - **Ferramentas HTTP**: agentes podem chamar endpoints seguros que voce expor. - **Analytics**: painel mostra tempo medio de resposta, sentimentos, execucoes. - **Fallback**: defina SMS/email como backup quando o cliente estiver fora da janela de 24h. ## Deploy - Use Railway, Render ou Fly.io - Configure variaveis (`ZAVUDEV_API_KEY`, `ZAVU_WEBHOOK_SECRET`, `ZAVU_SENDER_ID`) - Habilite HTTPS (Proxy/CDN) e rotacione o segredo periodicamente Pronto! Seu agente Express responde clientes no WhatsApp com IA de ultima geracao. [Agende uma demo](/schedule?service=demo) para ver workflows mais avancados.