ZAP-API
PreçosCasos de UsoBlogDocsLogin
Começar grátis
  1. Blog
  2. Chatbot WhatsApp com IA: passo a passo com código (2026)
Tutorial

Chatbot WhatsApp com IA: passo a passo com código (2026)

Integre ChatGPT ao WhatsApp via API REST: receba a mensagem no webhook, chame a OpenAI e devolva a resposta em segundos. Código Node.js funcional incluso. Atendimento automático 24h sem escrever resposta manualmente.

06 de junho de 2026·10 min de leitura·Equipe Editorial ZAP-API
Chatbot WhatsApp com IA: passo a passo com código (2026)

Criar um chatbot WhatsApp com IA não é mais coisa de empresa grande. Com a ZAP-API e a OpenAI, você monta um assistente virtual em menos de uma hora — que responde clientes 24h, qualifica leads e resolve dúvidas sem intervenção humana.

O que você vai construir

Um chatbot WhatsApp que:

  • Recebe mensagens dos seus clientes em tempo real
  • Processa com ChatGPT (GPT-4o-mini — rápido e barato)
  • Responde automaticamente em segundos
  • Mantém contexto da conversa (memória por sessão)
  • Conhece seu produto/serviço via system prompt

Pré-requisitos

  • Node.js 18+
  • Conta na ZAP-API (trial 7 dias, sem cartão)
  • Chave de API da OpenAI em platform.openai.com

Passo 1: Instalar dependências

npm install express axios openai dotenv

Passo 2: Variáveis de ambiente

# .env
ZAP_TOKEN=tk_seu_token_aqui
ZAP_INSTANCE=inst_seu_id_aqui
OPENAI_API_KEY=sk-sua-chave-openai
PORT=3000

Passo 3: Módulo ZAP-API

// zap.js
const axios = require('axios');

const api = axios.create({
  baseURL: 'https://api.zap-api.tech/v1',
  headers: { Authorization: 'Bearer ' + process.env.ZAP_TOKEN }
});

async function responder(phone, texto) {
  return api.post(
    '/instances/' + process.env.ZAP_INSTANCE + '/send',
    { phone, type: 'text', body: texto }
  );
}

module.exports = { responder, api };

Passo 4: Motor de IA com memória de conversa

// ia.js
const OpenAI = require('openai');

const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });

// Histórico por telefone (em produção, use Redis ou banco)
const conversas = new Map();

// Personalize este prompt para o seu negócio
const SYSTEM_PROMPT =
  'Você é a Sophia, assistente virtual da Loja XYZ. ' +
  'Ajude clientes com dúvidas sobre produtos, preços e prazos de entrega. ' +
  'Seja cordial, objetivo e responda sempre em português. ' +
  'Horário de atendimento humano: segunda a sexta, 9h às 18h. ' +
  'Se não souber responder, direcione para o WhatsApp humano: (11) 99999-8888.';

async function processarMensagem(phone, mensagemUsuario) {
  if (!conversas.has(phone)) {
    conversas.set(phone, [
      { role: 'system', content: SYSTEM_PROMPT }
    ]);
  }

  const historico = conversas.get(phone);
  historico.push({ role: 'user', content: mensagemUsuario });

  // Limitar histórico: system + últimas 20 mensagens
  if (historico.length > 21) {
    conversas.set(phone, [historico[0], ...historico.slice(-20)]);
  }

  const response = await openai.chat.completions.create({
    model: 'gpt-4o-mini',
    messages: historico,
    max_tokens: 500,
    temperature: 0.7
  });

  const resposta = response.choices[0].message.content;
  historico.push({ role: 'assistant', content: resposta });

  return resposta;
}

module.exports = { processarMensagem };

Passo 5: Servidor webhook

// server.js
require('dotenv').config();
const express = require('express');
const { responder } = require('./zap');
const { processarMensagem } = require('./ia');

const app = express();
app.use(express.json());

app.post('/webhook', async (req, res) => {
  // Responder 200 imediatamente — nunca deixar a ZAP API aguardar
  res.json({ ok: true });

  const { event, data } = req.body;

  // Processar apenas mensagens recebidas de clientes (não as enviadas por você)
  if (event !== 'message.received' || data.fromMe) return;

  try {
    const respostaIA = await processarMensagem(data.phone, data.body);
    await responder(data.phone, respostaIA);
  } catch (err) {
    console.error('Erro no chatbot:', err.message);
  }
});

app.listen(process.env.PORT, () => {
  console.log('Chatbot rodando na porta ' + process.env.PORT);
});

Passo 6: Registrar o webhook na ZAP-API

curl -X PUT https://api.zap-api.tech/v1/instances/INSTANCE_ID/webhook \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://seu-servidor.com/webhook",
    "secret": "um-secret-forte-aqui"
  }'

Não tem servidor público ainda? Use o ngrok para expor seu localhost durante o desenvolvimento:

npx ngrok http 3000
# Use a URL gerada: https://xxxx.ngrok-free.app

Personalizando o chatbot para o seu negócio

O segredo está no SYSTEM_PROMPT. Inclua:

  • Nome e personalidade: "Você é a Bia, assistente da Moda Express"
  • Produtos e preços: lista dos principais produtos e valores
  • FAQ: prazo de entrega, formas de pagamento, política de troca
  • Tom de voz: formal ou descontraído, com ou sem emojis
  • Limite do bot: quando e como transferir para um humano

Exemplo para e-commerce de moda:

const SYSTEM_PROMPT =
  'Você é a Bia, assistente da Moda Express. ' +
  'Produtos: roupas femininas e masculinas, tamanhos P ao GG. ' +
  'Frete grátis acima de R$199. Prazo de entrega: 3-7 dias úteis. ' +
  'Troca: 30 dias após recebimento, produto sem uso. ' +
  'Pagamento: cartão (12x sem juros), Pix e boleto. ' +
  'Para falar com humano: https://wa.me/5511999998888';

Enviar imagem quando o cliente pedir produto

const { api } = require('./zap');

async function enviarImagem(phone, imageUrl, legenda) {
  return api.post(
    '/instances/' + process.env.ZAP_INSTANCE + '/send',
    { phone, type: 'image', mediaUrl: imageUrl, caption: legenda }
  );
}

// Detectar pedido de imagem na IA e enviar
app.post('/webhook', async (req, res) => {
  res.json({ ok: true });
  const { event, data } = req.body;
  if (event !== 'message.received' || data.fromMe) return;

  const resposta = await processarMensagem(data.phone, data.body);

  // Se a IA mencionar um produto com imagem cadastrada
  if (resposta.includes('[IMAGEM:')) {
    const match = resposta.match(/[IMAGEM:(.*?)]/);
    if (match) {
      await enviarImagem(data.phone, match[1], resposta.replace(match[0], '').trim());
      return;
    }
  }

  await responder(data.phone, resposta);
});

Deploy gratuito (Railway ou Render)

# package.json — adicione o script de start
{
  "scripts": {
    "start": "node server.js"
  }
}

# Railway (gratuito até $5/mês de uso):
# 1. Conecte o repositório GitHub no Railway
# 2. Adicione as variáveis de ambiente no painel
# 3. Deploy automático a cada git push

Resultado esperado

Com esse setup você tem:

  • Atendimento automático 24/7 no WhatsApp
  • Custo de ~R$0,001 por mensagem (GPT-4o-mini)
  • Respostas inteligentes e contextuais
  • Escala para centenas de conversas simultâneas

Conclusão

Um chatbot WhatsApp com IA estava reservado para grandes empresas. Com a ZAP-API (a partir de R$29/mês*) e o GPT-4o-mini (frações de centavo por mensagem), qualquer negócio pode ter um assistente virtual inteligente funcionando ainda hoje.

Criar instância grátis e testar agora →

Experimente a ZAP-API gratuitamente

7 dias de trial sem precisar de cartão. A partir de R$29/mês*.

Criar instância grátis
EE
Equipe Editorial ZAP-APIRevisão técnica

Desenvolvedores e especialistas em integrações WhatsApp. Todo conteúdo passa por revisão técnica para garantir precisão e aplicabilidade.

Ver perfil completoDocumentaçãoTrial grátis

Leia também

Tutorial · 29 de jun. de 2026 · 8 min

Como integrar Webhook do WhatsApp em Node.js

Guia completo para integrar webhooks WhatsApp em Node.js. Passo a passo com código pronto. Comece grátis na ZAP-API.

Tutorial · 12 de jun. de 2026 · 12 min

Tipos de mensagem do WhatsApp via API: enquete, localização, contato, evento e mais

Catálogo completo dos tipos de mensagem da API de WhatsApp com o corpo JSON exato e exemplos prontos: texto, mídia, enquete (poll), localização, contato, evento, link e figurinha.

Tutorial · 06 de jun. de 2026 · 8 min

Enviar mensagem WhatsApp via API em Node.js: exemplo funcional (2026)

Um fetch + JSON e sua mensagem chega no WhatsApp em menos de 10 minutos. Tutorial com exemplos de texto, imagem, áudio e webhook para receber respostas — sem instalar SDK.

Tutorial · 23 de fev. de 2026 · 7 min

Como enviar mensagem WhatsApp via API em Python

Guia prático para integrar WhatsApp ao seu projeto Python usando requests. Envie texto, imagens e documentos, receba mensagens com Flask e automatize alertas e notificações.

Tópicos:E-commerceAPI WhatsApp

Explore também

API WhatsApp grátisTeste 7 dias, sem cartãoAutomação WhatsAppAutomatize via REST APIAPI não oficialSem aprovação da MetaCasos de usoWhatsApp API por segmentoComparativoZAP-API vs alternativasPreçosPlanos e o que está inclusoGlossárioTermos técnicos de WhatsApp API
ZAP-API

API REST para WhatsApp com webhooks assinados, Meta Pixel/CAPI e compliance LGPD. Sem aprovação da Meta.

Status operacional🇧🇷 Feito no Brasil

Produto

  • Preços
  • Casos de uso
  • Automação WhatsApp
  • API não oficial
  • Comparativo
  • API WhatsApp grátis
  • Dashboard

Recursos

  • Documentação
  • Blog
  • Glossário
  • RSS Feed

Empresa

  • Sobre
  • Imprensa
  • Termos de uso
  • Privacidade
  • Criar conta
  • Login

Contato

  • [email protected]
  • [email protected]
  • Resposta em até 24h úteis
© 2026 ZAP-API — Todos os direitos reservados·CNPJ 42.130.949/0001-56·Termos·Privacidade

Desenvolvido por PreviusIA