Integração com n8n
O pacote n8n-nodes-flowbix traz dois nós para o n8n: o Sentrya Trigger, que dispara um fluxo quando surge um incidente novo, e o Sentrya, que lista, reconhece, dispensa e envia alertas. Os dois usam um service account, sem credencial de usuário.
Instalação
No seu n8n, abra Settings → Community Nodes e instale o pacote n8n-nodes-flowbix. Os nós aparecem na busca como Sentrya e Sentrya Trigger.
Credencial "Flowbix API"
Os dois nós usam a credencial Flowbix API, com dois campos:
| Campo | Valor |
|---|---|
| Base URL | https://app.flowbix.com (já vem preenchido). |
| Service Account Token | O token svc_… criado em app.flowbix.com/admin → Integrações (ver Service accounts). |
O botão de testar a credencial faz GET /api/v1/svc/incidents/summary: 200 significa token válido; 401, token inválido ou desativado; 403, empresa indisponível. A empresa vem do token: nenhum nó pede org_id.
Nó Sentrya Trigger
Dispara o fluxo quando entra um incidente novo. É um gatilho de polling: no intervalo que você configurar no n8n, ele chama GET /api/v1/svc/incidents com sort=newest&limit=100 e emite só os incidentes cujo id é maior que o último já entregue. Esse marco fica salvo no próprio fluxo, então reiniciar o n8n não reprocessa nada.
| Parâmetro | Opções | Padrão |
|---|---|---|
| Status | Somente Ativos · Ativos E Resolvidos | Somente Ativos |
| Severidade Mínima | Todas · Info (1) · Warning (2) · Average (3) · High (4) · Disaster (5) | Todas |
Cada item emitido é um incidente no formato da API (id, title, host, severity, severity_label, origin_name… ver Consultar incidentes pela API), em ordem crescente de id.
Nó Sentrya
Nó de ação com dois recursos. Todo erro da API chega ao n8n com a mensagem original do servidor (ver Autenticação, erros e limites).
Recurso Incidente
| Operação | Rota usada | Campos |
|---|---|---|
| Listar | GET /svc/incidents | Retornar Todos (pagina de 100 em 100 até o fim) ou Limite (1–100, padrão 50). Filtros: Fonte, Host (Contém), ID Do Servidor Zabbix, ID Do Webhook (Environment), Incluir Resolvidos Recentes (Segundos), Ordenação, Severidades, Status. |
| Resumo | GET /svc/incidents/summary | Filtros: Fonte, ID Do Servidor Zabbix, ID Do Webhook (Environment). |
| Atividade (24h) | GET /svc/incidents/activity | Mesmos filtros do Resumo. |
| Reconhecer (ACK) | POST /svc/incidents/ack | IDs Dos Incidentes (CSV ou array por expressão, até 500). Opções De ACK: Reconhecer (ligado por padrão), Mensagem, Fechar, Mudar Severidade, Nova Severidade. |
| Reconhecer Por Evento | POST /svc/incidents/ack-external | External ID, ID Do Servidor Zabbix, Mensagem. |
| Dispensar | POST /svc/incidents-dismiss | IDs Dos Incidentes de webhook (até 500). Ids de Zabbix ou já resolvidos são ignorados. |
O nó valida antes de chamar a API: ACK sem operação marcada e id não numérico são recusados com mensagem própria no n8n. Detalhes em Reconhecer e dispensar pela API.
Recurso Webhook
| Operação | O que faz |
|---|---|
| Listar | GET /svc/webhooks: devolve as fontes de dados da empresa com id, nome e token de ingestão. |
| Enviar Alerta | Abre um problema ou sinaliza resolução em uma fonte. O dropdown Webhook Name or ID é carregado pelo service account, e o nó usa o ingest_token da fonte escolhida para fazer POST /api/v1/alerts. Você não copia o whk_. |
Campos de Enviar Alerta:
| Campo | Regra |
|---|---|
| Tipo Do Evento | Problema ou Resolvido. |
| Título | Obrigatório para Problema; até 512 caracteres. É o nome do incidente no card. |
| Key (Identidade Do Problema) | Opcional para Problema, obrigatória para Resolvido. A mesma key agrupa ocorrências, conta recorrência e permite abrir → resolver → reabrir. Sem key, cada disparo é um alerta solto. Até 255 caracteres. |
| Campos Adicionais | Host (até 255), Severidade (0–5, padrão Warning), Mensagem (até 20000), Comentário (até 2048; ignorado em resolução). |
O contrato completo do payload está em Referência do payload; o papel da key, em Ciclo de vida do alerta e a key.
Receita 1: abrir um incidente a partir de qualquer evento
Qualquer evento que o n8n observe (job que falhou, resposta HTTP inesperada, e-mail) pode virar incidente no Sentrya e tocar no celular do plantão.
- Crie a fonte em Fontes de Dados, por exemplo "Automações n8n" (ver Criar uma fonte de dados).
- Comece pelo gatilho do evento que você já usa no n8n (agendamento, HTTP, e-mail).
- Adicione o nó Sentrya com Recurso Webhook, Operação Enviar Alerta, escolha a fonte no dropdown, Tipo Do Evento Problema. Preencha Título, Host e Severidade com expressões do item anterior e dê uma Key estável, como
backup-{{ $json.servidor }}. - Feche o ciclo com um segundo nó Sentrya, Tipo Do Evento Resolvido e a mesma Key, no ramo em que o evento volta ao normal. Sem esse passo o alerta fica preso até alguém descartar.
- Crie um ouvinte para essa fonte (ver Criar um ouvinte de webhook) para o alerta chegar como notificação.
Receita 2: avisar no Slack ou Telegram quando surgir um Desastre
- Sentrya Trigger com Status Somente Ativos e Severidade Mínima Disaster (5). Defina o intervalo de polling no próprio nó (30 a 60 segundos é um bom começo).
- Nó do Slack ou do Telegram configurado com a credencial e o canal ou chat de destino da sua equipe.
- Monte o texto com expressões do incidente, por exemplo
{{ $json.severity_label }} em {{ $json.host }}: {{ $json.title }} ({{ $json.origin_name }}). O campoidpermite reconhecer o incidente depois por outro fluxo. - Ative o fluxo e lembre que o primeiro poll só semeia o marco. O aviso começa no incidente seguinte.
Receita 3: auto-ACK de incidentes de um host de teste
- Sentrya Trigger com Status Somente Ativos e Severidade Mínima Todas.
- Nó de condição que deixa passar só os itens cujo
{{ $json.host }}é o host de teste (ou começa com o prefixo do laboratório). - Nó Sentrya com Recurso Incidente, Operação Reconhecer (ACK), IDs Dos Incidentes
{{ $json.id }}, Reconhecer ligado e Mensagem "ACK automático: host de teste".
Se o host for do Zabbix, o reconhecimento vai ao servidor com a credencial da empresa e aparece no Histórico de ACKs sem autor pessoal; a Mensagem é o que identifica a automação. Não marque Fechar se o gatilho também puder trazer incidentes de webhook: o lote seria recusado. Para esses, use a operação Dispensar.