Primeros Pasos con la API de Mensajeria de Zavu
Zavu proporciona una API unificada que te permite enviar mensajes a traves de multiples canales—SMS, WhatsApp y Email—con una sola integracion. En esta guia, te mostraremos la configuracion basica y como enviar tu primer mensaje.
Requisitos Previos
Antes de comenzar, asegurate de tener:- Una cuenta de Zavu con credenciales de API
- Node.js 18+ o Bun instalado
- Conocimientos basicos de JavaScript/TypeScript
Instalacion
Instala el SDK de Zavu usando tu gestor de paquetes preferido:
bashnpm install @zavudev/sdk
O con bun:
bashbun add @zavudev/sdk
Inicializar el Cliente
Crea un nuevo archivo e inicializa el cliente de Zavu con tu clave API:
typescriptimport Zavudev from '@zavudev/sdk'; const client = new Zavudev({ apiKey: process.env.ZAVUDEV_API_KEY, });
Enviando tu Primer Mensaje
Ahora enviemos un mensaje SMS simple:
typescriptasync function sendWelcomeMessage() { try { const response = await client.messages.send({ to: '+1234567890', text: 'Bienvenido a Zavu!', channel: 'sms', }); console.log('ID del Mensaje:', response.message.id); console.log('Estado:', response.message.status); console.log('Canal:', response.message.channel); } catch (error) { console.error('Error al enviar mensaje:', error); } } sendWelcomeMessage();
Enviando Mensajes de WhatsApp
Envia mensajes via WhatsApp (dentro de la ventana de conversacion de 24h):
typescriptconst response = await client.messages.send({ to: '+1234567890', text: 'Tu pedido ha sido enviado!', channel: 'whatsapp', }); console.log('Mensaje de WhatsApp enviado:', response.message.id);
Agregando Metadatos
Rastrea mensajes con metadatos personalizados:
typescriptconst response = await client.messages.send({ to: '+1234567890', text: 'Tu codigo de verificacion es 123456', channel: 'sms', metadata: { orderId: 'ORD-12345', userId: 'user_abc', }, });
Recuperando un Mensaje
Obtiene detalles sobre un mensaje enviado:
typescriptconst response = await client.messages.retrieve('message_id_here'); console.log('Detalles del mensaje:', { id: response.message.id, to: response.message.to, status: response.message.status, channel: response.message.channel, createdAt: response.message.createdAt, });
Listando Mensajes
Lista mensajes con filtrado y paginacion:
typescript// Obtener una pagina de mensajes const page = await client.messages.list({ limit: 10, channel: 'sms', status: 'delivered', }); console.log('Mensajes:', page.items); // Verificar si hay mas paginas if (page.hasNextPage()) { const nextPage = await page.getNextPage(); console.log('Siguiente pagina:', nextPage.items); }
Iteracion Asincrona
Itera a traves de todos los mensajes usando iteradores asincronos:
typescriptfor await (const message of client.messages.list({ limit: 5 })) { console.log('Mensaje:', message.id, message.status); }
Manejo de Errores
Maneja errores de la API de forma elegante:
typescriptimport Zavudev from '@zavudev/sdk'; try { const response = await client.messages.send({ to: '+1234567890', text: 'Hola!', }); } catch (error) { if (error instanceof Zavudev.APIError) { console.error('Error de API:', error.status, error.message); } else { throw error; } }
Siguientes Pasos
Ahora que has enviado tu primer mensaje, explora estos recursos:
- Referencia de API: Documentacion completa de la API
- Templates: Crea plantillas reutilizables de WhatsApp
- Broadcasts: Envia mensajes a multiples destinatarios
- Contactos: Administra tu base de datos de contactos