This workflow corresponds to n8n.io template #11606 — we link there as the canonical source.
This workflow follows the Google Drive → HTTP Request 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 →
{
"id": "mP0xzDliHhlMDrkO",
"name": "Clone and change your voice with Elevenlabs and Telegram",
"tags": [],
"nodes": [
{
"id": "9b7cade6-0ae6-45db-97a7-af3a4f6e2665",
"name": "Sticky Note8",
"type": "n8n-nodes-base.stickyNote",
"position": [
1280,
464
],
"parameters": {
"color": 6,
"width": 400,
"height": 152,
"content": "```json\n[\n {\n \"voice_id\": \"XXXXXX\",\n \"requires_verification\": false\n }\n]\n```"
},
"typeVersion": 1
},
{
"id": "2fc4eba3-e421-4763-be45-055a76c2c2a4",
"name": "Telegram Trigger",
"type": "n8n-nodes-base.telegramTrigger",
"position": [
-368,
656
],
"parameters": {
"updates": [
"message"
],
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "6ca06f33-a05c-422f-a50c-c0940c40a075",
"name": "Switch",
"type": "n8n-nodes-base.switch",
"position": [
272,
640
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "Text",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.message.text}}",
"rightValue": ""
}
]
},
"renameOutput": true
},
{
"outputKey": "Audio",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "7b2cb4dc-dd9d-43b2-b4db-f0de858f46cc",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.message.voice.file_id }}",
"rightValue": ""
}
]
},
"renameOutput": true
},
{
"outputKey": "Immagine",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "98d80a35-3004-4bad-95b8-e87fc9270083",
"operator": {
"type": "object",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.message.photo[0] }}",
"rightValue": ""
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"executeOnce": false,
"typeVersion": 3.2,
"alwaysOutputData": false
},
{
"id": "861dea14-c58b-4585-9568-eb532a4e431d",
"name": "Sanitaze",
"type": "n8n-nodes-base.code",
"position": [
-48,
656
],
"parameters": {
"jsCode": "if ($input.first().json.message.from.id !== XXX) { // Replace with your Telegram user ID\n return { unauthorized: true };\n} else {\n // Return the original data when authorized\n return $input.all();\n}\n"
},
"typeVersion": 2
},
{
"id": "0d1b850c-8ae6-4a07-8d89-53a6c9b51ed8",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-144,
544
],
"parameters": {
"color": 7,
"width": 336,
"height": 272,
"content": "## STEP 1 - Sanitaze\nReplace XXXX with your Telegram user ID"
},
"typeVersion": 1
},
{
"id": "fd9cd60d-8a1d-4197-a537-d3f1331ca248",
"name": "Get audio",
"type": "n8n-nodes-base.telegram",
"position": [
624,
656
],
"parameters": {
"fileId": "={{ $json.message.voice.file_id }}",
"resource": "file",
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "154c90f8-6794-4982-97a7-8dfdccae8473",
"name": "Create Cloned Voice",
"type": "n8n-nodes-base.httpRequest",
"position": [
1072,
480
],
"parameters": {
"url": "https://api.elevenlabs.io/v1/voices/add",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "multipart-form-data",
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "name",
"value": "XXX"
},
{
"name": "files",
"parameterType": "formBinaryData",
"inputDataFieldName": "data"
}
]
},
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"name": "<your credential>"
}
},
"typeVersion": 4.3
},
{
"id": "2f9dc078-bb6f-4d63-b612-9968e5f5721a",
"name": "Generate cloned audio",
"type": "n8n-nodes-base.httpRequest",
"position": [
1088,
864
],
"parameters": {
"url": "https://api.elevenlabs.io/v1/speech-to-speech/XXX",
"method": "POST",
"options": {},
"sendBody": true,
"sendQuery": true,
"contentType": "multipart-form-data",
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "audio",
"parameterType": "formBinaryData",
"inputDataFieldName": "data"
}
]
},
"genericAuthType": "httpHeaderAuth",
"queryParameters": {
"parameters": [
{
"name": "output_format",
"value": "mp3_44100_128"
}
]
}
},
"credentials": {
"httpHeaderAuth": {
"name": "<your credential>"
}
},
"typeVersion": 4.3
},
{
"id": "15c633e4-9ccd-42da-aa2b-f44050aed786",
"name": "Upload file",
"type": "n8n-nodes-base.googleDrive",
"position": [
1328,
864
],
"parameters": {
"name": "=cloned_{{ $json.result.file_path.match(/[^/]+$/)[0] }}",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "list",
"value": "1J7_S0zPgUukmKWJglMepvf429vfQsidL",
"cachedResultUrl": "https://drive.google.com/drive/folders/1J7_S0zPgUukmKWJglMepvf429vfQsidL",
"cachedResultName": "Elevenlabs"
}
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 3
},
{
"id": "ffc1771a-47b5-44d4-a4b7-607dd9eb0e42",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
848,
320
],
"parameters": {
"color": 7,
"width": 704,
"height": 352,
"content": "## OPTION 1 - CLONE YOUR VOICE\nClone and save your voice on ElevenLabs by sending a voice message from Telegram. Get your unique Voice ID.\n\nGo to Developers, create your [ElevenLabs API Key](https://try.elevenlabs.io/ahkbf00hocnu). Set Header Auth (Name: xi-api-key, Value: YOUR_API_KEY)"
},
"typeVersion": 1
},
{
"id": "56f552ab-0c68-4f03-9155-f70aaf5c1833",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
848,
704
],
"parameters": {
"color": 7,
"width": 704,
"height": 352,
"content": "## OPTION 2 - VOICE CHANGER\nChange your voice to one from your ElevenLabs library and save the audio file to Google Drive. If you want this, connect GEt audio node to this node \n\nGo to Developers, create your [ElevenLabs API Key](https://try.elevenlabs.io/ahkbf00hocnu). Set Header Auth (Name: xi-api-key, Value: YOUR_API_KEY)"
},
"typeVersion": 1
},
{
"id": "381944a4-240b-432f-ac0f-d8992c3d02b5",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
224,
544
],
"parameters": {
"color": 7,
"width": 576,
"height": 272,
"content": "## STEP 2 - Get audio file\nIF you send and audio file from Telegram, get it"
},
"typeVersion": 1
},
{
"id": "f8950472-e05a-4b8d-b371-5a95bc8bc04c",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-144,
32
],
"parameters": {
"width": 944,
"height": 480,
"content": "## Clone and change your voice with Elevenlabs and Telegram\n\n\nThis workflow creates a voice AI assistant accessible via Telegram that leverages [ElevenLabs](https://try.elevenlabs.io/ahkbf00hocnu) powerful voice synthesis technology. Users can either **clone their own voice** or **transform their voice** using pre-existing voice models, all through simple voice messages sent to a Telegram bot.\n\n### **How it works:**\n\nThe workflow is triggered by incoming Telegram messages and filters them by type. Authorized users can send voice messages that are routed to an audio-processing branch. Depending on the selected option, the audio is either sent to ElevenLabs to **clone the voice** and generate a new voice ID or used for **voice transformation** with an existing cloned voice. The converted or cloned audio is then stored in Google Drive, and the cloned voice ID is returned for later reuse.\n\n### **Setup steps:**\n\nCreate and configure a Telegram bot using BotFather, then link it to the Telegram Trigger node. Restrict access by adding your Telegram user ID in the authorization Code node. Obtain your ElevenLabs API key and set it in the HTTP Request nodes for both cloning and speech-to-speech conversion. If using Google Drive for output storage, connect OAuth2 credentials and define the upload folder. Set or replace the appropriate voice ID in node parameters, then test the workflow by sending a voice message from your authorized Telegram account.\n"
},
"typeVersion": 1
},
{
"id": "94a254db-83d3-453d-af40-927547ea3388",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
848,
-448
],
"parameters": {
"width": 704,
"height": 736,
"content": "## MY NEW YOUTUBE CHANNEL\n\n\ud83d\udc49 [Subscribe to my new **YouTube channel**](https://youtube.com/@n3witalia). Here I\u2019ll share videos and Shorts with practical tutorials and **FREE templates for n8n**.\n\n[](https://youtube.com/@n3witalia)"
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"availableInMCP": false,
"executionOrder": "v1"
},
"versionId": "9fc1a7a2-e87e-415b-8fcc-44509c19362d",
"connections": {
"Switch": {
"main": [
[],
[
{
"node": "Get audio",
"type": "main",
"index": 0
}
]
]
},
"Sanitaze": {
"main": [
[
{
"node": "Switch",
"type": "main",
"index": 0
}
]
]
},
"Get audio": {
"main": [
[
{
"node": "Create Cloned Voice",
"type": "main",
"index": 0
}
]
]
},
"Telegram Trigger": {
"main": [
[
{
"node": "Sanitaze",
"type": "main",
"index": 0
}
]
]
},
"Generate cloned audio": {
"main": [
[
{
"node": "Upload file",
"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.
googleDriveOAuth2ApihttpHeaderAuthtelegramApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow creates a voice AI assistant accessible via Telegram that leverages ElevenLabs powerful voice synthesis technology. Users can either clone their own voice or transform their voice* using pre-existing voice models, all through simple voice messages sent to a…
Source: https://n8n.io/workflows/11606/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This n8n workflow receives files sent in a Telegram chat, uploads them to Google Drive, extracts text using OCR (for images and PDFs), and stores the extracted content in Airtable for quick search and
🤖 Telegram Image Editor with Nano Banana
Video Watermark Remover. Uses telegramTrigger, stickyNote, httpRequest, telegram. Event-driven trigger; 14 nodes.
TextMain. Uses telegramTrigger, stopAndError, telegram, httpRequest. Event-driven trigger; 56 nodes.
Pede Ai. Uses httpRequest, telegram, postgres, telegramTrigger. Event-driven trigger; 53 nodes.