Introducción
El módulo de Contact te permite gestionar tu base de contactos de forma programatica. Puedes crear, buscar por teléfono o email, actualizar y eliminar contactos.
Inicialización
01import { Plazbot } from 'plazbot';0203const plazbot = new Plazbot({04 workspaceId: "YOUR_WORKSPACE_ID",05 apiKey: "YOUR_API_KEY",06 zone: "LA"07});0809// Usar: plazbot.contact.getContacts()
Crear Contacto
01const contact = await plazbot.contact.createContact({02 name: "Juan Perez",03 cellphone: "51912345678",04 email: "juan@ejemplo.com",05 tags: ["lead", "web"]06});0708console.log("Contacto creado:", contact.id);
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
name | string | No | Nombre del contacto |
cellphone | string | No | Número de teléfono con código de país |
email | string | No | Correo electrónico |
tags | string[] | No | Etiquetas de clasificacion |
stage | string | No | Etapa del contacto en el pipeline |
Listar Contactos
01const contacts = await plazbot.contact.getContacts();02console.log(`Total: ${contacts.length} contactos`);
Devuelve la primera página de contactos (hasta 20), ordenados por última actividad. Para recorrer todos los contactos usa la paginación por cursor.
Paginación: recorrer todos los contactos
getContactsPage devuelve páginas de hasta 100 contactos con un cursor. Repite la llamada pasando nextCursor hasta recibir null:
01let cursor: string | null = null;02let total = 0;0304do {05 const page = await plazbot.contact.getContactsPage({ pageSize: 100, cursor });0607 for (const contact of page.items) {08 // procesar cada contacto09 total++;10 }1112 cursor = page.nextCursor;13} while (cursor);1415console.log(`Contactos recorridos: ${total}`);
| Parámetro | Tipo | Descripción |
|---|---|---|
pageSize | number | Tamaño de página, entre 1 y 100. Default 20. |
cursor | string | null | El nextCursor de la página anterior. Omitir en la primera llamada. |
Si consumes la API REST directamente, los mismos parámetros van como query string en GET /api/contact:
01GET /api/contact?workspaceId={id}&pageSize=10002GET /api/contact?workspaceId={id}&pageSize=100&continuationToken={cursor URL-encoded}
La respuesta incluye data.continuationToken (el cursor de la siguiente página, null al terminar) y data.data (los contactos). El cursor debe enviarse URL-encoded (encodeURIComponent).
Ten en cuenta el límite de la API (120 req/min por workspace): con pageSize=100, recorrer 50.000 contactos son 500 llamadas.
Obtener Contacto por ID
01const contact = await plazbot.contact.getContact("contact-id");02console.log(contact.name, contact.email);
Buscar por Teléfono
01const results = await plazbot.contact.searchByPhone("51912345678");
Buscar por Email
01const results = await plazbot.contact.searchByEmail("juan@ejemplo.com");
Actualizar Contacto
01const updated = await plazbot.contact.updateContact({02 id: "contact-id",03 name: "Juan Perez Actualizado",04 tags: ["lead", "premium", "web"]05});
Eliminar Contactos
Elimina uno o multiples contactos por sus IDs.
01await plazbot.contact.deleteContacts([02 "contact-id-1",03 "contact-id-2"04]);
Campos del Contacto
| Campo | Tipo | Descripción |
|---|---|---|
id | string | Identificador único |
name | string | Nombre del contacto |
cellphone | string | Número de teléfono |
email | string | Correo electrónico |
tags | string[] | Etiquetas |
stage | string | Etapa en el pipeline |
owner | string | Propietario del contacto |
createdAt | string | Fecha de creación |
updatedAt | string | Fecha de actualización |
TypeScript
El SDK exporta los tipos para autocompletado:
01import type {02 ContactData,03 CreateContactParams,04 UpdateContactParams05} from 'plazbot';
Combina el módulo de Contact con el de Message para enviar plantillas de WhatsApp a contactos de tu base de datos de forma automatizada.