Agende tarefas recorrentes e dispare funções automaticamente com base em eventos do banco de dados ou eventos de webhook de conectores
Você está vendo a documentação para desenvolvedores
Esta documentação é para desenvolvedores que trabalham com a plataforma para desenvolvedores Base44. Para informações sobre automations no editor de apps, veja Criando automations para seu app.
As Automations permitem que funções de backend sejam executadas automaticamente em um cronograma, em resposta a eventos do banco de dados ou quando uma integração conectada envia um evento de webhook. Use as automations para processar dados em intervalos regulares, lidar com mudanças de entidade, reagir a eventos de serviços externos ou executar tarefas únicas em horários específicos.Cada função de backend pode ter múltiplas automations anexadas, configuradas no arquivo function.jsonc da função. Se você só tem um arquivo entry.ts ou entry.js, precisará adicionar este arquivo de configuração para usar automations. Automations são implantadas atomicamente com o código da função quando você executa deploy ou functions deploy.
Connector automations: Responda a eventos de serviços conectados em tempo real, como um novo e-mail no Gmail ou uma mudança de arquivo no Google Drive.
Tanto automations agendadas com cron quanto com cronograma simples compartilham estes campos adicionais:
Campo
Tipo
Obrigatório
Descrição
schedule_mode
string
Sim
Se o cronograma se repete. Valores possíveis: "recurring" ou "one-time".
schedule_type
string
Sim
Método de agendamento a usar. Valores possíveis: "cron" ou "simple".
ends_type
string
Não
Quando o cronograma recorrente deve parar. Valores possíveis: "never", "on" ou "after". O padrão é "never".
ends_on_date
string
Condicional
Data em que o cronograma recorrente termina, inclusiva, em UTC. Obrigatório quando ends_type é "on". Formato: YYYY-MM-DDTHH:MM:SSZ. Por exemplo, "2026-12-31T23:59:59Z".
ends_after_count
number
Condicional
Número de execuções após o qual o cronograma recorrente para. Obrigatório quando ends_type é "after".
Configure automations no seu arquivo function.jsonc usando uma das abordagens a seguir. Todas as automations usam os campos comuns para todas as automations listados acima, mais os campos específicos de cada tipo.
Use os campos comuns para todas as automations e os campos comuns para automations agendadas junto com os campos específicos de cron listados aqui.Defina type como "scheduled" e schedule_type como "cron" para usar expressões cron para controle preciso de agendamento.Automations cron usam a sintaxe padrão de 5 campos: minute hour day-of-month month day-of-week. Veja crontab.guru para um editor interativo e referência de sintaxe de expressões cron.
Use os campos comuns para todas as automations e os campos comuns para automations agendadas junto com os campos de cronograma simples listados aqui.Defina type como "scheduled" e schedule_type como "simple" para necessidades de agendamento mais simples.Configure tarefas recorrentes por intervalo como minutos, horas, dias, semanas ou meses sem escrever expressões cron.
Campo
Tipo
Obrigatório
Descrição
one_time_date
string
Condicional
Data e hora em que a automation é executada uma vez, em UTC. Obrigatório quando schedule_mode é "one-time". Formato: YYYY-MM-DDTHH:MM:SSZ. Por exemplo, "2026-02-15T10:00:00Z".
repeat_unit
string
Condicional
Unidade de tempo para automations recorrentes. Obrigatório quando schedule_mode é "recurring". Valores possíveis: "minutes", "hours", "days", "weeks" ou "months".
repeat_interval
number
Condicional
Intervalo entre execuções. Obrigatório quando repeat_unit é "minutes", "hours" ou "days".
start_time
string
Condicional
Hora do dia em que a automation é executada, em UTC. Obrigatório quando repeat_unit é "days", "weeks" ou "months". Formato: HH:MM.
repeat_on_days
number[]
Condicional
Dias da semana em que a automation é executada. Obrigatório quando repeat_unit é "weeks". Array de números de dia da semana, onde 0 é domingo e 6 é sábado.
repeat_on_day_of_month
number
Condicional
Dia do mês em que a automation é executada. Obrigatório quando repeat_unit é "months". Valores válidos: 1-31.
Use os campos comuns para todas as automations junto com os campos de evento de entidade listados aqui.Defina type como "entity" para disparar funções automaticamente quando registros do banco de dados são criados, atualizados ou excluídos.Automations de entidade podem escutar 1 ou mais tipos de evento em uma entidade específica.
Campo
Tipo
Obrigatório
Descrição
entity_name
string
Sim
Nome da entidade a monitorar.
event_types
string[]
Sim
Eventos do banco de dados a escutar. Valores possíveis: "create", "update", "delete". Pelo menos 1 obrigatório.
Use os campos comuns para todas as automations junto com os campos específicos de conector listados aqui.Defina type como "connector" para disparar funções quando uma integração conectada envia um evento de webhook. Use estes para reagir à atividade de serviços externos em tempo real. Por exemplo, você pode analisar um novo e-mail, sincronizar uma mudança de calendário ou responder a uma atualização de arquivo no Google Drive.Você pode opcionalmente adicionar condições de gatilho para filtrar eventos para que sua função só rode quando o payload corresponder a regras que você define.Quando uma connector automation dispara, sua função recebe um payload de webhook estruturado contendo o tipo de evento, detalhes da integração e os dados brutos do serviço externo.
O conector deve estar configurado no seu projeto e autorizado antes do deploy. Veja Conectores compartilhados para instruções de configuração.
Campo
Tipo
Obrigatório
Descrição
integration_type
string
Sim
O identificador do tipo de conector para escutar. Veja integrações suportadas para valores aceitos.
events
string[]
Sim
Um ou mais nomes de evento de webhook para assinar. Veja integrações suportadas para eventos disponíveis por conector.
resource_id
string
Condicional
Restringe a automation a um recurso específico. O formato esperado depende do conector. Veja Formatos de Resource ID abaixo. Obrigatório para eventos de Google Drive com escopo de arquivo. Opcional para outros conectores.
trigger_conditions
object
Não
Regras que devem corresponder ao evento recebido antes que sua função seja executada. Se o evento não corresponder, a execução é pulada. Veja Condições de gatilho para a referência completa.
Qualquer mudança em arquivo ou pasta, incluindo criado, modificado e excluído.
Microsoft Outlook
outlook
created
Um novo e-mail, evento de calendário ou contato é criado.
Microsoft Outlook
outlook
updated
Um e-mail, evento de calendário ou contato é atualizado.
Microsoft Outlook
outlook
deleted
Um e-mail, evento de calendário ou contato é excluído.
Microsoft SharePoint
share_point
updated
Quando um item de lista ou documento é criado, modificado ou excluído.
Microsoft Teams
microsoft_teams
created
Quando uma nova mensagem de chat é postada.
Microsoft Teams
microsoft_teams
updated
Quando uma mensagem de chat é atualizada.
Microsoft Teams
microsoft_teams
deleted
Quando uma mensagem de chat é excluída.
Slack
slack
message
Quando uma mensagem é postada em um canal.
Slack
slack
message.im
Quando uma mensagem direta é postada.
Slack
slack
message.groups
Quando uma mensagem é postada em um canal privado.
Slack
slack
message.channels
Quando uma mensagem é postada em um canal público.
Slack
slack
message.mpim
Quando uma mensagem é postada em um IM multipartido.
Slack
slack
reaction_added
Quando uma reação é adicionada a uma mensagem.
Slack
slack
reaction_removed
Quando uma reação é removida de uma mensagem.
Slack
slack
member_joined_channel
Quando um usuário entra em um canal.
Slack
slack
member_left_channel
Quando um usuário sai de um canal.
Slack
slack
file_shared
Quando um arquivo é compartilhado.
O evento mailbox do Gmail dispara para qualquer mudança na caixa de e-mail, não apenas novas mensagens. Para executar sua função somente quando novos e-mails chegarem, adicione uma condição de gatilho: { "field": "has_new_messages", "operator": "equals", "value": true }.
Connector automations do Slack exigem condições de gatilho. O deploy falhará se nenhuma condição for definida para connector automations do Slack.
Use trigger_conditions para filtrar eventos de webhook para que sua função só rode quando o payload corresponder a regras que você define. Se nenhuma condição for definida, a função roda para cada evento recebido. Veja Exemplos de connector automation para configurações completas.
Quando uma connector automation dispara sua função, o corpo da requisição contém um objeto payload com a seguinte estrutura. Veja Exemplos de connector automation para uma função que lê o payload.
Campo
Tipo
Descrição
payload.automation.id
string
ID da automation que disparou esta execução.
payload.automation.name
string
Nome da automation.
payload.automation.type
string
Sempre "connector".
payload.event.type
string
O nome do evento do webhook. Por exemplo, "mailbox", "events" ou "changes".
payload.event.integration_type
string
O tipo de conector. Por exemplo, "gmail" ou "googlecalendar".
payload.event.provider_identifier
string
O identificador da conta do provedor usado para roteamento.
payload.data
object
O payload bruto do webhook do serviço externo. Definido como null quando payload_too_large é true.
payload.payload_too_large
boolean
É true quando o payload do webhook excedeu ~200 KB e data é 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"] } ]}
Passe dados para sua função quando ela é disparada incluindo o campo function_args na sua configuração de automation. Isso é útil quando uma função lida com múltiplas automations com comportamentos diferentes, como uma função de sincronização que roda incrementalmente a cada 15 minutos, mas faz uma sincronização completa diariamente.Acesse esses argumentos no código da sua função através do corpo da requisição.
Implante funções de backend com suas automations usando o comando da CLI functions deploy ou o comando unificado deploy. Você pode implantar funções específicas pelo nome com functions deploy <names...>.O deploy é atômico por função. Uma função só é considerada implantada se tanto o deploy do Deno quanto todas as suas automations forem bem-sucedidas. Se qualquer automation falhar ao implantar, todo o deploy da função é revertido.Após implantar, a CLI mostra o status por função: deployed, unchanged ou error.
Qualquer mudança feita no dashboard será sobrescrita na próxima vez que você executar functions deploy. Não há sincronização bidirecional entre o dashboard e seus arquivos locais. Automations definidas nos seus arquivos function.jsonc locais são a fonte da verdade.Se você quiser fazer mudanças nas suas automations, atualize seus arquivos function.jsonc locais e faça redeploy. Use o dashboard para monitorar logs de execução e disparar automations manualmente quando necessário.
Veja e gerencie suas automations no dashboard da Base44 na aba Automations. No dashboard, você pode: