🎙️ VoiceScribe IA : Transcrire automatiquement les messages audio Telegram avec OpenAI Whisper

Avancé

Ceci est unDocument Extraction, Multimodal AIworkflow d'automatisation du domainecontenant 19 nœuds.Utilise principalement des nœuds comme If, Code, Merge, Telegram, GoogleDrive. Transcrire automatiquement les messages vocaux Telegram avec OpenAI Whisper et Google Workspace

Prérequis
  • Token Bot Telegram
  • Informations d'identification Google Drive API
  • Informations d'identification Google Sheets API
  • Clé API OpenAI
Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "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": "Type de message non pris en charge",
      "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": "Note adhésive",
      "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": "Note adhésive1",
      "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": "Note adhésive5",
      "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": "Note adhésive6",
      "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": "Note adhésive7",
      "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": "Note adhésive8",
      "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": "Note adhésive9",
      "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": "Est-ce un message 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": "Télécharger le message 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": "Transcrire un enregistrement",
      "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": "Téléverser un fichier",
      "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": "Fusionner",
      "type": "n8n-nodes-base.merge",
      "position": [
        1760,
        2288
      ],
      "parameters": {},
      "typeVersion": 3.2
    },
    {
      "id": "af081dde-eb7d-4a4f-ad6c-d28ffd1a81ab",
      "name": "Déclencheur de message vocal 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": "Note adhésive2",
      "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": "Informer l'utilisateur via 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": "Journaliser l'enregistrement vocal dans la feuille 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": "Transformer la sortie de l'enregistrement vocal",
      "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": "Note adhésive10",
      "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
          }
        ]
      ]
    }
  }
}
Foire aux questions

Comment utiliser ce workflow ?

Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.

Dans quelles scénarios ce workflow est-il adapté ?

Avancé - Extraction de documents, IA Multimodale

Est-ce payant ?

Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.

Workflows recommandés

🎧 Robot d'assistance vocale IT – Transformation de messages vocaux Telegram en tickets JIRA (avec OpenAI Whisper)
Transformer automatiquement les messages vocaux de Telegram en tickets JIRA avec Whisper et GPT-4.1 Mini
If
Set
Code
+
If
Set
Code
25 NœudsTrung Tran
Gestion des tickets
Création et téléchargement de vidéos AI vers Instagram, TikTok et YouTube
Création de vidéos pilotée par l'IA depuis Google Drive, téléchargement sur Instagram, TikTok et YouTube
If
Set
Code
+
If
Set
Code
53 NœudsDevCode Journey
Création de contenu
带有 Chatgpt Agent Prompt 检查de信用卡
AI驱动信用卡推荐系统,intégrationOpenAI GPT、TelegrametGoogle Sheets
If
Set
Code
+
If
Set
Code
31 NœudsNishant
Chatbot IA
Générer automatiquement des publications de médias sociaux à partir d'URL en utilisant l'IA, Telegram et une publication multiplateforme
Génération automatique de publications de médias sociaux avec AI, Telegram et publication multiplateforme à partir d'URL
If
Set
Code
+
If
Set
Code
42 NœudsKarol
Création de contenu
💥 Automatisation des publicités vidéo avec NanoBanana, Seedream 4, ChatGPT Image et Veo 3 - VIDE
Utiliser l'IA (NanoBanana, Seedream, GPT-4o, Veo 3) pour automatiser et publier des campagnes publicitaires vidéo
Set
Code
Wait
+
Set
Code
Wait
63 NœudsDr. Firas
Création de contenu
Workflow intelligent pour le renouvellement des contrats fournisseurs et les rappels (avec GPT 4.1 mini)
Automatiser le renouvellement des contrats fournisseurs et les rappels avec GPT-4.1 mini, Slack et Gmail
If
Code
Slack
+
If
Code
Slack
21 NœudsTrung Tran
Extraction de documents
Informations sur le workflow
Niveau de difficulté
Avancé
Nombre de nœuds19
Catégorie2
Types de nœuds9
Description de la difficulté

Adapté aux utilisateurs avancés, avec des workflows complexes contenant 16+ nœuds

Auteur
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

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34