Programa tareas recurrentes y activa funciones automáticamente según eventos de la base de datos o eventos webhook de conectores
Estás viendo la documentación para desarrolladores
Esta documentación es para desarrolladores que trabajan con la plataforma para desarrolladores de Base44. Para información sobre automatizaciones en el editor de apps, consulta Crear automatizaciones para tu app.
Las automatizaciones permiten que las funciones de backend se ejecuten automáticamente según un calendario, en respuesta a eventos de la base de datos o cuando una integración conectada envía un evento webhook. Usa automatizaciones para procesar datos a intervalos regulares, gestionar cambios en entidades, reaccionar a eventos de servicios externos o ejecutar tareas únicas en momentos específicos.Cada función de backend puede tener varias automatizaciones asociadas, configuradas en el archivo function.jsonc de la función. Si solo tienes un archivo entry.ts o entry.js, deberás añadir este archivo de configuración para usar automatizaciones. Las automatizaciones se despliegan atómicamente con el código de la función cuando ejecutas deploy o functions deploy.
Automatizaciones de conectores: Responde a eventos de servicios conectados en tiempo real, como un nuevo email en Gmail o un cambio de archivo en Google Drive.
Tanto las automatizaciones programadas con cron como las simples comparten estos campos adicionales:
Campo
Tipo
Obligatorio
Descripción
schedule_mode
string
Sí
Si el horario se repite. Valores posibles: "recurring" o "one-time".
schedule_type
string
Sí
Método de programación a usar. Valores posibles: "cron" o "simple".
ends_type
string
No
Cuándo debe detenerse el horario recurrente. Valores posibles: "never", "on" o "after". Por defecto es "never".
ends_on_date
string
Condicional
Fecha en la que termina el horario recurrente, inclusive, en UTC. Obligatorio cuando ends_type es "on". Formato: YYYY-MM-DDTHH:MM:SSZ. Por ejemplo, "2026-12-31T23:59:59Z".
ends_after_count
number
Condicional
Número de ejecuciones después de las cuales se detiene el horario recurrente. Obligatorio cuando ends_type es "after".
Configura las automatizaciones en tu archivo function.jsonc usando uno de los siguientes enfoques. Todas las automatizaciones usan los campos comunes para todas las automatizaciones listados arriba, además de los campos específicos de cada tipo.
Usa los campos comunes para todas las automatizaciones y los campos comunes para automatizaciones programadas junto con los campos específicos de cron listados aquí.Establece type en "scheduled" y schedule_type en "cron" para usar expresiones cron y obtener un control preciso de la programación.Las automatizaciones cron usan la sintaxis estándar de 5 campos: minute hour day-of-month month day-of-week. Consulta crontab.guru para un editor interactivo de expresiones cron y referencia de sintaxis.
Usa los campos comunes para todas las automatizaciones y los campos comunes para automatizaciones programadas junto con los campos de horario simple listados aquí.Establece type en "scheduled" y schedule_type en "simple" para necesidades de programación sencillas.Configura tareas recurrentes por intervalo, como minutos, horas, días, semanas o meses, sin escribir expresiones cron.
Campo
Tipo
Obligatorio
Descripción
one_time_date
string
Condicional
Fecha y hora en que la automatización se ejecuta una vez, en UTC. Obligatorio cuando schedule_mode es "one-time". Formato: YYYY-MM-DDTHH:MM:SSZ. Por ejemplo, "2026-02-15T10:00:00Z".
repeat_unit
string
Condicional
Unidad de tiempo para automatizaciones recurrentes. Obligatorio cuando schedule_mode es "recurring". Valores posibles: "minutes", "hours", "days", "weeks" o "months".
repeat_interval
number
Condicional
Intervalo entre ejecuciones. Obligatorio cuando repeat_unit es "minutes", "hours" o "days".
start_time
string
Condicional
Hora del día en que se ejecuta la automatización, en UTC. Obligatorio cuando repeat_unit es "days", "weeks" o "months". Formato: HH:MM.
repeat_on_days
number[]
Condicional
Días de la semana en que se ejecuta la automatización. Obligatorio cuando repeat_unit es "weeks". Array de números de día de la semana, donde 0 es domingo y 6 es sábado.
repeat_on_day_of_month
number
Condicional
Día del mes en que se ejecuta la automatización. Obligatorio cuando repeat_unit es "months". Valores válidos: 1-31.
Usa los campos comunes para todas las automatizaciones junto con los campos de eventos de entidad listados aquí.Establece type en "entity" para activar funciones automáticamente cuando se crean, actualizan o eliminan registros de la base de datos.Las automatizaciones de entidad pueden escuchar uno o más tipos de evento en una entidad específica.
Campo
Tipo
Obligatorio
Descripción
entity_name
string
Sí
Nombre de la entidad a monitorizar.
event_types
string[]
Sí
Eventos de la base de datos a los que escuchar. Valores posibles: "create", "update", "delete". Al menos uno requerido.
Usa los campos comunes para todas las automatizaciones junto con los campos específicos de conectores listados aquí.Establece type en "connector" para activar funciones cuando una integración conectada envía un evento webhook. Úsalas para reaccionar a la actividad de servicios externos en tiempo real. Por ejemplo, puedes analizar un nuevo email, sincronizar un cambio de calendario o responder a una actualización de archivo en Google Drive.Opcionalmente puedes añadir condiciones de activación para filtrar eventos de modo que tu función solo se ejecute cuando el payload cumpla las reglas que definas.Cuando se activa una automatización de conector, tu función recibe un payload de webhook estructurado que contiene el tipo de evento, los detalles de la integración y los datos sin procesar del servicio externo.
El conector debe estar configurado en tu proyecto y autorizado antes del despliegue. Consulta Conectores compartidos para instrucciones de configuración.
Campo
Tipo
Obligatorio
Descripción
integration_type
string
Sí
El identificador del tipo de conector al que escuchar. Consulta integraciones compatibles para los valores aceptados.
events
string[]
Sí
Uno o más nombres de evento webhook a los que suscribirse. Consulta integraciones compatibles para los eventos disponibles por conector.
resource_id
string
Condicional
Limita el alcance de la automatización a un recurso específico. El formato esperado depende del conector. Consulta Formatos de resource ID más abajo. Obligatorio para los eventos a nivel de archivo de Google Drive. Opcional para otros conectores.
trigger_conditions
object
No
Reglas que deben coincidir con el evento entrante antes de que se ejecute tu función. Si el evento no coincide, la ejecución se omite. Consulta Condiciones de activación para la referencia completa.
Cualquier cambio en un archivo o carpeta, incluidos los creados, modificados y eliminados.
Microsoft Outlook
outlook
created
Se crea un nuevo email, evento de calendario o contacto.
Microsoft Outlook
outlook
updated
Se actualiza un email, evento de calendario o contacto.
Microsoft Outlook
outlook
deleted
Se elimina un email, evento de calendario o contacto.
Microsoft SharePoint
share_point
updated
Cuando se crea, modifica o elimina un elemento de lista o documento.
Microsoft Teams
microsoft_teams
created
Cuando se publica un nuevo mensaje de chat.
Microsoft Teams
microsoft_teams
updated
Cuando se actualiza un mensaje de chat.
Microsoft Teams
microsoft_teams
deleted
Cuando se elimina un mensaje de chat.
Slack
slack
message
Cuando se publica un mensaje en un canal.
Slack
slack
message.im
Cuando se publica un mensaje directo.
Slack
slack
message.groups
Cuando se publica un mensaje en un canal privado.
Slack
slack
message.channels
Cuando se publica un mensaje en un canal público.
Slack
slack
message.mpim
Cuando se publica un mensaje en un IM de varios participantes.
Slack
slack
reaction_added
Cuando se añade una reacción a un mensaje.
Slack
slack
reaction_removed
Cuando se elimina una reacción de un mensaje.
Slack
slack
member_joined_channel
Cuando un usuario se une a un canal.
Slack
slack
member_left_channel
Cuando un usuario abandona un canal.
Slack
slack
file_shared
Cuando se comparte un archivo.
El evento mailbox de Gmail se dispara con cualquier cambio en el buzón, no solo con los nuevos mensajes. Para que tu función solo se ejecute cuando lleguen nuevos emails, añade una condición de activación: { "field": "has_new_messages", "operator": "equals", "value": true }.
Las automatizaciones de conectores de Slack requieren condiciones de activación. El despliegue fallará si no se establecen condiciones para las automatizaciones de conectores de Slack.
Usa trigger_conditions para filtrar eventos webhook de modo que tu función solo se ejecute cuando el payload cumpla las reglas que definas. Si no se establecen condiciones, la función se ejecuta para cada evento entrante. Consulta Ejemplos de automatizaciones de conectores para configuraciones completas.
Cuando una automatización de conector activa tu función, el cuerpo de la solicitud contiene un objeto payload con la siguiente estructura. Consulta Ejemplos de automatizaciones de conectores para una función que lea el payload.
Campo
Tipo
Descripción
payload.automation.id
string
ID de la automatización que activó esta ejecución.
payload.automation.name
string
Nombre de la automatización.
payload.automation.type
string
Siempre "connector".
payload.event.type
string
El nombre del evento webhook. Por ejemplo, "mailbox", "events" o "changes".
payload.event.integration_type
string
El tipo de conector. Por ejemplo, "gmail" o "googlecalendar".
payload.event.provider_identifier
string
El identificador de cuenta del proveedor usado para el enrutamiento.
payload.data
object
El payload sin procesar del webhook del servicio externo. Se establece en null cuando payload_too_large es true.
payload.payload_too_large
boolean
Es true cuando el payload del webhook supera ~200 KB y data es null.
// Triggers the function whenever a new email arrives in Gmail.{ "name": "processInboundEmails", "entry": "entry.ts", "automations": [ { "type": "connector", "name": "on_new_gmail", "description": "Runs when a new email arrives in Gmail.", "is_active": true, "integration_type": "gmail", "events": ["mailbox"] } ]}
Pasa datos a tu función cuando se active incluyendo el campo function_args en la configuración de tu automatización. Esto es útil cuando una función gestiona varias automatizaciones con comportamientos diferentes, como una función de sincronización que se ejecuta de forma incremental cada 15 minutos pero hace una sincronización completa a diario.Accede a estos argumentos en el código de tu función a través del cuerpo de la solicitud.
Despliega funciones de backend con sus automatizaciones usando el comando del CLI functions deploy o el comando unificado deploy. Puedes desplegar funciones específicas por nombre con functions deploy <names...>.El despliegue es atómico por función. Una función solo se considera desplegada si tanto el despliegue de Deno como todas sus automatizaciones se realizan correctamente. Si alguna automatización falla al desplegarse, se revierte todo el despliegue de la función.Después de desplegar, el CLI muestra el estado por función: deployed, unchanged o error.
Cualquier cambio realizado en el panel se sobrescribirá la próxima vez que ejecutes functions deploy. No hay sincronización bidireccional entre el panel y tus archivos locales. Las automatizaciones definidas en tus archivos function.jsonc locales son la fuente de verdad.Si quieres realizar cambios en tus automatizaciones, actualiza tus archivos function.jsonc locales y vuelve a desplegar. Usa el panel para monitorizar los logs de ejecución y activar manualmente las automatizaciones cuando sea necesario.
Visualiza y gestiona tus automatizaciones en el panel de Base44 en la pestaña Automations. Desde el panel, puedes:
Ver logs e historial de ejecución
Ejecutar automatizaciones manualmente para pruebas