Workflows
Automatizações por acionador. Quando algo acontece (alguém entra, compra, conclui um curso, ou passa N dias sem entrar), cada pessoa segue um caminho de esperas, condições, e-mails da biblioteca, mensagens, comentários, reações, etiquetas, grupos e publicações no Slack, ao seu ritmo. Editor em canvas, variáveis entre os blocos, fim com sucesso ou erro, taxa de sucesso, envio adiado pela cota, simulação, histórico, limites, quem assina e os 9 modelos. Também Chamar webhook com as Variáveis e chaves, as ações da plataforma, Chamar workflow e com que papel os passos agem. Também os blocos de IA Claude e ChatGPT, com a chave de API da própria comunidade, os Limites de IA e as ações de publicação, certificado, reconhecimento, chat, 1:1 e PDI.
Um workflow é uma automatização por acionador: quando algo acontece com uma pessoa (entra na comunidade, compra, conclui um curso, passa 30 dias sem entrar), ela entra num caminho que desenha, com esperas, condições e ações, e segue esse caminho ao seu ritmo. É a sequência de boas-vindas, o lembrete a quem desapareceu, os parabéns pelo curso, sem que ninguém da equipa tenha de carregar em nada.
A Memberfy ajuda os RH a manter toda a gente envolvida: os mesmos workflows lembram uma avaliação pendente, uma 1:1 sem registo ou uma meta sem check-in.
Onde fica: Administração › Workflows. O proprietário e o administrador criam, editam, ligam e pausam; o moderador e o financeiro veem, simulam e acompanham o histórico; o membro não vê a área.
Como funciona
O acionador
Cada workflow começa num único acionador, um bloco do desenho arrastado da categoria Gatilhos. Cada família tem o seu bloco (Membros, Compras, Subscrições, Eventos, Cursos, Certificados, Badges, Níveis e pontos, Formulários, Pesquisas, Chamadas de trabalhos, Publicações e comentários, Votações, Downloads, Espaços, Mensagens, os de RH, Tempo, Manual e Webhook), por ordem dos mais usados, e o evento é escolhido no painel do bloco, em Dispara quando; trocar o evento não troca o bloco. Procurar um evento ("subscrição cancelada") encontra o respetivo bloco e cria-o logo nesse evento. No desenho, o bloco mostra a família em cima e o evento em baixo. Com um acionador no desenho, a categoria Gatilhos desaparece do seletor; para outro tipo de acionador, troque o bloco.
Quando algo acontece, por exemplo:
| Assunto | Acionadores |
|---|---|
| Membros | Novo membro na comunidade (registo, convite aceite, compra, equipa, empresa ou importação, com a Origem; não é o início de sessão), alguém sai, muda de papel, recebe ou perde uma etiqueta, entra ou sai de um grupo, muda um campo do perfil; Alguém volta depois de N dias sem aceder (com Ficou pelo menos 7 dias ou mais; conta o acesso pela app ou pelo assistente) |
| Compras e subscrições | Uma compra é concluída (com o filtro Só a primeira compra: a primeira compra da pessoa, de qualquer produto, gratuitas incluídas) ou reembolsada; alguém começa uma compra, abandona o carrinho, ou um carrinho é recuperado; uma subscrição começa, é renovada, muda de plano, fica em atraso, tem o período de teste grátis a terminar, é cancelada ou termina |
| Conteúdo e espaços | Alguém publica, comenta ou reage; visita um espaço pela primeira vez; ganha acesso a um espaço; o ciclo de vida de publicações, espaços e downloads (ver Eventos do ciclo de vida) |
| Cursos e eventos | Matrícula, aula ou curso concluído, questionário aprovado ou não, certificado emitido; inscrição, bilhete recebido, inscrição cancelada, vaga da lista de espera, check-in feito ou desfeito |
| Níveis e pontos | Subiu de nível, Desceu de nível (com o Motivo) e Atingiu N pontos. Ver Níveis e pontos |
| Outros módulos | Formulário, inquérito e proposta respondidos ou decididos, tópico de votação, ficheiro descarregado, registo de entrada e de saída na assiduidade, reservas, reconhecimento e feedback recebidos, e a DM recebida. O evento de reconhecimento recebido traz o tipo do reconhecimento (type: APPRECIATION, WELCOME…). |
| Pessoas (RH) | Um ciclo de avaliação abre, alguém envia uma avaliação, um resultado é libertado; uma 1:1 é registada; um resultado-chave recebe check-in ou fica em risco; um plano de desenvolvimento é aprovado; uma ronda de inquérito abre |
A Origem de Novo membro na comunidade inclui Veio de aprovação, para quem entrou pelo registo com aprovação (member.joined com source: approval). É o "registo aprovado": um workflow de boas-vindas com esse filtro dispara quando a equipa aprova o pedido, não quando a pessoa pede. O pedido em si, e a recusa, não disparam workflow nem webhook.
Cada acionador aceita o seu filtro: o produto, o curso, o evento, o espaço, o grupo, a etiqueta, o campo, o ciclo ou o inquérito (vazio: qualquer um). O painel do acionador (Entrada no workflow) reúne o filtro, quantas vezes a pessoa entra, o Limite de frequência e a descrição.
Tempo (todos os dias, por data): uma passagem por dia, a partir das 9h no fuso horário da comunidade, para quem cumpre a regra nesse dia: Alguém está há N dias sem aceder, Todo dia, para todos, Avaliação pendente há N dias, Avaliação vence em N dias, 1:1 daqui a N dias, 1:1 sem registo há N dias, Combinado de 1:1 atrasado há N dias, Resultado-chave sem check-in há N dias, Ciclo de metas termina em N dias, Ação do plano de desenvolvimento atrasada há N dias e Inquérito sem resposta há N dias. Cada pessoa entra uma vez pelo mesmo facto. No acionador Alguém está há N dias sem aceder, ao ligar o workflow pela primeira vez, Incluir quem já está há mais de N dias sem entrar coloca também quem já passou desse ponto: a janela mostra quantas pessoas são e pede a confirmação, e cada uma entra uma vez, ao ritmo do limite diário.
Manual (pessoas escolhidas): a equipa inicia o workflow para quem escolher. Com o workflow ligado, Executar agora pede as Pessoas ou um Público (como o das campanhas), mostra antes quantas entram, quem fica de fora (quem anulou a subscrição, com e-mail inválido ou que denunciou) e em quantos dias os e-mails saem pelo limite diário, e pede a confirmação ("Compreendo que N pessoas vão receber os passos deste workflow agora"). Confirmar duas vezes não inicia duas vezes. Até 20 mil pessoas de cada vez, em lotes.
Agendado: todos os dias, todas as semanas (nos Dias da semana) ou todos os meses (no Dia do mês, de 1 a 28), no Horário escolhido no fuso da comunidade, Para quem definir. Ligar pede a mesma confirmação dos acionadores por data, e um dia com o envio da comunidade suspenso é saltado.
Webhook recebido: outro sistema chama o endereço do acionador e inicia o workflow para a pessoa indicada no corpo da chamada. Ver Webhook de entrada.
Chamado por outro workflow: o workflow começa quando outro o chama pelo passo Chamar workflow, para a mesma pessoa. Ver Ações da plataforma e outros workflows.
Os passos
| Passo | O que faz |
|---|---|
| Esperar | De 5 minutos a 365 dias |
| Condição (se / senão) | Divide o caminho em Sim e Não por regras, lidas no momento do passo: etiquetas (várias de uma vez, com tem qualquer uma das etiquetas, tem todas as etiquetas ou não tem nenhuma das etiquetas), grupo, campo do perfil, último acesso, curso concluído ou em curso, produto comprado, carrinho abandonado, acesso e visita a um espaço, inscrição e presença num evento, nível e pontos (grupo Engajamento) e a regra Variável. Todas as regras valem ou Pelo menos uma regra vale. As regras aparecem em frases, como "Se a pessoa tem a etiqueta VIP e não entra há mais de 30 dias" |
| Enviar e-mail | Um e-mail da biblioteca; cada pessoa recebe a versão no seu idioma e, se não houver, a principal |
| Mandar mensagem (DM) | Uma mensagem no chat em nome de alguém da equipa (ver Em nome de quem) |
| Comentar no item e Reagir ao item | Em nome de alguém da equipa, sobre o item do acionador: a publicação, o comentário, a reação ou a inscrição da pessoa |
| Adicionar ou remover etiqueta e Adicionar a um grupo | Organiza a pessoa |
| Postar no Slack | Uma mensagem no canal da instalação do Slack da comunidade |
| Enviar SMS e Enviar WhatsApp | Um aviso no telemóvel da pessoa, na categoria Mensagens: no SMS, um texto de até 300 caracteres; no WhatsApp, um modelo aprovado com os campos preenchidos (ver Enviar SMS e Enviar WhatsApp) |
| Chamar webhook | Uma chamada HTTPS para outro sistema (um CRM, uma folha de cálculo, o n8n), com as chaves guardadas em Variáveis e chaves (ver Chamar webhook) |
| Claude e ChatGPT | Pedem um texto ou um JSON à IA, com a chave de API da própria comunidade, na categoria IA (ver Blocos de IA) |
| Ações da plataforma | Mudar papel, ajustar pontos, conceder ou remover badge, publicar publicação, emitir certificado, reconhecer, bloquear no chat, agendar 1:1, adicionar ação ao PDI, inscrever num evento, matricular num curso, dar acesso por cortesia, mandar um aviso na app; cada ação é um bloco, em Pessoas, Conteúdo ou Mensagens (ver Ações da plataforma e outros workflows) |
| Chamar workflow | Corre outro workflow para a mesma pessoa e espera que ele termine, na categoria Fluxo |
| Enquanto (repetir) | Repete um trecho enquanto as regras valem, até um máximo de 1 a 10 vezes (predefinição: 3). Todos os caminhos do trecho precisam de uma espera de pelo menos 1 dia |
| Registar log | Anota uma linha na execução (ver Registar log) |
| Fim: sucesso e Fim: erro | Onde cada caminho termina (ver Como um workflow termina) |
Cada bloco tem um Nome do bloco, para o reconhecer no desenho e encontrar as respetivas variáveis em Inserir variável. Os textos aceitam as variáveis do acionador e dos passos anteriores. O que um workflow faz nunca aciona outro workflow. A única forma de um workflow iniciar outro é o passo Chamar workflow.
O editor
O Desenho ocupa a altura total do ecrã:
- A barra de ícones à esquerda abre os blocos por categoria (Gatilhos, Fluxo, Mensagens, Pessoas, Conteúdo, Integrações, IA e Fim), com pesquisa (Procurar bloco…, atalho
/); cada categoria tem a sua cor. As categorias abrem e fecham como um acordeão (clique,Enterou espaço), mostram quantos blocos têm quando estão fechadas, e o navegador lembra-se das que deixou fechadas; uma pesquisa abre as que têm resultados. Arraste um bloco para o desenho ou clique para o adicionar depois do bloco selecionado. - Barras laterais redimensionáveis: arraste a margem da barra dos blocos ou do painel do bloco para mudar a largura, e um duplo clique repõe o padrão. A largura fica guardada no navegador.
- O "+" dos dois lados de cada bloco é o ponto de ligação. Clicar abre o seletor de blocos (depois da saída, ou antes da entrada); arrastar puxa um fio; largar um bloco do desenho, um bloco da barra ou a ponta de um fio sobre um + liga-os. O + no meio de uma ligação põe um passo no meio.
- Uma ligação recusada diz porquê, num aviso no desenho: "O gatilho não recebe ligações: é sempre o início.", "Um bloco não pode levar a si próprio." e "Isto criaria um ciclo. Para repetir passos, use o bloco "Enquanto (repetir)"."
- Um clique num bloco abre o respetivo painel, com o Nome do bloco, os campos e as opções reais da comunidade (e-mails, etiquetas, grupos, cursos, produtos, espaços e eventos, com pesquisa). Um passo fora de qualquer caminho fica marcado como Solto, e um passo com erro, marcado a vermelho.
- Menu de contexto (botão direito): Abrir, Duplicar, Eliminar, Adicionar bloco depois, Desligar, Colar.
- Barra de ferramentas e minimapa: Aproximar, Afastar, Ver tudo, Organizar, Desfazer, Refazer e um minimapa do desenho completo.
- Atalhos do teclado: eliminar o que está selecionado, desfazer e refazer, copiar, colar e duplicar blocos, selecionar tudo,
Escpara fechar o painel, guardar,Shift+ clique para selecionar vários, arrastar no fundo para selecionar por área eCtrl/⌘+ deslocar para o zoom. Atalhos do teclado mostra a lista.
Guardar um workflow ligado cria uma versão nova: vale para quem entrar daqui em diante, e quem já está a meio termina na versão em que começou.
Simular, testar e estimar
- Simular com uma pessoa percorre o desenho com os dados atuais dessa pessoa (incluindo o que ainda não foi guardado) e destaca o caminho: Seguiria pelo "sim", Esperaria 3 dias, Enviaria "…". Nada é enviado.
- Enviar teste para mim, num passo de e-mail, envia o e-mail apenas a quem tem a sessão iniciada.
- Simular e me enviar os e-mails faz a mesma simulação e envia os e-mails que a pessoa receberia, com o mesmo texto e as mesmas variáveis, apenas para si, com [Teste] no assunto. Não contam como envio (nem nos limites, nem na reputação de envio, nem no histórico) e não levam as ligações de cancelamento da subscrição da pessoa. Até 10 e-mails por simulação (num caminho com mais, saem os 10 primeiros) e 10 simulações com envio por hora. O botão aparece quando o desenho tem um passo Enviar e-mail, para quem pode simular, incluindo o moderador e o financeiro.
- Ao ligar, a janela mostra quantas pessoas ativaram o acionador no último dia, em 7 e em 30 dias, para dar uma ideia do volume; num acionador por data, quantas entrariam hoje. Só os próximos acionadores contam: quem passou pelo acionador antes não entra.
A simulação mostra o texto final de cada passo, com as variáveis preenchidas pela última vez que o acionador aconteceu para essa pessoa nos últimos 30 dias ("Textos preenchidos com a ocorrência de 20/10 desta pessoa."), ou com os dados de exemplo, e diz como o caminho termina: Terminaria em sucesso ou Terminaria em erro.
Num bloco de IA, a simulação mostra o prompt preenchido e "Perguntaria ao modelo … (a simulação não chama a IA)": não gasta tokens.
Histórico
O separador Histórico tem a lista das execuções à esquerda e o detalhe da escolhida à direita ("Escolha uma execução à esquerda para ver os passos."). Por cima da lista, a barra de filtros: a pesquisa por pessoa (pelo nome ou e-mail), o botão Período (7 dias, 30 dias ou Tudo) e o resultado em pílulas (Todas, Sucesso, Erro…), numa só linha. Os filtros ficam no endereço da página.
O detalhe mostra o Início, o Fim e a Duração, os Dados do gatilho e, em cada passo, as Entradas e as Saídas de quando ele correu: o texto enviado na DM, no comentário ou no Slack; o assunto e a entrega do e-mail; numa condição, o que a pessoa tinha ("Tem: VIP", "Último acesso: …"); numa chamada de webhook, o estado, a duração, o tamanho, as tentativas, as chaves usadas (só o nome) e de onde a chamada saiu (IP fixo ou IP variável). Cada execução mostra o desenho da versão em que correu, e um passo que saiu do desenho aparece como "Passo que não está mais no desenho". Copiar ID copia o código da execução, Ver no desenho mostra onde a pessoa está, e Parar execução (ou Encerrar execução) tira a pessoa do workflow. No perfil de cada membro, Automatizações lista os workflows por onde ela passou.
Num passo de IA, o detalhe mostra o Modelo, os Tokens (de entrada e de saída) e a duração; nunca a chave, o prompt nem a resposta.
Cada execução aparece como Sucesso, Erro, Cancelada, Pulada ou Em andamento, com o bloco de fim e o motivo, e o filtro Resultado separa cada uma. Os passos podem ficar como Erro e Aguardando cota ("Aguardando cota: adiado até 27/10, 9:00 por limite diário de envios da comunidade"). O cartão Como as execuções terminam fica no topo: ver Taxa de sucesso e aviso de erros.
Eliminar execução e Limpar histórico. O proprietário e o administrador tiram execuções terminadas do histórico: Eliminar execução, no menu Mais ações da execução (desativado enquanto ela corre: "Pare primeiro a execução."), ou Limpar histórico, com Todas as execuções terminadas ou As que começaram antes de uma data. A janela mostra antes quantas saem e pede a confirmação; as que estão em curso ficam. Elas saem da lista, dos números e da taxa de sucesso, mas continuam a contar para quantas vezes a pessoa entra (quem já passou por um workflow de Uma vez só não entra de novo) e para os limites. Fica o registo em Logs. Pelo assistente: delete_workflow_run e clear_workflow_runs.
A lista de workflows
Por cima da lista, o botão Período (7 dias, 30 dias ou Tudo) e o estado em pílulas: Todos, Ligado, Pausado e Rascunho. Cada linha mostra o estado e o acionador do workflow e os números do período escolhido:

| Número | O que conta |
|---|---|
| Entraram | Execuções que começaram no período |
| Em execução | Pessoas que estão no caminho agora (contam sempre, seja qual for o período) |
| Terminaram | Execuções que chegaram ao fim |
| Erros | Execuções que terminaram em erro |
| Sucesso | Sucesso ÷ (sucesso + erro), em percentagem, com a cor da faixa; ao lado, a data da última execução |
As ações ficam na própria linha (ícones no computador, uma folha de opções no telemóvel):
- Ligar (ou Retomar, num workflow pausado): pede a confirmação de consentimento quando o acionador é por data ou agendado; se faltar algo no desenho, a lista diz o que é e abre o workflow para o resolver.
- Pausar: ninguém novo entra e cada pessoa fica congelada no passo em que está, incluindo numa espera; Retomar continua de onde parou.
- Parar: ninguém novo entra e as execuções em curso são canceladas ("Ninguém novo entra e 12 execuções em curso serão canceladas."). O workflow fica pausado e pode voltar a ser ligado; quem foi cancelado não volta.
- Execuções: abre o histórico do workflow, com cada pessoa, o estado e onde está ou onde parou.
Pausar ou Parar? Pause para corrigir algo e continuar com as mesmas pessoas; pare quando o que está no caminho já não deve sair.
Workflows ligados por plano. Acima da lista, "3 de 10 workflows ligados" (ou "3 workflows ligados", quando o plano não tem limite). O plano define quantos workflows ficam ligados ao mesmo tempo: 3 no Starter, 10 no Growth, 30 no Business e sem limite no Scale (ver Plano e extensões). Com o limite cheio, ligar ou retomar outro mostra "O seu plano permite 10 workflows ligados ao mesmo tempo, e 10 já estão ligados. Pause ou pare outro, ou mude de plano.", com Ver planos. Pausar ou parar um liberta a vaga. O SuperAdmin pode dar uma exceção a uma comunidade, e o novo limite vale de imediato.
Quantas vezes a pessoa entra
O campo Quantas vezes a pessoa entra tem Uma vez só, De novo depois de alguns dias e Toda vez que o gatilho acontecer, e só aparece quando o acionador pode voltar a acontecer para a mesma pessoa. Cada acionador tem a sua natureza:
| O acionador acontece… | Exemplos | O campo |
|---|---|---|
| Uma vez por entrada na comunidade | Novo membro na comunidade; Uma compra é concluída com Só a primeira compra | Desaparece. O ecrã diz "Este gatilho acontece uma vez por entrada na comunidade. Quem sai e volta entra de novo." (ou "Só a primeira compra: este gatilho acontece uma vez por pessoa.") |
| Uma vez por pessoa e item | Inscrição e conclusão de curso, aula concluída, questionário aprovado, certificado emitido, primeira visita e acesso a um espaço, inquérito respondido, resultado de avaliação, plano de desenvolvimento aprovado, item publicado ou apagado | Desaparece quando o filtro escolhe um item (um curso, um espaço, um inquérito, um ciclo): "Este gatilho acontece uma vez por pessoa para o item escolhido." Com qualquer item, aparece |
| Pode repetir-se | Compra, subscrição, inscrição e check-in em evento, comentário, reação, publicação, etiqueta, grupo, campo do perfil, carrinho, DM recebida, Alguém volta depois de N dias sem aceder | Aparece |
| Por tempo ou execução | Os acionadores por data, Agendado, Manual e Webhook recebido | Aparece |
Quando o campo desaparece, vale Uma vez só dentro da mesma entrada na comunidade: quem sai e volta à comunidade entra de novo.
Nunca duas execuções ao mesmo tempo vale para qualquer acionador: um evento que chega com a pessoa a meio de uma execução não abre outra e aparece no histórico como Pulada, com o motivo "já estava em andamento".
Como um workflow termina
Cada workflow tem uma entrada e um fim explícito, para saber se cada execução correu bem e o que fazer quando não correu.
- Um só acionador. O desenho aceita um acionador; a API recusa um segundo.
- Fim: sucesso e Fim: erro, na categoria Fim dos blocos. Cada caminho termina num deles: um caminho sem fim fica marcado ("Este caminho precisa terminar num Fim: sucesso ou Fim: erro") e o workflow não é guardado. Um fim só entra onde não há nada depois. Um workflow antigo abre com Fim: sucesso desenhado nas pontas soltas e continua a funcionar da mesma forma.
- Saídas "ok" e "erro" em cada ação (enviar e-mail, enviar mensagem, comentar, reagir, etiqueta, grupo e Slack). A saída "ok" segue o caminho; Ligar a saída de erro leva a falha para outro bloco, como uma DM para a equipa ou o Fim: erro. Sem a saída de erro ligada, uma falha termina a execução em erro, com o motivo. Esperar, Condição, Enquanto e Registar log não têm saída de erro.
- Resumo e aviso: ver Taxa de sucesso e aviso de erros.
O que é erro. Só o que falha de facto no momento do passo: o e-mail que foi apagado da biblioteca ou que não entrou na fila de envio, o item do acionador ou o grupo que já não existe, a mensagem que não pôde ser criada, o Slack não instalado, sem o canal ou em baixo, e a espera pela cota que passou do limite (ver Quando o envio é adiado). No e-mail, conta só a falha ao colocar na fila: uma devolução ou falha do fornecedor depois disso não muda o caminho.
O que não é erro. Um passo pulado por uma regra que não muda com o tempo (anulação da subscrição, devolução, mensagens desligadas, bloqueio) e um passo adiado pela cota seguem pela saída "ok". Os dois aparecem no histórico, mas nunca contam como erro.
Cada passo deixa o resultado para os seguintes: {{steps.<bloco>.result}} (done, skipped ou failed), {{steps.<bloco>.reason}} e, só no caminho de erro desse passo, {{steps.<bloco>.error}}, o motivo da falha. Ver Variáveis.
Taxa de sucesso e aviso de erros
No Histórico, o cartão Como as execuções terminam mostra:
- Sucesso em 7 dias e Sucesso em 30 dias, em percentagem ("18 de 20 execuções"); sucesso e erro contam pelo bloco de fim;
- Passos pulados (7 dias), Logs de erro (7 dias), Aguardando cota (agora) e Já em curso (eventos em 30 dias);
- Últimos erros: as 10 últimas execuções que terminaram em erro, com o bloco e o motivo.
Passos pulados, adiados e logs não contam como erro. O moderador e o financeiro veem o cartão só para leitura.
Aviso de taxa de erro. Quando mais de 20% das execuções das últimas 24 horas terminam em erro (com pelo menos 20 execuções no período), o proprietário e os administradores recebem um aviso no sino e por e-mail ("O workflow "Boas-vindas" está com 35% de erros nas últimas 24 h (7 de 20 execuções). Veja o que falhou."), no máximo um por dia para cada workflow.
Variáveis
Cada acionador entrega os dados do que aconteceu aos blocos seguintes: o nome do curso nos parabéns, o produto e o valor no agradecimento pela compra, a data no lembrete do evento. As variáveis têm nomes em inglês, com ponto, como {{course.name}} e {{purchase.product}}, e valem nos textos da mensagem (DM), do comentário, do Slack, do Registar log e no e-mail (assunto e corpo).
Inserir variável. O botão fica em cada campo de texto. O menu agrupa as variáveis pelo bloco que as gerou, com o nome que deu ao bloco e o respetivo ícone ("Gatilho · Cursos", "Pessoa", "Comunidade"), pela ordem do fluxo, e só mostra os blocos que vêm antes do bloco em edição. Cada variável traz o nome legível, o código e um exemplo: "Curso · {{course.name}} · ex.: Curso de Liderança". A pesquisa encontra pelo nome da variável ou do bloco. Por isso vale a pena dar um Nome do bloco a cada passo.
No e-mail. Editar e-mail, no passo Enviar e-mail, abre o e-mail da biblioteca com o Inserir variável desse ponto do fluxo.
Como a pessoa vê. Por baixo de cada texto com variável, a pré-visualização mostra o texto preenchido com dados de exemplo (Maria Souza, [email protected]). A simulação mostra os textos com os dados reais da pessoa (ver Simular, testar e estimar).
Valor de reserva. Para quem não tem o dado, escreva um texto depois da barra: {{purchase.discount|sem desconto}}. Uma variável sem valor sai vazia, ou com o valor de reserva, e o envio não falha.
As variáveis:
| De onde | Variáveis |
| Blocos de IA | steps.<bloco>.output (o texto ou o JSON), steps.<bloco>.output.<campo> (cada campo do JSON), steps.<bloco>.tokens e steps.<bloco>.model |
|---|---|
| Pessoa (todos os workflows) | member.first_name, member.name, member.email, member.phone, member.role, member.language, member.member_since, member.last_seen_at, member.tags, member.groups e member.field.<chave> (os campos do perfil) |
| Comunidade (todos os workflows) | community.name, community.language |
| Compras | purchase.product, purchase.product_type, purchase.amount, purchase.discount, purchase.payment_method, purchase.installments, purchase.free, purchase.first, purchase.tickets, purchase.ticket_type, purchase.batch; no reembolso, refund.product, refund.amount, refund.partial; no carrinho, cart.product |
| Subscrições | subscription.product, subscription.plan, subscription.interval, subscription.amount, subscription.period_end, subscription.ends_at, subscription.canceled_by, subscription.previous_plan, subscription.trial_ends_at (conforme o acionador) |
| Eventos | event.title, event.date, event.time, event.type, event.ticket_type, event.check_in_method, event.previous_date (no evento remarcado) |
| Cursos | course.name, course.completed_at, lesson.title; certificate.title, certificate.source |
| Espaços, publicações e comentários | space.name, target.type (onde foi o comentário ou a reação), target.reaction |
| Etiquetas, grupos e campos | tag.name, group.name, field.name |
| Downloads | download.title, download.folder (a categoria), download.previous_folder, download.file_name, download.file_type, download.size, download.version |
| Formulários, inquéritos e chamadas | form.name, survey.title, call.name, proposal.status |
| Níveis e pontos | level.name (o nome do nível), level.previous_name, level.number, level.direction (Subiu ou Desceu), level.cause (Pontos ou Atividade da semana), points.total, points.previous |
| Reservas | booking.resource, booking.starts_at, booking.ends_at |
| Avaliações (RH) | cycle.name, cycle.due_at |
| Acesso | absence.days (dias sem aceder), em Alguém volta depois de N dias sem aceder e Alguém está há N dias sem aceder |
| Quem fez a ação | actor.name, nos eventos do ciclo de vida |
| DM recebida | dm.from.name, dm.from.email, dm.to.name, dm.conversation_url e, com regra própria, dm.text (ver DM recebida) |
| Webhook recebido | trigger.<nome>, os valores que definiu no acionador |
| Passos anteriores | steps.<bloco>.result, steps.<bloco>.skipped, steps.<bloco>.reason e, no caminho de erro, steps.<bloco>.error |
Os formatos. Os valores em dinheiro saem na moeda e no idioma da pessoa (R$ 197,00); as datas, no fuso da comunidade e no idioma da pessoa. member.language e community.language saem como o código do idioma (pt-PT).
Regras:
- Os dados do acionador são guardados quando a pessoa entra: uma espera de 3 dias não muda o produto nem o valor, mesmo que o produto mude de nome entretanto.
- Uma variável que não chega ao bloco (de um passo que vem depois, ou de outro acionador) impede guardar, e o bloco fica marcado com o nome dela.
- Os valores entram como texto: o HTML sai escapado no e-mail e no comentário, sem
<>na DM e sem menção nem ligação no Slack; no assunto, sem quebra de linha. Nenhuma variável entra no endereço de uma ligação, etrigger.*não entra no assunto. - A resposta de um bloco de IA e a de um Chamar webhook vêm de fora: saem escapadas onde entram e nunca vão no assunto de um e-mail.
- Nenhuma variável traz o que um membro escreveu (publicação, comentário, resposta, título de votação ou de anúncio), taxas, documentos ou conteúdo de avaliação de RH além do nome e do prazo do ciclo. O e-mail e o telefone da pessoa podem ir na publicação do Slack.
- Os nomes antigos continuam a funcionar (
{{nome}},{{comunidade}},{{campo_<chave>}},{{gatilho_<chave>}}), mas não aparecem em Inserir variável.
Nas campanhas. Um e-mail da biblioteca que usa variáveis de workflow mostra "Usa variáveis de workflow". Numa campanha, essas variáveis saem vazias, e Novo disparo avisa: "Este e-mail usa variáveis de workflow (…). Numa campanha saem vazias: troque por variáveis da pessoa ou da comunidade, ou use valores de reserva."
Condição "Variável"
A regra Variável, no grupo Variáveis do fluxo da Condição, compara um dado do fluxo: escolha a variável (no mesmo menu de Inserir variável) e o operador, que depende do tipo:
| Tipo | Operadores |
|---|---|
| Texto | é igual a, não é igual a, contém, não contém, começa com, termina com, está vazio, não está vazio. Não distingue maiúsculas nem acentos ("avancado" corresponde a "Avançado") |
| Número e dinheiro | é igual a (=), é diferente de (≠), é maior que (>), é maior ou igual a (≥), é menor que (<), é menor ou igual a (≤), está vazio. Dinheiro na moeda da comunidade, no formato dela |
| Data | é antes de, é depois de, está entre, foi há mais de N dias, foi há menos de N dias, é nos próximos N dias |
| Lista (etiquetas, grupos, campo de escolha múltipla) | contém, não contém, contém qualquer de, contém todos de |
| Sim/não | é verdadeiro, é falso |
Exemplos: "Valor é maior ou igual a 100,00", "Formato é igual a Presencial", "Curso contém Avançado", "Data é nos próximos 7 dias".
As outras regras usam os mesmos operadores: Tem a etiqueta e Está no grupo com contém, não contém, qualquer de e todos de (e vários grupos de uma vez); Campo do perfil com os operadores do tipo do campo (num campo de escolha múltipla, contém qualquer de, contém todos de e não contém, com as opções; a variável {{member.field.<chave>}} traz as opções assinaladas), sempre com o valor atual do campo. A regra é lida no momento do passo.
Registar log
O bloco Registar log anota uma linha na execução: escolha o Nível (Info, Aviso ou Erro) e escreva a mensagem, que aceita variáveis ("{{member.first_name}} chegou ao fim das boas-vindas").
- Só texto: o HTML sai como texto, e a mensagem é cortada em 1.000 caracteres depois de preenchida.
- Até 20 logs por execução; o 21.º é descartado ("limite de logs da execução").
- A saída é sempre "ok". Um log de nível Erro não muda o resultado da execução nem conta para o aviso de taxa de erro; o resumo mostra quantos houve.
- O log aparece no histórico da execução e em Administração › Logs, tipo Workflows, com filtro por workflow e por nível. Ver Logs.
- A mensagem só é visível para o proprietário e o administrador, porque pode conter qualquer variável. O moderador e o financeiro veem que houve um log no histórico, com "Mensagem visível só para owner e admin." no lugar do texto.
Chamar webhook
O bloco Chamar webhook, na categoria Integrações, envia uma chamada HTTPS para outro sistema a meio do caminho: avisar o CRM de uma compra, gravar uma linha numa folha de cálculo, chamar um fluxo do n8n.
- Método e Endereço (URL): só
https://, porta 443 e um host fixo. Variáveis podem ir no caminho, nunca no host, e as chaves do cofre não entram no endereço. - Cabeçalhos e Corpo (JSON): aceitam variáveis e as chaves do cofre (
{{env.CRM_TOKEN}}), só para os endereços da chave, quando tem algum. O corpo vai commemberfy.memberLanguageememberfy.communityLanguageacrescentados. - Tempo máximo de resposta: de 2 a 15 segundos (predefinição 10).
- O que os próximos blocos podem usar:
{{steps.<bloco>.status}},{{steps.<bloco>.duration}}(ms),{{steps.<bloco>.size}}(bytes) e os campos da resposta JSON, até 16 KB ({{steps.<bloco>.body.<campo>}}). Valores que vêm de fora nunca entram no assunto de um e-mail.
| Resposta | O que acontece |
|---|---|
| 2xx | Segue pelo caminho "ok" |
| 3xx (o redirecionamento não é seguido), 4xx, endereço bloqueado, resposta acima de 64 KB, corpo inválido, chave fora dos endereços dela | Vai pelo caminho de erro, de imediato |
| 5xx, demora além do tempo máximo ou falha de rede | Tenta de novo após 1, 5 e 15 minutos; sem sucesso, vai pelo caminho de erro |
Limites: 60 chamadas por minuto e 2.000 por dia em cada workflow; 300 por minuto e 20.000 por dia na comunidade. O que passa espera a vez, em vez de falhar. Um destino que falha várias vezes seguidas fica alguns minutos em espera.
IPs fixos
Nos planos Business e Scale, as chamadas saem de IPs fixos, os mesmos das entregas de webhook (ver IPs fixos), para autorizar na firewall do destino. O painel do bloco mostra os IPs, com Copiar IPs, e quantas chamadas do mês já saíram por eles.
- O limite é de 10.000 chamadas por IP fixo por mês. Passado esse limite, as restantes saem de IPs que mudam até o mês virar, e o proprietário recebe um aviso no sino, que abre as automações. O mês é o do calendário no fuso horário da comunidade: a contagem recomeça à meia-noite do dia 1 e não se acumula no plano anual.
- Nos outros planos, as chamadas saem de IPs que mudam.
- O histórico mostra, em cada chamada, de onde ela saiu: IP fixo, IP variável ou "IP variável (limite mensal de IP fixo atingido)".
Variáveis e chaves
Variáveis e chaves, no topo de Administração › Workflows, é o cofre da comunidade: os tokens e as chaves que o Chamar webhook usa nos cabeçalhos e no corpo. Só o proprietário e o administrador veem e mexem.
- Antes da primeira chave, leia o aviso Antes de começar: um aviso sobre dados pessoais e clique em Li e aceito: os dados das pessoas enviados por webhook saem da Memberfy para o sistema que indicar, e a comunidade é a responsável pelo tratamento desses dados. O aceite vale uma só vez, para a comunidade inteira; depois, o ecrã mostra quando foi dado.
- Nova chave abre uma janela com três campos:
- Nome: como chama a chave dentro do workflow. Ajusta-se enquanto escreve (letras maiúsculas, números e
_; espaços e acentos passam a_), e logo abaixo aparece a forma exata de escrever no bloco: "No bloco "Chamar webhook", escreva"{{env.CRM_TOKEN}}. - Valor: cole o token ou a palavra-passe. O ícone do olho mostra ou oculta o que colou (Mostrar o valor / Ocultar o valor), só enquanto a janela está aberta.
- Pode ser enviada só para (opcional): os endereços para onde a chave pode ir, como
api.seucrm.pt(Enter ou Adicionar; se colar um URL inteiro, fica só o domínio). Vazio, a chave pode ser usada com qualquer endereço; com endereços, só sai para eles. Para uma chave de um único sistema, como o token do CRM, preencha: é mais seguro.
- Nome: como chama a chave dentro do workflow. Ajusta-se enquanto escreve (letras maiúsculas, números e
- No bloco, use
{{env.CRM_TOKEN}}.
- O valor nunca volta ao ecrã. Fica guardado cifrado, e a lista mostra só o final ("…a1b2"), para onde pode ir (ou "Qualquer endereço") e quando foi usada. Para trocar, Substituir.
- Eliminar apaga o valor de imediato; os workflows que usam a chave passam a ir pelo caminho de erro.
- O histórico mostra o nome das chaves usadas numa chamada, nunca o valor.
Limites de IA
O cartão Limites de IA, em Variáveis e chaves, controla o gasto dos blocos Claude e ChatGPT, que é da comunidade. Só o proprietário e o administrador o veem e alteram, e cada alteração fica registada.
O que é um token. A IA lê e escreve o texto em tokens, pedaços de palavra: 1.000 tokens dão cerca de 750 palavras. Conta a entrada (as instruções e o prompt) e a saída (a resposta). Nada disto usa a quota de IA da Memberfy.
| Teto | Predefinição | Quando passa |
|---|---|---|
| Por chamada | 4.000 tokens | É o máximo que o modelo escreve numa resposta: um bloco que pede mais fica com este número |
| Por execução | 20.000 tokens | O total de uma pessoa a passar pelo workflow. Passou, o bloco segue pela saída de erro ("Teto de tokens de IA por execução atingido.") |
| Por dia | 200.000 tokens | O total da comunidade no dia, no fuso horário da comunidade. Passou, os blocos esperam pelo dia seguinte e saem quando ele começa |
Por chamada tem de ser menor ou igual a por execução, e por execução menor ou igual a por dia. O cartão mostra quanto já foi usado hoje ("Hoje: 12.400 de 200.000 tokens usados."); Salvar limites grava e Voltar ao padrão repõe os números da tabela.
Blocos de IA (Claude e ChatGPT)
Os blocos Claude e ChatGPT, na categoria IA, pedem à IA um texto ou um JSON a meio do caminho: escrever umas boas-vindas pessoais, classificar um pedido de suporte, resumir a resposta a um formulário. A chamada usa a chave de API da própria comunidade, criada na Anthropic (Claude) ou na OpenAI (ChatGPT): quem paga o uso é a comunidade, diretamente ao fornecedor.
Antes do primeiro bloco:
- Em Variáveis e chaves, aceite o aviso de dados pessoais e crie uma chave com a chave de API do fornecedor. Em Pode ser enviada só para, coloque
api.anthropic.com(Claude) ouapi.openai.com(ChatGPT). Uma chave sem endereço também aparece no bloco, mas restringir é mais seguro; uma chave com outros endereços, não. - Confira os Limites de IA.
O painel do bloco:
| Campo | O que é |
|---|---|
| Modelo | A família do modelo, descrita pelo uso: o mais capaz, para tarefas difíceis (mais lento e mais caro), equilíbrio entre qualidade, velocidade e custo, ou o mais rápido e económico, para tarefas simples. A lista acompanha os modelos atuais de cada fornecedor |
| Chave de API | Só as chaves de Variáveis e chaves que podem ir para o fornecedor; Criar chave em Variáveis e chaves leva ao cofre. A chave nunca entra no prompt nem no histórico |
| Instruções do sistema (opcional) | Como o modelo se comporta em todas as chamadas: papel, tom, regras |
| Prompt | O pedido, com variáveis ("Escreva uma mensagem de boas-vindas para {{member.first_name}}, que acabou de entrar na comunidade."). As chaves do cofre ({{env.*}}) não entram |
| Formato da resposta | Texto ou JSON. Com JSON, um Esquema JSON opcional, e cada campo da resposta torna-se uma variável |
| Máximo de tokens | O tamanho máximo da resposta, de 16 a 8.000 tokens (predefinição 1.024); o teto por chamada da comunidade pode baixar esse número |
| Tempo de espera | Quanto esperar pela resposta, de 5 a 60 segundos (predefinição 30) |
As variáveis entram no prompt como dados, nunca como ordens ao modelo, juntamente com o idioma da pessoa e o da comunidade. Ponha no prompt só o que a tarefa precisa.
O que os blocos seguintes podem usar: {{steps.<bloco>.output}} (o texto ou o JSON), {{steps.<bloco>.output.<campo>}} (cada campo do JSON, também numa Condição "Variável"), {{steps.<bloco>.tokens}} e {{steps.<bloco>.model}}, pelo Inserir variável. A resposta fica guardada até 16 KB. É um valor externo, como a de um webhook: sai escapada onde entra e nunca vai no assunto de um e-mail.
Como o bloco se comporta:
| Resposta | O que acontece |
|---|---|
| Resposta recebida | Segue pelo caminho "ok", com a resposta nas variáveis |
| Chave ou pedido recusado, recusa do modelo, resposta vazia ou cortada pelo máximo de tokens, JSON inválido no esquema | Vai pelo caminho de erro, de imediato |
| Tempo esgotado, fornecedor em baixo ou limite do fornecedor | Tenta de novo depois de 1, 5 e 15 minutos; sem sucesso, vai pelo caminho de erro ("O provedor de IA não respondeu (3 novas tentativas).") |
| Teto por execução dos Limites de IA | Vai pelo caminho de erro |
| Teto diário dos Limites de IA | O passo espera pelo dia seguinte, no fuso horário da comunidade |
A simulação mostra o prompt preenchido sem chamar a IA, e o histórico mostra o modelo, os tokens e a duração de cada chamada, nunca a chave, o prompt nem a resposta (ver Histórico).
Enviar SMS e Enviar WhatsApp
Os blocos Enviar SMS e Enviar WhatsApp, na categoria Mensagens, enviam um aviso de serviço para o telemóvel da pessoa da execução, com as regras de Avisos por SMS e WhatsApp: o canal ativo em E-mails e notificações, telemóvel confirmado (ou indicado pela equipa ao declarar o consentimento), consentimento de serviço desse canal e a categoria Automatizações ativa em A minha conta › Avisos.
- Texto (SMS): até 300 caracteres, com variáveis ("Olá {{member.first_name}}, o seu evento começa daqui a 1 hora."). As variáveis entram como texto simples. Ao enviar, a Memberfy põe o nome da comunidade à frente ("[Clube de Corrida] …") e, no SMS, a ligação para sair no fim.
- Partes (SMS): o painel conta as partes do texto sozinho e como sai (com [Comunidade] à frente e a ligação para sair). Uma parte tem 160 caracteres, ou 153 quando a mensagem se divide; um acento como ã, õ ou ç, ou um emoji, faz cada parte levar 70 (67 quando divide). As variáveis contam como escritas.
- Modelo (WhatsApp): o WhatsApp não aceita texto livre. Escolha o Modelo (Ingresso confirmado, Pagamento recusado, Aviso da comunidade…), preencha os Campos do modelo (até 300 caracteres cada, com variáveis; o primeiro nome da pessoa e o nome da comunidade a Memberfy preenche) e, se quiser, a Página que o botão abre (um caminho da comunidade, como
/eventos; vazio, a página inicial). Para um recado sem modelo próprio, use Aviso da comunidade, cujo campo é o seu texto. Como chega mostra a mensagem montada. Um modelo de marketing só chega a quem aceitou novidades pelo WhatsApp. Não repita num workflow uma mensagem que a plataforma já envia, como o pagamento confirmado ou o lembrete do evento. - Modelos que um workflow pode usar (WhatsApp): Aviso da comunidade (também na versão serviço), Ingresso confirmado, Pagamento confirmado, Pagamento recusado, Compra não concluída, Evento amanhã e Evento começando (com as versões presenciais, que trazem o mapa), Evento ao vivo, Resposta no post, Menção, Mensagem direta, Conteúdo novo, Proposta decidida, 1:1, Feedback recebido (também na versão serviço), Pendência de RH, Lembrete de reserva, Subscrição a renovar, Reembolso, Vaga na lista de espera e Certificado emitido. Ficam de fora os que nenhum gatilho consegue preencher (Visitante na receção, Encomenda recebida, Cartão a expirar, Resposta ao pedido de suporte e Registo aprovado): esses saem só como mensagem da plataforma.
- Modelos de marketing (WhatsApp): o WhatsApp classifica como marketing o Aviso da comunidade e o Feedback recebido (as duas versões de cada), a Compra não concluída, a Menção e o Conteúdo novo. Quem não aceitou novidades pelo WhatsApp não os recebe: o passo é ignorado ("sem consentimento para WhatsApp") e segue pelo caminho "ok". Para que toda a gente receba o recado, coloque depois do bloco uma condição "Variável" com
{{steps.<bloco>.result}}igual askippeda levar a um Enviar e-mail. Ver Modelos de marketing.
Como o bloco se comporta:
| Situação | O que acontece |
|---|---|
| Enviado | Segue pelo caminho "ok". O histórico mostra o texto e, no SMS, as Partes de SMS |
| A pessoa não pode receber: canal desativado na comunidade, saiu da comunidade, sem telemóvel, telemóvel não confirmado (nem indicado pela equipa ao declarar o consentimento), país não servido, sem consentimento, parou os avisos desta comunidade ou respondeu SAIR, desativou a categoria Automatizações, texto vazio. No WhatsApp, também o modelo ainda não aprovado e o modelo de marketing para quem não aceitou novidades | Saltado, com o motivo ("telemóvel não confirmado"), e segue pelo caminho "ok" |
| Horário de silêncio (21h às 8h, no fuso de quem recebe), teto diário da comunidade ou quota do mês | Aguarda a quota e sai quando ela liberta, como em Quando o envio é adiado |
| A pessoa já recebeu o limite por pessoa do dia (5 por omissão, no cartão do SMS) | Fica para o dia seguinte, às 8h |
| O envio foi recusado | Vai pelo caminho de erro, com o Código da recusa no histórico |
| Falha passageira | Tenta de novo passados 1, 5 e 15 minutos |
Com o envio da comunidade suspenso, os dois blocos esperam, como as outras mensagens. Nem o saltado nem o adiado contam como erro.
Lembretes que também vão por SMS
Com o SMS ativo na comunidade, três lembretes da plataforma também saem por SMS, sem workflow, para quem pode receber: o lembrete do evento, 1 hora antes; os lembretes do ciclo de PDI (enviar e aprovar o PDI); e o lembrete da 1:1. O ecrã de cada um avisa ("O lembrete de 1 hora antes também sai por SMS para quem consentiu."). Um lembrete que o horário de silêncio ou o teto diário atrasaria é saltado no SMS; o e-mail sai como sempre. Com o SMS desativado, nada muda.
Ações da plataforma e outros workflows
Cada ação da plataforma é um bloco da barra, com o nome da ação, na categoria do que ela toca (Pessoas, Conteúdo ou Mensagens). Faz pela pessoa da execução o mesmo que a equipa faz no ecrã; o painel do bloco pede os campos da ação (o curso, o evento, o plano ou produto e o grupo pela pesquisa, o Campo do registo, o Novo papel, os Pontos e o Motivo, as datas e os textos, com variáveis) e diz o papel que ela exige:
| Ação | O que faz | Papel mínimo de quem liga |
|---|---|---|
| Mudar papel | Muda o papel da pessoa, incluindo para administrador (nunca para owner, nem o papel de um owner ou o próprio) | Administrador |
| Remover do grupo e Alterar registo | Remove a pessoa de um grupo; grava um valor num campo do registo | Administrador |
| Ajustar pontos | Soma ou retira pontos do ranking, com o motivo no histórico | Administrador |
| Conceder badge e Remover badge | Concede um badge do catálogo, com o Motivo opcional (quem já o tem é saltado), com o aviso no sino e o e-mail de Conquistas; ou retira-o, sem avisar (quem não o tem é saltado) | Administrador |
| Dar acesso por cortesia e Encerrar cortesia | Dá um plano por cortesia até uma data de fim, ou encerra a cortesia (uma subscrição paga nunca é tocada) | Administrador |
| Dar ingresso de cortesia | Um ingresso de cortesia no evento | Administrador |
| Agendar 1:1 | Cria um 1:1 recorrente entre a pessoa e o líder direto dela, com a Frequência (semanal, quinzenal ou mensal), o Dia da semana, o Horário e a Duração (minutos). Sem líder direto, ou com um 1:1 recorrente já marcado, o passo é saltado | Administrador |
| Adicionar ação ao PDI | Inclui uma ação, com Prazo (dias), no PDI ativo da pessoa; sem PDI ativo, cria um rascunho com ela. No PDI, a ação mostra "Criado pelo workflow …" | Administrador |
| Publicar publicação | Publica uma publicação (em Markdown, com variáveis) num espaço de feed ou de conteúdo, em nome de quem ligou o workflow, com a regra de quem pode criar do espaço e sem aviso por e-mail | Moderador |
| Emitir certificado | Emite um certificado de um modelo ativo para a pessoa, com o e-mail de aviso se Enviar o certificado por e-mail estiver marcado; quem já tem o certificado é saltado | Moderador |
| Reconhecer | Quem ligou o workflow publica um reconhecimento para a pessoa, com a mensagem e, se quiser, um valor da comunidade | Moderador |
| Bloquear no chat | Quem ligou o workflow bloqueia a pessoa no chat, sem aviso a ninguém; a ação não tem campos | Moderador |
| Inscrever no evento e Matricular no curso | Só eventos e cursos gratuitos | Moderador |
| Mandar aviso no app | Um aviso no sino da pessoa, com título e texto. O aviso chega também por notificação no navegador e no telemóvel, na categoria Avisos da equipa; tocar abre o sino | Moderador |
O que mexe com dinheiro ou apaga em definitivo nunca corre num workflow.
Chamar workflow corre, para a mesma pessoa, um workflow que começa com Chamado por outro workflow. No acionador desse workflow, Valores que este workflow recebe declara o que ele espera (nomes com letras minúsculas, números e _), usados nos blocos como {{trigger.<nome>}}; no Fim: sucesso, Valores devolvidos diz o que volta para quem chamou. No bloco Chamar workflow, escolha o Workflow chamado, preencha os Valores enviados e veja O que ele devolve, que os blocos seguintes usam como {{steps.<bloco>.output.<nome>}}. O workflow que chama espera o outro terminar e segue pelo "ok" ou pelo erro. Um workflow não chama a si próprio nem quem o chama, e a cadeia vai até 3 workflows. Assim, umas boas-vindas comuns ficam num workflow só, chamado por vários.
Com que papel os passos agem
Um workflow nunca faz mais do que a pessoa que o pôs a correr:
- Os passos agem com o papel de quem guardou, ligou, retomou ou executou o workflow. Uma ação acima do papel de quem edita fica marcada no painel ("Esta ação exige proprietário: você não consegue guardar o workflow com ela.") e o workflow não é guardado.
- O papel é lido de novo a cada passo: se a pessoa perdeu o papel, a ação é saltada; se saiu da comunidade, o passo falha.
- O administrador age como o proprietário. Guarda, liga e executa workflows com qualquer ação da plataforma, incluindo tornar alguém administrador. Só uma ação marcada como exclusiva do proprietário ficaria acima dele (o workflow abriria só para leitura: "Este workflow tem ações que só um proprietário pode alterar. Você pode ver e simular."), e hoje nenhuma é: a titularidade da comunidade e o plano não são ações de workflow.
- O moderador e o financeiro têm limites: veem, simulam e acompanham o histórico, mas não guardam, ligam nem executam workflows, e um workflow nunca lhes dá um poder que não têm.
- Um workflow chamado por outro age com o menor papel da cadeia.
Eventos do ciclo de vida
29 acionadores com o ciclo de vida de cada módulo, cada um no bloco da sua família e também nos webhooks.
| Família | Acionadores |
|---|---|
| Downloads | Um ficheiro é publicado, editado, muda de categoria ou é apagado; um anexo é adicionado, substituído por uma versão nova ou removido; uma categoria de downloads é criada |
| Publicações e comentários | Uma publicação é editada, muda de espaço ou é apagada; um comentário é apagado; alguém remove uma reação |
| Eventos | Um evento é criado, editado, remarcado ou apagado; a transmissão começa; a gravação é publicada |
| Cursos | Um curso é publicado ou editado; uma aula é publicada; alguém sai de um curso |
| Espaços | Um espaço é criado, editado ou apagado |
| Formulários | Um formulário é publicado, encerrado ou reaberto |
- Só os itens publicados disparam: um rascunho editado ou apagado não inicia nada.
- Apagar um evento é a forma de cancelar um evento hoje, e o acionador di-lo: "Um evento é apagado (é assim que se cancela)".
- A pessoa da execução é quem fez a ação (
{{actor.name}}). Quando é a equipa que publica (um evento, uma aula), o acionador serve para avisar no Slack ou reconhecer o autor; para avisar todos os membros de um conteúdo novo, use os avisos por e-mail ou um workflow Agendado ou Manual com público.
Níveis e pontos
O bloco de gatilho Níveis e pontos ("Uma pessoa sobe ou desce de nível, ou atinge um total de pontos") acompanha os níveis da comunidade:
| Gatilho | Quando dispara | Filtros |
|---|---|---|
| Subiu de nível | No momento em que a pessoa chega a um nível mais alto, por pontos (ação, ajuste da equipa ou de workflow) ou por cumprir o requisito da semana que faltava. Saltar dois níveis dispara uma vez | Nível: o nível alcançado (Qualquer nível, vazio) |
| Desceu de nível | À segunda-feira às 00:00, no fuso horário da comunidade, para quem não cumpriu os requisitos da semana anterior, e no momento em que um ajuste negativo deixa a pessoa abaixo do mínimo do nível | Nível (o nível em que a pessoa ficou) e Motivo: "Não cumpriu a atividade da semana (na segunda)" e "Perdeu pontos (ajuste da equipa ou de workflow)", os dois marcados por predefinição ("Pelo menos um motivo fica marcado.") |
| Atingiu N pontos | "Dispara quando o total passa desse número para cima. Quem desce e volta a passar dispara de novo." | Pontos (obrigatório) |
Nenhum dos três dispara num recálculo de pontos, numa importação, quando a comunidade muda os níveis ou com a gamificação desligada.
Condições. Na Condição, o grupo Engajamento tem as regras Nível ("está no nível Kernel ou acima", ou "está abaixo do nível Kernel") e Pontos ("tem pelo menos 500 pontos", ou "tem menos de 500 pontos"), lidas no momento do passo.
Exemplos: "Subiu para Kernel → atribuir o badge Kernel"; "Desceu de Kernel, motivo atividade da semana → retirar do grupo Kernel"; "Atingiu 1000 pontos → enviar uma DM de parabéns".
DM recebida
O bloco de acionador Mensagens tem o acionador Um membro envia uma DM para a equipa: dispara quando um membro envia uma mensagem a alguém da equipa. A pessoa da execução é quem enviou a DM. Uma DM entre membros, ou de alguém da equipa, não dispara.
Filtros:
- Quem recebe: uma ou várias pessoas da equipa (obrigatório).
- Quem envia tem a tag e Quem envia está no grupo (vazio: qualquer membro).
- Só a primeira mensagem de uma conversa nova. Desmarcado, cada mensagem dispara, com a regra de Quantas vezes a pessoa entra.
Variáveis: {{dm.from.name}} e {{dm.from.email}} (quem enviou), {{dm.to.name}} (quem recebeu) e {{dm.conversation_url}} (a ligação para a conversa).
O texto da DM ({{dm.text}}) segue a regra das mensagens: a equipa não lê as conversas dos outros. Por isso, só fica disponível quando o workflow é de quem recebeu a mensagem:
- o filtro Quem recebe tem exatamente essa pessoa, e só ela guarda e liga o workflow;
- o texto só pode ir numa DM assinada por essa pessoa, no corpo de um e-mail ou numa condição. Em qualquer outro sítio (assunto, Slack, comentário, log, DM em nome de outra pessoa), ou num workflow guardado ou ligado por outra pessoa, o bloco fica marcado com erro no desenho e o workflow não é guardado.
O evento também chega aos webhooks como message.received, sem o texto da mensagem.
Limites
- Limite de frequência, opcional, em cada workflow: no máximo N e-mails a cada tantas horas ou dias para a mesma pessoa; o que passar fica a aguardar a cota.
- Limite diário da comunidade: os e-mails de workflows por dia do plano (40 no Starter, 80 no Growth, 200 no Business e 350 no Scale; ver Plano e extensões); o que passar espera pelo dia seguinte. Os e-mails transacionais nunca entram neste limite.
- SMS e WhatsApp por pessoa: no máximo 5 mensagens de workflow por pessoa por dia em cada canal, por omissão (de 1 a 20, no cartão do SMS); o que passar sai no dia seguinte, às 8h.
- Mensagens: no máximo 1 mensagem de workflow por pessoa por dia; quem desligou as mensagens ou bloqueou quem assina não recebe.
- Webhook recebido: no máximo 5 execuções por pessoa por dia em cada workflow.
- Quem cancelou a subscrição de Automações, os endereços com devolução ou denúncia e a reputação de envio da comunidade também retêm os e-mails.
- Chamar webhook: ver os limites das chamadas.
- Com o envio da comunidade suspenso, Executar agora e o Agendado não iniciam ninguém, e as mensagens, os comentários, as reações e as publicações no Slack de quem já está no caminho esperam que a suspensão termine (as etiquetas e os grupos continuam).
Quando o envio é adiado
Quando um limite que se liberta com o tempo retém o passo, este fica a aguardar a cota e sai assim que ela se liberta, em vez de ser saltado:
| Limite | Até quando espera |
|---|---|
| Limite de frequência do workflow | Até ao fim da janela do limite (a janela vai até 90 dias) |
| Limite diário da comunidade | Até 7 dias |
| Reputação de envio em alerta ou pausada | Até 7 dias |
| Envio da comunidade suspenso | Até 48 horas |
| 1 mensagem de workflow por pessoa por dia | Até 7 dias |
- O histórico mostra "Aguardando cota: adiado até 28/10, 9:00 por limite de frequência do workflow".
- Quando a cota se liberta, os passos saem distribuídos ao longo de uma hora; depois de uma suspensão, a um ritmo controlado, e não todos de uma vez.
- Depois de sair, o passo segue pela saída "ok". Passado o tempo máximo, a execução segue pela saída "erro" com o motivo "esperou a cota além do limite".
- Pausar o workflow congela a espera; Retomar recomeça a contagem; Encerrar execução ou Parar cancela, e nada é enviado.
- Um novo evento da mesma pessoa durante a espera não abre outra execução ("já estava em andamento").
Um impedimento permanente conta como pulado. A anulação da subscrição de Automações, um e-mail com devolução ou denúncia, uma pessoa sem e-mail, mensagens desligadas, o bloqueio de quem assina e quem assina fora das pessoas permitidas não se libertam com o tempo: o passo é pulado, com o motivo, e o caminho segue pela saída "ok" ({{steps.<bloco>.result}} é skipped).
Nem o adiado nem o pulado contam como erro: não mudam o resultado da execução nem o aviso de taxa de erro.
Consentimento e quem assina
Acionador por data e Agendado: ao ligar, a janela pede uma vez a confirmação de que essas pessoas, que já estão na comunidade, podem receber estes e-mails.
Em nome de quem
Quem pode assinar as mensagens dos workflows é uma escolha da comunidade:
- Em Administração › Definições › E-mails e notificações, o cartão Mensagens dos workflows em nome de (o mesmo aparece no topo de Administração › Workflows) diz em nome de quem os workflows podem enviar DM, comentar e reagir: Toda a equipa (a predefinição: proprietário, administradores, moderadores e financeiro) ou Só o owner. Só o proprietário e o administrador veem e alteram.
- O campo Em nome de quem de cada bloco de DM, comentário e reação lista as pessoas que a configuração permite. Ninguém precisa de aceitar nem de aprovar textos.
- Com Só o owner, os passos desenhados em nome de outra pessoa são pulados, com o motivo "quem assina não está entre as pessoas permitidas", e o editor marca esses blocos ("Esta pessoa já não pode assinar: com "Só o owner", este passo é pulado até trocar quem assina.").
- Fica o registo: cada versão guarda quem a ligou ou publicou e os textos que saem em nome de cada pessoa. Quando outra pessoa da equipa liga um workflow que fala em seu nome, recebe um aviso no sino, que abre o workflow ("Ana ligou o workflow "Boas-vindas", que fala em seu nome. Veja os textos.").
Modelos
Modelos cria um rascunho a partir de um dos 9 modelos, com os e-mails já na biblioteca, no idioma da comunidade. Nada é enviado até o ligar.
| Família | Modelo | O que faz |
|---|---|---|
| Engajamento | Régua de boas-vindas | Três e-mails na primeira semana de quem entra |
| Engajamento | Incentivo de uso | Entrou e não começou um curso em 3 dias: um empurrãozinho |
| Engajamento | Reconquista | Sem acesso há 30 dias: um convite para voltar |
| Engajamento | Parabéns pelo curso | Um e-mail quando a pessoa conclui um curso |
| Engajamento | Primeira inscrição em evento | Boas-vindas na primeira inscrição num evento |
| Engajamento | Obrigado pela presença | Um dia depois do check-in, um obrigado |
| Pessoas (RH) | Lembrete de avaliação pendente | Avaliação não enviada há 3 dias no ciclo aberto |
| Pessoas (RH) | 1:1 sem registro | A 1:1 passou e ainda não foi registada |
| Pessoas (RH) | Metas sem check-in | Resultado-chave sem check-in há 14 dias |
Abrir um modelo mostra os passos e os assuntos dos e-mails antes de o usar ("Cria N e-mails na biblioteca").
E-mails e cancelamento da subscrição
Os e-mails dos workflows saem na categoria Automações de E-mails desta comunidade, ligada por predefinição, com a ligação para a desligar no rodapé.
Passo a passo
Um exemplo: uns parabéns com o nome do curso.
- Em Administração › Workflows, clique em Novo workflow (ou em Modelos, para começar a partir de um modelo).
- Arraste o bloco Cursos da categoria Gatilhos e, em Dispara quando, escolha Alguém conclui um curso. Escolha o curso: o campo Quantas vezes a pessoa entra desaparece, porque cada pessoa conclui esse curso uma vez.
- Clique no + depois do acionador e escolha Enviar e-mail. Dê o Nome do bloco Parabéns e escolha o e-mail. Em Editar e-mail, use Inserir variável › Gatilho · Cursos › Curso para colocar
{{course.name}}no assunto. - Ligue a saída "ok" a Fim: sucesso. Se quiser, ligue a saída "erro" a uma Mandar mensagem (DM) para si, com
{{steps.<bloco>.error}}no texto, e depois a Fim: erro. - Guardar e Simular com uma pessoa, com uma aluna que concluiu o curso: a simulação mostra o assunto com o nome do curso e Terminaria em sucesso. Num passo de e-mail, Enviar teste para mim envia o e-mail apenas para si. Simular e me enviar os e-mails envia-lhe o e-mail tal como a aluna o receberia.
- Ligar e confirme. Na lista, acompanhe Entraram, Terminaram e Sucesso.
Pelo assistente (MCP)
O proprietário e o administrador criam, editam, ligam, pausam e retomam workflows pelo assistente, incluindo a partir dos modelos; ligar e retomar mostram antes o acionador, os e-mails e a estimativa. A equipa consulta, simula e acompanha o histórico. Também pelo assistente: run_workflow (executar agora), stop_workflow (parar, com a contagem das execuções canceladas antes da confirmação), get_workflow_summary (a taxa de sucesso e os últimos erros), list_workflow_variables e preview_workflow_text (as variáveis de um bloco e o texto preenchido), get_workflow_settings e update_workflow_settings (em nome de quem) e o endereço do webhook de entrada. Ver as receitas e Ferramentas · Comunidade.
O assistente também aprende a automatizar: o guia de workflows (get_workflow_guide e a receita Automatizar uma regra com um workflow) explica acionadores, blocos, regras e variáveis e traz receitas prontas; suggest_workflow transforma uma regra em palavras ("quem compra o curso ganha 7 dias de acesso à mentoria") num rascunho, sem guardar nada; e, depois de enviar uma campanha, emitir certificados ou convidar pessoas, o assistente sugere o workflow que automatiza isso. Pelo assistente ainda: as chaves do cofre (list_env, set_env, delete_env, sem nunca mostrar o valor), os blocos de ações da plataforma e Chamar workflow, e tirar execuções do histórico (delete_workflow_run, clear_workflow_runs, com confirmação).
Para a IA e as ações novas: o guia traz o bloco ai (com os modelos e os limites do bloco) e 48 receitas, entre elas DM de boas-vindas escrita por IA, Triagem de chamados de suporte com IA, Resumo de resposta de formulário com IA, Certificado no check-in e 1:1 recorrente para quem entra num time. get_ai_limits e update_ai_limits leem e alteram os Limites de IA, adjust_member_points ajusta os pontos de alguém sem workflow, e simulate_workflow com send_emails_to_me envia os e-mails da simulação apenas para si. Nenhuma das quatro pede confirmação.
Para o SMS e o WhatsApp: o guia descreve os blocos sendSms e sendWhatsapp (o limite, a regra das 24 horas e os motivos de salto e de espera, lidos de list_workflow_triggers), e as receitas passam a 56, com Boas-vindas por SMS, Inscrição no evento confirmada por SMS, Evento remarcado por SMS, Pagamento em atraso por SMS, 1:1 amanhã por SMS, Inscrição no evento confirmada por WhatsApp, Pagamento em atraso por WhatsApp e Vaga da lista de espera por WhatsApp. Ver Avisos por SMS e WhatsApp. No WhatsApp, o guia monta o bloco com o modelo, os campos e a página do botão, nunca com texto livre, e as receitas usam Ingresso confirmado, Pagamento recusado e Aviso da comunidade.
Para os campos de escolha múltipla e os badges, as receitas passam a 61: Boas-vindas pelo interesse e Etiqueta pelo interesse (com contém qualquer de na condição Campo do perfil), Badge ao concluir um curso, Grupo para quem recebe um badge e Badge no check-in do evento.
Para os níveis: o guia descreve os gatilhos Subiu de nível, Desceu de nível e Atingiu N pontos e as regras levelAtLeast e pointsAtLeast, com três receitas novas: Subiu de nível, ganha um badge, Desceu de nível, sai de um grupo e Atingiu N pontos, ganha um badge. Os níveis propriamente ditos estão em get_ranking_levels e update_ranking_levels.
Na API
As rotas ficam em /api/workflows: acionadores, lista, criar, editar, eliminar, ligar, pausar, retomar, parar, estimativa, simulação, teste, execuções, histórico por membro, modelos e executar agora (POST /api/workflows/{id}/run). Ver a Referência da API. Também POST /api/workflows/{id}/stop, GET /api/workflows/{id}/summary, GET /api/workflows/{id}/variables e POST /api/workflows/variables (as variáveis de um desenho ainda não guardado), GET e PUT /api/workflows/settings (em nome de quem), occurs e variables em cada acionador de GET /api/workflows/triggers, activeCount e maxActive na lista, e o tipo workflows em GET /api/logs. Um desenho recusado volta com 422 e o bloco: singleTriggerOnly, pathWithoutEnd, variableUnavailable. Também actionAboveRole e subWorkflowAboveRole (ação acima do papel de quem guarda), subWorkflowCycle, httpTimeoutInvalid, externalInSubject; Executar agora ou o endereço de webhook de um workflow com ações acima do seu papel: 403 workflows.actionsAboveRole. E DELETE /api/workflows/runs/{runId}, POST /api/workflows/{id}/runs/clear, os blocos http, platformAction e runWorkflow, o acionador workflow.called, platformActions e subWorkflow em GET /api/workflows/triggers, e o cofre em /api/vault (o valor de uma chave nunca volta).
Os blocos de IA são o bloco ai (provider anthropic ou openai, model, keyEnv, system, prompt, outputFormat text ou json, jsonSchema, maxOutputTokens, timeoutSeconds, next e error), com os modelos e os limites do bloco em aiProviders e aiNode de GET /api/workflows/triggers; os tetos ficam em GET e PUT /api/vault/ai-limits (proprietário e administrador). As ações novas estão em platformActions (content.post.create, certificate.issue, recognition.give, chat.block, oneOnOne.schedule, developmentPlan.action.add), com o campo opcional ownerOnly, e POST /api/gamification/points ajusta pontos fora de um workflow. POST /api/workflows/{id}/simulate aceita sendEmailsToMe: true e devolve emailsToMe; passar de 10 simulações com envio por hora: 429; conta sem e-mail: 422.
Os blocos de SMS e WhatsApp são sendSms (text, até 300 caracteres, next e error) e sendWhatsapp (template, variables, até 300 caracteres cada, link, next e error; os modelos e os campos de cada um vêm em whatsappNode.templates), descritos em smsNode e whatsappNode de GET /api/workflows/triggers. Os motivos ficam no passo: saltado (smsNoPhone, smsPhoneUnverified, smsNoConsent, smsOptedOut, smsOptedOutAll, smsCategoryOff, smsCountryUnsupported, smsChannelDisabled, smsMemberGone, smsTextEmpty e os whatsapp* equivalentes, mais whatsappNotOnPlan, whatsappTemplateNotApproved, whatsappNoConsent), adiado (smsQuietHours, smsDailyCapReached, smsMonthlyQuotaReached, smsPersonDailyCapReached e os do WhatsApp) e erro (smsSendFailed, whatsappSendFailed). O contador de partes é POST /api/sms/segments.
As ações de badge são badge.award (com badgeId e reason, que aceita variáveis) e badge.revoke, em platformActions; os acionadores são badge.awarded (filtros badgeId e sources) e badge.revoked, com a variável {{badge.name}}. Os gatilhos de nível e pontos são member.level_changed (filtros direction, up por predefinição ou down, levelId e, na descida, causes: points e activity) e member.points_changed (filtro points, obrigatório: dispara quando from < N <= to); as regras são levelAtLeast (levelId) e pointsAtLeast (points), com not. Num campo de escolha múltipla, a regra fieldEquals aceita op containsAny, containsAll, notContains e contains, com values.