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

Create, update, and get an issue on Taiga
View
#️⃣Nostr #damus AI Powered Reporting + Gmail + Telegram
View
Chinese Translator
View
Telegram Gmail Create Triggered
View
comentarios automaticos
View
Manual Editimage Create Webhook
View
HTTP Stickynote Automation Webhook
View
Code Schedule Create Webhook
View
HTTP Spreadsheetfile Create Webhook
View
Google Maps Email Scraper Template
View