AutomationFlowsSlack & Telegram › Telegram to Sheets

Telegram to Sheets

telegram to sheets. Uses telegramTrigger, YOU WANT ADD SOME TYPES, googleSheets, outputParserStructured. Event-driven trigger; 6 nodes.

Event trigger★★★★☆ complexityAI-powered6 nodesTelegram TriggerYou Want Add Some TypesGoogle SheetsOutput Parser Structured
Slack & Telegram Trigger: Event Nodes: 6 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow follows the Google Sheets → Outputparserstructured 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": "telegram to sheets",
  "nodes": [
    {
      "parameters": {
        "updates": [
          "message"
        ],
        "additionalFields": {}
      },
      "type": "n8n-nodes-base.telegramTrigger",
      "typeVersion": 1.4,
      "position": [
        -400,
        -32
      ],
      "id": "YOUR TELEGRAM ID",
      "name": "Telegram Trigger",
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "=Extract the following fields from this message and return ONLY a valid JSON object \u2014 no explanation, no markdown, no code blocks (no ```json), no extra text before or after.\n\nRequired JSON structure:\n{\n  \"name\": \"value\",\n  \"phone\": \"value\",\n  \"roll\": \"value\",\n  \"date_of_birth\": \"value\",\n  \"skills\": \"value\"\n}\n\nRules:\n- Extract exact values from the message below.\n- If a field is missing in the message, use \"\" (empty string).\n- Do not add, rename, or remove any keys.\n- Do not wrap the JSON inside another object or array.\n\nMessage:\n{{$json.message.text}}",
        "hasOutputParser": true,
        "batching": {}
      },
      "type": "YOU WANT ADD SOME TYPES",
      "typeVersion": 1.9,
      "position": [
        -192,
        -32
      ],
      "id": "YOUR TELEGRAM ID",
      "name": "CHOOSE LLM"
    },
    {
      "parameters": {
        "operation": "SELECT operation",
        "documentId": {
          "__rl": true,
          "value": "SET THE VALUES",
          "mode": "list",
          "cachedResultName": "ADD YOUR GOOGLE SHEETS NAME",
          "cachedResultUrl": "YOUR DRIVE LINK"
        },
        "sheetName": {
          "__rl": true,
          "value": "gid=0",
          "mode": "list",
          "cachedResultName": "Sheet1",
          "cachedResultUrl": "]"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "PHONE NUMBER": "={{$json.phone}}",
            "ROLL NUMBER": "=\n{{$json.roll}}",
            "SKILLS": "={{$json.skills}}",
            "NAME ": "={{$json.name}}",
            "DATE OF BIRTH": "={{$json.date_of_birth}}"
          },
          "matchingColumns": [],
          "schema": [
            {
              "id": "NAME ",
              "displayName": "NAME ",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "ROLL NUMBER",
              "displayName": "ROLL NUMBER",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "PHONE NUMBER",
              "displayName": "PHONE NUMBER",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "DATE OF BIRTH",
              "displayName": "DATE OF BIRTH",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "SKILLS",
              "displayName": "SKILLS",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {}
      },
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.7,
      "position": [
        304,
        -32
      ],
      "id": "",
      "name": "Append row in sheet",
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "jsonSchemaExample": "{\n  \"name\": \"Barani\",\n  \"phone\": \"8489843167\",\n  \"roll\": \"22ECE001\",\n  \"date_of_birth\": \"14/02/2004\",\n  \"skills\": \"Java, Python\"\n}"
      },
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "typeVersion": 1.3,
      "position": [
        -48,
        240
      ],
      "id": "",
      "name": "Structured Output Parser"
    },
    {
      "parameters": {
        "jsCode": "return items.map(item => {\n  const data = item.json.output;\n  return {\n    json: {\n      name: data.name || \"\",\n      phone: data.phone || \"\",\n      roll: data.roll || \"\",\n      date_of_birth: data.date_of_birth || \"\",\n      skills: data.skills || \"\"\n    }\n  };\n});"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        112,
        -32
      ],
      "id": "",
      "name": "Code in JavaScript"
    },
    {
      "parameters": {
        "modelName": "",
        "options": {}
      },
      "type": "",
      "typeVersion": 1.1,
      "position": [
        -192,
        160
      ],
      "id": "",
      "name": "",
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      }
    }
  ],
  "connections": {
    "Telegram Trigger": {
      "main": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Basic LLM Chain": {
      "main": [
        [
          {
            "node": "",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "",
            "type": "",
            "index": 0
          }
        ]
      ]
    },
    "Code in JavaScript": {
      "main": [
        [
          {
            "node": "",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "CHOOSE LLM",
            "type": "CHHOSE TYPE",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": false,
  "settings": {
    "executionOrder": "v1",
    "binaryMode": "separate",
    "availableInMCP": false
  },
  "versionId": "YOUR ID",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "nodeGroups": [],
  "id": "YOUR TELEGRAM ID",
  "tags": []
}

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

telegram to sheets. Uses telegramTrigger, YOU WANT ADD SOME TYPES, googleSheets, outputParserStructured. Event-driven trigger; 6 nodes.

Source: https://github.com/Baranidharan-Ece/DataBridge-n8n/blob/main/DataBridge-n8n.json — original creator credit. Request a take-down →

More Slack & Telegram workflows → · Browse all categories →

Related workflows

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

Slack & Telegram

Auto-create and publish AI social videos with Telegram, GPT-4 and Blotato. Uses httpRequest, stickyNote, telegramTrigger, telegram. Event-driven trigger; 42 nodes.

HTTP Request, Telegram Trigger, Telegram +2
Slack & Telegram

This workflow lets customers order and refill prescriptions via Telegram by extracting medicines from prescription images with Google Gemini, checking and updating inventory in Google Sheets, and send

Telegram Trigger, Telegram, Google Gemini +3
Slack & Telegram

This workflow handles customer order complaints submitted via Telegram by looking up order details in Google Sheets, using OpenAI to classify message sentiment, and routing each case to auto-approval,

Telegram Trigger, Google Sheets, Telegram +3
Slack & Telegram

This workflow handles COD order confirmation and abandoned-cart recovery by combining webhooks, Google Sheets logging, OpenAI message generation, and Telegram messaging with inline buttons, plus Slack

Telegram Trigger, Google Sheets, Telegram +3
Slack & Telegram

This workflow runs a Telegram restaurant ordering flow that uses OpenAI to parse orders and suggest an upsell, sends a Razorpay payment link, confirms paid orders via a Razorpay webhook, logs orders a

Telegram Trigger, OpenAI, Telegram +3