Skip to main content
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.

Tipos de automatización

Base44 admite 4 tipos de automatizaciones:

Campos comunes

Campos comunes para todas las automatizaciones

Todos los tipos de automatización comparten los siguientes campos:

Campos comunes para automatizaciones programadas

Tanto las automatizaciones programadas con cron como las simples comparten estos campos adicionales:

Configuración de automatizaciones

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.

Cron

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.

Ejemplo de cron

Este ejemplo ejecuta una función todos los días a medianoche UTC:

Horario simple

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.

Ejemplos de horario simple

Los siguientes ejemplos muestran distintas formas de programar automatizaciones con horarios simples:

Eventos de entidad

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.

Ejemplos de eventos de entidad

Los siguientes ejemplos muestran cómo activar funciones según eventos de entidad:

Automatizaciones de conectores

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.

Integraciones y eventos compatibles

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.

Formatos de resource ID

El valor esperado para resource_id varía según el conector:
  • Google Drive: El ID del archivo. Obligatorio para eventos a nivel de archivo (file, file.update, file.trash, file.untrash, file.delete).
  • Gmail: Una lista separada por comas de IDs de etiqueta a observar. Por defecto es "INBOX" si se omite.
  • Microsoft Teams: {teamId}/{channelId} para observar un canal específico, o {chatId} para observar un chat específico.
  • SharePoint: {siteId}/{listId} para observar una lista específica.

Condiciones de activación

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.
string
Cómo combinar las condiciones. Valores posibles: "and" (todas deben coincidir), "or" (cualquiera debe coincidir). Por defecto es "and".
array
requerido
Uno o más objetos de condición o grupos de condiciones anidados. Máximo 20 condiciones hoja y 5 niveles de anidación.

Payload del webhook

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.

Ejemplos de automatizaciones de conectores

Argumentos de función

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.

Ejemplo de argumentos de función

Este ejemplo muestra una función que gestiona los modos de sincronización incremental y completa según la configuración de la automatización:

Desplegar automatizaciones

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.

Gestionar automatizaciones en el panel

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
  • Monitorizar el estado de las automatizaciones

Ver también

Esta página se tradujo con IA. Para información más precisa y actualizada, consulta la versión en inglés.