v2.0

Mensageria Padrão

As notificações automáticas por e-mail do agente: início e fim das atividades, envio de logs a cada conclusão ou falha, e quem deve ser informado.

O que é a Mensageria Padrão

A Mensageria Padrão é o mecanismo nativo de notificação por e-mail dos agentes. Sem escrever nenhuma etapa de envio, o agente informa as pessoas certas quando o processo inicia, quando finaliza e quando os logs devem ser entregues, inclusive em caso de falha.

Isso não é a única forma de o agente se comunicar A Mensageria Padrão é só o canal de e-mail embutido: existe pronto, não pede nenhuma configuração e cobre início, fim e envio de logs de qualquer processo. Para qualquer outro canal, seja Slack, Microsoft Teams, WhatsApp, Telegram ou até e-mails com formatação e lógica próprias via Gmail, use uma etapa de Conectar Serviços. Os conectores exigem configuração (credenciais, canal, destinatário) mas dão controle total sobre quando e o que enviar, dentro do próprio fluxo do processo. As duas formas são independentes e podem ser usadas juntas no mesmo agente.

O painel Comunicação

Painel Comunicação das Configurações Gerais
Painel Comunicação: gatilhos de e-mail, envio de logs e destinatários mencionados com @.
ConfiguraçãoComportamento
Enviar e-mail quando: Agente iniciar as atividades Dispara um e-mail no momento em que a execução começa, informando o processo e o horário de início.
Enviar e-mail quando: Agente finalizar as atividades Dispara um e-mail quando a execução termina, informando o processo e o horário de conclusão.
Envio de Logs: Sempre que o Agente finalizar as atividades Ao final de cada execução, envia o arquivo de log completo em anexo.
Envio de Logs: Sempre que houver uma falha Quando uma execução falha, envia o arquivo de log em anexo junto com a mensagem de erro e o valor configurado no atributo de contorno da etapa que falhou.
Quem o agente deve informar? Os destinatários de cada grupo de notificação. Digite @ para mencionar contatos da empresa. Notificações de atividade e envio de logs têm listas de destinatários independentes.

Os e-mails enviados

EventoAssunto / Conteúdo
Início da execução "O Processo X foi iniciado": com data e hora do início.
Fim da execução "O Processo X foi finalizado": com data e hora da conclusão.
Log de conclusão "X · Log file": arquivo de log da execução em anexo.
Log de falha "X · Arquivo de Log · Falha no Processo": log em anexo, a mensagem de erro e o atributo de contorno configurado (Gestão de Erros e Exceções).
Os quatro e-mails acima têm uma cota diária por empresa Início, fim e os dois envios de log saem pelo serviço interno de e-mail da plataforma, que tem uma cota diária compartilhada por empresa: 10 e-mails por dia no plano Free e 100 por dia nos planos pagos, renovada todos os dias à meia-noite (horário de Brasília). Essa mesma cota também vale para o conector E-mail (SMTP) no modo "browserMate (padrão)". Ao atingir a cota, os administradores da empresa recebem um aviso por e-mail, e os envios extras daquele dia não saem, sem interromper o processo em execução. Um agente que roda muitas vezes ao dia com Envio de Logs: Sempre que o Agente finalizar ligado pode esgotar a cota rapidamente; para volume alto, use um servidor SMTP próprio no conector de e-mail, que não tem cota nenhuma.

Eventos de etapas e mapeamentos

O conteúdo dos logs enviados reflete o que aconteceu em cada etapa e em cada mapeamento: execução de etapas, preenchimentos, capturas de informação, desvios de rota, falhas e as mensagens de logs customizados gravadas pelo seu código. As evidências geradas pelas etapas e mapeamentos ficam disponíveis na Trilha de Auditoria, vinculadas às mensagens correspondentes.

Na etapa, as condições Quando Iniciado e Quando Finalizado valem para qualquer tipo de etapa (navegador, API, conector, regra ou decisão): elas sinalizam o andamento do processo. Se a etapa falha e é tentada de novo, o aviso de início não se repete a cada tentativa. Etapas de navegador e mapeamentos podem anexar evidência de tela ao aviso. Na etapa, a opção Anexar Evidência (em Condições de Alerta) só aparece em Navegar em Tela, Preencher Dados e Obter Informação, porque a imagem vem da página aberta. Nas etapas de Chamar API Rest, Conectores, Regra Customizada e Decisão de Rota a opção não existe, e o aviso da etapa sai sem imagem. Quando há dado sensível em uso, essa imagem não é gerada nem anexada.

Outros e-mails do sistema

Decidindo quando enviar uma notificação própria

Os quatro gatilhos da tabela acima são fixos: início, fim, log sempre e log só em falha. Não existe campo de condição dentro da Mensageria Padrão, o próprio gatilho já é a condição. Quando o critério é outro, como notificar só falhas graves, só um segmento de cliente ou só valores acima de um limite, a notificação passa a ser uma etapa de Conectar Serviços (Slack, Teams, Gmail, WhatsApp etc.), e quem decide se ela dispara é o toggle Executar esta Etapa somente se da própria etapa. Veja o mecanismo completo em Execução Condicional.

Etapa "Alertar Time" (Conectar Serviços): executar esta Etapa somente se
// {lastErrorStatus} e {tentativas_retry} são preenchidas pela Gestão de Erros e Exceções
// da etapa que pode falhar antes desta

Executar esta Etapa somente se:
  {lastErrorStatus} == 'error' && Number({tentativas_retry}) >= 3
Etapa "Notificar Pedido Grande": executar esta Etapa somente se
// {matrix.segmento} vem da Matrix do processo, {valor_pedido} de um mapeamento anterior

Executar esta Etapa somente se:
  {matrix.segmento} == 'enterprise' && parseFloat({valor_pedido}) > 5000

Quando o critério não cabe numa expressão de uma linha (uma taxa calculada sobre uma lista, por exemplo), calcule antes numa etapa de Regra Customizada e grave o resultado numa flag (para uma conta simples, uma Fórmula na seção Variáveis do Fluxo basta; para lógica sobre uma lista, use um script), do mesmo jeito descrito em Execução Condicional → Exemplos práticos:

Etapa "Calcular Qualidade" (Regra Customizada, Node.js)
const itens  = bm.get('{itens_processados}', []);
const falhas = itens.filter(i => i.status === 'falha').length;
const taxaErro = itens.length > 0 ? falhas / itens.length : 0;

bm.done('taxa-calculada', {
  '{alerta_qualidade}': taxaErro > 0.1 ? 'sim' : 'nao'
});
Etapa "Alertar Qualidade": executar esta Etapa somente se
Executar esta Etapa somente se:
  {alerta_qualidade} == 'sim'

Compondo uma mensagem profissional com variáveis

O e-mail da Mensageria Padrão usa um texto fixo do sistema, sem espaço para personalização. Já os campos de mensagem de um conector (Mensagem no Slack e Telegram, Corpo no Gmail, Teams e SendGrid, Texto no WhatsApp e Twilio) são texto solto: misturam texto fixo e variável do processo na mesma frase, sem operador, exatamente como descrito em Conectores → Variáveis nos conectores. É diferente do campo Valor de Chamar API Rest, que é avaliado como expressão JavaScript.

As variáveis de sistema já dão o essencial para uma mensagem com contexto, sem precisar de nenhum cálculo:

Etapa "Notificar Falha" (Slack): campo Mensagem
Olá equipe,

O processo {processName} (instância {instanceID}) falhou na etapa {errorStep}.
Erro: {errorDescription}

Iniciado por {currentUser} às {startTime}, após {execSteps} etapas executadas.
Confiram a Trilha de Auditoria para o detalhe completo.

Em conectores que aceitam HTML no corpo (Gmail, Teams, SendGrid), o mesmo texto vira uma mensagem formatada, com as variáveis dentro das tags:

Etapa "Relatório de Execução" (Gmail): campo Corpo (HTML)
<p>Olá,</p>
<p>O processo <strong>{processName}</strong> foi concluído às {startTime}, após {execSteps} etapas.</p>
<ul>
  <li>Processados: {qtd_total}</li>
  <li>Sucesso: {qtd_sucesso}</li>
  <li>Falhas: {qtd_falhas}</li>
</ul>
<p>Saudações Robóticas.</p>
Quando o texto simples não basta O campo do conector só substitui variável, não calcula nada. Plural/singular, valor formatado, data por extenso ou uma lista que varia de tamanho a cada execução não cabem ali. Nesses casos, monte a mensagem inteira antes numa Regra Customizada (na seção Variáveis do Fluxo, o modo Variável ou texto junta os pedaços e uma Fórmula resolve o plural e o singular; um script cobre o resto), grave o texto pronto numa única variável, e use só essa variável no campo do conector, a mesma recomendação de Mapeamento em Chamar API Rest → Body.
Etapa "Montar Mensagem" (Regra Customizada, Node.js)
const falhas   = bm.get('{falhas}', []);
const processo = bm.get('{processName}');
const termino  = bm.get('{startTime}');

const plural = falhas.length === 1 ? 'item' : 'itens';
const lista  = falhas.map(f => `- ${f.nome}: ${f.motivo}`).join('\n');

const mensagem = `Olá,

O processo ${processo}, iniciado em ${termino}, finalizou com ${falhas.length} ${plural} em falha:

${lista}

Verifique a Trilha de Auditoria para o detalhe de cada ocorrência.

Saudações Robóticas.`;

bm.done('mensagem-montada', {
  '{mensagem_falhas}': mensagem
});

No conector, o campo Mensagem (ou Corpo) recebe só {mensagem_falhas}: o texto já chega pronto, e o campo fica curto e fácil de revisar sem precisar reler a etapa inteira.

Boas práticas