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

Gmail GoogleDrive Create Triggered
View
RAG Workflow For Company Documents stored in Google Drive
View
Capture Website Screenshots with Bright Data Web Unlocker and Save to Disk
View
Fetch the Most Recent Document from Google Drive
View
Telegram AI-bot
View
Splitout Filter Create Webhook
View
Code Webhook Automation Webhook
View
Image to license plate number
View
Query List of Sign-in IPs
View
Coffee Bot (Matrix)
View