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 →
{
"name": "SKYLAH RENE \u2014 Master Pipeline",
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "skylah-master",
"responseMode": "responseNode",
"options": {}
},
"id": "sm-webhook",
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"typeVersion": 2,
"position": [
0,
400
]
},
{
"parameters": {
"jsCode": "const body = $input.first().json.body;\nconst step = body.step || 'voice';\n\nif (step === 'voice') {\n if (!body.script) throw new Error('Missing required field: script');\n return {\n json: {\n step: 'voice',\n script: body.script,\n episode: body.episode || 'EPXXX',\n title: body.title || 'Skylah Rene Storytime',\n description: body.description || '',\n tags: body.tags || ['SkylahRene', 'Storytime', 'RedFlagDiaries'],\n stability: body.stability || 0.32,\n similarity: body.similarity || 0.75,\n style: body.style || 0.45\n }\n };\n} else if (step === 'distribute') {\n const required = ['title', 'description', 'video_url'];\n const missing = required.filter(f => !body[f]);\n if (missing.length > 0) throw new Error('Missing: ' + missing.join(', '));\n return {\n json: {\n step: 'distribute',\n title: body.title,\n description: body.description,\n video_url: body.video_url,\n youtube_url: body.youtube_url || '',\n tags: body.tags || '',\n hashtags: body.hashtags || '',\n thumbnail_url: body.thumbnail_url || '',\n category_id: body.category_id || '22'\n }\n };\n} else {\n throw new Error('Invalid step: ' + step + '. Use voice or distribute.');\n}"
},
"id": "sm-validate",
"name": "Validate Input",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
240,
400
]
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 1
},
"conditions": [
{
"id": "is-voice",
"leftValue": "={{ $json.step }}",
"rightValue": "voice",
"operator": {
"type": "string",
"operation": "equals"
}
}
],
"combinator": "and"
},
"options": {}
},
"id": "sm-route",
"name": "Route",
"type": "n8n-nodes-base.if",
"typeVersion": 2,
"position": [
480,
400
]
},
{
"parameters": {
"method": "POST",
"url": "https://api.elevenlabs.io/v1/text-to-speech/pJeFeSApNBSGLSDxou7l",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "xi-api-key",
"value": "e0b091810b9f1189ef26650b1676a465a6851c18e7951ea920892a9a48ea7061"
},
{
"name": "Accept",
"value": "audio/mpeg"
}
]
},
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n \"text\": {{ JSON.stringify($json.script) }},\n \"model_id\": \"eleven_v3\",\n \"voice_settings\": {\n \"stability\": {{ $json.stability }},\n \"similarity_boost\": {{ $json.similarity }},\n \"style\": {{ $json.style }},\n \"use_speaker_boost\": true\n }\n}",
"options": {
"response": {
"response": {
"responseFormat": "file"
}
},
"timeout": 300000
}
},
"id": "sm-elevenlabs",
"name": "ElevenLabs v3",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
720,
200
]
},
{
"parameters": {
"jsCode": "const input = $('Validate Input').first().json;\nconst binaryData = $input.first().binary;\nconst binaryKey = Object.keys(binaryData)[0];\nconst fileSize = binaryData[binaryKey]?.fileSize || 'unknown';\nconst filename = input.episode + '_voice.mp3';\nconst newBinary = {};\nnewBinary[filename] = binaryData[binaryKey];\nnewBinary[filename].fileName = filename;\nreturn {\n json: {\n episode: input.episode,\n title: input.title,\n filename: filename,\n fileSize: fileSize,\n status: 'voice_generated',\n timestamp: new Date().toISOString()\n },\n binary: newBinary\n};"
},
"id": "sm-process-voice",
"name": "Process Voice",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
960,
200
]
},
{
"parameters": {
"respondWith": "json",
"responseBody": "={\n \"success\": true,\n \"step\": \"voice_generated\",\n \"episode\": \"{{ $json.episode }}\",\n \"filename\": \"{{ $json.filename }}\",\n \"fileSize\": \"{{ $json.fileSize }}\",\n \"timestamp\": \"{{ $json.timestamp }}\"\n}",
"options": {}
},
"id": "sm-voice-done",
"name": "Voice Done",
"type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1.1,
"position": [
1200,
200
]
},
{
"parameters": {
"method": "POST",
"url": "https://api.telegram.org/bot8785881963:AAEYDtzkmkfUZAopluF0vpq0TrnVOo8OaB4/sendPhoto",
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "chat_id",
"value": "@skylahrene"
},
{
"name": "photo",
"value": "={{ $json.thumbnail_url }}"
},
{
"name": "caption",
"value": "={{ $json.title + '\\n\\nWatch: ' + ($json.youtube_url || $json.video_url) }}"
}
]
},
"options": {}
},
"id": "sm-tg-channel",
"name": "TG Channel",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
720,
500
]
},
{
"parameters": {
"method": "POST",
"url": "https://api.telegram.org/bot8785881963:AAEYDtzkmkfUZAopluF0vpq0TrnVOo8OaB4/sendPhoto",
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "chat_id",
"value": "@reneskylah"
},
{
"name": "photo",
"value": "={{ $json.thumbnail_url }}"
},
{
"name": "caption",
"value": "={{ $json.title + '\\n\\nWatch: ' + ($json.youtube_url || $json.video_url) }}"
}
]
},
"options": {}
},
"id": "sm-tg-group",
"name": "TG Group",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
720,
700
]
},
{
"parameters": {
"method": "POST",
"url": "https://discord.com/api/webhooks/1477125069040914512/RNEQPlaCymAivc-YH5XQ527AA_6f8ZyKl7oEKEXSY_cJHdTe16G2IdSGJzOybY_v-I4W",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={{ JSON.stringify({content: '\ud83c\udfac **' + $json.title + '**\\n\\n' + $json.description.substring(0, 200) + '\\n\\n\u25b6\ufe0f Watch: ' + ($json.youtube_url || $json.video_url)}) }}",
"options": {}
},
"id": "sm-discord",
"name": "Discord",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
720,
900
]
},
{
"parameters": {
"method": "POST",
"url": "https://api.dailymotion.com/oauth/token",
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "grant_type",
"value": "refresh_token"
},
{
"name": "client_id",
"value": "e7a843fca578af02e879"
},
{
"name": "client_secret",
"value": "d7ccc16bfad57cb71e17e0c3f5869acd01385fc7"
},
{
"name": "refresh_token",
"value": "f79b8de3eb06a88c556379c51861f48bdbfe9af2"
}
]
},
"options": {}
},
"id": "sm-dm-oauth",
"name": "DM OAuth",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
720,
1100
]
},
{
"parameters": {
"jsCode": "const validate = $('Validate Input').first().json;\nconst oauth = $input.first().json;\nreturn {\n json: {\n ...validate,\n dm_access_token: oauth.access_token\n }\n};"
},
"id": "sm-dm-merge",
"name": "DM Merge Token",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
960,
1100
]
},
{
"parameters": {
"method": "POST",
"url": "https://api.dailymotion.com/me/videos",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "=Bearer {{ $json.dm_access_token }}"
}
]
},
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "url",
"value": "={{ $json.video_url }}"
},
{
"name": "title",
"value": "={{ $json.title }}"
},
{
"name": "description",
"value": "={{ $json.description }}"
},
{
"name": "channel",
"value": "news"
},
{
"name": "published",
"value": "true"
}
]
},
"options": {}
},
"id": "sm-dm-upload",
"name": "Dailymotion",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
1200,
1100
]
},
{
"parameters": {
"respondWith": "json",
"responseBody": "={\n \"success\": true,\n \"step\": \"distributed\",\n \"title\": \"{{ $('Validate Input').first().json.title }}\",\n \"platforms\": [\"Telegram Channel\", \"Telegram Group\", \"Discord\", \"Dailymotion\"],\n \"timestamp\": \"{{ new Date().toISOString() }}\"\n}",
"options": {}
},
"id": "sm-dist-done",
"name": "Distribute Done",
"type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1.1,
"position": [
1440,
700
]
}
],
"connections": {
"Webhook": {
"main": [
[
{
"node": "Validate Input",
"type": "main",
"index": 0
}
]
]
},
"Validate Input": {
"main": [
[
{
"node": "Route",
"type": "main",
"index": 0
}
]
]
},
"Route": {
"main": [
[
{
"node": "ElevenLabs v3",
"type": "main",
"index": 0
}
],
[
{
"node": "TG Channel",
"type": "main",
"index": 0
},
{
"node": "TG Group",
"type": "main",
"index": 0
},
{
"node": "Discord",
"type": "main",
"index": 0
},
{
"node": "DM OAuth",
"type": "main",
"index": 0
}
]
]
},
"ElevenLabs v3": {
"main": [
[
{
"node": "Process Voice",
"type": "main",
"index": 0
}
]
]
},
"Process Voice": {
"main": [
[
{
"node": "Voice Done",
"type": "main",
"index": 0
}
]
]
},
"TG Channel": {
"main": [
[
{
"node": "Distribute Done",
"type": "main",
"index": 0
}
]
]
},
"TG Group": {
"main": [
[
{
"node": "Distribute Done",
"type": "main",
"index": 0
}
]
]
},
"Discord": {
"main": [
[
{
"node": "Distribute Done",
"type": "main",
"index": 0
}
]
]
},
"DM OAuth": {
"main": [
[
{
"node": "DM Merge Token",
"type": "main",
"index": 0
}
]
]
},
"DM Merge Token": {
"main": [
[
{
"node": "Dailymotion",
"type": "main",
"index": 0
}
]
]
},
"Dailymotion": {
"main": [
[
{
"node": "Distribute Done",
"type": "main",
"index": 0
}
]
]
}
},
"settings": {
"executionOrder": "v1",
"availableInMCP": true,
"callerPolicy": "workflowsFromSameOwner"
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
SKYLAH RENE — Master Pipeline. Uses httpRequest. Webhook trigger; 13 nodes.
Source: https://gist.github.com/TITIZSTUDIO/ffd4885d5b3f4f40c7a14aa3d8b6c5e9 — 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 template provides enterprise-level version control for your workflows using GitHub integration. Stop losing hours to broken workflows and manual exports – get proper commit history, visual di
This flow creates dummy files for every item added in your *Arrs (Radarr/Sonarr) with the tag .
eek-Go v2 (Batch-Then-Review). Uses httpRequest. Webhook trigger; 75 nodes.
This workflow receives webhook requests from a content calendar and uses the X API v2 to publish text posts, threads, image/video posts, and polls, as well as delete existing posts and run a credentia
This workflow acts as a central API gateway for all technical indicator agents in the Binance Spot Market Quant AI system. It listens for incoming webhook requests and dynamically routes them to the c