Primeiros Passos com a API de Mensagens da Zavu
A Zavu oferece uma API unificada para enviar mensagens em multiplos canais — SMS, WhatsApp e Email — usando a mesma integracao. Neste guia rapido voce configura o SDK, envia sua primeira mensagem e aprende os fluxos basicos.
Pre-requisitos
Antes de comecar, garanta que voce tenha:- Conta Zavu com credenciais de API
- Node.js 18+ ou Bun instalado
- Conhecimentos basicos de JavaScript/TypeScript
Instalacao
Instale o SDK oficial:
bashnpm install @zavudev/sdk
Ou com Bun:
bashbun add @zavudev/sdk
Inicializando o Cliente
Crie um arquivo e configure o cliente com a chave de API:
typescriptimport Zavudev from '@zavudev/sdk'; const client = new Zavudev({ apiKey: process.env.ZAVUDEV_API_KEY, });
Enviando sua Primeira Mensagem
Vamos enviar um SMS simples:
typescriptasync function sendWelcomeMessage() { try { const response = await client.messages.send({ to: '+1234567890', text: 'Bem-vindo a Zavu!', channel: 'sms', }); console.log('Message ID:', response.message.id); console.log('Status:', response.message.status); console.log('Channel:', response.message.channel); } catch (error) { console.error('Falha ao enviar mensagem:', error); } } sendWelcomeMessage();
Enviando Mensagens no WhatsApp
Mensagens dentro da janela de 24h funcionam assim:
typescriptconst response = await client.messages.send({ to: '+1234567890', text: 'Seu pedido foi enviado!', channel: 'whatsapp', }); console.log('WhatsApp message sent:', response.message.id);
Adicionando Metadata
Rastreie mensagens com dados customizados:
typescriptconst response = await client.messages.send({ to: '+1234567890', text: 'Seu codigo e 123456', channel: 'sms', metadata: { orderId: 'ORD-12345', userId: 'user_abc', }, });
Recuperando uma Mensagem
Busque detalhes de uma mensagem enviada:
typescriptconst response = await client.messages.retrieve('message_id_here'); console.log('Message details:', { id: response.message.id, to: response.message.to, status: response.message.status, channel: response.message.channel, createdAt: response.message.createdAt, });
Listando Mensagens
Aplique filtros com paginacao:
typescriptconst page = await client.messages.list({ limit: 10, channel: 'sms', status: 'delivered', }); console.log('Messages:', page.items); if (page.hasNextPage()) { const nextPage = await page.getNextPage(); console.log('Next page:', nextPage.items); }
Iteracao Assincrona
Percorra todas as mensagens com iteradores async:
typescriptfor await (const message of client.messages.list({ limit: 5 })) { console.log('Message:', message.id, message.status); }
Tratando Erros
Capture erros de API com clareza:
typescriptimport Zavudev from '@zavudev/sdk'; try { const response = await client.messages.send({ to: '+1234567890', text: 'Ola!', }); } catch (error) { if (error instanceof Zavudev.APIError) { console.error('API Error:', error.status, error.message); } else { throw error; } }
Proximos Passos
Agora que voce enviou a primeira mensagem, explore:
- API Reference para todas as rotas
- Templates para WhatsApp fora da janela
- Broadcasts para envios em massa
- Contacts para centralizar sua base