Contexto (plz) de Workers
El handler run de cada worker recibe dos parametros: payload y plz.
payload
El objeto payload contiene los datos de contexto que se envian al worker cuando se ejecuta. Los campos disponibles dependen del tipo de worker y de como se invoca.
Campos del payload
| Campo | Tipo | Disponible en | Descripcion |
|---|---|---|---|
contactId |
string |
tool, worker | ID del contacto que disparo la ejecucion. |
agentId |
string |
tool, worker | ID del agente IA asociado. |
workspaceId |
string |
tool, worker | ID del workspace. |
workerName |
string |
tool, worker | Nombre del worker ejecutado. |
contact |
Contact |
worker | Datos del contacto (ver tabla abajo). |
sessionValues |
Record<string, string> |
worker | Campos capturados por el LLM durante la conversacion. |
| (parametros custom) | any |
tool | Campos extraidos por el LLM segun los parameters del tool. |
| (body del request) | any |
webhook | Body del request HTTP recibido. |
Nota: Los workers tipo
scheduleysyncno recibenpayload— solo recibenplzcomo unico parametro.
Objeto contact en el payload
Cuando un worker se ejecuta desde una accion del agente, el payload.contact incluye estos campos:
| Campo | Tipo | Descripcion |
|---|---|---|
name |
string |
Nombre del contacto. |
lastname |
string |
Apellido del contacto. |
email |
string |
Correo electronico. |
phoneNumber |
string | null |
Numero de telefono del contacto. |
platformId |
number |
Plataforma de origen (ver tabla). |
stageId |
string | null |
ID de la etapa actual. |
segmentationId |
string | null |
ID de la segmentacion. |
assignedAgentId |
string | null |
ID del agente humano asignado. |
assignedAgentName |
string | null |
Nombre del agente asignado. |
isSolved |
boolean |
Si la conversacion esta resuelta. |
lastMessage |
string |
Ultimo mensaje del contacto. |
tags |
Array<{ id, name }> |
Etiquetas asignadas. |
variables |
Array<{ code, val }> |
Variables custom del contacto. |
Valores de platformId
| Valor | Plataforma |
|---|---|
1 |
Webchat |
2 |
|
3 |
Facebook Messenger |
4 |
|
5 |
Telegram |
7 |
Playground (test del agente) |
Tip:
payload.contactes un resumen del contacto. Si necesitas campos adicionales comowhatsappCellphone,documentNumberocreationDate, usaplz.contacts.get(payload.contactId)para obtener el contacto completo.
Ejemplo: usar datos del payload
plz
El objeto plz es el SDK de Plazbot que se inyecta automaticamente en el runtime. No necesitas instalarlo ni importarlo.
Tip:
plzy "plazbot" son el mismo SDK. Se usa la abreviaturaplzpara mantener el codigo conciso.
plz.contacts
Metodos para gestionar contactos del workspace.
| Metodo | Parametros | Retorno | Descripcion |
|---|---|---|---|
get(id) |
id: string |
Contact |
Obtiene un contacto por ID. |
list(options?) |
{ limit?: number } |
Contact[] |
Lista contactos del workspace. |
search(query) |
{ email?, phone?, name? } |
Contact[] |
Busca contactos por email, telefono o nombre. |
create(data) |
{ name, lastname?, email?, phoneNumber? } |
Contact |
Crea un nuevo contacto. |
update(id, data) |
id, { name?, lastname?, email?, phoneNumber? } |
Contact |
Actualiza campos del sistema de un contacto. |
delete(id) |
id: string |
void |
Elimina un contacto. |
setVariable(id, code, value) |
id, code: string, value: string |
void |
Establece una variable custom del contacto. |
getVariable(id, code) |
id, code: string |
string | null |
Obtiene el valor de una variable custom. |
addTag(id, tagName) |
id, tagName: string |
void |
Agrega una etiqueta al contacto. |
removeTag(id, tagName) |
id, tagName: string |
void |
Remueve una etiqueta del contacto. |
setStage(id, stage) |
id, stage: string |
void |
Asigna una etapa al contacto. Acepta nombre o ID. |
setSegmentation(id, segmentation) |
id, segmentation: string |
void |
Asigna una segmentacion al contacto. Acepta nombre o ID. |
assignAgent(id, agent) |
id, agent: string |
void |
Asigna un agente humano. Acepta email, nombre o ID. |
resolve(id) |
id: string |
void |
Marca la conversacion como resuelta. |
Tip: Los metodos
setStage,setSegmentation,addTagyassignAgentaceptan nombre o ID indistintamente. El runtime resuelve automaticamente el ID interno.
Ejemplo:
plz.whatsapp
Metodos para enviar mensajes por WhatsApp.
| Metodo | Parametros | Descripcion |
|---|---|---|
send(options) |
{ to: string, message: string } |
Envia un mensaje de texto libre. |
sendMedia(options) |
{ to, url, caption?, filename? } |
Envia un archivo multimedia (imagen, video, documento, audio). |
sendTemplate(options) |
{ to, templateName, language, parameters } |
Envia una plantilla aprobada. |
getHistory(contactId) |
contactId: string |
Obtiene historial de mensajes. |
Ejemplo:
Nota:
sendMediadetecta automaticamente el tipo de archivo por la extension de la URL. El campocaptiones opcional y no aplica para archivos de audio (limitacion de WhatsApp). Formatos soportados: imagenes (jpg, png, webp), video (mp4), documentos (pdf, xlsx, docx, csv, txt), audio (mp3, ogg, aac).
plz.agents
Metodos para interactuar con los agentes de IA.
| Metodo | Parametros | Descripcion |
|---|---|---|
get(id) |
id: string |
Obtiene configuracion de un agente. |
list() |
- | Lista agentes del workspace. |
chat(options) |
{ agentId, message, contactId? } |
Envia un mensaje al agente y obtiene respuesta. |
Ejemplo:
plz.conversations
Metodos para gestionar conversaciones.
| Metodo | Parametros | Descripcion |
|---|---|---|
get(contactId) |
contactId: string |
Obtiene datos de la conversacion. |
getMessages(contactId, options?) |
contactId, { limit? } |
Obtiene mensajes de la conversacion. |
addNote(contactId, note) |
contactId, note: string |
Agrega una nota interna. |
resolve(contactId) |
contactId: string |
Marca como resuelta. |
reopen(contactId) |
contactId: string |
Reabre la conversacion. |
plz.templates
Metodos para gestionar plantillas de WhatsApp.
| Metodo | Parametros | Descripcion |
|---|---|---|
list() |
- | Lista todas las plantillas. |
getActive() |
- | Obtiene solo las plantillas activas/aprobadas. |
plz.workspace
Metodos para obtener informacion del workspace. Los datos del workspace se cachean internamente, asi que puedes llamar multiples metodos sin generar llamadas repetidas a la API.
Listar configuraciones
| Metodo | Retorno | Descripcion |
|---|---|---|
get() |
Workspace |
Obtiene datos completos del workspace. |
getVariables() |
Variable[] |
Lista las variables custom definidas. |
getTags() |
Tag[] |
Lista las etiquetas activas. |
getStages() |
Stage[] |
Lista las etapas configuradas. |
getSegmentations() |
Segmentation[] |
Lista las segmentaciones configuradas. |
getMembers() |
Member[] |
Lista los miembros del equipo. |
Buscar por nombre o ID
Estos metodos buscan un elemento especifico por su nombre o ID y retornan el objeto completo, o null si no existe.
| Metodo | Parametros | Retorno | Descripcion |
|---|---|---|---|
getTag(idOrName) |
string |
Tag | null |
Busca una etiqueta por nombre o ID. |
getStage(idOrName) |
string |
Stage | null |
Busca una etapa por nombre o ID. |
getSegmentation(idOrName) |
string |
Segmentation | null |
Busca una segmentacion por nombre o ID. |
Ejemplo:
plz.kv
Key-Value Store para persistir datos entre ejecuciones.
| Metodo | Parametros | Descripcion |
|---|---|---|
get(key) |
key: string |
Obtiene un valor por clave. |
set(key, value) |
key: string, value: any |
Guarda un valor. |
delete(key) |
key: string |
Elimina un valor. |
list(prefix?) |
prefix?: string |
Lista claves (con filtro de prefijo opcional). |
Ejemplo:
plz.log
Metodos para registrar logs durante la ejecucion. Los logs se guardan en la tabla worker_logs y son visibles en el tab "Logs" del dashboard.
| Metodo | Parametros | Descripcion |
|---|---|---|
info(message, data?) |
message: string, data?: any |
Registra informacion general. |
warn(message, data?) |
message: string, data?: any |
Registra advertencias. |
error(message, data?) |
message: string, data?: any |
Registra errores. |
Ejemplo:
Tip: Los logs se muestran en tiempo real en el tab "Logs" del worker en el dashboard. Usa
plz.log.infopara depurar paso a paso yplz.log.errorpara registrar fallos.
plz.env
Acceso a los secrets encriptados del workspace. Los secrets se configuran desde el dashboard (tab Secrets) o via CLI (plazbot workers secret set).
Los secrets se almacenan encriptados (AES-256) y se desencriptan en runtime. El key debe estar en formato UPPER_SNAKE_CASE.
plz.fetch
HTTP client disponible para hacer peticiones a APIs externas. Funciona igual que el fetch estandar del browser.
Nota: Puedes usar
fetchdirectamente (global) oplz.fetch— ambos son equivalentes en el runtime de workers. Para llamar a la API interna de Plazbot, usaplz.apien su lugar (incluye autenticacion automatica).
plz.api
Cliente HTTP autenticado para llamar a los endpoints internos de la API de Plazbot. A diferencia de plz.fetch, plz.api incluye automaticamente el token de autenticacion y el workspaceId en cada peticion.
| Metodo | Parametros | Retorno | Descripcion |
|---|---|---|---|
get(path) |
path: string |
any |
Peticion GET al endpoint especificado. |
post(path, body?) |
path: string, body?: object |
any |
Peticion POST con body JSON opcional. |
put(path, body?) |
path: string, body?: object |
any |
Peticion PUT con body JSON opcional. |
delete(path, body?) |
path: string, body?: object |
any |
Peticion DELETE con body JSON opcional. |
El path debe comenzar con /api/ seguido del endpoint. Por ejemplo: /api/contact/bulk-mark-read.
Ejemplo:
Nota:
plz.apiesta pensado para acceder a endpoints de Plazbot que no tienen un metodo dedicado en el SDK. Para APIs externas usaplz.fetchofetchdirectamente.
Was this article helpful?
Your feedback helps us improve the documentation.