Asistente de respuestas a correos con IA y aprobación por Telegram

Avanzado

Este es unTicket Management, AI Chatbotflujo de automatización del dominio deautomatización que contiene 16 nodos.Utiliza principalmente nodos como If, Gmail, Telegram, GmailTrigger, Agent. Automatización de respuestas de Gmail con aprobación usando OpenAI y Telegram

Requisitos previos
  • Cuenta de Google y credenciales de API de Gmail
  • Bot Token de Telegram
  • Clave de API de OpenAI
Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "id": "gXutAybKcZqblZjF",
  "meta": {
    "instanceId": "f339fb4cdac358dcfebe03c578dc787158fe3660e2856c0a125861bc0c95ef5c",
    "templateCredsSetupCompleted": true
  },
  "name": "AI Email Reply Assistant with Telegram Approval",
  "tags": [],
  "nodes": [
    {
      "id": "a29a7c9c-cab6-479a-89f3-71c0abf02727",
      "name": "Analizador de Salida Estructurada1",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        680,
        1140
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"email\": \"email address\",\n  \"subject\": \"subject text\",\n  \"body\": \" body text .\"\n}\n"
      },
      "typeVersion": 1.2
    },
    {
      "id": "954febca-8faf-4899-838f-854a5c344b97",
      "name": "Enviar un mensaje",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1340,
        820
      ],
      "webhookId": "2fac759a-1e15-489e-b619-ead2dea60008",
      "parameters": {
        "sendTo": "={{ $('AI: Generate Email Reply').item.json.output.email }}",
        "message": "={{ $('AI: Generate Email Reply').item.json.output.body }}",
        "options": {},
        "subject": "={{ $('AI: Generate Email Reply').item.json.output.subject }}",
        "emailType": "text"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "BjLuqt1WNTbWNBM1",
          "name": "Gmail account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "feff315f-c008-4b67-bd89-0d88c79005ac",
      "name": "Disparador: Nuevo Correo",
      "type": "n8n-nodes-base.gmailTrigger",
      "position": [
        -1000,
        960
      ],
      "parameters": {
        "simple": false,
        "filters": {},
        "options": {},
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        }
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "BjLuqt1WNTbWNBM1",
          "name": "Gmail account"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "b69c3e8d-cd36-4c72-8a8d-006dddd0280c",
      "name": "Verificar: ¿Está el correo en la bandeja de entrada?",
      "type": "n8n-nodes-base.if",
      "position": [
        -780,
        960
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "3f7094d8-2756-493d-8721-be7d4c83297b",
              "operator": {
                "type": "array",
                "operation": "contains",
                "rightType": "any"
              },
              "leftValue": "={{ $json.labelIds }}",
              "rightValue": "INBOX"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "3cc06ffd-8a5d-4daf-a4c1-55953fba0cc8",
      "name": "IA: ¿Debemos responder?",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -320,
        940
      ],
      "parameters": {
        "text": "=todays date:- {{ $now }}\nmail date:- {{ $json.headers.date }}\nfrom :- {{ $json.headers.from }}\nsubject :- {{ $json.headers.subject.toJsonString() }}\n\ncontent :- {{ $json.text }}",
        "options": {
          "systemMessage": "You are a smart AI email assistant. Your job is to analyze each email and decide if it needs a response from the user. Most emails are promotions, newsletters, or notifications that do not need replies — skip those.\n\nOnly reply \"yes\" if:\n\nThe email asks a question\n\nThe email requests information or action\n\nThe email seems urgent or time-sensitive\n\nThe email involves work, deadlines, appointments, personal matters, or legal/financial implications\n\nOtherwise, reply \"no\".\n\nRespond in strict JSON format like this:\n\njson\nCopy\nEdit\n{\n  \"response\": \"yes\"\n}\nor\n\njson\nCopy\nEdit\n{\n  \"response\": \"no\"\n}\nDo not explain. No comments. Only JSON."
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2
    },
    {
      "id": "47ddc596-591f-470c-bafd-6a5ee7881935",
      "name": "Analizar: Decisión de respuesta JSON",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -120,
        1160
      ],
      "parameters": {
        "jsonSchemaExample": "{\n\t\"response\": \"no\"\n}"
      },
      "typeVersion": 1.2
    },
    {
      "id": "02b4791e-6301-46b8-ad85-4c627651e08a",
      "name": "Verificar: ¿Se requiere respuesta?",
      "type": "n8n-nodes-base.if",
      "position": [
        100,
        940
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "8aa9d41a-a218-456c-8b46-70b2e4a1af03",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.output.response }}",
              "rightValue": "yes"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "a5efce44-3718-4ad4-ba19-b558f029228b",
      "name": "Salida: No se necesita respuesta",
      "type": "n8n-nodes-base.noOp",
      "position": [
        280,
        1200
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "10b4cdbf-b2e0-4a75-baf2-d81184db8967",
      "name": "Sin operación, no hacer nada",
      "type": "n8n-nodes-base.noOp",
      "position": [
        -600,
        1180
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "f44760d0-60bf-4f04-9b7c-b1d4159e76ba",
      "name": "IA: Generar respuesta de correo",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        500,
        920
      ],
      "parameters": {
        "text": "=todays date:- {{ $now }}\nmail date:- {{ $('Trigger: New Email').item.json.headers.date }}\nfrom :- {{ $('Trigger: New Email').item.json.headers.from }}\nsubject :- {{ $('Trigger: New Email').item.json.headers.subject }}\n\ncontent :- {{ $('Trigger: New Email').item.json.text }}",
        "options": {
          "systemMessage": "=📧 System Prompt: Email Reply Generator\nYou are an AI email assistant. Based on the following details, write a professional and relevant reply email on behalf of the user.\n\nToday's Date:\nOriginal Email Date:\nFrom: \nSubject:\nEmail Content:\n\n✍️ Instructions:\nWrite a clear and concise reply email that responds meaningfully to the content.\n\nKeep the tone professional, polite, and appropriate to the context.\n\nDo not include greetings like \"Hi\" or sign-offs like \"Best regards\" unless necessary.\n\nYour output must be strictly in the following JSON format:\n\n\n\n{\n  \"email\": \"email address\",\n  \"subject\": \"subject text\",\n  \"body\": \" body text .\"\n}\n\n\n\nIf the email is promotional, spam, or clearly does not require a reply, leave both fields blank:\n\n\n{\n  \"subject\": \"\",\n  \"body\": \"\"\n}\n"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2
    },
    {
      "id": "988af447-e485-4397-b6e8-c848d53384f8",
      "name": "Modelo de Chat OpenAI",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -300,
        1160
      ],
      "parameters": {
        "options": {
          "baseURL": "https://api.openai.com/v1"
        }
      },
      "credentials": {
        "openAiApi": {
          "id": "e5xm7uBXWaCZn5Uk",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "79953edf-0e9a-42de-88f7-3202eefaf851",
      "name": "Modelo de Chat OpenAI1",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        520,
        1140
      ],
      "parameters": {
        "options": {
          "baseURL": "https://api.openai.com/v1"
        }
      },
      "credentials": {
        "openAiApi": {
          "id": "e5xm7uBXWaCZn5Uk",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "d1bbf2f7-4506-4296-97fc-2044619dd524",
      "name": "Telegram: Enviar + Aprobar",
      "type": "n8n-nodes-base.telegram",
      "position": [
        900,
        920
      ],
      "webhookId": "49190a52-864e-4c68-be6c-6ce530f70370",
      "parameters": {
        "chatId": "=7917193308",
        "message": "=📥 *New Email Received*\n\n👤 *From:*  \n{{ $('Trigger: New Email').item.json.headers.from }}\n\n📝 *Subject:*  \n{{ $('Trigger: New Email').item.json.headers.subject }}\n\n💬 *Content:*  \n{{ $('Trigger: New Email').item.json.text }}\n\n\n🤖 *AI-Generated Response*\n\n📤 *To:*  \n{{ $('Trigger: New Email').item.json.headers.from }}\n\n📝 *Subject:*  \n{{ $json.output.subject }}\n\n💬 *Content:*  \n{{ $json.output.body }}\n",
        "options": {
          "limitWaitTime": {
            "values": {
              "resumeUnit": "minutes",
              "resumeAmount": 5
            }
          }
        },
        "operation": "sendAndWait",
        "approvalOptions": {
          "values": {
            "approvalType": "double"
          }
        }
      },
      "credentials": {
        "telegramApi": {
          "id": "x5kGTW8ojjPJjQtB",
          "name": "Telegram account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "f61104a3-2350-4d5e-b613-94b7607dadd2",
      "name": "Verificar: ¿Aprobado por Telegram?",
      "type": "n8n-nodes-base.if",
      "position": [
        1120,
        920
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "loose"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "c7315e3c-6ee1-40bb-8d74-0c70862f30a4",
              "operator": {
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.data.approved }}",
              "rightValue": "true"
            }
          ]
        },
        "looseTypeValidation": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "d1e81ee3-db7b-4a46-b02a-ddd299d5cadf",
      "name": "Salida: No aprobado por Telegram",
      "type": "n8n-nodes-base.noOp",
      "position": [
        1340,
        1020
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "27b00238-c6fe-49bb-b147-1121f6f6c897",
      "name": "Nota adhesiva",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1520,
        360
      ],
      "parameters": {
        "width": 3180,
        "height": 1320,
        "content": "## 🤖 AI Email Reply Assistant\n\n## 🔄 What this workflow does\nThis automation monitors your Gmail inbox, intelligently decides which emails need replies, generates professional responses using AI, and sends them after your approval via Telegram.\n\n---\n\n#### 🧩 Node-by-node Breakdown\n\n1. **📥 Trigger: New Email**\n   - Gmail Trigger node\n   - Polls inbox every minute for new emails\n\n2. **📂 Check: Is Email in Inbox?**\n   - Filters emails to only process those in INBOX\n   - Skips sent, drafts, and other folders\n\n3. **🧠 AI: Should We Reply?**\n   - AI analyzes email content to determine if reply is needed\n   - Skips promotions, newsletters, and notifications\n   - Only processes emails with questions, requests, or urgent matters\n\n4. **✅ Check: Response Required?**\n   - Routes emails based on AI decision\n   - Continues only if reply is needed\n\n5. **✍️ AI: Generate Email Reply**\n   - Creates professional, contextual email response\n   - Maintains appropriate tone and format\n   - Generates subject line and body content\n\n6. **📱 Telegram: Send + Approve**\n   - Shows original email and AI-generated response\n   - Waits for your approval via Telegram buttons\n   - 5-minute timeout for decision\n\n7. **🚀 Send a message**\n   - Sends the approved reply via Gmail\n   - Only executes if you approve via Telegram\n\n---\n\n#### 💡 Key Features\n- **Smart Filtering**: Only replies to emails that actually need responses\n- **Human Approval**: You control what gets sent\n- **Professional Tone**: AI maintains appropriate business communication\n- **Mobile Control**: Approve/reject replies directly from Telegram\n\n---\n\n#### 🛠 Perfect for:\n- Busy professionals managing high email volume\n- Customer service representatives\n- Sales teams with quick response requirements\n- Anyone wanting AI assistance with email management\n\n---\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "29633a52-57b2-462e-be6e-4473426433d0",
  "connections": {
    "988af447-e485-4397-b6e8-c848d53384f8": {
      "ai_languageModel": [
        [
          {
            "node": "3cc06ffd-8a5d-4daf-a4c1-55953fba0cc8",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "79953edf-0e9a-42de-88f7-3202eefaf851": {
      "ai_languageModel": [
        [
          {
            "node": "f44760d0-60bf-4f04-9b7c-b1d4159e76ba",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "feff315f-c008-4b67-bd89-0d88c79005ac": {
      "main": [
        [
          {
            "node": "b69c3e8d-cd36-4c72-8a8d-006dddd0280c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3cc06ffd-8a5d-4daf-a4c1-55953fba0cc8": {
      "main": [
        [
          {
            "node": "02b4791e-6301-46b8-ad85-4c627651e08a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f44760d0-60bf-4f04-9b7c-b1d4159e76ba": {
      "main": [
        [
          {
            "node": "d1bbf2f7-4506-4296-97fc-2044619dd524",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d1bbf2f7-4506-4296-97fc-2044619dd524": {
      "main": [
        [
          {
            "node": "f61104a3-2350-4d5e-b613-94b7607dadd2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b69c3e8d-cd36-4c72-8a8d-006dddd0280c": {
      "main": [
        [
          {
            "node": "3cc06ffd-8a5d-4daf-a4c1-55953fba0cc8",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "10b4cdbf-b2e0-4a75-baf2-d81184db8967",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f61104a3-2350-4d5e-b613-94b7607dadd2": {
      "main": [
        [
          {
            "node": "954febca-8faf-4899-838f-854a5c344b97",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "d1e81ee3-db7b-4a46-b02a-ddd299d5cadf",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a29a7c9c-cab6-479a-89f3-71c0abf02727": {
      "ai_outputParser": [
        [
          {
            "node": "f44760d0-60bf-4f04-9b7c-b1d4159e76ba",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "02b4791e-6301-46b8-ad85-4c627651e08a": {
      "main": [
        [
          {
            "node": "f44760d0-60bf-4f04-9b7c-b1d4159e76ba",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "a5efce44-3718-4ad4-ba19-b558f029228b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "47ddc596-591f-470c-bafd-6a5ee7881935": {
      "ai_outputParser": [
        [
          {
            "node": "3cc06ffd-8a5d-4daf-a4c1-55953fba0cc8",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿Cómo usar este flujo de trabajo?

Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.

¿En qué escenarios es adecuado este flujo de trabajo?

Avanzado - Gestión de tickets, Chatbot de IA

¿Es de pago?

Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.

Información del flujo de trabajo
Nivel de dificultad
Avanzado
Número de nodos16
Categoría2
Tipos de nodos9
Descripción de la dificultad

Adecuado para usuarios avanzados, flujos de trabajo complejos con 16+ nodos

Autor
Roshan Ramani

Roshan Ramani

@rawsun007

I love building smart n8n automations that actually work reliably. My focus is on making everyday tasks like email, social media, and CRM workflows simpler using AI. I've shared templates in the n8n community, including a WhatsApp Expense Tracker that people really enjoy. What keeps me excited is constantly trying new things - testing fresh nodes, playing with AI tools like LangChain, and discovering creative ways to connect systems!

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34