Producto
SDK

Contactos

CRUD completo de contactos: crear, buscar, actualizar y eliminar

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

Plazbot (recomendado)·ts
01import { Plazbot } from 'plazbot';
02 
03const plazbot = new Plazbot({
04 workspaceId: "YOUR_WORKSPACE_ID",
05 apiKey: "YOUR_API_KEY",
06 zone: "LA"
07});
08 
09// Usar: plazbot.contact.getContacts()

Crear Contacto

ts
01const contact = await plazbot.contact.createContact({
02 name: "Juan Perez",
03 cellphone: "51912345678",
04 email: "juan@ejemplo.com",
05 tags: ["lead", "web"]
06});
07 
08console.log("Contacto creado:", contact.id);
CampoTipoRequeridoDescripción
namestringNoNombre del contacto
cellphonestringNoNúmero de teléfono con código de país
emailstringNoCorreo electrónico
tagsstring[]NoEtiquetas de clasificacion
stagestringNoEtapa del contacto en el pipeline

Listar Contactos

ts
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:

ts
01let cursor: string | null = null;
02let total = 0;
03 
04do {
05 const page = await plazbot.contact.getContactsPage({ pageSize: 100, cursor });
06 
07 for (const contact of page.items) {
08 // procesar cada contacto
09 total++;
10 }
11 
12 cursor = page.nextCursor;
13} while (cursor);
14 
15console.log(`Contactos recorridos: ${total}`);
ParámetroTipoDescripción
pageSizenumberTamaño de página, entre 1 y 100. Default 20.
cursorstring | nullEl 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:

code
01GET /api/contact?workspaceId={id}&pageSize=100
02GET /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

ts
01const contact = await plazbot.contact.getContact("contact-id");
02console.log(contact.name, contact.email);

Buscar por Teléfono

ts
01const results = await plazbot.contact.searchByPhone("51912345678");

Buscar por Email

ts
01const results = await plazbot.contact.searchByEmail("juan@ejemplo.com");

Actualizar Contacto

ts
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.

ts
01await plazbot.contact.deleteContacts([
02 "contact-id-1",
03 "contact-id-2"
04]);

Campos del Contacto

CampoTipoDescripción
idstringIdentificador único
namestringNombre del contacto
cellphonestringNúmero de teléfono
emailstringCorreo electrónico
tagsstring[]Etiquetas
stagestringEtapa en el pipeline
ownerstringPropietario del contacto
createdAtstringFecha de creación
updatedAtstringFecha de actualización

TypeScript

El SDK exporta los tipos para autocompletado:

ts
01import type {
02 ContactData,
03 CreateContactParams,
04 UpdateContactParams
05} 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.

¿Quieres probar la API en vivo? Abre el Playground.