Planifiez des tâches récurrentes et déclenchez des fonctions automatiquement en fonction d’événements de base de données ou d’événements webhook de connecteurs
Vous consultez la documentation pour développeurs
Cette documentation est destinée aux développeurs travaillant avec la plateforme développeur Base44. Pour des informations sur les automatisations dans l’éditeur d’applications, consultez Création d’automatisations pour votre application.
Les automatisations permettent aux fonctions backend de s’exécuter automatiquement selon un planning, en réponse à des événements de base de données, ou lorsqu’une intégration connectée envoie un événement webhook. Utilisez les automatisations pour traiter des données à intervalles réguliers, gérer des changements d’entités, réagir à des événements de services externes ou exécuter des tâches ponctuelles à des heures spécifiques.Chaque fonction backend peut avoir plusieurs automatisations attachées, configurées dans le fichier function.jsonc de la fonction. Si vous n’avez qu’un fichier entry.ts ou entry.js, vous devrez ajouter ce fichier de configuration pour utiliser les automatisations. Les automatisations sont déployées atomiquement avec le code de la fonction lorsque vous exécutez deploy ou functions deploy.
Automatisations d’événements d’entité : déclenchez des fonctions lorsque des enregistrements de base de données sont créés, mis à jour ou supprimés.
Automatisations de connecteur : répondez aux événements des services connectés en temps réel, comme un nouvel e-mail dans Gmail ou un changement de fichier dans Google Drive.
Champs communs pour les automatisations planifiées
Les automatisations planifiées cron et simples partagent ces champs supplémentaires :
Champ
Type
Requis
Description
schedule_mode
string
Oui
Si la planification se répète. Valeurs possibles : "recurring" ou "one-time".
schedule_type
string
Oui
Méthode de planification à utiliser. Valeurs possibles : "cron" ou "simple".
ends_type
string
Non
Quand la planification récurrente doit s’arrêter. Valeurs possibles : "never", "on", ou "after". La valeur par défaut est "never".
ends_on_date
string
Conditionnel
Date à laquelle la planification récurrente se termine, incluse, en UTC. Requis lorsque ends_type est "on". Format : YYYY-MM-DDTHH:MM:SSZ. Par exemple, "2026-12-31T23:59:59Z".
ends_after_count
number
Conditionnel
Nombre d’exécutions après lequel la planification récurrente s’arrête. Requis lorsque ends_type est "after".
Configurez les automatisations dans votre fichier function.jsonc en utilisant l’une des approches suivantes. Toutes les automatisations utilisent les champs communs pour toutes les automatisations listés ci-dessus, plus les champs spécifiques à chaque type.
Utilisez les champs communs pour toutes les automatisations et les champs communs pour les automatisations planifiées ainsi que les champs spécifiques à cron listés ici.Définissez type à "scheduled" et schedule_type à "cron" pour utiliser des expressions cron pour un contrôle précis de la planification.Les automatisations cron utilisent la syntaxe standard à 5 champs : minute hour day-of-month month day-of-week. Consultez crontab.guru pour un éditeur interactif d’expressions cron et une référence de syntaxe.
Utilisez les champs communs pour toutes les automatisations et les champs communs pour les automatisations planifiées ainsi que les champs de planification simple listés ici.Définissez type à "scheduled" et schedule_type à "simple" pour des besoins de planification simples.Configurez des tâches récurrentes par intervalle, comme des minutes, des heures, des jours, des semaines ou des mois, sans écrire d’expressions cron.
Champ
Type
Requis
Description
one_time_date
string
Conditionnel
Date et heure auxquelles l’automatisation s’exécute une fois, en UTC. Requis lorsque schedule_mode est "one-time". Format : YYYY-MM-DDTHH:MM:SSZ. Par exemple, "2026-02-15T10:00:00Z".
repeat_unit
string
Conditionnel
Unité de temps pour les automatisations récurrentes. Requis lorsque schedule_mode est "recurring". Valeurs possibles : "minutes", "hours", "days", "weeks", ou "months".
repeat_interval
number
Conditionnel
Intervalle entre les exécutions. Requis lorsque repeat_unit est "minutes", "hours", ou "days".
start_time
string
Conditionnel
Heure de la journée à laquelle l’automatisation s’exécute, en UTC. Requis lorsque repeat_unit est "days", "weeks", ou "months". Format : HH:MM.
repeat_on_days
number[]
Conditionnel
Jours de la semaine où l’automatisation s’exécute. Requis lorsque repeat_unit est "weeks". Tableau de numéros de jours de la semaine, où 0 est dimanche et 6 est samedi.
repeat_on_day_of_month
number
Conditionnel
Jour du mois où l’automatisation s’exécute. Requis lorsque repeat_unit est "months". Valeurs valides : 1-31.
Utilisez les champs communs pour toutes les automatisations ainsi que les champs d’événements d’entité listés ici.Définissez type à "entity" pour déclencher des fonctions automatiquement lorsque des enregistrements de base de données sont créés, mis à jour ou supprimés.Les automatisations d’entité peuvent écouter 1 ou plusieurs types d’événements sur une entité spécifique.
Champ
Type
Requis
Description
entity_name
string
Oui
Nom de l’entité à surveiller.
event_types
string[]
Oui
Événements de base de données à écouter. Valeurs possibles : "create", "update", "delete". Au moins 1 requis.
Utilisez les champs communs pour toutes les automatisations ainsi que les champs spécifiques au connecteur listés ici.Définissez type à "connector" pour déclencher des fonctions lorsqu’une intégration connectée envoie un événement webhook. Utilisez-les pour réagir à l’activité d’un service externe en temps réel. Par exemple, vous pouvez analyser un nouvel e-mail, synchroniser un changement de calendrier ou répondre à une mise à jour de fichier dans Google Drive.Vous pouvez éventuellement ajouter des conditions de déclenchement pour filtrer les événements afin que votre fonction ne s’exécute que lorsque la charge utile correspond aux règles que vous définissez.Lorsqu’une automatisation de connecteur se déclenche, votre fonction reçoit une charge utile webhook structurée contenant le type d’événement, les détails d’intégration et les données brutes du service externe.
Le connecteur doit être configuré dans votre projet et autorisé avant le déploiement. Consultez Connecteurs partagés pour les instructions de configuration.
Un ou plusieurs noms d’événements webhook auxquels s’abonner. Consultez intégrations prises en charge pour les événements disponibles par connecteur.
resource_id
string
Conditionnel
Limite l’automatisation à une ressource spécifique. Le format attendu dépend du connecteur. Consultez Formats d’ID de ressource ci-dessous. Requis pour les événements à portée de fichier Google Drive. Facultatif pour d’autres connecteurs.
trigger_conditions
object
Non
Règles qui doivent correspondre à l’événement entrant avant que votre fonction ne s’exécute. Si l’événement ne correspond pas, l’exécution est ignorée. Consultez Conditions de déclenchement pour la référence complète.
Tout changement de fichier ou de dossier, y compris créé, modifié et supprimé.
Microsoft Outlook
outlook
created
Un nouvel e-mail, événement de calendrier ou contact est créé.
Microsoft Outlook
outlook
updated
Un e-mail, événement de calendrier ou contact est mis à jour.
Microsoft Outlook
outlook
deleted
Un e-mail, événement de calendrier ou contact est supprimé.
Microsoft SharePoint
share_point
updated
Lorsqu’un élément de liste ou un document est créé, modifié ou supprimé.
Microsoft Teams
microsoft_teams
created
Lorsqu’un nouveau message de chat est publié.
Microsoft Teams
microsoft_teams
updated
Lorsqu’un message de chat est mis à jour.
Microsoft Teams
microsoft_teams
deleted
Lorsqu’un message de chat est supprimé.
Slack
slack
message
Lorsqu’un message est publié sur un canal.
Slack
slack
message.im
Lorsqu’un message direct est publié.
Slack
slack
message.groups
Lorsqu’un message est publié sur un canal privé.
Slack
slack
message.channels
Lorsqu’un message est publié sur un canal public.
Slack
slack
message.mpim
Lorsqu’un message est publié sur un IM multi-parties.
Slack
slack
reaction_added
Lorsqu’une réaction est ajoutée à un message.
Slack
slack
reaction_removed
Lorsqu’une réaction est supprimée d’un message.
Slack
slack
member_joined_channel
Lorsqu’un utilisateur rejoint un canal.
Slack
slack
member_left_channel
Lorsqu’un utilisateur quitte un canal.
Slack
slack
file_shared
Lorsqu’un fichier est partagé.
L’événement mailbox de Gmail se déclenche pour tout changement de boîte aux lettres, pas seulement les nouveaux messages. Pour exécuter votre fonction uniquement lorsque de nouveaux e-mails arrivent, ajoutez une condition de déclenchement : { "field": "has_new_messages", "operator": "equals", "value": true }.
Les automatisations de connecteur Slack nécessitent des conditions de déclenchement. Le déploiement échouera si aucune condition n’est définie pour les automatisations de connecteur Slack.
Utilisez trigger_conditions pour filtrer les événements webhook afin que votre fonction ne s’exécute que lorsque la charge utile correspond aux règles que vous définissez. Si aucune condition n’est définie, la fonction s’exécute pour chaque événement entrant. Consultez Exemples d’automatisation de connecteur pour des configurations complètes.
Comment combiner les conditions. Valeurs possibles : "and" (toutes doivent correspondre), "or" (au moins une doit correspondre). La valeur par défaut est "and".
Chemin séparé par des points dans la charge utile webhook. Par exemple, "status" lit payload.data.status, et "sender.email" lit payload.data.sender.email.
Lorsqu’une automatisation de connecteur déclenche votre fonction, le corps de la requête contient un objet payload avec la structure suivante. Consultez Exemples d’automatisation de connecteur pour une fonction qui lit la charge utile.
Champ
Type
Description
payload.automation.id
string
ID de l’automatisation qui a déclenché cette exécution.
payload.automation.name
string
Nom de l’automatisation.
payload.automation.type
string
Toujours "connector".
payload.event.type
string
Le nom de l’événement webhook. Par exemple, "mailbox", "events", ou "changes".
payload.event.integration_type
string
Le type de connecteur. Par exemple, "gmail" ou "googlecalendar".
payload.event.provider_identifier
string
L’identifiant du compte fournisseur utilisé pour le routage.
payload.data
object
La charge utile webhook brute du service externe. Définie à null lorsque payload_too_large est true.
payload.payload_too_large
boolean
Est true lorsque la charge utile webhook a dépassé ~200 Ko et que data est 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"] } ]}
Passez des données à votre fonction lorsqu’elle est déclenchée en incluant le champ function_args dans votre configuration d’automatisation. Ceci est utile lorsqu’une fonction gère plusieurs automatisations avec des comportements différents, comme une fonction de synchronisation qui s’exécute de manière incrémentielle toutes les 15 minutes mais effectue une synchronisation complète quotidiennement.Accédez à ces arguments dans le code de votre fonction via le corps de la requête.
Cet exemple montre une fonction qui gère à la fois les modes de synchronisation incrémentielle et complète en fonction de la configuration d’automatisation :
Deno.serve(async (req) => { const body = await req.json(); const args = body.args ?? {}; // Use the arguments from automation config const mode = args.mode ?? "incremental"; // Your function logic});
Déployez les fonctions backend avec leurs automatisations en utilisant la commande CLI functions deploy ou la commande unifiée deploy. Vous pouvez déployer des fonctions spécifiques par nom avec functions deploy <names...>.Le déploiement est atomique par fonction. Une fonction n’est considérée comme déployée que si le déploiement Deno et toutes ses automatisations réussissent. Si une automatisation échoue à se déployer, le déploiement de la fonction entière est annulé.Après le déploiement, la CLI affiche le statut par fonction : déployé, inchangé ou erreur.
Toutes les modifications effectuées dans le tableau de bord seront écrasées la prochaine fois que vous exécuterez functions deploy. Il n’y a pas de synchronisation bidirectionnelle entre le tableau de bord et vos fichiers locaux. Les automatisations définies dans vos fichiers function.jsonc locaux sont la source de vérité.Si vous voulez modifier vos automatisations, mettez à jour vos fichiers function.jsonc locaux et redéployez. Utilisez le tableau de bord pour surveiller les logs d’exécution et déclencher manuellement les automatisations si nécessaire.
Visualisez et gérez vos automatisations dans le tableau de bord Base44 sous l’onglet Automations. Depuis le tableau de bord, vous pouvez :
Voir les logs d’exécution et l’historique
Exécuter les automatisations manuellement à des fins de test