Workflow: Telegram Stickynote Automation

Workflow Details

Download Workflow
{
    "id": "F7CfIF10XjXhqbGb",
    "meta": {
        "instanceId": "ba8f1362d8ed4c2ce84171d2f481098de4ee775241bdc1660d1dce80434ec7d4",
        "templateCredsSetupCompleted": true
    },
    "name": "Play with Spotify from Telegram",
    "tags": [],
    "nodes": [
        {
            "id": "0395b3e4-94ef-49ea-9b4c-8f908e62f8c6",
            "name": "Telegram Trigger",
            "type": "n8n-nodes-base.telegramTrigger",
            "position": [
                -60,
                20
            ],
            "webhookId": "e7aa284b-5eef-4ac1-94bf-8e4d307a3b14",
            "parameters": {
                "updates": [
                    "message"
                ],
                "additionalFields": []
            },
            "credentials": {
                "telegramApi": {
                    "id": "gblW5oACGEPuccja",
                    "name": "Telegram account"
                }
            },
            "typeVersion": 1.100000000000000088817841970012523233890533447265625
        },
        {
            "id": "263edf45-58a0-45e8-91f8-601bc62c7d6f",
            "name": "OpenAI - Ask about a track",
            "type": "@n8n\/n8n-nodes-langchain.openAi",
            "position": [
                120,
                -120
            ],
            "parameters": {
                "modelId": {
                    "__rl": true,
                    "mode": "list",
                    "value": "gpt-4o-mini",
                    "cachedResultName": "GPT-4O-MINI"
                },
                "options": [],
                "messages": {
                    "values": [
                        {
                            "content": "=get artist and song name from '{{ $json.message.text }}'. Reply only eg. 'track:song name artist:artist name'"
                        }
                    ]
                }
            },
            "credentials": {
                "openAiApi": {
                    "id": "vDcge3EgslxfX3EC",
                    "name": "OpenAi account"
                }
            },
            "typeVersion": 1.600000000000000088817841970012523233890533447265625
        },
        {
            "id": "086aef8b-533a-4c33-9952-29d5adb152c8",
            "name": "Search track",
            "type": "n8n-nodes-base.spotify",
            "onError": "continueErrorOutput",
            "position": [
                540,
                -200
            ],
            "parameters": {
                "limit": 1,
                "query": "={{ $json.message.content }}",
                "filters": [],
                "resource": "track",
                "operation": "search"
            },
            "credentials": {
                "spotifyOAuth2Api": {
                    "id": "wylKghFNQa8IKy1U",
                    "name": "Spotify account"
                }
            },
            "typeVersion": 1,
            "alwaysOutputData": true
        },
        {
            "id": "08af6055-ba52-4cb2-a561-ea04ac55279f",
            "name": "Add song",
            "type": "n8n-nodes-base.spotify",
            "onError": "continueErrorOutput",
            "position": [
                780,
                -240
            ],
            "parameters": {
                "id": "=spotify:track:{{ $json.id }}"
            },
            "credentials": {
                "spotifyOAuth2Api": {
                    "id": "wylKghFNQa8IKy1U",
                    "name": "Spotify account"
                }
            },
            "typeVersion": 1
        },
        {
            "id": "2dbdafa4-3b6f-4a14-813c-4e10da10abad",
            "name": "Next Song",
            "type": "n8n-nodes-base.spotify",
            "onError": "continueErrorOutput",
            "position": [
                980,
                -280
            ],
            "parameters": {
                "operation": "nextSong"
            },
            "credentials": {
                "spotifyOAuth2Api": {
                    "id": "wylKghFNQa8IKy1U",
                    "name": "Spotify account"
                }
            },
            "typeVersion": 1
        },
        {
            "id": "cb8d42aa-0c7e-45a5-90b5-b91e483dd13a",
            "name": "Resume play",
            "type": "n8n-nodes-base.spotify",
            "notes": "We don't have to stop here on error. An error is thrown from Spotify if the player is already playing.",
            "onError": "continueRegularOutput",
            "position": [
                1240,
                -380
            ],
            "parameters": {
                "operation": "resume"
            },
            "credentials": {
                "spotifyOAuth2Api": {
                    "id": "wylKghFNQa8IKy1U",
                    "name": "Spotify account"
                }
            },
            "typeVersion": 1
        },
        {
            "id": "089e1070-b013-454c-9f6c-55b909e06c1d",
            "name": "Currently Playing",
            "type": "n8n-nodes-base.spotify",
            "onError": "continueErrorOutput",
            "position": [
                1420,
                -300
            ],
            "parameters": {
                "operation": "currentlyPlaying"
            },
            "credentials": {
                "spotifyOAuth2Api": {
                    "id": "wylKghFNQa8IKy1U",
                    "name": "Spotify account"
                }
            },
            "typeVersion": 1
        },
        {
            "id": "e9df0dcf-b166-45a3-910b-787b3718bbcf",
            "name": "Sticky Note",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                120,
                -300
            ],
            "parameters": {
                "color": 5,
                "width": 254.058139534883821397670544683933258056640625,
                "content": "## Telegram to Spotify \nAsk AI about a track with artist and song name or if you can't remember describe it and AI does it's thing.\n"
            },
            "typeVersion": 1
        },
        {
            "id": "77bae9be-2d92-4028-ae78-7887b6a2d394",
            "name": "Merge",
            "type": "n8n-nodes-base.merge",
            "position": [
                440,
                220
            ],
            "parameters": {
                "mode": "combine",
                "options": [],
                "combineBy": "combineAll"
            },
            "typeVersion": 3
        },
        {
            "id": "0d95000d-7efd-402a-9a34-47ababb2f53e",
            "name": "If",
            "type": "n8n-nodes-base.if",
            "position": [
                620,
                -440
            ],
            "parameters": {
                "options": [],
                "conditions": {
                    "options": {
                        "version": 2,
                        "leftValue": "",
                        "caseSensitive": true,
                        "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                        {
                            "id": "02af5387-07d2-4a16-bd83-e1359d091165",
                            "operator": {
                                "type": "string",
                                "operation": "notEmpty",
                                "singleValue": true
                            },
                            "leftValue": "={{ $json?.id }}",
                            "rightValue": ""
                        }
                    ]
                }
            },
            "typeVersion": 2.20000000000000017763568394002504646778106689453125
        },
        {
            "id": "363f89ad-34d0-4445-8ff3-693d991dad09",
            "name": "Message parser",
            "type": "n8n-nodes-base.set",
            "position": [
                1280,
                -40
            ],
            "parameters": {
                "options": [],
                "assignments": {
                    "assignments": [
                        {
                            "id": "93cd2545-c6e9-4717-96b7-d49eb056ac70",
                            "name": "message",
                            "type": "string",
                            "value": "={{ $json.error }}"
                        }
                    ]
                }
            },
            "typeVersion": 3.399999999999999911182158029987476766109466552734375
        },
        {
            "id": "8b80f80d-8c8e-44de-9838-6d05199bb734",
            "name": "Not found error message",
            "type": "n8n-nodes-base.set",
            "position": [
                880,
                -460
            ],
            "parameters": {
                "mode": "raw",
                "options": [],
                "jsonOutput": "{\n  \"error\": \"Song not found\"\n}\n"
            },
            "typeVersion": 3.399999999999999911182158029987476766109466552734375
        },
        {
            "id": "f1785140-8e97-43e1-9d84-aedc8b8d5e06",
            "name": "Return message to Telegram",
            "type": "n8n-nodes-base.telegram",
            "position": [
                760,
                220
            ],
            "parameters": {
                "text": "={{ $('Message parser').item.json.message }}",
                "chatId": "={{ $json.message.chat.id }}",
                "additionalFields": []
            },
            "credentials": {
                "telegramApi": {
                    "id": "gblW5oACGEPuccja",
                    "name": "Telegram account"
                }
            },
            "typeVersion": 1.1999999999999999555910790149937383830547332763671875
        },
        {
            "id": "e3e16535-094b-41bf-88c6-166bb6805d53",
            "name": "Define Now Playing",
            "type": "n8n-nodes-base.set",
            "notes": "We use the object \"error\" as a returned bject so we can re-use the Message Parser node.",
            "position": [
                1660,
                -240
            ],
            "parameters": {
                "mode": "raw",
                "options": [],
                "jsonOutput": "={\n  \"error\": \"Now playing {{ $json.item.name }} - {{ $json.item.artists[0].name }} - {{ $json.item.album.name }}\"\n}\n"
            },
            "typeVersion": 3.399999999999999911182158029987476766109466552734375
        }
    ],
    "active": true,
    "pinData": [],
    "settings": {
        "executionOrder": "v1"
    },
    "versionId": "6f219c9e-f17a-45b1-ab8d-09d991fd8e34",
    "connections": {
        "If": {
            "main": [
                [
                    {
                        "node": "Add song",
                        "type": "main",
                        "index": 0
                    }
                ],
                [
                    {
                        "node": "Not found error message",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Merge": {
            "main": [
                [
                    {
                        "node": "Return message to Telegram",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Add song": {
            "main": [
                [
                    {
                        "node": "Next Song",
                        "type": "main",
                        "index": 0
                    }
                ],
                [
                    {
                        "node": "Message parser",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Next Song": {
            "main": [
                [
                    {
                        "node": "Resume play",
                        "type": "main",
                        "index": 0
                    }
                ],
                [
                    {
                        "node": "Message parser",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Resume play": {
            "main": [
                [
                    {
                        "node": "Currently Playing",
                        "type": "main",
                        "index": 0
                    }
                ],
                []
            ]
        },
        "Search track": {
            "main": [
                [
                    {
                        "node": "If",
                        "type": "main",
                        "index": 0
                    }
                ],
                [
                    {
                        "node": "Message parser",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Message parser": {
            "main": [
                [
                    {
                        "node": "Merge",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Telegram Trigger": {
            "main": [
                [
                    {
                        "node": "OpenAI - Ask about a track",
                        "type": "main",
                        "index": 0
                    },
                    {
                        "node": "Merge",
                        "type": "main",
                        "index": 1
                    }
                ]
            ]
        },
        "Currently Playing": {
            "main": [
                [
                    {
                        "node": "Define Now Playing",
                        "type": "main",
                        "index": 0
                    }
                ],
                [
                    {
                        "node": "Message parser",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Define Now Playing": {
            "main": [
                [
                    {
                        "node": "Message parser",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Not found error message": {
            "main": [
                [
                    {
                        "node": "Message parser",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "OpenAI - Ask about a track": {
            "main": [
                [
                    {
                        "node": "Search track",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        }
    }
}
Back to Workflows

Related Workflows

Gitlab Code Create Triggered
View
Executeworkflow Telegram Update Triggered
View
MCP Client with Brave and Telegram
View
Automation
View
✨📊Multi-AI Agent Chatbot for Postgres/Supabase DB and QuickCharts + Tool Router
View
Wait Code Export Webhook
View
Code Schedule Create Scheduled
View
Integrating AI with Open-Meteo API for Enhanced Weather Forecasting
View
Manual Filter Update Webhook
View
Notion to Linkedin
View