Workflow: Code Todoist Automate

Workflow Details

Download Workflow
{
    "id": "Glb4VNoQI44GT0p9",
    "meta": {
        "instanceId": "a1f3364de0f3da48758a2641efb07c3b0d216a3a7cc93596fbed2316d6dea4ad",
        "templateCredsSetupCompleted": true
    },
    "name": "My workflow 4",
    "tags": [],
    "nodes": [
        {
            "id": "909a08a4-4cec-4987-9379-d4cdc2d92a53",
            "name": "RSS Feed: Times of India",
            "type": "n8n-nodes-base.rssFeedRead",
            "position": [
                680,
                240
            ],
            "parameters": {
                "url": "https:\/\/timesofindia.indiatimes.com\/rssfeeds\/-2128936835.cms",
                "options": []
            },
            "typeVersion": 1.100000000000000088817841970012523233890533447265625
        },
        {
            "id": "471cc8ab-0074-4e25-b952-1899574398a9",
            "name": "Gmail: Fetch Emails",
            "type": "n8n-nodes-base.gmail",
            "position": [
                700,
                440
            ],
            "webhookId": "85735980-07e5-418b-b029-44bb9825ac9b",
            "parameters": {
                "filters": [],
                "operation": "getAll"
            },
            "credentials": {
                "gmailOAuth2": {
                    "id": "WbGCG42FAaeECe0u",
                    "name": "Gmail account"
                }
            },
            "typeVersion": 2.100000000000000088817841970012523233890533447265625
        },
        {
            "id": "07a33739-0181-4ead-87bd-c1f0c3fc4999",
            "name": "TodoList: Fetch Tasks",
            "type": "n8n-nodes-base.todoist",
            "position": [
                700,
                620
            ],
            "parameters": {
                "limit": 5,
                "filters": [],
                "operation": "getAll"
            },
            "credentials": {
                "todoistApi": {
                    "id": "q3NiAT93rPChns6G",
                    "name": "Todoist account"
                }
            },
            "typeVersion": 2.100000000000000088817841970012523233890533447265625
        },
        {
            "id": "af295aad-f7e7-4d38-80e5-b79b79637b5f",
            "name": "Format Digest: Merge & Style Data",
            "type": "n8n-nodes-base.code",
            "position": [
                1280,
                440
            ],
            "parameters": {
                "jsCode": "const newsItems = $input.all().map(item => item.json);\nconst emails = $(\"Gmail: Fetch Emails\").all().map(item => item.json);\nconst tasks = $(\"TodoList: Fetch Tasks\").all().map(item => item.json);\n\n\/\/ Select top 5 items from each\nconst topNews = newsItems.slice(0, 5).map(item => ({\n  title: item.title,\n  link: item.link\n}));\n\nconst latestEmails = emails.slice(0, 5).map(item => ({\n  subject: item.Subject,\n  snippet: item.snippet\n}));\n\nconst topTasks = tasks.slice(0, 5).map(task => ({\n  content: task.content,\n  url: task.url,\n  emoji: task.emoji || '\ud83d\udd34',\n  due: task.due\n}));\n\n\/\/ Create the final JSON object with email subject and a formatted email body with inline CSS\nconst result = {\n  meta: {\n    generated_at: new Date().toISOString(),\n    time_emoji: \"\ud83c\udf1e\"\n  },\n  email: {\n    subject: `\ud83c\udf1e Daily Digest \u2022 \ud83d\udccb ${topTasks.length} Tasks \u26a0\ufe0f \u2022 \ud83d\udcf0 ${topNews.length} News Updates`,\n    body: `\n      <div style=\"max-width:600px; margin:0 auto; font-family:'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; color:#333; background:#f4f7f9; padding:20px; border:1px solid #e1e8ed; border-radius:8px;\">\n         <div style=\"text-align:center; padding-bottom:20px;\">\n             <h1 style=\"margin:0; font-size:28px; color:#0073e6;\">Daily Digest<\/h1>\n             <p style=\"margin:10px 0 0; font-size:16px; color:#666;\">Your automated daily summary<\/p>\n         <\/div>\n         <hr style=\"border:none; border-top:1px solid #ddd; margin:20px 0;\">\n         <div style=\"margin-bottom:20px;\">\n             <h2 style=\"font-size:20px; color:#0073e6; margin-bottom:10px;\">Tasks (${topTasks.length})<\/h2>\n             <ul style=\"list-style:none; padding:0;\">\n               ${topTasks.map(task => `\n                 <li style=\"margin-bottom:10px; padding:10px; background:#fff; border:1px solid #e1e8ed; border-radius:4px;\">\n                   <span style=\"font-size:18px; margin-right:10px;\">${task.emoji}<\/span> \n                   <span style=\"font-size:16px;\">${task.content}<\/span> \n                   <span style=\"color:#999; font-size:14px; margin-left:5px;\">(Due: ${task.due})<\/span>\n                   <a href=\"${task.url}\" style=\"text-decoration:none; color:#0073e6; float:right;\">View Task<\/a>\n                 <\/li>\n               `).join('')}\n             <\/ul>\n         <\/div>\n         <div style=\"margin-bottom:20px;\">\n             <h2 style=\"font-size:20px; color:#0073e6; margin-bottom:10px;\">News (${topNews.length})<\/h2>\n             <ul style=\"list-style:none; padding:0;\">\n               ${topNews.map(news => `\n                 <li style=\"margin-bottom:10px; padding:10px; background:#fff; border:1px solid #e1e8ed; border-radius:4px;\">\n                   <a href=\"${news.link}\" style=\"text-decoration:none; font-size:16px; color:#0073e6;\">${news.title}<\/a>\n                 <\/li>\n               `).join('')}\n             <\/ul>\n         <\/div>\n         <div style=\"margin-bottom:20px;\">\n             <h2 style=\"font-size:20px; color:#0073e6; margin-bottom:10px;\">Emails (${latestEmails.length})<\/h2>\n             <ul style=\"list-style:none; padding:0;\">\n               ${latestEmails.map(email => `\n                 <li style=\"margin-bottom:10px; padding:10px; background:#fff; border:1px solid #e1e8ed; border-radius:4px;\">\n                   <strong style=\"font-size:16px; color:#0073e6;\">${email.subject}<\/strong>\n                   <p style=\"margin:5px 0 0; font-size:14px; color:#666;\">${email.snippet}<\/p>\n                 <\/li>\n               `).join('')}\n             <\/ul>\n         <\/div>\n         <div style=\"text-align:center; font-size:12px; color:#aaa; margin-top:20px;\">\n             <p>Digest generated at: ${new Date().toLocaleString()}<\/p>\n         <\/div>\n      <\/div>\n    `\n  },\n  tasks: topTasks,\n  news: topNews,\n  emails: latestEmails\n};\n\nreturn [{ json: result }];\n"
            },
            "typeVersion": 2
        },
        {
            "id": "5399bee1-d0e7-4ed7-af7f-d0ddccb00b4d",
            "name": "Gmail: Send Digest",
            "type": "n8n-nodes-base.gmail",
            "position": [
                1540,
                440
            ],
            "webhookId": "3cd541af-51d4-465e-803d-a74572a15d83",
            "parameters": {
                "sendTo": "youremail@gmail.com",
                "message": "={{ $json.email.body }}",
                "options": [],
                "subject": "={{ $json.email.subject }}"
            },
            "credentials": {
                "gmailOAuth2": {
                    "id": "WbGCG42FAaeECe0u",
                    "name": "Gmail account"
                }
            },
            "typeVersion": 2.100000000000000088817841970012523233890533447265625
        },
        {
            "id": "9f398bc2-e84c-4df4-8958-aaa1d7c2ed37",
            "name": "Schedule Trigger",
            "type": "n8n-nodes-base.scheduleTrigger",
            "position": [
                0,
                60
            ],
            "parameters": {
                "rule": {
                    "interval": [
                        []
                    ]
                }
            },
            "typeVersion": 1.1999999999999999555910790149937383830547332763671875
        },
        {
            "id": "9984d3c0-7469-4b79-8d31-1a06b8dd23b6",
            "name": "Merge",
            "type": "n8n-nodes-base.merge",
            "position": [
                1020,
                440
            ],
            "parameters": {
                "numberInputs": 3
            },
            "typeVersion": 3
        }
    ],
    "active": false,
    "pinData": [],
    "settings": {
        "executionOrder": "v1"
    },
    "versionId": "550f65e6-68ec-449a-9fb5-241acba42455",
    "connections": {
        "Merge": {
            "main": [
                [
                    {
                        "node": "Format Digest: Merge & Style Data",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Schedule Trigger": {
            "main": [
                [
                    {
                        "node": "RSS Feed: Times of India",
                        "type": "main",
                        "index": 0
                    },
                    {
                        "node": "Gmail: Fetch Emails",
                        "type": "main",
                        "index": 0
                    },
                    {
                        "node": "TodoList: Fetch Tasks",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Gmail: Fetch Emails": {
            "main": [
                [
                    {
                        "node": "Merge",
                        "type": "main",
                        "index": 1
                    }
                ]
            ]
        },
        "TodoList: Fetch Tasks": {
            "main": [
                [
                    {
                        "node": "Merge",
                        "type": "main",
                        "index": 2
                    }
                ]
            ]
        },
        "RSS Feed: Times of India": {
            "main": [
                [
                    {
                        "node": "Merge",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Format Digest: Merge & Style Data": {
            "main": [
                [
                    {
                        "node": "Gmail: Send Digest",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        }
    }
}
Back to Workflows

Related Workflows

Automation
View
Splitout Webhook Update Webhook
View
Splitout Manual Import Webhook
View
✨🔪 Advanced AI Powered Document Parsing & Text Extraction with Llama Parse
View
Post new Google Calendar events to Telegram
View
🔥📈🤖 AI Agent for n8n Creators Leaderboard - Find Popular Workflows
View
HTTP Extractfromfile Process Webhook
View
Assign values to variables using the Set node
View
Webhook Manual Create Webhook
View
Umami analytics template
View