App gerado por IA no navegador
WhatsApp no Bolt: Secrets do banco, função de servidor e checagem antes do envio
O Bolt gera e publica apps a partir de conversa. A documentação de suporte do Bolt (lida em 11/11/2026) descreve a aba Secrets do banco: o valor fica disponível apenas para funções de servidor, não é exibido de novo depois de salvo e não é escrito nos arquivos do projeto nem no site publicado. Esse é o cofre certo para a chave da ZapZap.
Atualizado em
Por que conectar
Você pede ao Bolt um formulário de contato, um painel de pedidos ou um lembrete de consulta. A parte que fala com o WhatsApp precisa rodar no servidor. O fluxo mais seguro, e o que este exemplo mostra, é checar com POST /chat/check se o número tem WhatsApp antes de enviar, o que evita erro e envio perdido. A ZapZap conecta números por um canal não oficial: o WhatsApp pode limitar ou bloquear qualquer número, então ritmo, consentimento e aquecimento contam. São R$15 por número ativo/mês, pré-pago, sem cobrança por mensagem, e você começa com crédito de boas-vindas ao verificar o telefone, sujeito à campanha vigente.
Passo a passo
- 1
Conecte um banco ao projeto
Na documentação, a aba Secrets exige um banco conectado ao projeto. Conecte o banco antes de continuar.
- 2
Salve as chaves em Secrets
Clique no ícone do banco no menu superior, abra Secrets, e salve ZAPZAP_API_KEY, ZAPZAP_API_SECRET e ZAPZAP_INSTANCE_ID. O nome é sensível a maiúsculas e minúsculas. Em conta individual só o dono vê os secrets; em conta de equipe, dono, co-donos e administradores. Chaves em Settings > API de app.zapzapapi.com.
- 3
Peça a função de servidor
Prompt: "Crie uma função de servidor que recebe number e text, chama POST /chat/check da ZapZap com numbers: [number], e só se o número existir chama POST /send/text. Leia ZAPZAP_API_KEY, ZAPZAP_API_SECRET e ZAPZAP_INSTANCE_ID dos secrets. O front só chama essa função."
- 4
Revise o que o Bolt gerou
Procure por três erros comuns: chave escrita no código, chamada feita pelo componente do front e envio sem validar o número. Corrija pedindo ao Bolt, e compare com o exemplo desta página.
- 5
Teste com um número seu e olhe o status da instância
Chame a função com o seu telefone, confira a resposta e consulte GET /{instanceId}/instance/status. Se a instância estiver desconectada, reconecte pelo QR code no painel.
Exemplo
// Server function (Deno edge function): check the number first, then send. Secrets: ZAPZAP_API_KEY, ZAPZAP_API_SECRET, ZAPZAP_INSTANCE_ID
const BASE = "https://api.zapzapapi.com/api/v1/" + Deno.env.get("ZAPZAP_INSTANCE_ID");
const headers = {
"Content-Type": "application/json",
"x-api-key": Deno.env.get("ZAPZAP_API_KEY") ?? "",
"x-api-secret": Deno.env.get("ZAPZAP_API_SECRET") ?? "",
};
Deno.serve(async (req: Request) => {
const { number, text } = await req.json();
const check = await fetch(BASE + "/chat/check", { method: "POST", headers, body: JSON.stringify({ numbers: [number] }) });
if (!check.ok) return new Response("check failed: " + check.status, { status: 502 });
const found = JSON.stringify(await check.json());
if (!found.includes(number)) return new Response("number not found", { status: 404 });
const send = await fetch(BASE + "/send/text", { method: "POST", headers, body: JSON.stringify({ number, text }) });
return new Response(await send.text(), { status: send.status });
});Ilustrativo. Os campos e endpoints exatos estão na documentação.
Por que checar o número antes de enviar
POST /{instanceId}/chat/check recebe numbers e informa quais têm WhatsApp. Enviar só para quem existe reduz erros e mantém o histórico limpo. Não é garantia contra bloqueio: o canal é não oficial e o WhatsApp pode limitar números, então envie só para quem tem relação com você e mantenha ritmo humano.
Perguntas frequentes
Onde guardo a chave no Bolt?
Em Secrets, pelo ícone do banco. Segundo a documentação do Bolt (11/11/2026), o valor só fica disponível para funções de servidor e não vai para os arquivos do projeto nem para o site publicado.
Posso chamar a API do componente de front?
Não. A chave ficaria no navegador de qualquer visitante. Chame a função de servidor e deixe só ela falar com a ZapZap.
A documentação do Bolt cobre webhook de entrada?
A página que li trata de secrets. Para receber mensagens, crie outra função de servidor, cadastre a URL com PUT /instances/{id}/webhook e valide a assinatura X-ZapZap-Signature.
Preciso de plano pago no Bolt?
A documentação que li não informa; consulte a página de planos do Bolt.
Quanto custa a ZapZap?
São R$15 por número ativo/mês, pré-pago, sem cobrança por mensagem, e você começa com crédito de boas-vindas ao verificar o telefone, sujeito à campanha vigente.
Comece agora
Crie sua conta, conecte um número em minutos e teste a API com aquecimento e anti-bloqueio. R$15 por número ativo/mês, pré-pago, sem fidelidade.
