Workflow: Datetime Schedule Create

Workflow Details

Download Workflow
{
    "meta": {
        "instanceId": "a2434c94d549548a685cca39cc4614698e94f527bcea84eefa363f1037ae14cd"
    },
    "nodes": [
        {
            "id": "0bacf032-53d6-4ba6-ab71-e01625c49cc4",
            "name": "On schedule",
            "type": "n8n-nodes-base.scheduleTrigger",
            "position": [
                -1960,
                160
            ],
            "parameters": {
                "rule": {
                    "interval": [
                        {
                            "field": "minutes",
                            "minutesInterval": 1
                        }
                    ]
                }
            },
            "typeVersion": 1.100000000000000088817841970012523233890533447265625
        },
        {
            "id": "2e0d9aef-0a60-4506-9c11-c6c2cccb16ea",
            "name": "Derive last request time",
            "type": "n8n-nodes-base.dateTime",
            "position": [
                -1740,
                160
            ],
            "parameters": {
                "duration": 1,
                "timeUnit": "minutes",
                "magnitude": "={{ $json.timestamp }}",
                "operation": "subtractFromDate",
                "outputFieldName": "last_request_time"
            },
            "typeVersion": 2
        },
        {
            "id": "f726c448-b4c4-4159-8ca5-c94c092127b7",
            "name": "Get emails from label and last request time",
            "type": "n8n-nodes-base.gmail",
            "position": [
                -1520,
                160
            ],
            "parameters": {
                "filters": {
                    "labelIds": [
                        "Label_9178764513576607415"
                    ]
                },
                "operation": "getAll",
                "returnAll": true
            },
            "credentials": {
                "gmailOAuth2": {
                    "id": "31",
                    "name": "REPLACE ME"
                }
            },
            "typeVersion": 2
        },
        {
            "id": "9b86331f-d33b-4266-ba34-bc0491a0da24",
            "name": "Create database page",
            "type": "n8n-nodes-base.notion",
            "position": [
                -620,
                60
            ],
            "parameters": {
                "title": "={{ $('If database page not found').item.json.Subject }}",
                "blockUi": {
                    "blockValues": [
                        {
                            "type": "heading_3",
                            "textContent": "Snippet"
                        },
                        {
                            "textContent": "={{ $('If database page not found').item.json.snippet }}"
                        },
                        {
                            "text": {
                                "text": [
                                    {
                                        "text": "See more",
                                        "isLink": true,
                                        "textLink": "=https:\/\/mail.google.com\/mail\/u\/{{ $json.emailAddress }}\/#all\/{{ $('If database page not found').item.json.id }}",
                                        "annotationUi": []
                                    }
                                ]
                            },
                            "richText": true
                        }
                    ]
                },
                "options": {
                    "icon": "https:\/\/avatars.githubusercontent.com\/u\/45487711?s=280&v=4",
                    "iconType": "file"
                },
                "resource": "databasePage",
                "databaseId": {
                    "__rl": true,
                    "mode": "list",
                    "value": "e606a7c1-e93d-47fd-8b8d-8000cd6e7522",
                    "cachedResultUrl": "https:\/\/www.notion.so\/e606a7c1e93d47fd8b8d8000cd6e7522",
                    "cachedResultName": "Gmail"
                },
                "propertiesUi": {
                    "propertyValues": [
                        {
                            "key": "Thread ID|rich_text",
                            "textContent": "={{ $('If database page not found').item.json.id }}"
                        },
                        {
                            "key": "Email thread|url",
                            "urlValue": "=https:\/\/mail.google.com\/mail\/u\/{{ $json.emailAddress }}\/#all\/{{ $('If database page not found').item.json.id }}"
                        }
                    ]
                }
            },
            "credentials": {
                "notionApi": {
                    "id": "18",
                    "name": "[UPDATE ME]"
                }
            },
            "typeVersion": 2
        },
        {
            "id": "d7198578-4c83-4f57-8eba-5b5a9b89195c",
            "name": "Try get database page",
            "type": "n8n-nodes-base.notion",
            "position": [
                -1360,
                220
            ],
            "parameters": {
                "filters": {
                    "conditions": [
                        {
                            "key": "Thread ID|rich_text",
                            "condition": "equals",
                            "richTextValue": "={{ $json.id }}"
                        }
                    ]
                },
                "options": [],
                "resource": "databasePage",
                "operation": "getAll",
                "returnAll": true,
                "databaseId": {
                    "__rl": true,
                    "mode": "list",
                    "value": "e606a7c1-e93d-47fd-8b8d-8000cd6e7522",
                    "cachedResultUrl": "https:\/\/www.notion.so\/e606a7c1e93d47fd8b8d8000cd6e7522",
                    "cachedResultName": "My Gmail Tasks"
                },
                "filterType": "manual"
            },
            "credentials": {
                "notionApi": {
                    "id": "18",
                    "name": "[UPDATE ME]"
                }
            },
            "typeVersion": 2,
            "alwaysOutputData": true
        },
        {
            "id": "f8188ab9-9a80-4aa9-b773-73cd90b8dbd3",
            "name": "If checked off",
            "type": "n8n-nodes-base.if",
            "position": [
                -1740,
                460
            ],
            "parameters": {
                "conditions": {
                    "boolean": [
                        {
                            "value1": "={{ $json.Complete }}",
                            "value2": true
                        }
                    ]
                }
            },
            "typeVersion": 1
        },
        {
            "id": "bfcfeeb1-ad8b-47fb-8a09-b58e7b649a25",
            "name": "On updated database page",
            "type": "n8n-nodes-base.notionTrigger",
            "position": [
                -1960,
                460
            ],
            "parameters": {
                "event": "pagedUpdatedInDatabase",
                "pollTimes": {
                    "item": [
                        {
                            "mode": "everyMinute"
                        }
                    ]
                },
                "databaseId": {
                    "__rl": true,
                    "mode": "list",
                    "value": "e606a7c1-e93d-47fd-8b8d-8000cd6e7522",
                    "cachedResultUrl": "https:\/\/www.notion.so\/e606a7c1e93d47fd8b8d8000cd6e7522",
                    "cachedResultName": "My Gmail Tasks"
                }
            },
            "credentials": {
                "notionApi": {
                    "id": "18",
                    "name": "[UPDATE ME]"
                }
            },
            "typeVersion": 1
        },
        {
            "id": "dc2c59b8-6e0d-46b3-946a-e48b0461c48f",
            "name": "Remove label from target email",
            "type": "n8n-nodes-base.gmail",
            "position": [
                -1520,
                460
            ],
            "parameters": {
                "labelIds": [
                    "Label_9178764513576607415"
                ],
                "messageId": "={{ $json['Thread ID'] }}",
                "operation": "removeLabels"
            },
            "credentials": {
                "gmailOAuth2": {
                    "id": "31",
                    "name": "REPLACE ME"
                }
            },
            "typeVersion": 2
        },
        {
            "id": "0f693c2f-ce89-4a2f-a85f-9230b7bcb94d",
            "name": "Not yet checked off, do nothing",
            "type": "n8n-nodes-base.noOp",
            "position": [
                -1520,
                660
            ],
            "parameters": [],
            "typeVersion": 1
        },
        {
            "id": "bf792470-fc0a-45a2-b655-df5c977faa97",
            "name": "Merge",
            "type": "n8n-nodes-base.merge",
            "position": [
                -1220,
                100
            ],
            "parameters": {
                "mode": "combine",
                "options": [],
                "joinMode": "enrichInput1",
                "mergeByFields": {
                    "values": [
                        {
                            "field1": "id",
                            "field2": "property_thread_id"
                        }
                    ]
                }
            },
            "typeVersion": 2.100000000000000088817841970012523233890533447265625
        },
        {
            "id": "f910c34c-4c3d-481f-8223-a8aae710dbbd",
            "name": "If found, do nothing",
            "type": "n8n-nodes-base.noOp",
            "position": [
                -840,
                260
            ],
            "parameters": [],
            "typeVersion": 1
        },
        {
            "id": "7086cd15-9f2e-40e4-be3b-47d117dde670",
            "name": "If database page not found",
            "type": "n8n-nodes-base.if",
            "position": [
                -1060,
                160
            ],
            "parameters": {
                "conditions": {
                    "string": [
                        {
                            "value1": "={{ $json.property_thread_id }}",
                            "operation": "isEmpty"
                        }
                    ]
                }
            },
            "typeVersion": 1
        },
        {
            "id": "86ce380c-0810-4edb-94e4-fb67b0ca422c",
            "name": "Find my email address",
            "type": "n8n-nodes-base.httpRequest",
            "position": [
                -840,
                60
            ],
            "parameters": {
                "url": "https:\/\/gmail.googleapis.com\/gmail\/v1\/users\/me\/profile",
                "options": [],
                "authentication": "predefinedCredentialType",
                "nodeCredentialType": "gmailOAuth2"
            },
            "credentials": {
                "gmailOAuth2": {
                    "id": "31",
                    "name": "REPLACE ME"
                }
            },
            "typeVersion": 4.0999999999999996447286321199499070644378662109375
        },
        {
            "id": "f576f785-49e4-4ed2-b83e-400b001b6c3a",
            "name": "Sticky Note",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                -2540,
                100
            ],
            "parameters": {
                "width": 501.0810810810809243776020593941211700439453125,
                "height": 545.4054054054040534538216888904571533203125,
                "content": "## Send labeled email to a Notion database\nThis workflow sends the contents of an email to a Notion database. The email must be labeled with a specific label for the workflow to trigger. The email subject will be the title of the Notion page, and a snippet of the email body will be the content of the Notion page. The email link will be added to the Notion page as a property.\n\n### How it works\nOn scheduled intervals, find all emails with a specific label. For each email, check if the email already exists in the Notion database. If it does not exist, create a new page in the Notion database, otherwise do nothing. When the task in the Notion database is checked off, the label will be removed from the email.\n\n### Setup\nThis workflow requires that you set up a Notion database or use an existing one with at least the following fields:\n- Title (title)\n- Thread ID (text)\n- Email thread (URL)\n\n\nAdditionally, create a label that will be used to trigger the workflow in Gmail. In this workflow, the label is called \"Notion\"."
            },
            "typeVersion": 1
        }
    ],
    "connections": {
        "Merge": {
            "main": [
                [
                    {
                        "node": "If database page not found",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "On schedule": {
            "main": [
                [
                    {
                        "node": "Derive last request time",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "If checked off": {
            "main": [
                [
                    {
                        "node": "Remove label from target email",
                        "type": "main",
                        "index": 0
                    }
                ],
                [
                    {
                        "node": "Not yet checked off, do nothing",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Find my email address": {
            "main": [
                [
                    {
                        "node": "Create database page",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Try get database page": {
            "main": [
                [
                    {
                        "node": "Merge",
                        "type": "main",
                        "index": 1
                    }
                ]
            ]
        },
        "Derive last request time": {
            "main": [
                [
                    {
                        "node": "Get emails from label and last request time",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "On updated database page": {
            "main": [
                [
                    {
                        "node": "If checked off",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "If database page not found": {
            "main": [
                [
                    {
                        "node": "Find my email address",
                        "type": "main",
                        "index": 0
                    }
                ],
                [
                    {
                        "node": "If found, do nothing",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get emails from label and last request time": {
            "main": [
                [
                    {
                        "node": "Try get database page",
                        "type": "main",
                        "index": 0
                    },
                    {
                        "node": "Merge",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        }
    }
}
Back to Workflows

Related Workflows

Fully automated Video Captions generation with json2video
View
Manual N8N Automate Triggered
View
Template - SSL Expiry Alert System
View
Postgrestool Stickynote Send Triggered
View
Forward Filtered Gmail Notifications to Telegram Chat
View
Code Extractfromfile Monitor Triggered
View
mails2notion V2
View
Manual Gmail Automation Triggered
View
Mattermost N8N Automate Triggered
View
Functionitem Manual Create Triggered
View