AutomationFlowsData & Sheets › Aula 00 Mapa Do N8n

Aula 00 Mapa Do N8n

aula-00-mapa-do-n8n. Uses emailReadImap, stopAndError, httpRequest, graphql. Event-driven trigger; 46 nodes.

Event trigger★★★★★ complexityAI-powered46 nodesEmail Read ImapStop And ErrorHTTP RequestGraphQLPostgresMySQLRedisGoogle Sheets
Data & Sheets Trigger: Event Nodes: 46 Complexity: ★★★★★ AI nodes: yes Added:

This workflow follows the Agent → Chat Trigger recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "name": "aula-00-mapa-do-n8n",
  "nodes": [
    {
      "parameters": {
        "content": "# \ud83d\uddfa\ufe0f  Aula 00 \u2014 Mapa completo do n8n\n\nCat\u00e1logo visual de todos os n\u00f3s, dicas de uso, sintaxe e refer\u00eancias.\n**Nenhum n\u00f3 precisa de credencial ou conex\u00e3o** \u2014 use como refer\u00eancia durante o workshop.",
        "height": 148,
        "width": 1960,
        "color": 5
      },
      "id": "51499f5c-74e6-487a-9d8d-2f2c8aee9fcf",
      "name": "\ud83d\udccc T\u00edtulo",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -192,
        -256
      ]
    },
    {
      "parameters": {
        "content": "### \ud83e\uddea Modo Teste vs Produ\u00e7\u00e3o\n\n**Teste** (bot\u00e3o 'Test workflow')\n- Executa manualmente, 1 vez s\u00f3\n- Webhook URL: `/webhook-test/{path}`\n- Workers N\u00c3O processam \u2014 roda inline\n- Dados ficam vis\u00edveis no canvas\n\n**Produ\u00e7\u00e3o** (toggle Ativo \ud83d\udfe2)\n- Executa no trigger automaticamente\n- Webhook URL: `/webhook/{path}`\n- Workers processam via Redis (queue)\n- Static Data e banco sincronizados\n\n\u26a0\ufe0f Static Data tem race condition com workers em paralelo. Use banco (Postgres) em produ\u00e7\u00e3o.",
        "height": 444,
        "width": 460,
        "color": 4
      },
      "id": "9ccc8d8a-cd1d-4a20-8643-ffb7b90ff0e9",
      "name": "\ud83d\udccc Dica: Modo Teste",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -192,
        -96
      ]
    },
    {
      "parameters": {
        "content": "### \ud83d\udccc Pin Data\n\nTrava a sa\u00edda de um n\u00f3 com JSON fixo.\n\n**Como usar:**\n1. Execute o n\u00f3 ao menos uma vez\n2. Clique no n\u00f3 \u2192 \u00edcone de pin \ud83d\udccc\n3. Sa\u00edda fica congelada com esses dados\n\n**Quando usar:**\n- Desenvolver downstream sem re-disparar o trigger\n- Simular response de API externa\n- Testar fluxo de erro (cole JSON de erro)\n- Demo sem depender de sistema externo\n\n\u26a0\ufe0f Pin data N\u00c3O vai para produ\u00e7\u00e3o.\nRemova antes de ativar o workflow.",
        "height": 444,
        "width": 460,
        "color": 4
      },
      "id": "3de7c867-a6c9-4b04-9bcc-db366908f87a",
      "name": "\ud83d\udccc Dica: Pin Data",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        304,
        -96
      ]
    },
    {
      "parameters": {
        "content": "### \ud83d\udd23 Express\u00f5es \u2014 {{ }}\n\nDentro de qualquer campo do n8n:\n\n`{{ $json.nome }}`\n`{{ $json.endereco.cidade }}`\n`{{ $json.itens[0].preco }}`\n`{{ $json.preco * 1.1 }}`\n`{{ $json.nome.toUpperCase() }}`\n`{{ $now.toISO() }}`\n`{{ DateTime.now().plus({ days: 7 }).toISO() }}`\n`{{ !!$json.ativo }}`\n`{{ $json.lista?.length ?? 0 }}`\n`{{ JSON.stringify($json) }}`\n\nTudo entre `{{ }}` \u00e9 **JavaScript puro**.\nDatas usam a lib **Luxon** (DateTime).\n\n\ud83d\udca1 Ctrl+Space abre autocomplete de vari\u00e1veis.",
        "height": 444,
        "width": 460,
        "color": 4
      },
      "id": "7e3345ae-6dfc-4570-b904-0935e619f0e1",
      "name": "\ud83d\udccc Dica: Express\u00f5es",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        784,
        -96
      ]
    },
    {
      "parameters": {
        "content": "### \ud83d\udd17 Code Node \u2014 Refer\u00eancias\n\n`$json.campo`  \u2014 item atual\n`$input.first().json.campo`\n`$input.all()`  \u2014 todos os items\n\n**Outro n\u00f3 pelo nome:**\n`$('Nome do N\u00f3').item.json.campo`\n`$('Nome do N\u00f3').first().json`\n`$('Nome do N\u00f3').all()`\n\n**Contexto:**\n`$workflow.name`\n`$workflow.id`\n`$env.MINHA_VAR`\n`$now`  \u2014 DateTime Luxon\n`$execution.id`\n\n**Persist\u00eancia entre execu\u00e7\u00f5es:**\n`const s = $getWorkflowStaticData('global');`\n`s.chave = 'valor';`  \u2014 salva\n`s.chave;`  \u2014 l\u00ea\n\n**Retorno obrigat\u00f3rio:**\n`return [{ json: { campo: valor } }]`",
        "height": 444,
        "width": 460,
        "color": 4
      },
      "id": "3fa19192-a22c-441d-b6bd-7abed0344fc1",
      "name": "\ud83d\udccc Dica: Code Node",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        1264,
        -96
      ]
    },
    {
      "parameters": {
        "content": "## \u26a1 Triggers \u2014 Como o workflow come\u00e7a\n\nCada workflow precisa de exatamente **1 trigger ativo**. Sem trigger ativo, nada executa automaticamente.\n\n\u2022 **Manual Trigger** \u2192 Executa pelo bot\u00e3o 'Test workflow'. Para desenvolvimento ou execu\u00e7\u00e3o sob demanda.\n\u2022 **Webhook** \u2192 Recebe requisi\u00e7\u00f5es HTTP (POST/GET/PATCH/etc). Principal porta de entrada de APIs externas, formul\u00e1rios e zapier-style integrations.\n\u2022 **Schedule Trigger** \u2192 Executa por cron ou intervalo fixo. Ex: 'todo dia \u00e0s 06:00', 'a cada 30 minutos'.\n\u2022 **Email Trigger (IMAP)** \u2192 Dispara ao receber email novo. Faz polling no servidor IMAP no intervalo configurado.",
        "height": 180,
        "width": 1960,
        "color": 3
      },
      "id": "b6bbd8e2-2f9d-446b-b271-b74041211130",
      "name": "\ud83d\udccc Se\u00e7\u00e3o: Triggers",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -192,
        400
      ]
    },
    {
      "parameters": {},
      "id": "cbd62ab5-d093-4e12-b26b-6cbf162cd1a5",
      "name": "Manual Trigger",
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [
        -208,
        656
      ]
    },
    {
      "parameters": {
        "path": "exemplo",
        "responseMode": "lastNode",
        "options": {}
      },
      "id": "38f777f0-168e-4651-a646-e60ac887cb73",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [
        0,
        656
      ]
    },
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "hours"
            }
          ]
        }
      },
      "id": "4653bbc8-1323-463e-8d3a-3b34288e23d9",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.2,
      "position": [
        208,
        656
      ]
    },
    {
      "parameters": {
        "options": {}
      },
      "id": "2288ecaf-4276-4064-89fd-2854915b87f3",
      "name": "Email Trigger (IMAP)",
      "type": "n8n-nodes-base.emailReadImap",
      "typeVersion": 2,
      "position": [
        400,
        656
      ]
    },
    {
      "parameters": {
        "content": "## \ud83d\udd00 Flow Control \u2014 L\u00f3gica e ramifica\u00e7\u00f5es\n\nControla COMO e QUANDO os dados percorrem o fluxo.\n\n\u2022 **IF** \u2192 Divide em TRUE/FALSE baseado em condi\u00e7\u00f5es. Sa\u00edda 1=true, Sa\u00edda 2=false. Suporta AND/OR entre m\u00faltiplas condi\u00e7\u00f5es.\n\u2022 **Switch** \u2192 Roteamento com N sa\u00eddas. Cada sa\u00edda corresponde a um valor ou regra \u2014 como um switch/case.\n\u2022 **Loop Over Items** \u2192 Processa items em lotes (batch size configur\u00e1vel). Controle manual de volume por itera\u00e7\u00e3o.\n\u2022 **Wait** \u2192 Pausa o fluxo por um tempo fixo ou at\u00e9 receber sinal via webhook de retomada.\n\u2022 **Stop and Error** \u2192 Lan\u00e7a um erro customizado e interrompe o fluxo. Para valida\u00e7\u00f5es de neg\u00f3cio e guards.\n\u2022 **No Op** \u2192 N\u00e3o faz nada. Usado para organizar o canvas visualmente, como ponto de merge visual.",
        "height": 200,
        "width": 1960,
        "color": 7
      },
      "id": "57663434-a132-4a1b-a0e2-d4f9b295f334",
      "name": "\ud83d\udccc Se\u00e7\u00e3o: Flow Control",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -240,
        864
      ]
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 2
          },
          "conditions": [],
          "combinator": "and"
        },
        "options": {}
      },
      "id": "40033670-6d05-464f-a10b-da3ec90e3c18",
      "name": "IF",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        -224,
        1136
      ]
    },
    {
      "parameters": {
        "rules": {
          "values": [
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict",
                  "version": 1
                },
                "conditions": [
                  {
                    "leftValue": "",
                    "rightValue": "",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ],
                "combinator": "and"
              }
            }
          ]
        },
        "options": {}
      },
      "id": "3f689bab-143a-4423-a8fd-740ad47125a9",
      "name": "Switch",
      "type": "n8n-nodes-base.switch",
      "typeVersion": 3.2,
      "position": [
        -16,
        1136
      ]
    },
    {
      "parameters": {
        "options": {}
      },
      "id": "5ff88807-9d78-4d7c-b8fc-cfba94c6af5c",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "typeVersion": 3,
      "position": [
        192,
        1136
      ]
    },
    {
      "parameters": {},
      "id": "b705750c-b737-4e2c-9e86-fffe44429705",
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "typeVersion": 1.1,
      "position": [
        384,
        1136
      ]
    },
    {
      "parameters": {
        "errorMessage": "Erro customizado aqui"
      },
      "id": "8fa74561-67ea-4b78-9495-d8ff308bc4c2",
      "name": "Stop and Error",
      "type": "n8n-nodes-base.stopAndError",
      "typeVersion": 1,
      "position": [
        592,
        1136
      ]
    },
    {
      "parameters": {},
      "id": "052e6b0c-7f99-470e-aba3-9dfb1b7469b0",
      "name": "No Op",
      "type": "n8n-nodes-base.noOp",
      "typeVersion": 1,
      "position": [
        784,
        1136
      ]
    },
    {
      "parameters": {
        "content": "## \ud83d\udd27 Data Manipulation \u2014 Transforma os dados\n\nTodos os n\u00f3s trabalham com arrays de items: `[{ json: {...} }, ...]`.\n\n\u2022 **Set / Edit Fields** \u2192 Adiciona, remove ou renomeia campos por GUI. Suporta express\u00f5es. O mais usado do n8n.\n\u2022 **Code** \u2192 JavaScript puro. Poder total: loops, regex, l\u00f3gica complexa, m\u00faltiplos retornos. Use quando Set n\u00e3o basta.\n\u2022 **Merge** \u2192 Combina sa\u00eddas de 2 n\u00f3s (modes: Append, Merge By Index, Merge By Key, Choose Branch, etc).\n\u2022 **Split Out** \u2192 Explode array em items individuais. `[{lista:[1,2,3]}]` vira 3 items separados.\n\u2022 **Aggregate** \u2192 Agrupa m\u00faltiplos items em 1 item com array. Inverso do Split Out.\n\u2022 **Filter** \u2192 Remove items que n\u00e3o passam na condi\u00e7\u00e3o. N\u00e3o cria branch \u2014 s\u00f3 passa adiante quem satisfaz.\n\u2022 **Sort** \u2192 Ordena items por campo(s) (ASC/DESC). Suporta ordena\u00e7\u00e3o m\u00faltipla.\n\u2022 **Remove Duplicates** \u2192 Deduplica items por campo(s) chave. Mant\u00e9m primeiro ou \u00faltimo.",
        "height": 268,
        "width": 1960,
        "color": 4
      },
      "id": "a0aca755-6aea-4db7-9132-73fa133a8e29",
      "name": "\ud83d\udccc Se\u00e7\u00e3o: Data Manipulation",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -224,
        1312
      ]
    },
    {
      "parameters": {
        "assignments": {
          "assignments": []
        },
        "options": {}
      },
      "id": "78271482-ef6e-4551-b596-25ed05feb045",
      "name": "Edit Fields (Set)",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        -208,
        1696
      ]
    },
    {
      "parameters": {
        "jsCode": "// Poder total \u2014 JavaScript puro\n// Acesso a todos os items do input:\nconst items = $input.all();\n\nreturn items.map(item => ({\n  json: {\n    ...item.json,\n    processado: true\n  }\n}));"
      },
      "id": "6044e9ff-f907-4ea7-aa4e-4015560a6cea",
      "name": "Code",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        0,
        1696
      ]
    },
    {
      "parameters": {},
      "id": "91e40723-efb3-45f9-a69a-534e155b7376",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "typeVersion": 3,
      "position": [
        208,
        1696
      ]
    },
    {
      "parameters": {
        "fieldToSplitOut": "array",
        "options": {}
      },
      "id": "fc88cad4-7308-45b7-9c3e-b56cbde81430",
      "name": "Split Out",
      "type": "n8n-nodes-base.splitOut",
      "typeVersion": 1,
      "position": [
        400,
        1696
      ]
    },
    {
      "parameters": {
        "aggregate": "aggregateAllItemData",
        "options": {}
      },
      "id": "46928b39-f865-4997-a176-a1885663fc1f",
      "name": "Aggregate",
      "type": "n8n-nodes-base.aggregate",
      "typeVersion": 1,
      "position": [
        608,
        1696
      ]
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 2
          },
          "conditions": [],
          "combinator": "and"
        },
        "options": {}
      },
      "id": "8b309791-522d-4040-a690-c8a9287f6199",
      "name": "Filter",
      "type": "n8n-nodes-base.filter",
      "typeVersion": 2.2,
      "position": [
        800,
        1696
      ]
    },
    {
      "parameters": {
        "options": {}
      },
      "id": "dee83a3d-30e4-4aa2-b14a-c91a40357e5f",
      "name": "Sort",
      "type": "n8n-nodes-base.sort",
      "typeVersion": 1,
      "position": [
        1008,
        1696
      ]
    },
    {
      "parameters": {},
      "id": "f94405e4-1a13-43e5-a7cf-364d23ce3944",
      "name": "Remove Duplicates",
      "type": "n8n-nodes-base.removeDuplicates",
      "typeVersion": 1.1,
      "position": [
        1200,
        1696
      ]
    },
    {
      "parameters": {
        "content": "## \ud83c\udf10 HTTP & Webhooks \u2014 Comunica\u00e7\u00e3o externa\n\n\u2022 **HTTP Request** \u2192 Chama qualquer API REST/HTTP. Suporta todos m\u00e9todos, headers, auth (basic, bearer, OAuth), query params, form-data, JSON body. Use 'Test Step' para inspecionar responses antes de mapear campos.\n\u2022 **Respond to Webhook** \u2192 Envia resposta HTTP para o cliente que chamou o Webhook trigger. Requer Webhook com `responseMode: responseNode`. Roda uma vez com o primeiro item.\n\u2022 **GraphQL** \u2192 Faz queries e mutations GraphQL com vari\u00e1veis. Gera\u00e7\u00e3o autom\u00e1tica de schema dispon\u00edvel. Alternativa struct ao HTTP Request para APIs GraphQL.",
        "height": 180,
        "width": 1960,
        "color": 6
      },
      "id": "1abb8715-f39b-4432-bdf8-bbb7cda7cdc3",
      "name": "\ud83d\udccc Se\u00e7\u00e3o: HTTP & Webhooks",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -224,
        1904
      ]
    },
    {
      "parameters": {
        "url": "https://api.exemplo.com/dados",
        "options": {}
      },
      "id": "a7e1f9e4-d0c0-40d2-ac29-e0864330246e",
      "name": "HTTP Request",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        -208,
        2176
      ]
    },
    {
      "parameters": {
        "respondWith": "json",
        "responseBody": "={{ JSON.stringify($json) }}",
        "options": {
          "responseCode": 200
        }
      },
      "id": "37f5a493-bba1-4a0f-a3f0-5abb2bc8f427",
      "name": "Respond to Webhook",
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1.4,
      "position": [
        0,
        2176
      ]
    },
    {
      "parameters": {
        "endpoint": "https://api.exemplo.com/graphql",
        "query": "{ hello }"
      },
      "id": "6ba62452-eb9a-418a-9cda-0e4c7256e81c",
      "name": "GraphQL",
      "type": "n8n-nodes-base.graphql",
      "typeVersion": 1,
      "position": [
        208,
        2176
      ]
    },
    {
      "parameters": {
        "content": "## \ud83d\uddc4\ufe0f Databases \u2014 Persist\u00eancia de dados\n\nConecte com bancos e planilhas. **Crie a credencial uma vez** e reuse em todos os n\u00f3s do mesmo banco. Nunca coloque senha direto nos n\u00f3s.\n\n\u2022 **Postgres** \u2192 SELECT, INSERT, UPDATE, DELETE, Upsert, Execute Query. Principal banco deste workshop. Suporte a par\u00e2metros `$1, $2` para evitar SQL injection.\n\u2022 **MySQL** \u2192 Mesmas opera\u00e7\u00f5es para MySQL/MariaDB. Troca Postgres pela credencial MySQL.\n\u2022 **Redis** \u2192 GET/SET/HSET/LPUSH/EXPIRE/etc. Cache, contadores, pub-sub e filas r\u00e1pidas.\n\u2022 **Google Sheets** \u2192 L\u00ea e escreve planilhas como se fossem tabelas. \u00d3timo como banco simples para MVPs.\n\u2022 **MongoDB** \u2192 Document store. Find, InsertOne, UpdateMany com filtros e projections MongoDB.",
        "height": 216,
        "width": 1960,
        "color": 3
      },
      "id": "b8df2039-81bd-4671-889c-03b5c77a8f5e",
      "name": "\ud83d\udccc Se\u00e7\u00e3o: Databases",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -240,
        2352
      ]
    },
    {
      "parameters": {
        "operation": "select",
        "schema": {
          "__rl": true,
          "mode": "list",
          "value": "public"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": ""
        }
      },
      "id": "5181cb1a-d9d2-4a8a-8cfa-16f7caae70fe",
      "name": "Postgres",
      "type": "n8n-nodes-base.postgres",
      "typeVersion": 2.6,
      "position": [
        -208,
        2672
      ]
    },
    {
      "parameters": {
        "operation": "select",
        "table": {
          "__rl": true,
          "mode": "list",
          "value": ""
        }
      },
      "id": "0a8829d4-9852-41da-a8f8-fa408bb765ee",
      "name": "MySQL",
      "type": "n8n-nodes-base.mySql",
      "typeVersion": 2.4,
      "position": [
        0,
        2672
      ]
    },
    {
      "parameters": {
        "operation": "get",
        "options": {}
      },
      "id": "917aa3f3-e569-40f4-bb0f-9b201bfda7f6",
      "name": "Redis",
      "type": "n8n-nodes-base.redis",
      "typeVersion": 1,
      "position": [
        208,
        2672
      ]
    },
    {
      "parameters": {
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": ""
        }
      },
      "id": "3ac6e061-cd57-4e97-9643-388170a5e946",
      "name": "Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        400,
        2672
      ]
    },
    {
      "parameters": {
        "options": {}
      },
      "id": "0b76d618-20ab-4d3d-88c6-cb7d3582886d",
      "name": "MongoDB",
      "type": "n8n-nodes-base.mongoDb",
      "typeVersion": 1,
      "position": [
        608,
        2672
      ]
    },
    {
      "parameters": {
        "content": "## \ud83d\udce8 Communication \u2014 Notifica\u00e7\u00f5es e mensagens\n\n\u2022 **Telegram** \u2192 Envia/recebe mensagens, fotos, documentos via Bot API. Ideal para alertas de erro em produ\u00e7\u00e3o e notifica\u00e7\u00f5es de neg\u00f3cio.\n\u2022 **Slack** \u2192 Manda mensagens em canais e DMs. Suporte a blocos, attachments, threading e rea\u00e7\u00f5es.\n\u2022 **Send Email** \u2192 Envia email via SMTP ou servi\u00e7o (Gmail, SendGrid, etc). HTML ou texto plano.\n\u2022 **Discord** \u2192 Envia mensagens em canais via webhook ou bot. Usado para notifica\u00e7\u00f5es de dev e comunidades.\n\n\ud83d\udca1 Padr\u00e3o: coloque Telegram/Slack nos error handlers para ser notificado em tempo real de falhas em produ\u00e7\u00e3o.",
        "height": 196,
        "width": 1960
      },
      "id": "8e74f5b7-f8ce-4a61-a061-c3e3182ad1a8",
      "name": "\ud83d\udccc Se\u00e7\u00e3o: Communication",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -224,
        2912
      ]
    },
    {
      "parameters": {
        "chatId": "SEU_CHAT_ID",
        "text": "Mensagem de teste",
        "additionalFields": {}
      },
      "id": "bba7289d-194c-40fc-9f00-7efafe8315a2",
      "name": "Telegram",
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1.2,
      "position": [
        -208,
        3152
      ]
    },
    {
      "parameters": {
        "select": "channel",
        "channelId": {
          "__rl": true,
          "value": "CHANNEL_ID",
          "mode": "id"
        },
        "text": "Mensagem",
        "otherOptions": {}
      },
      "id": "5a21eec1-06df-4b65-82c9-1382d8f5b4c5",
      "name": "Slack",
      "type": "n8n-nodes-base.slack",
      "typeVersion": 2.3,
      "position": [
        0,
        3152
      ]
    },
    {
      "parameters": {
        "fromEmail": "sender@exemplo.com",
        "toEmail": "destinatario@exemplo.com",
        "subject": "Assunto",
        "emailFormat": "text",
        "text": "Corpo do email",
        "options": {}
      },
      "id": "1c8690c3-c593-4492-b843-3def2d3df76e",
      "name": "Send Email",
      "type": "n8n-nodes-base.emailSend",
      "typeVersion": 2.1,
      "position": [
        208,
        3152
      ]
    },
    {
      "parameters": {
        "guildId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "options": {}
      },
      "id": "e60decac-9a62-4165-932a-4db71fa69d79",
      "name": "Discord",
      "type": "n8n-nodes-base.discord",
      "typeVersion": 2,
      "position": [
        400,
        3152
      ]
    },
    {
      "parameters": {
        "content": "## \ud83e\udd16 AI & LangChain \u2014 Intelig\u00eancia artificial\n\nn8n tem integra\u00e7\u00e3o nativa com LangChain. Agents, chains, memory e tools s\u00e3o conect\u00e1veis diretamente ao fluxo.\n\n\u2022 **AI Agent** \u2192 Agente aut\u00f4nomo com tools. Recebe um prompt, decide qual ferramenta usar, executa e retorna resultado. Conecte n\u00f3s n8n como tools (ex: HTTP Request, Postgres) para dar capacidades ao agente.\n\u2022 **OpenAI** \u2192 Acesso direto \u00e0 API: chat completions, embeddings, imagens (DALL-E), transcri\u00e7\u00e3o (Whisper). Mais controle que o Agent.\n\u2022 **Chat Trigger** \u2192 Trigger que exp\u00f5e interface de chat no n8n. Ponto de entrada para chatbots e assistentes.\n\u2022 **Embeddings OpenAI** \u2192 Gera vetores num\u00e9ricos (embeddings) para busca sem\u00e2ntica. Usado com Vector Stores e Retrieval.\n\n\ud83d\udca1 Fluxo b\u00e1sico de chatbot: Chat Trigger \u2192 AI Agent (com OpenAI como LLM) \u2192 Respond to Webhook.",
        "height": 216,
        "width": 1960,
        "color": 2
      },
      "id": "f1fdda62-7009-4cca-ba65-4c74439cf128",
      "name": "\ud83d\udccc Se\u00e7\u00e3o: AI & LangChain",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -224,
        3360
      ]
    },
    {
      "parameters": {
        "options": {}
      },
      "id": "5cb15609-fb83-44b9-b58c-ce8865224fd9",
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 1.7,
      "position": [
        -224,
        3632
      ]
    },
    {
      "parameters": {
        "resource": "chat"
      },
      "id": "da7aa227-2eeb-4b5b-98a2-0d6d3f4b880b",
      "name": "OpenAI",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "typeVersion": 1.8,
      "position": [
        -16,
        3632
      ]
    },
    {
      "parameters": {
        "options": {}
      },
      "id": "309292a9-c7b9-41eb-b9c8-0b630e0fa407",
      "name": "Chat Trigger",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "typeVersion": 1.1,
      "position": [
        192,
        3632
      ]
    },
    {
      "parameters": {
        "options": {}
      },
      "id": "ec6c424e-0f68-4cc9-b817-f49582cefe72",
      "name": "Embeddings OpenAI",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "typeVersion": 1.2,
      "position": [
        384,
        3632
      ]
    }
  ],
  "connections": {},
  "active": false,
  "settings": {
    "executionOrder": "v1",
    "binaryMode": "separate"
  },
  "versionId": "58565109-254f-4add-b409-68ce81cb6f9e",
  "id": "0bIC3itDOIVPHSQR",
  "tags": []
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

aula-00-mapa-do-n8n. Uses emailReadImap, stopAndError, httpRequest, graphql. Event-driven trigger; 46 nodes.

Source: https://github.com/LeoZanini/workshop-n8n/blob/1b4984785259c6d6d849d9a10c3eb80d54e6c4a1/workflows/aula-00-mapa-do-n8n.json — original creator credit. Request a take-down →

More Data & Sheets workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Data & Sheets

This n8n workflow automates the transformation of spreadsheet data into professional charts and graphs using AI-driven analysis. Triggered via Slack, it processes uploaded files (Excel, CSV, Google Sh

Agent, Postgres, HTTP Request +8
Data & Sheets

Scheduled processes retrieve customer feedback from multiple channels. The system performs sentiment analysis to classify tone, then uses OpenAI models to extract themes, topics, and urgency indicator

HTTP Request, Lm Chat Azure Open Ai, Sentiment Analysis +5
Data & Sheets

Финансовый Бот Telegram - Полный Функционал. Uses telegramTrigger, agent, telegram, httpRequest. Event-driven trigger; 53 nodes.

Telegram Trigger, Agent, Telegram +4
Data & Sheets

This workflow functions as an automated "Chief Wellness Officer," helping HR teams and managers prevent employee burnout before it happens. It aggregates data from communication channels and work tool

HTTP Request, Slack, OpenAI +2
Data & Sheets

This workflow acts as a junior finance research analyst for a UK boutique M&A or corporate finance team. It listens for Slack messages, classifies the request, gathers company or market data, and prod

HTTP Request, Google Drive, Google Docs +5