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

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://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://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 · 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.

Tutorial · 22 de fev. de 2026 · 7 min

Como enviar mensagem WhatsApp via API em PHP

Integre WhatsApp ao seu projeto PHP, WordPress ou WooCommerce usando cURL puro — sem instalar bibliotecas. Tutorial com exemplos prontos para copiar e usar.

Tópicos:E-commerceAPI WhatsApp

Explore também

Casos 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
  • Comparativo
  • Trial 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