Gestión de Workers
Los Workers son funciones TypeScript que extienden las capacidades de tu workspace en Plazbot. Permiten ejecutar logica personalizada que se integra con el Agente de IA, responde a eventos externos, o se ejecuta de forma programada.
Para que sirven
Conectar tu agente con APIs externas (inventario, CRM, pagos).
Procesar webhooks de servicios como Stripe, Shopify o MercadoPago.
Ejecutar tareas programadas (reportes, sincronizaciones, alertas).
Automatizar operaciones sobre contactos, conversaciones y variables.
Requisitos previos
Advertencia: Antes de usar workers, debes configurar los siguientes secrets obligatorios desde el tab Developers > Secrets en el dashboard. Sin estos secrets, ningun worker podra ejecutarse.
Secret
Descripcion
PLZ_API_KEYToken de acceso a la API de Plazbot. Permite que los workers interactuen con contactos, conversaciones, templates y demas recursos del workspace.
PLZ_ZONERegion del workspace (
LApara Latinoamerica,EUpara Europa). Determina a que servidor de API se conectan los workers.Para configurarlos facilmente, haz click en el boton "Configurar Secrets de Plazbot" que aparece en el tab Secrets. Este genera el token automaticamente y detecta la zona de tu workspace.
Estructura de un Worker
Cada worker es un archivo .ts que importa una funcion define* del SDK de Plazbot y exporta su configuracion junto con un handler.
Partes principales:
Parte | Descripcion |
|---|---|
| Importa la funcion define* correspondiente al tipo de worker. |
| Nombre unico del worker dentro del workspace. |
| Descripcion del worker. En tools, el agente usa esta descripcion para decidir cuando invocarlo. |
| Funcion handler que contiene la logica. Recibe el payload y el contexto |
Ciclo de vida
Escribir Crea un archivo
.tscon la definicion del worker usando una de las funcionesdefine*.Desplegar Usa el CLI (
plazbot workers deploy mi-worker.ts) o el editor del dashboard para subir el worker al workspace.Ejecutar El worker se ejecuta automaticamente segun su tipo: el agente lo invoca (tool), un cron lo dispara (schedule/sync), un HTTP request lo activa (webhook), o se ejecuta bajo demanda (worker).
Integración con el Agente de IA
Los workers se integran con el Agente de IA a traves de las Acciones del Agente. Dentro de la configuracion de acciones, puedes usar el tipo action.worker para invocar un worker cuando el agente detecta una intencion.
Los workers de tipo tool (defineTool) se integran de forma diferente: se registran directamente como herramientas del agente mediante el campo agents, y el agente los invoca automaticamente durante la conversacion cuando lo considera necesario.
Campos comunes del define*
Todos los tipos de workers comparten estos campos de configuracion:
Campo | Tipo | Requerido | Descripcion |
|---|---|---|---|
|
| Si | Nombre unico del worker. Se usa como identificador en el workspace. |
|
| No | Descripcion del proposito del worker. |
Cada tipo agrega campos adicionales segun su funcion. Consulta la pagina de Tipos para ver los campos especificos.
Runtime
Los workers se ejecutan en un entorno aislado de Plazbot con acceso al contexto plz, que provee metodos para interactuar con la plataforma. El codigo TypeScript se compila a JavaScript antes del despliegue.
Tipos de Workers
Existen 5 tipos de workers, cada uno diseñado para un caso de uso diferente. El tipo se define por la funcion define* que utilices.
Tabla comparativa
Tipo | Funcion | Trigger | Uso principal |
|---|---|---|---|
Tool |
| El agente IA lo invoca | Consultas a APIs durante conversaciones |
Worker |
| Bajo demanda (API, acciones, otros workers) | Logica de negocio reutilizable |
Sync |
| Cron programado | Sincronizacion periodica de datos |
Schedule |
| Cron programado | Tareas automaticas recurrentes |
Webhook |
| HTTP request externo | Recibir eventos de servicios externos |
Tool (defineTool)
Herramientas que el agente IA puede invocar durante una conversacion. Ideales para consultas a APIs externas, busquedas en base de datos, o cualquier operacion en tiempo real.
Campos de configuracion:
Campo | Tipo | Descripcion |
|---|---|---|
|
| Nombre unico del tool. |
|
| Descripcion para que el agente entienda cuando usarlo. |
|
| IDs de los agentes que pueden invocar este tool. |
|
| Parametros que el agente debe recopilar del usuario. |
Signature del handler:
Cada parametro tiene:
Campo | Tipo | Descripcion |
|---|---|---|
|
| Nombre del parametro. |
|
| Tipo: |
|
| Descripcion para que el agente sepa que pedir al usuario. |
|
| Ejemplo de pregunta que el agente puede hacer. |
Ejemplo:
Worker (defineWorker)
Funciones de proposito general invocadas bajo demanda. Se ejecutan desde automatizaciones, acciones del agente (action.worker), otros workers o la API.
Campos de configuracion:
Campo | Tipo | Descripcion |
|---|---|---|
|
| Nombre unico del worker. |
|
| Descripcion del proposito. |
Signature del handler:
Ejemplo:
Tip: Este es el unico tipo de worker que puede ser invocado desde las acciones del agente de IA usando
action.worker.
Sync (defineSync)
Sincronizaciones programadas que mantienen datos actualizados entre la plataforma y sistemas externos. Se ejecutan en intervalos regulares via cron.
Campos de configuracion:
Campo | Tipo | Descripcion |
|---|---|---|
|
| Nombre unico del sync. |
|
| Descripcion del proposito. |
|
| Expresion cron que define la frecuencia. |
|
| Zona horaria para el cron (ej: |
Signature del handler:
Ejemplo:
Schedule (defineSchedule)
Tareas programadas que se ejecutan automaticamente en horarios definidos. Utiles para reportes, limpiezas, notificaciones periodicas y mas.
Campos de configuracion:
Campo | Tipo | Descripcion |
|---|---|---|
|
| Nombre unico del schedule. |
|
| Descripcion del proposito. |
|
| Expresion cron que define cuando se ejecuta. |
|
| Zona horaria para el cron. |
Signature del handler:
Nota: La diferencia entre
defineSyncydefineSchedulees conceptual: sync se usa para sincronizar datos entre sistemas, schedule para tareas autonomas. Tecnicamente funcionan igual.
Ejemplo:
Webhook (defineWebhook)
Endpoints HTTP que reciben eventos de servicios externos en tiempo real. Al desplegarse, se genera una URL unica que puedes configurar en el servicio externo.
Campos de configuracion:
Campo | Tipo | Descripcion |
|---|---|---|
|
| Nombre unico del webhook. |
|
| Descripcion del proposito. |
|
| Metodo HTTP aceptado: |
Signature del handler:
Ejemplo:
Tip: Al desplegar un webhook, el sistema genera automaticamente una URL. Puedes verla en el dashboard o con
plazbot workers list. Usa esa URL para configurar el webhook en el servicio externo (Stripe, Shopify, etc).
Expresiones Cron
Los workers de tipo sync y schedule usan expresiones cron para definir su frecuencia de ejecucion.
Expresion | Significado |
|---|---|
| Cada 5 minutos |
| Cada 30 minutos |
| Cada hora en punto |
| Todos los dias a las 9:00 |
| Lunes a viernes a las 22:00 |
| Domingos a medianoche |
| Cada 6 horas |
El campo timezone determina en que zona horaria se evalua la expresion cron. Valores comunes:
America/Mexico_CityAmerica/LimaAmerica/BogotaAmerica/SantiagoAmerica/Argentina/Buenos_Aires
Ejemplos de Workers
A continuacion se presentan ejemplos reales de workers para cada tipo principal. Estos mismos ejemplos estan disponibles en el tab "Ejemplos" del modulo Developers en el dashboard.
Tool: Consultar inventario
El agente IA consulta productos disponibles en stock desde un ERP o base de datos externa.
Como funciona:
El agente detecta que el usuario pregunta por un producto.
Recopila el parametro
querydel usuario.Ejecuta el tool, que consulta la API de inventario.
El agente responde con la informacion de los productos encontrados.
Secrets necesarios: INVENTORY_API_URL, INVENTORY_API_KEY
Worker: Notificar a Slack
Notifica a Slack cuando un contacto solicita atencion humana. Demuestra el uso de plz.log para registrar cada paso.
Como funciona:
Se invoca desde una accion del agente (
action.worker) cuando el usuario pide hablar con un humano.Usa
plz.log.infoyplz.log.errorpara registrar cada paso (visibles en el tab Logs).Obtiene datos del contacto y envia un mensaje a Slack con la informacion.
Secrets necesarios: SLACK_WEBHOOK_URL
Webhook: Pagos de Stripe
Recibe notificaciones de pagos exitosos de Stripe y actualiza el contacto automaticamente.
Como funciona:
Stripe envia un POST a la URL del webhook cada vez que ocurre un evento.
El worker filtra solo eventos
checkout.session.completed.Busca el contacto por email y actualiza sus variables custom con los datos del pago.
Agrega el tag
cliente-pagadopara segmentacion.
Configuracion en Stripe:
Despliega el webhook con
plazbot workers deploy webhook-stripe.ts.Copia la URL generada (visible con
plazbot workers list).Configura esa URL en Stripe Dashboard > Webhooks > Add endpoint.
Schedule: Reporte nocturno
Envia un resumen diario de conversaciones pendientes al equipo por Slack, de lunes a viernes a las 10pm.
Como funciona:
Se ejecuta automaticamente de lunes a viernes a las 22:00 (hora Mexico).
Lista todos los contactos y filtra los no resueltos.
Agrupa los chats pendientes por agente asignado.
Envia un resumen formateado a Slack.
Secrets necesarios: SLACK_WEBHOOK
Cron explicado: 0 22 * * 1-5 = minuto 0, hora 22, cualquier dia del mes, cualquier mes, lunes(1) a viernes(5).
Was this article helpful?
Your feedback helps us improve the documentation.