AutomationFlowsAI & RAG › Gmail to Telegram: Email Summaries with Openai Gpt-4o

Gmail to Telegram: Email Summaries with Openai Gpt-4o

ByLucía Maio Brioso @luciamb on n8n.io

This workflow is for anyone who receives too many emails and wants to stay informed without drowning in their inbox.

Event trigger★★★★☆ complexityAI-powered7 nodesGmail TriggerOpenAI ChatTelegramAgent
AI & RAG Trigger: Event Nodes: 7 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #4245 — we link there as the canonical source.

This workflow follows the Agent → Gmail 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
{
  "id": "c0Ti00TfFE1MdpZd",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "\ud83d\udce8 Send AI summaries of incoming emails from Gmail to Telegram",
  "tags": [],
  "nodes": [
    {
      "id": "28581eaf-47f8-43ad-81cf-688d8f77a630",
      "name": "Prepare fields for agent",
      "type": "n8n-nodes-base.set",
      "position": [
        -80,
        -160
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "ffff425d-cd86-498a-9984-d4c97c082a7b",
              "name": "summary_language",
              "type": "string",
              "value": "={{ $json.summary_language }}"
            },
            {
              "id": "a6dc9f16-faa1-4d82-be3c-b80937563605",
              "name": "from",
              "type": "string",
              "value": "={{ $json.from?.text || $json.from?.value?.[0]?.address || 'Unknown sender' }}"
            },
            {
              "id": "c4f8daff-77e0-453f-82c2-751a8d6b8061",
              "name": "subject",
              "type": "string",
              "value": "={{ $json.subject }}"
            },
            {
              "id": "43c37703-1f05-4f20-9d6f-0f7c08be6462",
              "name": "message",
              "type": "string",
              "value": "={{ $json.html || $json.text || 'No message content available' }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "f72c5973-cc9d-4815-993c-ed7bd853fcc4",
      "name": "When a new email arrives",
      "type": "n8n-nodes-base.gmailTrigger",
      "position": [
        -520,
        -160
      ],
      "parameters": {
        "simple": false,
        "filters": {},
        "options": {},
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        }
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "95fb2d1e-efbb-4163-9e75-b85cf3fd50bf",
      "name": "Set summary language",
      "type": "n8n-nodes-base.set",
      "position": [
        -300,
        -160
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "148dcae1-3b72-4c28-b143-18b4b9877295",
              "name": "summary_language",
              "type": "string",
              "value": "english"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "8db9747f-c0a6-4044-837a-04212c8dbe56",
      "name": "OpenAI Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        228,
        60
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "8823b3ab-4e9b-4be6-bf6c-9772f1fcd17e",
      "name": "Send summary to Telegram",
      "type": "n8n-nodes-base.telegram",
      "position": [
        516,
        -160
      ],
      "parameters": {
        "text": "={{ $json.output }}",
        "chatId": "SAMPLE CHAT ID - CHANGE IT",
        "additionalFields": {
          "parse_mode": "Markdown",
          "appendAttribution": false
        }
      },
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      },
      "retryOnFail": true,
      "typeVersion": 1.2,
      "waitBetweenTries": 3000
    },
    {
      "id": "ad603819-26e0-41e8-b4bb-99d30cbc4902",
      "name": "Summary generation agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        140,
        -160
      ],
      "parameters": {
        "text": "=Summarize the following email in this language: {{ $json.summary_language }}\n\nFrom: {{ $json.from }}\nSubject: {{ $json.subject }}\n\n{{ $json.message }}",
        "options": {
          "systemMessage": "You summarize emails in a short, natural, and informal way. Use a casual tone, like you're talking to a friend. Always write in the language specified by the user. Include who sent the email, what it\u2019s about, the most relevant details (like purchase info, prices, discounts, dates, or refund conditions), and ignore anything redundant or overly formal. Avoid robotic language, lists, or instructions like \u201ckeep this email.\u201d Just say what matters."
        },
        "promptType": "define"
      },
      "retryOnFail": true,
      "typeVersion": 1.9,
      "waitBetweenTries": 3000
    },
    {
      "id": "89b1c4b0-3de4-4a81-a57b-a5e4951ea654",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -540,
        -680
      ],
      "parameters": {
        "color": 5,
        "width": 1240,
        "height": 480,
        "content": "## \ud83d\udce8 Send AI summaries of incoming emails from Gmail to Telegram\n\n### \u2139\ufe0f ABOUT THIS WORKFLOW\nThis workflow will send you AI-generated summaries of all your Gmail incoming emails to Telegram.\n\n### \ud83d\udee0\ufe0f SETUP\n1. Create credentials for Gmail, Telegram, and OpenAI.\n2. Add the Gmail credential to the Gmail node.\n3. Add the OpenAI credential to the OpenAI Model node.\n4. Add the Telegram credential to the Telegram node.\n5. Set your Chat ID in the Telegram node; you can find it out by using Telegram's get ID bot.\n\n### \ud83c\udfa8 CUSTOMIZING THE SUMMARIES\nYou can customize the generated summaries by:\n- Changing the language in the \"Set summary language\" node. You can type anything you want here, you can even specify a specific zone dialect.\n- Modifying the prompts (in the \"Summary generation agent\" node)\n- Selecting another model (in the \"OpenAI Model\" node)\n- You can also replace the \"OpenAI Model\" node with another provider, such as Anthropic or DeepSeek."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "callerPolicy": "workflowsFromSameOwner",
    "executionOrder": "v1",
    "executionTimeout": -1
  },
  "versionId": "c6cbf099-6fdf-45c0-bb63-32132f175d10",
  "connections": {
    "OpenAI Model": {
      "ai_languageModel": [
        [
          {
            "node": "Summary generation agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Set summary language": {
      "main": [
        [
          {
            "node": "Prepare fields for agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare fields for agent": {
      "main": [
        [
          {
            "node": "Summary generation agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Summary generation agent": {
      "main": [
        [
          {
            "node": "Send summary to Telegram",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When a new email arrives": {
      "main": [
        [
          {
            "node": "Set summary language",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

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

About this workflow

This workflow is for anyone who receives too many emails and wants to stay informed without drowning in their inbox.

Source: https://n8n.io/workflows/4245/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

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

AI & RAG

Automate your personal productivity with this intelligent n8n workflow that integrates Telegram, Google Sheets, and OpenAI (GPT-4o). This system uses multiple AI agents to manage work hours, tasks, fi

Agent, OpenAI Chat, Telegram +9
AI & RAG

This workflow automatically transforms your messy inbox into a neatly organized space while ensuring you never miss a critical message. It connects to your Gmail account and triggers for every new ema

Gmail Trigger, Output Parser Structured, Gmail Tool +8
AI & RAG

Managing customer support across multiple platforms like email and chat can be a huge time sink. Answering the same questions about order status repeatedly takes your focus away from growing your busi

Woo Commerce Tool, Telegram Trigger, Gmail Trigger +6
AI & RAG

This workflow is perfect for: Small to medium businesses looking to automate customer support E-commerce stores handling order inquiries and customer questions SaaS companies providing technical suppo

Telegram Trigger, Agent, OpenAI Chat +8
AI & RAG

Multi-Channel Email Intelligence Agent. Uses lmChatOpenAi, outputParserStructured, gmailTrigger, agent. Event-driven trigger; 18 nodes.

OpenAI Chat, Output Parser Structured, Gmail Trigger +6