Guia de Referência: Tipos de Nó no Template
Este documento serve como um guia essencial para desenvolvedores que utilizam o template guides/templates/node.md no Obsidian. Ele detalha os campos específicos que cada tipo de nó requer e a estrutura Markdown esperada para a documentação atômica. O entendimento aprofundado destes padrões garante consistência, agilidade e precisão na documentação de nossos fluxos de automação.
1. Como Usar o Template node.md
O template node.md é o ponto de partida para documentar nós individuais. Ele é configurado com prompts interativos para coletar as informações pertinentes a cada tipo de nó.
Passo a passo
- Crie uma Nova Nota com o Template: No Obsidian, utilize o comando “Templater: Create new note from template” (ou o atalho configurado) e selecione
guides/templates/node.md. - Responda aos Prompts: O template iniciará uma sequência de perguntas. A primeira e mais importante é a seleção do tipo do nó, que irá configurar o restante dos prompts para aquele tipo específico.
- Salve o Arquivo: Após preencher os prompts, o Obsidian gerará o arquivo Markdown com a estrutura preenchida. Salve-o na pasta do fluxo correspondente, seguindo as regras de nomenclatura.
💡 Dica: Para uma explicação mais detalhada sobre a estrutura geral, o processo de contribuição e as boas práticas, consulte o Guia Completo de Desenvolvedores.
2. Guia Detalhado por Tipo de Nó
A seguir, você encontrará a descrição dos prompts específicos que cada tipo de nó pedirá, e a estrutura de saída esperada do Markdown após o preenchimento do template.
Índice de Tipos de Nó
Controle de Fluxo:
- 2.1. Condition (Condição)
- 2.2. Split (Divisão)
- 2.3. Jump (Salto para Fluxo Externo)
- 2.4. End Flow (Finalizar Fluxo)
Variáveis e Dados:
- 2.5. Flow Variables (Variáveis de Fluxo)
- 2.6. User Variables (Variáveis de Usuário)
- 2.7. Execution Data (Dados de Execução)
Comunicação e Interação:
Integrações Externas:
- 2.10. HTTP Request (Requisição HTTP)
- 2.11. Webhook (Entrada de Webhook)
- 2.12. Respond to Webhook (Resposta ao Webhook)
- 2.13. HubSpot
- 2.14. RabbitMQ
- 2.15. Mongo (MongoDB)
Temporização:
Atendimento:
Processamento:
2.1. Nó: Condition (Condição)
Propósito: Documenta nós que avaliam uma ou mais condições e direcionam o fluxo com base no resultado.
Prompts Específicos:
- Valor de entrada (ex:
{{flow.is_weekend}}) - Tipo de condição (ex:
=,!=,>,<,contains) - Param 2 (valor a comparar)
- Nome da condição
- Deseja adicionar mais condições? (Sim/Não)
Estrutura de Saída Esperada:
## Configuração da Condição
### Condição 1
| Campo | Valor |
|-------|-------|
| **Valor de entrada** | `{{flow.is_weekend}}` |
| **Tipo de condição** | = |
| **Param 2** | `true` |
| **Nome da condição** | É fim de semana? |
| **Segue para** | |
### Senão
| Campo | Valor |
|--------------|-------|
| **Segue para** | |
## Saídas
- Baseado no resultado da condição, o fluxo segue para o próximo nó apropriado2.2. Nó: Split (Divisão)
Propósito: Divide a execução do fluxo em múltiplas ramificações com porcentagens definidas (útil para testes A/B).
Prompts Específicos:
- Porcentagem (ex:
50%) - Nome da ramificação
- Deseja adicionar mais ramificações? (Sim/Não)
Estrutura de Saída Esperada:
## Configuração do Split
| Porcentagem | Ramificação | Segue para |
|-------------|-------------|------------|
| 50% | Variante A | |
| 50% | Variante B | |
## Saídas
- A execução é dividida entre as ramificações configuradas2.3. Nó: Jump (Salto para Fluxo Externo)
Propósito: Descreve nós que redirecionam a execução para outro fluxo.
Prompts Específicos:
- Fluxo de destino
- Data (JSON com dados a serem passados)
- Retorno (true ou false)
Estrutura de Saída Esperada:
## Configuração do Jump
**Fluxo de destino**: fluxo-de-cobranca
**Data**:
```json
{
"user_id": "{{input.user_id}}"
}Retorno: true
---
### 2.4. Nó: End Flow (Finalizar Fluxo)
**Propósito:** Finaliza a execução do fluxo atual com um status definido.
**Prompts Específicos:**
- Status de finalização (Sucesso/Erro)
- Retorno (JSON opcional)
**Estrutura de Saída Esperada:**
```markdown
## Configuração de Fim de Fluxo
**Status**: Success
**Retorno**:
```json
{
"message": "Fluxo concluído com sucesso"
}
Saídas
- Finaliza a execução do fluxo atual
---
### 2.5. Nó: Flow Variables (Variáveis de Fluxo)
**Propósito:** Detalha nós que criam ou modificam variáveis internas do fluxo.
**Prompts Específicos:**
- Cole o bloco JSON completo das variáveis
**Estrutura de Saída Esperada:**
```markdown
## Variáveis do Fluxo
```json
{
"app_cta_message_slug": "/download-app",
"user_segment": "premium"
}
Saídas
flow.app_cta_message_slug: /download-appflow.user_segment: premium
---
### 2.6. Nó: User Variables (Variáveis de Usuário)
**Propósito:** Define ou atualiza variáveis associadas ao usuário específico.
**Prompts Específicos:**
- Cole o bloco JSON completo das variáveis de usuário
**Estrutura de Saída Esperada:**
```markdown
## Variáveis de Usuário
```json
{
"last_interaction": "2024-01-15",
"preference": "email"
}
Saídas
user.last_interaction: 2024-01-15user.preference: email
---
### 2.7. Nó: Execution Data (Dados de Execução)
**Propósito:** Define chaves e valores para indexar e facilitar a busca por execuções específicas dentro do fluxo no N8N. Esses dados são essenciais para rastrear execuções e depurar problemas.
**Prompts Específicos:**
- Chave de busca (ex: `order_id`)
- Valor da chave (ex: `{{flow.order_id}}`)
- Deseja adicionar mais pares Key/Value? (Sim/Não)
**Estrutura de Saída Esperada:**
```markdown
## Configuração de Dados de Execução
| Chave | Valor |
|-------|-------|
| `order_id` | `{{flow.order_id}}` |
| `user_email` | `{{input.email}}` |
## Saídas
N/A (Este nó é usado para indexação e busca de execuções no N8N)
2.8. Nó: Chat (Mensagem de Chat)
Propósito: Documenta nós que enviam mensagens e interagem com o usuário via chat.
Prompts Específicos:
- Conteúdo da mensagem
- Rodapé (opcional)
- Botões (opcional, ex:
Acessar app Konsi (https://konsi.com.br)) - Aguardar resposta do usuário? (Sim/Não)
- Tratar mensagem fora de contexto? (Sim/Não)
- Continuar automaticamente? (Sim/Não)
Estrutura de Saída Esperada:
## Configuração do Chat
**Conteúdo**: Olá, {{user.name.first}}, temos uma novidade para você!
**Rodapé**: Clique para saber mais.
**Botões**: Ver Detalhes (https://link.com)
**Opções**:
- Aguardar resposta do usuário: true
- Tratar mensagem fora de contexto: false
- Continuar automaticamente: false
## Saídas
N/A (Interação com usuário via chat)2.9. Nó: Label (Rótulo)
Propósito: Descreve nós que aplicam um rótulo ou tag a uma entidade (por exemplo, um usuário, um atendimento, um lead).
Prompts Específicos:
- Rótulo (ex:
'Low Touch - Interessado')
Estrutura de Saída Esperada:
## Rótulo
**Rótulo**: Low Touch - Interessado
## Saídas
N/A (Este nó apenas aplica um rótulo)2.10. Nó: HTTP Request (Requisição HTTP)
Propósito: Descreve nós que realizam requisições HTTP para APIs externas ou serviços.
Prompts Específicos:
- URL
- Método (GET, POST, PUT, DELETE, etc)
- Headers (opcional)
- Body (opcional)
Estrutura de Saída Esperada:
## Configuração da Requisição
**URL**: https://api.exemplo.com/v1/data
**Método**: POST
**Headers**:
```json
{
"Content-Type": "application/json"
}Body:
{
"id": "{{input.id}}",
"value": "{{flow.data_processed}}"
}Saídas
- Resposta da requisição HTTP (depende do retorno da API)
---
### 2.11. Nó: Webhook (Entrada de Webhook)
**Propósito:** Descreve um nó que serve como um endpoint, aguardando uma requisição HTTP externa para acionar o fluxo.
**Prompts Específicos:**
- URL do webhook
- Método HTTP (GET, POST, PUT, DELETE, etc)
- Authentication method (opcional)
- Respond With (opcional)
**Estrutura de Saída Esperada:**
```markdown
## Configuração do Webhook
| Campo | Valor |
| -------------------------- | ------------- |
| **URL** | https://api.yourdomain.com/webhook/my_event |
| **Método** | POST |
| **Authentication method** | API Key (header: X-API-Key) |
| **Respond** | 200 OK |
## Saídas
- Dados recebidos via webhook (depende da requisição externa)
2.12. Nó: Respond to Webhook (Resposta ao Webhook)
Propósito: Documenta nós que enviam uma resposta HTTP específica de volta para a origem de um webhook que invocou o fluxo.
Prompts Específicos:
- Respond With (Status HTTP e/ou tipo de resposta)
- Response Body (Corpo da resposta)
Estrutura de Saída Esperada:
## Configuração do Response to Webhook
| Campo | Valor |
| -------------------------- | ------------- |
| **Respond With** | 200 OK |
| **Response Body** | {"status": "success", "message": "Processado"} |
## Saídas
- Resposta enviada ao chamador do webhook2.13. Nó: HubSpot
Propósito: Interage com o CRM HubSpot para criar, atualizar ou buscar entidades.
Prompts Específicos:
- Entidade (ex: contacts, deals, companies)
- Operação (ex: create, update, search)
- Campos (JSON opcional)
- ID (opcional, para operações de update/search)
Estrutura de Saída Esperada:
## Configuração do HubSpot
**Entidade**: contacts
**Operação**: create
**Campos**:
```json
{
"email": "{{input.email}}",
"firstname": "{{user.name.first}}"
}ID: N/A
Protocolo da conversa HF: Link para o chat
Saídas
- Resultado da operação no HubSpot (depende da entidade e operação)
---
### 2.14. Nó: RabbitMQ
**Propósito:** Interage com o RabbitMQ para consumir mensagens de filas (Trigger) ou enviar/gerenciar mensagens em filas (Action).
**Tipo de Operação:** Primeiro, escolha entre `Trigger` ou `Action`.
#### 2.14.1. RabbitMQ Trigger (Consumir Fila)
**Prompts Específicos:**
- Nome da fila
- Reconhecimento (Automático/Manual)
- Prefetch Count
**Estrutura de Saída Esperada:**
```markdown
## Configuração do RabbitMQ Trigger
| Campo | Valor |
|-------|-------|
| **Tipo de Operação** | Trigger |
| **Nome da fila** | `fila_de_pedidos` |
| **Reconhecimento (ack)** | Automático |
| **Prefetch Count** | `10` |
## Saídas
- `output.message`: O conteúdo da mensagem consumida (geralmente JSON ou string).
- `output.properties`: Objeto com as propriedades da mensagem (headers, routingKey, etc.).
2.14.2. RabbitMQ Action - Enviar Mensagem
Prompts Específicos:
- Nome da fila/exchange de destino
- Corpo da mensagem (JSON ou string)
- Routing Key (opcional)
- Propriedades da mensagem (opcional)
Estrutura de Saída Esperada:
## Configuração do RabbitMQ Action (Enviar Mensagem)
| Campo | Valor |
|-------|-------|
| **Tipo de Operação** | Action |
| **Ação** | Enviar Mensagem |
| **Fila/Exchange de destino** | `fila_de_processamento` |
| **Corpo da mensagem** |
```json
{
"order_id": "{{flow.order_id}}",
"status": "processing"
}| | Routing Key | N/A | | Propriedades da mensagem | N/A |
Saídas
output.status:successoufailure.output.details: Detalhes sobre a operação (ex: ID da mensagem).
#### 2.14.3. RabbitMQ Action - Apagar Conteúdo da Fila
**Prompts Específicos:**
- Nome da fila alvo
- Confirmar Apagar (Sim/Não)
**Estrutura de Saída Esperada:**
```markdown
## Configuração do RabbitMQ Action (Apagar Conteúdo da Fila)
| Campo | Valor |
|-------|-------|
| **Tipo de Operação** | Action |
| **Ação** | Apagar Conteúdo da Fila |
| **Fila alvo** | `fila_de_erros` |
| **Confirmar Apagar** | `true` |
## Saídas
- `output.status`: `success` ou `failure`.
- `output.messages_purged`: Número de mensagens removidas.
2.15. Nó: Mongo (MongoDB)
Propósito: Executa operações em banco de dados MongoDB.
Prompts Específicos:
- Resource (ex: mongo-prod)
- Operation (ex: find, insert, update)
- Collection (ex: users, logs)
- Fields (JSON opcional)
Estrutura de Saída Esperada:
## Configuração do Mongo
**Resource**: mongo-prod
**Operation**: find
**Collection**: users
**Fields**:
```json
{
"email": "{{input.email}}"
}Saídas
- Resultado da operação no Mongo (depende da operação)
---
### 2.16. Nó: Start Inactivity (Iniciar Inatividade)
**Propósito:** Documenta nós que iniciam um período de monitoramento de inatividade antes de prosseguir com o fluxo ou ativar outro evento.
**Prompts Específicos:**
- Tempo de inatividade (minutos)
**Estrutura de Saída Esperada:**
```markdown
## Configuração de Inatividade
**Tempo de inatividade**: 30 minutos
## Saídas
- Avança para o próximo nó após o período de inatividade configurado
2.17. Nó: End Inactivity (Finalizar Inatividade)
Propósito: Interrompe o monitoramento de inatividade em andamento.
Prompts Específicos: Nenhum
Estrutura de Saída Esperada:
## Saídas
- Interrompe o monitoramento de inatividade em andamento2.18. Nó: Iniciar/Atualizar Atendimento
Propósito: Inicia ou atualiza um registro de atendimento no sistema.
Prompts Específicos:
- Departamento
Estrutura de Saída Esperada:
## Configuração de Atendimento
**Departamento**: Suporte Técnico
## Saídas
- Sucesso: Atendimento iniciado/atualizado
- Erro: Falha ao iniciar/atualizar atendimento2.19. Nó: Finish Attendance (Finalizar Atendimento)
Propósito: Finaliza um atendimento com classificação e status específicos.
Prompts Específicos:
- Classificação (ex: Atendimento Finalizado, Cliente Inativo)
- Status
- Continuar automaticamente? (Sim/Não)
Estrutura de Saída Esperada:
## Configuração de Finalizar Atendimento
**Classificação**: Atendimento Finalizado
**Status**: Resolvido
**Continuar automaticamente**: Não
## Saídas
N/A (Finaliza o atendimento, o fluxo pode continuar ou parar dependendo da configuração)2.20. Nó: Code (Código)
Propósito: Executa código JavaScript customizado dentro do fluxo.
Prompts Específicos:
- Cole o bloco de código JavaScript
Estrutura de Saída Esperada:
## Código
```javascript
const userData = input.user;
const processedData = userData.map(u => ({
...u,
fullName: `${u.firstName} ${u.lastName}`
}));
return processedData;Saídas
- Resultado da execução do código acima
---
### 2.21. Nós de Processamento Genérico
**Tipos:** Flow Index, AI, API, Database, Transform, etc.
**Propósito:** Para nós que não possuem uma estrutura de configuração tão específica e são mais focados em processamento de dados, transformações, ou interações com serviços genéricos.
**Prompts Específicos:**
- Nome do campo de entrada
- Descrição/exemplo do valor de entrada
- Nome da variável de saída
- Descrição da saída
**Estrutura de Saída Esperada:**
```markdown
## Entradas
```json
{
"user_id": "ID único do usuário"
}
Saídas
flow.user_data: Objeto com dados detalhados do usuário
---
## 3. Convenções Gerais
### 3.1. Formatação de Código e JSON
- Sempre use blocos de código com sintaxe apropriada (```json, ```javascript)
- Mantenha a indentação consistente (2 espaços)
- Escape caracteres especiais quando necessário (backticks, pipes em tabelas)
### 3.2. Nomenclatura de Variáveis
- Variáveis de fluxo: `flow.nome_da_variavel`
- Variáveis de usuário: `user.nome_da_variavel`
- Variáveis de entrada: `input.nome_da_variavel`
- Variáveis de saída: `output.nome_da_variavel`
### 3.3. Relações entre Nós
Todas as notas devem incluir a seção de relações:
```markdown
## Relações
← Recebe de: [[nome-do-no-anterior]]
→ Envia para: [[nome-do-proximo-no]]
Para nós com múltiplas saídas (Condition, Code, HTTP Request):
## Relações
← Recebe de: [[nome-do-no-anterior]]
→ Envia para (Sucesso): [[nome-do-no-sucesso]]
→ Envia para (Erro): [[nome-do-no-erro]]