Ações
Uma ação é uma etapa dentro de um fluxo de trabalho. Uma vez que o gatilho dispara, o GCM percorre as ações conectadas em ordem, executando cada uma. O catálogo completo está agrupado em cinco categorias.
Ações de membro
Estas leem ou escrevem na tabela de membros.
| Ação | O que faz |
|---|---|
find_member | Busca um membro por telefone, e-mail ou critério personalizado. O resultado fica disponível para ações posteriores. |
find_members_by_segment | Encontra todos os membros que correspondem a um filtro (retorna uma lista para iterar). |
create_member | Insere um novo registro de membro. |
update_member | Altera um ou mais campos em um membro. |
change_membership_type | Converte visitante → membro, etc. |
mark_member_lost | Define lost_at. |
recover_member | Limpa lost_at. |
delete_member | Exclusão lógica. |
assign_unit / remove_from_unit | Atribuição de unidade organizacional. |
assign_group / remove_from_group | Atribuição a pequeno grupo. |
assign_ministry / remove_from_ministry | Atribuição a ministério. |
enroll_school / graduate_school / remove_from_school | Ciclo de vida do programa escolar. |
add_note | Acrescenta uma nota ao perfil do membro. |
Ações de comunicação
Estas enviam mensagens.
| Ação | O que faz |
|---|---|
send_message | Envia via WhatsApp / SMS / e-mail para um destinatário. |
send_notification | Envia uma notificação in-app ou web push para a equipe. |
Ambas permitem escolher um template ou compor inline. Tokens de mesclagem preenchem dados dinâmicos.
TIP
Sempre prefira templates a mensagens inline para fluxos de trabalho em produção. Editar um template depois atualiza todo fluxo de trabalho que o usa.
Ações de controle de fluxo
Estas controlam como o fluxo de trabalho percorre o grafo.
| Ação | O que faz |
|---|---|
condition | Ramifica por um booleano — saídas verdadeiro / falso |
split | Executa várias branches em paralelo |
wait_delay | Pausa por N minutos / horas / dias antes de continuar |
wait_until | Pausa até uma data/hora específica |
wait_event | Pausa até que outro evento dispare |
go_to | Salta para outro nó (loop / pular) |
for_each | Itera sobre uma lista — a saída da ação anterior |
Os operadores de condição são ricos: is, is_not, contains, greater_than, less_than, is_empty, matches_regex, is_exactly_n_days_ago, is_between_days_ago, is_today, is_within_last_n_days, is_in_next_n_days, is_during_business_hours, e vários outros.
Ações de dados
Estas manipulam dados sem mudar membros diretamente.
| Ação | O que faz |
|---|---|
set_variable | Armazena um valor para uso em ações posteriores |
aggregate | Conta / soma / média sobre uma lista |
math_operation | Somar, subtrair, multiplicar, dividir |
lookup | Lê um único campo de uma tabela relacionada |
Ações de integração
Estas alcançam fora do GCM.
| Ação | O que faz |
|---|---|
send_webhook | POST para uma URL externa com um payload personalizado |
create_task | Cria uma tarefa no seu rastreador de tarefas de equipe |
A ação de webhook é a saída de emergência. Se você precisa falar com o Zapier, o Slack, sua planilha Google de gestão de igreja ou qualquer outro sistema, esse é o caminho.
Configurar uma ação
Clique em qualquer nó de ação para abrir o painel de configuração à direita. Toda ação tem no mínimo:
- Nome de exibição — o que aparece no canvas.
- Configuração específica da ação — seletor de destinatário para mensagens, seletor de campo para atualizações, etc.
- Tratamento de erros — o que fazer se a ação falhar (tentar de novo, pular, abortar a execução).
A maioria dos campos de configuração suporta tokens de mesclagem, então você pode montar ações dinâmicas como "enviar uma mensagem para quem for o pastor do membro do gatilho" sem escrever código.
Tratamento de erros
Cada ação pode ser configurada para falhas. Opções:
- Tentar de novo — tentar até N vezes com backoff.
- Pular e continuar — registrar o erro, ir para a próxima ação.
- Abortar a execução — parar o fluxo de trabalho aqui.
Os padrões são sensatos:
send_message— tenta 3 vezes depois pula.update_member— aborta em falha (consistência de dados).send_webhook— tenta 3 vezes depois pula.
Idempotência
Onde possível, as ações são idempotentes — executá-las duas vezes com a mesma entrada tem o mesmo efeito de executar uma vez. Isso importa para retries e para gatilhos duplos acidentais. send_message em particular usa uma chave de idempotência (ID da execução do fluxo de trabalho + ID da ação + ID do membro) para que o destinatário nunca receba duplicatas se a chamada subjacente for repetida.
Ações personalizadas
Tipos de ação personalizados não são configuráveis pelo usuário na v1. Se você precisa de um comportamento que não está no catálogo, use send_webhook para alcançar uma função externa. Escreva para nós se você tem um padrão recorrente que deveria ser integrado.
Perguntas comuns
Uma ação pode falar com dados de outra organização? Não. Todas as ações são restritas à organização do fluxo de trabalho via current_org_id(). Mesmo se você montasse um payload de webhook para consultar outra organização, o RLS recusaria.
Posso excluir um nó no meio do grafo? Sim — selecione e aperte excluir. As linhas se reconectam ao que estava upstream.
E se meu fluxo de trabalho ficar preso em um wait_delay? A execução fica no estado aguardando até o atraso passar. Você pode cancelar manualmente pela página de execuções se precisar.
Próximos passos
- Gatilhos — o que dispara o fluxo de trabalho.
- Multi-etapa e atrasos — sequenciar ações ao longo do tempo.
- Monitoramento de execuções — depurar falhas.
