{
  "name": "Agente de mails urgentes · VisionRs",
  "nodes": [
    {
      "id": "b4f74fc9-4765-403c-aedb-8023b5d08bbb",
      "name": "Llega un mail",
      "type": "n8n-nodes-base.gmailTrigger",
      "typeVersion": 1.4,
      "position": [0, 0],
      "parameters": {
        "pollTimes": { "item": [{ "mode": "everyMinute" }] },
        "simple": false,
        "filters": {
          "q": "in:inbox -label:agente-revisado -category:promotions -category:social newer_than:2d",
          "readStatus": "both"
        },
        "options": {}
      }
    },
    {
      "id": "4d52c9cd-5e59-4286-bab6-30a90e86668c",
      "name": "Todos los días a las 19",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.4,
      "position": [0, 400],
      "parameters": {
        "rule": { "interval": [{ "field": "days", "triggerAtHour": 19, "triggerAtMinute": 0 }] }
      }
    },
    {
      "id": "122a1760-bacc-4ce6-ac78-aedefdfe629c",
      "name": "Configuración",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.5,
      "position": [240, 200],
      "parameters": {
        "mode": "manual",
        "includeOtherFields": true,
        "assignments": {
          "assignments": [
            { "id": "cfg-chat", "name": "telegram_chat_id", "value": "PEGÁ ACÁ TU CHAT ID", "type": "string" },
            { "id": "cfg-reglas", "name": "reglas_urgente", "value": "Es urgente si un cliente reclama, si hay un problema con un pago, si es una reserva, un pedido o un turno para hoy o mañana, o si alguien pide respuesta en el día. No es urgente: publicidad, newsletters, avisos automáticos, facturas comunes ni mails que solo informan.", "type": "string" }
          ]
        },
        "options": {}
      }
    },
    {
      "id": "24bbc7fe-ed2a-4464-b2ed-d4718fd4eec2",
      "name": "¿Es un mail?",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [480, 200],
      "parameters": {
        "conditions": {
          "options": { "caseSensitive": true, "leftValue": "", "typeValidation": "loose" },
          "conditions": [
            { "leftValue": "={{ $json.id }}", "rightValue": "", "operator": { "type": "string", "operation": "exists", "singleValue": true } }
          ],
          "combinator": "and"
        },
        "options": {}
      }
    },
    {
      "id": "ee8b8bb9-d29f-4522-9e1f-c6875f1276bf",
      "name": "Agente de mails",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 3.1,
      "position": [760, 0],
      "parameters": {
        "promptType": "define",
        "text": "=De: {{ $json.from.text }}\nAsunto: {{ $json.subject }}\n\n{{ ($json.text || $json.snippet || \"\").slice(0, 4000) }}",
        "options": {
          "systemMessage": "=Sos el asistente que revisa el mail de un negocio. Por cada mail decidís si es urgente o no.\n\nCuándo es urgente:\n{{ $(\"Configuración\").first().json.reglas_urgente }}\n\nQué hacer:\n- Si es urgente, usá la herramienta «Avisar por Telegram» con un aviso de dos líneas: quién escribe, qué pasó y qué hay que hacer.\n- Si no es urgente, usá la herramienta «Anotar para el resumen» con una línea que diga de qué se trata.\n\nLímites:\n- Usá una sola herramienta por mail.\n- No respondas el mail ni le escribas a nadie más.\n- No inventes datos: si algo no está en el mail, no lo pongas.\n- Escribí en texto plano, sin los símbolos <, > ni &.",
          "maxIterations": 4
        }
      }
    },
    {
      "id": "97bffcaa-fb71-4166-96b5-b528c658c8fb",
      "name": "Cabeza: el modelo",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "typeVersion": 1.3,
      "position": [700, 220],
      "parameters": {
        "model": { "__rl": true, "mode": "list", "value": "gpt-5-mini" },
        "options": { "reasoningEffort": "low" }
      }
    },
    {
      "id": "fe4d8db0-8b2f-4d4b-8d21-e70f337f4394",
      "name": "Avisar por Telegram",
      "type": "n8n-nodes-base.telegramTool",
      "typeVersion": 1.2,
      "position": [860, 220],
      "parameters": {
        "resource": "message",
        "operation": "sendMessage",
        "chatId": "={{ $('Configuración').first().json.telegram_chat_id }}",
        "text": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('aviso', 'El aviso para el dueño del negocio, en texto plano y en dos líneas: quién escribe, qué pasó y qué hay que hacer') }}",
        "additionalFields": { "appendAttribution": false }
      },
      "webhookId": "c9c595a9-4997-4e84-b316-79942a335969"
    },
    {
      "id": "c7f6eb28-95b6-4913-b02b-52b485fb987a",
      "name": "Anotar para el resumen",
      "type": "n8n-nodes-base.googleSheetsTool",
      "typeVersion": 4.7,
      "position": [1020, 220],
      "parameters": {
        "resource": "sheet",
        "operation": "append",
        "documentId": { "__rl": true, "mode": "list", "value": "", "cachedResultName": "Mails del agente" },
        "sheetName": { "__rl": true, "mode": "list", "value": "" },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "fecha": "={{ $now.toFormat('yyyy-MM-dd HH:mm') }}",
            "de": "={{ $('Llega un mail').item.json.from.value[0].name || $('Llega un mail').item.json.from.value[0].address }}",
            "asunto": "={{ $('Llega un mail').item.json.subject }}",
            "resumen": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('resumen', 'De qué se trata el mail, en una línea') }}"
          },
          "schema": [
            { "id": "fecha", "displayName": "fecha", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true },
            { "id": "de", "displayName": "de", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true },
            { "id": "asunto", "displayName": "asunto", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true },
            { "id": "resumen", "displayName": "resumen", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true }
          ]
        },
        "options": { "cellFormat": "RAW" }
      }
    },
    {
      "id": "b454753b-8aea-480a-8f94-ae13fdbf1dcc",
      "name": "Marcar como revisado",
      "type": "n8n-nodes-base.gmail",
      "typeVersion": 2.2,
      "position": [1140, 0],
      "parameters": {
        "resource": "message",
        "operation": "addLabels",
        "messageId": "={{ $('Llega un mail').item.json.id }}",
        "labelIds": []
      },
      "webhookId": "f0d0846e-c1ed-429e-83cf-e1e322f193ea"
    },
    {
      "id": "6a4d919d-b11e-4c5f-a6a9-cbfd32be3d17",
      "name": "Leer lo anotado",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.7,
      "position": [760, 560],
      "parameters": {
        "resource": "sheet",
        "operation": "read",
        "documentId": { "__rl": true, "mode": "list", "value": "", "cachedResultName": "Mails del agente" },
        "sheetName": { "__rl": true, "mode": "list", "value": "" },
        "options": {}
      }
    },
    {
      "id": "3d12b833-3f23-464a-a795-be6a74d9eefb",
      "name": "Solo lo de hoy",
      "type": "n8n-nodes-base.filter",
      "typeVersion": 2.3,
      "position": [980, 560],
      "parameters": {
        "conditions": {
          "options": { "caseSensitive": true, "leftValue": "", "typeValidation": "loose", "version": 2 },
          "conditions": [
            { "leftValue": "={{ String($json.fecha) }}", "rightValue": "={{ $today.toFormat('yyyy-MM-dd') }}", "operator": { "type": "string", "operation": "startsWith" } }
          ],
          "combinator": "and"
        },
        "options": {}
      }
    },
    {
      "id": "de220c65-ec77-4ad1-b8c4-fdaa5a63f0bc",
      "name": "Mandar el resumen",
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1.2,
      "position": [1200, 560],
      "parameters": {
        "resource": "message",
        "operation": "sendMessage",
        "chatId": "={{ $('Configuración').first().json.telegram_chat_id }}",
        "text": "=Resumen del día: {{ $input.all().length }} mails sin urgencia.\n\n{{ $input.all().map(i => \"• \" + i.json.de + \": \" + i.json.resumen).join(\"\\n\").replace(/&/g, \"&amp;\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\") }}",
        "additionalFields": { "appendAttribution": false }
      },
      "executeOnce": true,
      "webhookId": "901764ea-923e-4a26-a31b-6172a0b0049f"
    },
    {
      "id": "032cf9c6-993e-4805-9278-47d908c97dfc",
      "name": "Nota: para usarlo",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [-60, -500],
      "parameters": {
        "content": "## Agente de mails urgentes\nUna plantilla de la guía «Tu primer agente, paso a paso» de VisionRs: visionrs.com.ar/ia/que-es-un-agente/\n\nCada mail nuevo lo lee un agente. Si es urgente, te avisa por Telegram. Si no, lo anota en una planilla, y a las 19 te llega el resumen del día.\n\n**Para usarlo:**\n1. Conectá tus cuentas en los bloques con aviso: Gmail, OpenAI, Telegram y Google Sheets.\n2. En «Configuración», pegá tu chat ID de Telegram y ajustá cuándo un mail es urgente.\n3. Creá una planilla con las columnas fecha, de, asunto y resumen, y elegila en «Anotar para el resumen» y en «Leer lo anotado».\n4. En Gmail, creá la etiqueta «agente-revisado» y elegila en «Marcar como revisado».\n5. Probalo con un mail tuyo. Si anda bien, activá el workflow.",
        "color": 5,
        "width": 560,
        "height": 440
      }
    },
    {
      "id": "2659f9be-e07b-4ee4-86d1-bda42b160fa5",
      "name": "Nota: la cabeza y la receta",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [660, 330],
      "parameters": {
        "content": "**La cabeza** es el modelo. Si preferís Claude o Gemini, borrá este bloque y conectá «Anthropic Chat Model» o «Google Gemini Chat Model».\n\n**La receta** está en las instrucciones del agente: qué hace, cómo lo hace y sus límites.",
        "color": 6,
        "width": 480,
        "height": 160
      }
    }
  ],
  "connections": {
    "Llega un mail": { "main": [[{ "node": "Configuración", "type": "main", "index": 0 }]] },
    "Todos los días a las 19": { "main": [[{ "node": "Configuración", "type": "main", "index": 0 }]] },
    "Configuración": { "main": [[{ "node": "¿Es un mail?", "type": "main", "index": 0 }]] },
    "¿Es un mail?": {
      "main": [
        [{ "node": "Agente de mails", "type": "main", "index": 0 }],
        [{ "node": "Leer lo anotado", "type": "main", "index": 0 }]
      ]
    },
    "Agente de mails": { "main": [[{ "node": "Marcar como revisado", "type": "main", "index": 0 }]] },
    "Cabeza: el modelo": { "ai_languageModel": [[{ "node": "Agente de mails", "type": "ai_languageModel", "index": 0 }]] },
    "Avisar por Telegram": { "ai_tool": [[{ "node": "Agente de mails", "type": "ai_tool", "index": 0 }]] },
    "Anotar para el resumen": { "ai_tool": [[{ "node": "Agente de mails", "type": "ai_tool", "index": 0 }]] },
    "Leer lo anotado": { "main": [[{ "node": "Solo lo de hoy", "type": "main", "index": 0 }]] },
    "Solo lo de hoy": { "main": [[{ "node": "Mandar el resumen", "type": "main", "index": 0 }]] }
  },
  "settings": { "executionOrder": "v1", "timezone": "America/Argentina/Buenos_Aires" },
  "pinData": {},
  "nodeGroups": [
    {
      "id": "3c7a9c74-2f1d-45c2-b9ad-05cbba72f4d2",
      "name": "El agente revisa cada mail",
      "nodeNames": ["Agente de mails", "Cabeza: el modelo", "Avisar por Telegram", "Anotar para el resumen", "Marcar como revisado"],
      "description": "Decide si el mail es urgente: avisa por Telegram o lo anota para el resumen, y lo marca como revisado"
    },
    {
      "id": "bcd29147-329a-4c83-b54d-c60448cb766a",
      "name": "Resumen de las 19",
      "nodeNames": ["Leer lo anotado", "Solo lo de hoy", "Mandar el resumen"],
      "description": "Lee lo anotado hoy y te manda el resumen por Telegram"
    }
  ]
}
