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 →
{
"nodes": [
{
"id": "trigger-606e2824",
"name": "Manual Trigger",
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [
100,
100
],
"parameters": {}
},
{
"name": "Set",
"type": "n8n-nodes-base.set",
"position": [
500,
510
],
"parameters": {
"values": {
"string": [
{
"name": "id",
"value": "={{$(\"GetVideosYT\").item.json[\"id\"][\"videoId\"]}}"
},
{
"name": "url",
"value": "={{ $env.WEBHOOK_URL }}{{$(\"GetVideosYT\").item.json[\"id\"][\"videoId\"]}}"
},
{
"name": "title",
"value": "={{$(\"GetVideosYT\").item.json[\"snippet\"][\"title\"]}}"
}
],
"boolean": []
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 1,
"id": "a86b8e00-8314-4a4f-8fd2-f88d0b230e86",
"notes": "This set node performs automated tasks as part of the workflow."
},
{
"name": "Function",
"type": "n8n-nodes-base.code",
"position": [
640,
510
],
"parameters": {
"jsCode": "const new_items = [];\nconst data = this.getWorkflowStaticData('node');\n\ndata.ids = data.ids || [];\n\nfor (var i=0; i<items.length; i++) {\n if (data.ids.includes(items[i].json.id)) {\n break;\n } else {\n new_items.push({json: {id: items[i].json.id, url: items[i].json.url, title: items[i].json.title}});\n }\n}\n\ndata.ids = items.map(item => item.json.id)\nreturn new_items;\n"
},
"typeVersion": 2,
"id": "ff3e26e3-859a-41b1-9ab6-a788848f338b",
"notes": "This function node performs automated tasks as part of the workflow."
},
{
"name": "CheckTime",
"type": "n8n-nodes-base.interval",
"position": [
210,
510
],
"parameters": {
"unit": "minutes",
"interval": 30
},
"typeVersion": 1,
"id": "6f4da66f-49c9-4fa0-98cb-740b3e684930",
"notes": "This interval node performs automated tasks as part of the workflow."
},
{
"name": "GetVideosYT",
"type": "n8n-nodes-base.youTube",
"position": [
370,
510
],
"parameters": {
"limit": 4,
"filters": {
"channelId": "UCTe5YtigJdZZ3i-za6IkbGQ"
},
"options": {
"order": "date"
},
"resource": "video"
},
"credentials": {
"youTubeOAuth2Api": "<your credential>"
},
"typeVersion": 1,
"id": "77d0a7ed-46c4-4a19-9e16-a89f9581f9b9",
"notes": "This youTube node performs automated tasks as part of the workflow."
},
{
"name": "SendVideo",
"type": "n8n-nodes-base.telegram",
"position": [
790,
510
],
"parameters": {
"text": "=Nuovo video di almi su YouTube!\n<b>{{$(\"Function\").item.json[\"title\"]}}</b>\n\n{{$(\"Function\").item.json[\"url\"]}}",
"chatId": "-1001178002763",
"additionalFields": {
"parse_mode": "HTML"
}
},
"credentials": {
"telegramApi": "<your credential>"
},
"typeVersion": 1,
"id": "e9d4a7fc-065d-4de7-bd7b-bd62511da338",
"notes": "This telegram node performs automated tasks as part of the workflow."
},
{
"id": "error-e989a9b7",
"name": "Error Handler",
"type": "n8n-nodes-base.stopAndError",
"typeVersion": 1,
"position": [
1000,
400
],
"parameters": {
"message": "Workflow execution error",
"options": {}
}
}
],
"connections": {},
"name": "Set Workflow",
"description": "Automated workflow: Set Workflow. This workflow processes data and performs automated tasks.",
"settings": {
"executionOrder": "v1",
"saveManualExecutions": true,
"callerPolicy": "workflowsFromSameOwner",
"errorWorkflow": null,
"timezone": "UTC",
"executionTimeout": 3600,
"maxExecutions": 1000,
"retryOnFail": true,
"retryCount": 3,
"retryDelay": 1000
},
"meta": {
"versionId": "1.0.0",
"createdAt": "2025-09-29T07:08:01.702649",
"updatedAt": "2025-09-29T07:08:01.702675",
"owner": "n8n-user",
"license": "MIT",
"category": "automation",
"status": "active",
"priority": "high",
"environment": "production"
},
"notes": "Excellent quality workflow: Set Workflow. This workflow has been optimized for production use with comprehensive error handling, security, and documentation.",
"id": "wf40781c5172d8"
}
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.
telegramApiyouTubeOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Set Workflow. Uses youTube, telegram, stopAndError. Event-driven trigger; 7 nodes.
Source: https://github.com/basictechorg/n8n-marketing-sales/blob/main/workflows/content-marketing/0197_Youtube_Telegram_Send_Scheduled.json — 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.
Telegram Lead Intake Automation. Uses telegramTrigger, telegram, googleSheets, stopAndError. Event-driven trigger; 29 nodes.
YouTube to Raindrop. Uses youTube, raindrop, stopAndError. Event-driven trigger; 7 nodes.
Twitter Workflow. Uses twitter, telegram, shopifyTrigger, stopAndError. Event-driven trigger; 4 nodes.
Product Marketing Pack Generator (UAE). Uses formTrigger, httpRequest, googleDrive, gmail. Event-driven trigger; 24 nodes.
[n8n] YouTube Channel Advanced RSS Feeds Generator. Uses formTrigger, httpRequest, stopAndError. Event-driven trigger; 21 nodes.