🎙️ VoiceScribe AI: Transcribir automáticamente mensajes de audio de Telegram con OpenAI Whisper

Avanzado

Este es unDocument Extraction, Multimodal AIflujo de automatización del dominio deautomatización que contiene 19 nodos.Utiliza principalmente nodos como If, Code, Merge, Telegram, GoogleDrive. Transcribir automáticamente mensajes de voz de Telegram usando OpenAI Whisper y Google Workspace

Requisitos previos
  • Bot Token de Telegram
  • Credenciales de API de Google Drive
  • Credenciales de API de Google Sheets
  • 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": "Jd7X52ywyO4xTZoE",
  "meta": {
    "instanceId": "4a2e6764ba7a6bc9890d9225f4b21d570ce88fc9bd57549c89057fcee58fed0f",
    "templateId": "2465",
    "templateCredsSetupCompleted": true
  },
  "name": "🎙️ VoiceScribe AI: Telegram Audio Message Auto Transcription with OpenAI Whisper",
  "tags": [
    {
      "id": "84SlSTthTSHRbFGM",
      "name": "Telegram",
      "createdAt": "2025-08-05T06:23:21.764Z",
      "updatedAt": "2025-08-05T06:23:21.764Z"
    },
    {
      "id": "nyc9wEV6N1lqPyOk",
      "name": "Operations",
      "createdAt": "2025-08-07T05:47:09.931Z",
      "updatedAt": "2025-08-07T05:47:09.931Z"
    },
    {
      "id": "ow6eIe95VK6fRkyw",
      "name": "Chatbot",
      "createdAt": "2025-08-05T06:23:11.231Z",
      "updatedAt": "2025-08-05T06:23:11.231Z"
    }
  ],
  "nodes": [
    {
      "id": "638b4ba9-c381-44d4-9245-c5d4964371f7",
      "name": "Tipo de mensaje no compatible",
      "type": "n8n-nodes-base.telegram",
      "position": [
        1312,
        2480
      ],
      "webhookId": "344e09e1-f90a-4181-b88d-eba8a1729454",
      "parameters": {
        "text": "=Sorry, I can’t read your input right now.\nPlease send me a voice message, and I’ll help you transcribe and track it! 🎙️💬",
        "chatId": "={{ $('Telegram Voice Message Trigger').item.json.message.chat.id }}",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "paNoPvnV5Wzt4Lhv",
          "name": "Telegram account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "779f89de-cf46-467c-829e-48ef902f2e88",
      "name": "Nota adhesiva",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -800,
        1648
      ],
      "parameters": {
        "width": 1232,
        "height": 2032,
        "content": "# 🎙️ VoiceScribe AI: Telegram Audio Message Auto Transcription with OpenAI Whisper\n> Automatically transcribe Telegram voice messages and store them as structured logs in Google Sheets, while backing up the audio in Google Drive.\n\n## 🧑‍💼 Who’s it for\n\n- Journalists, content creators, or busy professionals who often record voice memos or short interviews on the go.\n- Anyone who wants to turn voice recordings into searchable, structured notes.\n\n## ⚙️ How it works / What it does\n\n1. User sends a voice message to a Telegram bot.\n2. n8n checks if the message is an audio voice note.\n3. If valid, it downloads the audio file and:\n   - Transcribes it using OpenAI Whisper (or your LLM of choice).\n   - Uploads the original audio to Google Drive for safekeeping.\n4. The transcript and audio metadata are merged.\n5. The workflow:\n   - Logs the data into a Google Sheet.\n   - Sends a formatted confirmation message to the user via Telegram.\n\nIf the input is not audio, the bot politely informs the user that only voice messages are accepted.\n\n## ✅ Features\n\n- Accepts only Telegram voice messages.\n- Transcribes via OpenAI Whisper.\n- Logs DateTime, Duration, Transcript, and Audio URL to Google Sheets.\n- Sends user feedback message via Telegram with download + transcript link.\n\n## 🚀 How to set up\n### Prerequisites\n\n- Telegram Bot connected to n8n (via Telegram Trigger)\n- Google Drive & Google Sheets credentials configured\n- OpenAI or Whisper API credentials (for transcription)\n\n### Steps\n\n1. **Telegram Trigger**  \n   Start the flow when a new message is sent to your bot.\n2. **Check Message Type**  \n   Use a conditional node to confirm it's a voice message.\n3. **Download Voice Message**  \n   Download the `.oga` file from Telegram.\n4. **Transcribe Audio**  \n   Send the binary audio to OpenAI Whisper or your transcription service.\n5. **Upload to Google Drive**  \n   Backup the original audio file.\n6. **Merge Outputs**  \n   Combine transcription with Drive metadata.\n7. **Transform to Row Format**  \n   Prepare structured JSON for Google Sheets.\n8. **Append to Google Sheet**  \n   Store the transcript log (DateTime, Duration, Transcript, AudioURL).\n9. **Send Confirmation to User**  \n   Inform the user via Telegram with their transcript and download link.\n10. **Unsupported Message Handler**  \n    Reply to users who send non-audio messages.\n\n## 📄 Example Output in Google Sheet\n\n| DateTime              | Duration | Transcript                                | AudioURL                                                   |\n|-----------------------|----------|--------------------------------------------|------------------------------------------------------------|\n| 2025-08-07T13:12:19Z  | 27       | Dự án Outlet Activation là...              | https://drive.google.com/uc?id=xxxx&export=download        |\n\n## 🧠 How to customize the workflow\n\n- Swap Whisper with Deepgram, AssemblyAI, or other providers.\n- Add speaker name detection or prompt-based tagging via GPT.\n- Route transcripts into Notion, Airtable, or CRM systems.\n- Add multi-language support or summarization steps.\n\n## 📦 Requirements\n\n| Component            | Required |\n|---------------------|----------|\n| Telegram API        | ✅       |\n| Google Drive API    | ✅       |\n| Google Sheets API   | ✅       |\n| OpenAI Whisper API  | ✅       |\n| n8n Cloud or Self-hosted | ✅   |\n\nCreated with ❤️ using [n8n](https://n8n.io)"
      },
      "typeVersion": 1
    },
    {
      "id": "505c0e4a-11e2-4a81-ac38-518af4cd3bf6",
      "name": "Nota adhesiva1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2608,
        2080
      ],
      "parameters": {
        "width": 752,
        "height": 288,
        "content": "![Alt text](https://wisestackai.s3.ap-southeast-1.amazonaws.com/Screenshot+2025-08-07+at+2.19.15%E2%80%AFPM.png \"Optional title\")"
      },
      "typeVersion": 1
    },
    {
      "id": "3eacc0c8-6f65-47a9-9eaf-559d5c3c273d",
      "name": "Nota adhesiva5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        496,
        2400
      ],
      "parameters": {
        "width": 304,
        "height": 128,
        "content": "### 1. 📩 Telegram Trigger  \n**Description**: Listens for incoming messages from the user via the connected Telegram bot. This is the entry point of the workflow."
      },
      "typeVersion": 1
    },
    {
      "id": "b0d947b0-e970-43ea-8cc9-f3fc3b4f2d02",
      "name": "Nota adhesiva6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        992,
        2544
      ],
      "parameters": {
        "width": 272,
        "height": 144,
        "content": "### 2. Is Audio Message?  \n**Description**: Checks whether the incoming Telegram message is a audio message. If not, the workflow routes to an \"unsupported message type\" handler."
      },
      "typeVersion": 1
    },
    {
      "id": "447bc7be-707d-4eed-b3c3-1c3bc48bb103",
      "name": "Nota adhesiva7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1296,
        2096
      ],
      "parameters": {
        "width": 544,
        "height": 80,
        "content": "### 3.1. Download audio message and transcript with OpenAI\n Send the binary audio to OpenAI Whisper or your transcription service."
      },
      "typeVersion": 1
    },
    {
      "id": "938080c1-2503-4eb5-be21-32f732017869",
      "name": "Nota adhesiva8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2048,
        2080
      ],
      "parameters": {
        "width": 400,
        "height": 80,
        "content": "### 4.1. Inform user via telegram\nSend friendly message to user with audio download URL\n"
      },
      "typeVersion": 1
    },
    {
      "id": "297f8859-a2bf-4a71-82f9-161841669418",
      "name": "Nota adhesiva9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2112,
        2560
      ],
      "parameters": {
        "width": 304,
        "height": 96,
        "content": "### 4.2 Transform & log expense\n- Transform the Output to Audio Record  \n- Log Audio Record to Google Sheet  \n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "53031e0c-a427-4023-b1f6-c0aae9b6ad4f",
      "name": "¿Es mensaje de audio?",
      "type": "n8n-nodes-base.if",
      "position": [
        1088,
        2384
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "069b1c3b-d683-46f2-b7d6-9dbcdde41445",
              "operator": {
                "type": "string",
                "operation": "contains"
              },
              "leftValue": "={{ $json.message.toJsonString() }}",
              "rightValue": "audio/ogg"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "1ecf333c-3dd2-44a9-b301-547391695613",
      "name": "Descargar mensaje de audio",
      "type": "n8n-nodes-base.telegram",
      "position": [
        1312,
        2288
      ],
      "webhookId": "b7eb04dc-b5db-4fbd-8ea6-7692282d9469",
      "parameters": {
        "fileId": "={{ $json.message.voice.file_id }}",
        "resource": "file"
      },
      "credentials": {
        "telegramApi": {
          "id": "paNoPvnV5Wzt4Lhv",
          "name": "Telegram account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "d61a14e8-9541-48be-95a0-5d4e5df85ff3",
      "name": "Transcribir grabación",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        1536,
        2192
      ],
      "parameters": {
        "options": {},
        "resource": "audio",
        "operation": "transcribe"
      },
      "credentials": {
        "openAiApi": {
          "id": "PPSwAKeLQYgAPobT",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "564864d4-4a40-4f1a-b99e-fd0c6981ef7c",
      "name": "Subir archivo",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1536,
        2384
      ],
      "parameters": {
        "name": "=audio-{{ $now.toFormat(\"yyyyLLdd-HHmmss\") }}-{{$binary.data.fileName}}",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "1ObNNVJFR2vcKqP8p-ZnX_eaZy4gBHgha",
          "cachedResultUrl": "https://drive.google.com/drive/folders/1ObNNVJFR2vcKqP8p-ZnX_eaZy4gBHgha",
          "cachedResultName": "SmartIT"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "fC471es5gk5Mm900",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "59241354-ef2f-43aa-bf2a-bf394ace5907",
      "name": "Combinar",
      "type": "n8n-nodes-base.merge",
      "position": [
        1760,
        2288
      ],
      "parameters": {},
      "typeVersion": 3.2
    },
    {
      "id": "af081dde-eb7d-4a4f-ad6c-d28ffd1a81ab",
      "name": "Activador de mensaje de voz Telegram",
      "type": "n8n-nodes-base.telegramTrigger",
      "position": [
        864,
        2384
      ],
      "webhookId": "5cdd7f36-b2e3-4c8d-ab5f-1f2763eb5c75",
      "parameters": {
        "updates": [
          "message"
        ],
        "additionalFields": {
          "download": true
        }
      },
      "credentials": {
        "telegramApi": {
          "id": "paNoPvnV5Wzt4Lhv",
          "name": "Telegram account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "348897c4-3baf-4564-ae4c-f956d98936b9",
      "name": "Nota adhesiva2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2464,
        2400
      ],
      "parameters": {
        "width": 1072,
        "height": 272,
        "content": "![Alt text](https://wisestackai.s3.ap-southeast-1.amazonaws.com/Screenshot+2025-08-07+at+1.54.03%E2%80%AFPM.png \"Optional title\")"
      },
      "typeVersion": 1
    },
    {
      "id": "e8a585eb-1ed0-41c9-a2d8-25d62c12d387",
      "name": "Informar al usuario vía Telegram",
      "type": "n8n-nodes-base.telegram",
      "position": [
        2208,
        2192
      ],
      "webhookId": "e7e7cab6-27c6-4604-bab4-901873f55e24",
      "parameters": {
        "text": "=✅ Voice Transcription Complete\n\nYour voice recording (⏱️ {{ $json.Duration }} seconds, recorded at {{ $json.DateTime }}) has been successfully transcribed and securely stored.\n\n📎 Original audio stored here: {{ $json.AudioURL }}\n\nThank you for using VoiceScribe AI! 🎙️",
        "chatId": "={{ $json.ChatID }}",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "paNoPvnV5Wzt4Lhv",
          "name": "Telegram account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "1ecbac8a-2451-4856-8a96-f7d5b3dbcef5",
      "name": "Registrar grabación en hoja google",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2208,
        2384
      ],
      "parameters": {
        "columns": {
          "value": {},
          "schema": [],
          "mappingMode": "autoMapInputData",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1a-u0XHQWjn4VKbq5WpvSJy5_JgHuFl5A2Q2TEBDC5bI/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1a-u0XHQWjn4VKbq5WpvSJy5_JgHuFl5A2Q2TEBDC5bI",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1a-u0XHQWjn4VKbq5WpvSJy5_JgHuFl5A2Q2TEBDC5bI/edit?usp=drivesdk",
          "cachedResultName": "Audio Notes"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "L670Nly6gZGo71br",
          "name": "Google Sheets account 2"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "ef75b354-3db8-4536-afc9-4268395dff0a",
      "name": "Transformar salida de grabación de voz",
      "type": "n8n-nodes-base.code",
      "position": [
        1984,
        2288
      ],
      "parameters": {
        "jsCode": "const inputs = $input.all();\n\n// Assumes: \n// inputs[0] = transcript\n// inputs[1] = drive metadata\n\nconst transcriptData = inputs[0].json;\nconst driveData = inputs[1].json;\n\nconst result = {\n  DateTime: driveData.createdTime || '',\n  Duration: transcriptData.usage?.seconds || '',\n  Transcript: transcriptData.text || '',\n  AudioURL: driveData.webContentLink || '',\n  ChatID: $('Telegram Voice Message Trigger').first().json.message.chat.id\n};\n\nreturn [{ json: result }];"
      },
      "typeVersion": 2
    },
    {
      "id": "7996b57e-fffb-4707-a338-8bf390ecd134",
      "name": "Nota adhesiva10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1520,
        2544
      ],
      "parameters": {
        "width": 544,
        "height": 80,
        "content": "### 3.2. Upload the original audio to drive for later usage\nBackup the original audio file."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "c8c05b3a-a276-4324-88ef-7a55779d4e2f",
  "connections": {
    "59241354-ef2f-43aa-bf2a-bf394ace5907": {
      "main": [
        [
          {
            "node": "ef75b354-3db8-4536-afc9-4268395dff0a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "564864d4-4a40-4f1a-b99e-fd0c6981ef7c": {
      "main": [
        [
          {
            "node": "59241354-ef2f-43aa-bf2a-bf394ace5907",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "53031e0c-a427-4023-b1f6-c0aae9b6ad4f": {
      "main": [
        [
          {
            "node": "1ecf333c-3dd2-44a9-b301-547391695613",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "638b4ba9-c381-44d4-9245-c5d4964371f7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1ecf333c-3dd2-44a9-b301-547391695613": {
      "main": [
        [
          {
            "node": "d61a14e8-9541-48be-95a0-5d4e5df85ff3",
            "type": "main",
            "index": 0
          },
          {
            "node": "564864d4-4a40-4f1a-b99e-fd0c6981ef7c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d61a14e8-9541-48be-95a0-5d4e5df85ff3": {
      "main": [
        [
          {
            "node": "59241354-ef2f-43aa-bf2a-bf394ace5907",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "af081dde-eb7d-4a4f-ad6c-d28ffd1a81ab": {
      "main": [
        [
          {
            "node": "53031e0c-a427-4023-b1f6-c0aae9b6ad4f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ef75b354-3db8-4536-afc9-4268395dff0a": {
      "main": [
        [
          {
            "node": "1ecbac8a-2451-4856-8a96-f7d5b3dbcef5",
            "type": "main",
            "index": 0
          },
          {
            "node": "e8a585eb-1ed0-41c9-a2d8-25d62c12d387",
            "type": "main",
            "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 - Extracción de documentos, IA Multimodal

¿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.

Flujos de trabajo relacionados recomendados

🎧 Robot de automatización de soporte de voz IT – conversión de mensajes de voz de Telegram a tickets de JIRA (usando OpenAI Whisper)
Convertir mensajes de voz de Telegram automáticamente en tickets JIRA con Whisper y GPT-4.1 Mini
If
Set
Code
+
If
Set
Code
25 NodosTrung Tran
Gestión de tickets
Creación y carga de videos impulsada por IA para Instagram, TikTok y YouTube
Creación y subida de videos impulsada por IA desde Google Drive a Instagram, TikTok y YouTube
If
Set
Code
+
If
Set
Code
53 NodosDevCode Journey
Creación de contenido
带有 Chatgpt Agent Prompt 检查de信用卡
AI驱动信用卡推荐系统,integraciónOpenAI GPT、TelegramyGoogle Sheets
If
Set
Code
+
If
Set
Code
31 NodosNishant
Chatbot de IA
Generar automáticamente publicaciones de redes sociales con IA, Telegram y publicación multiplataforma basada en URL
Usar AI, Telegram y publicación multiplataforma para generar automáticamente publicaciones de redes sociales a partir de URL
If
Set
Code
+
If
Set
Code
42 NodosKarol
Creación de contenido
💥 Automatización de anuncios de video con NanoBanana, Seedream 4, ChatGPT Image y Veo 3 - VIDE
Usar IA (NanoBanana, Seedream, GPT-4o, Veo 3) para automatizar y publicar campañas de video publicitario
Set
Code
Wait
+
Set
Code
Wait
63 NodosDr. Firas
Creación de contenido
Flujo de trabajo inteligente para renovación de contratos de proveedores y recordatorios (usando GPT-4.1 mini)
Automatizar la renovación y recordatorios de contratos de proveedores con GPT-4.1 mini, Slack y Gmail
If
Code
Slack
+
If
Code
Slack
21 NodosTrung Tran
Extracción de documentos
Información del flujo de trabajo
Nivel de dificultad
Avanzado
Número de nodos19
Categoría2
Tipos de nodos9
Descripción de la dificultad

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

Autor
Trung Tran

Trung Tran

@trungtran

Empowering small and medium businesses with smart automation and practical AI, no big tech team required. Reach out: lets@automatewith.me

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34