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

Telegram Webhook Automation Webhook
View
RAG AI Agent with Milvus and Cohere
View
Code Schedule Import Webhook
View
Email Summary Agent
View
Manual Code Create Triggered
View
Netlify Slack Automate Triggered
View
HTTP Spreadsheetfile Create Webhook
View
Zendesk HubSpot Create Scheduled
View
Dsp agent
View
BillBot
View