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

Tipos de automation

A Base44 suporta 4 tipos de automations:

Campos comuns

Campos comuns para todas as automations

Todos os tipos de automation compartilham os seguintes campos:

Campos comuns para automations agendadas

Tanto automations agendadas com cron quanto com cronograma simples compartilham estes campos adicionais:

Configuração de automation

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.

Cron

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.

Exemplo de cron

Este exemplo executa uma função todos os dias à meia-noite UTC:

Cronograma simples

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.

Exemplos de cronograma simples

Os exemplos a seguir mostram diferentes maneiras de agendar automations com cronogramas simples:

Eventos de entidade

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.

Exemplos de eventos de entidade

Os exemplos a seguir mostram como disparar funções com base em eventos de entidade:

Connector automations

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.

Integrações e eventos suportados

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.

Formatos de Resource ID

O valor esperado para resource_id varia por conector:
  • Google Drive: O ID do arquivo. Obrigatório para eventos com escopo de arquivo (file, file.update, file.trash, file.untrash, file.delete).
  • Gmail: Uma lista separada por vírgulas de IDs de label para observar. Padrão é "INBOX" se omitido.
  • Microsoft Teams: {teamId}/{channelId} para observar um canal específico, ou {chatId} para observar um chat específico.
  • SharePoint: {siteId}/{listId} para observar uma lista específica.

Condições de gatilho

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.
string
Como combinar as condições. Valores possíveis: "and" (todas devem corresponder), "or" (qualquer deve corresponder). O padrão é "and".
array
obrigatório
Um ou mais objetos de condição ou grupos de condição aninhados. Máximo de 20 condições folha e 5 níveis de aninhamento.

Payload do webhook

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.

Exemplos de connector automation

Argumentos de função

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.

Exemplo de argumentos de função

Este exemplo mostra uma função que lida com modos de sincronização incremental e completa com base no config da automation:

Implante automations

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.

Gerencie automations no dashboard

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:
  • Ver logs e histórico de execução
  • Executar automations manualmente para testes
  • Monitorar o status das automations

Veja também

Esta página foi traduzida usando IA. Para informações mais precisas e atualizadas, consulte a versão em inglês.