Workflow: Gmail Googlecalendartool Send

Workflow Details

Download Workflow
{
    "meta": {
        "instanceId": "408f9fb9940c3cb18ffdef0e0150fe342d6e655c3a9fac21f0f644e8bedabcd9",
        "templateCredsSetupCompleted": true
    },
    "nodes": [
        {
            "id": "eaa31cde-3017-400d-aac8-999def8cc227",
            "name": "Sticky Note",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                -340,
                -780
            ],
            "parameters": {
                "width": 617,
                "height": 490,
                "content": "## Check if incoming email is about appointment\nWe use LLM to check subject and body of the email and determine if it's an appointment request. "
            },
            "typeVersion": 1
        },
        {
            "id": "b03d3f72-d1d8-49a7-bcc1-a476fd5c4ad7",
            "name": "Sticky Note1",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                400,
                -780
            ],
            "parameters": {
                "width": 796,
                "height": 482,
                "content": "## Get calendar availability and compose a response\nMake sure to update the Workflow ID if you are running this as 2 workflows"
            },
            "typeVersion": 1
        },
        {
            "id": "29ce0093-c4c8-41cc-be69-334de3a1d1a2",
            "name": "OpenAI Chat Model",
            "type": "@n8n\/n8n-nodes-langchain.lmChatOpenAi",
            "position": [
                -60,
                -460
            ],
            "parameters": {
                "model": {
                    "__rl": true,
                    "mode": "list",
                    "value": "gpt-4o-mini"
                },
                "options": []
            },
            "credentials": {
                "openAiApi": {
                    "id": "8gccIjcuf3gvaoEr",
                    "name": "OpenAi account"
                }
            },
            "typeVersion": 1.1999999999999999555910790149937383830547332763671875
        },
        {
            "id": "5176f475-704b-446e-b368-ffa395bb089e",
            "name": "OpenAI Chat Model1",
            "type": "@n8n\/n8n-nodes-langchain.lmChatOpenAi",
            "position": [
                480,
                -460
            ],
            "parameters": {
                "model": {
                    "__rl": true,
                    "mode": "list",
                    "value": "gpt-4o-mini"
                },
                "options": []
            },
            "credentials": {
                "openAiApi": {
                    "id": "8gccIjcuf3gvaoEr",
                    "name": "OpenAi account"
                }
            },
            "typeVersion": 1.1999999999999999555910790149937383830547332763671875
        },
        {
            "id": "0e8a75dd-ce68-46c3-972c-32b15e04b254",
            "name": "Send reply",
            "type": "n8n-nodes-base.gmail",
            "position": [
                940,
                -660
            ],
            "webhookId": "0f18d414-1b14-4d2e-9fc2-d2d302372dc6",
            "parameters": {
                "message": "={{ $json.output }}",
                "options": [],
                "messageId": "={{ $('Gmail Trigger').first().json.id }}",
                "operation": "reply"
            },
            "credentials": {
                "gmailOAuth2": {
                    "id": "Sf5Gfl9NiFTNXFWb",
                    "name": "Gmail account"
                }
            },
            "typeVersion": 2.100000000000000088817841970012523233890533447265625
        },
        {
            "id": "bf154384-274a-4cdd-977d-890220948a9d",
            "name": "Gmail Trigger",
            "type": "n8n-nodes-base.gmailTrigger",
            "position": [
                -280,
                -640
            ],
            "parameters": {
                "filters": {
                    "readStatus": "unread",
                    "includeSpamTrash": false
                },
                "pollTimes": {
                    "item": [
                        {
                            "mode": "everyMinute"
                        }
                    ]
                }
            },
            "credentials": {
                "gmailOAuth2": {
                    "id": "Sf5Gfl9NiFTNXFWb",
                    "name": "Gmail account"
                }
            },
            "typeVersion": 1.1999999999999999555910790149937383830547332763671875
        },
        {
            "id": "5a268b34-38ea-4e55-87ab-8a616e2aa1fa",
            "name": "Classify appointment",
            "type": "@n8n\/n8n-nodes-langchain.textClassifier",
            "position": [
                -60,
                -640
            ],
            "parameters": {
                "options": {
                    "fallback": "discard"
                },
                "inputText": "=Please evaluate the following email to determine if it suggests scheduling a meeting or a call:\nSubject: {{ $json.Subject }}\nSnippet: {{ $json.snippet }}",
                "categories": {
                    "categories": [
                        {
                            "category": "is_appointment",
                            "description": "email Is requesting an appointment"
                        }
                    ]
                }
            },
            "typeVersion": 1
        },
        {
            "id": "7b5a8468-09e5-4575-97cb-9175ee02b19d",
            "name": "Agent",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "position": [
                500,
                -660
            ],
            "parameters": {
                "text": "=Sender: {{ $('Gmail Trigger').first().json.From }}\nSubject: {{ $('Gmail Trigger').first().json.Subject }}\nEmail Text: {{ $('Gmail Trigger').first().json.snippet }}",
                "options": {
                    "systemMessage": "=You are an email scheduling assistant. Based on the received email, check my availability and propose an appropriate response. \nAim to get a specific time, rather than just a day. When checking my availability, make sure that there's enough time in between meetings.\nIf I'm not available, ALWAYS propose a new time based on my availability. When proposing a new time, always leave 15 minutes buffer from previous meeting.\nToday date and time is: {{ $now.toISO() }}."
                },
                "promptType": "define"
            },
            "typeVersion": 1.8000000000000000444089209850062616169452667236328125
        },
        {
            "id": "b61e8061-5719-4c30-97da-e306e7b79b76",
            "name": "Google Calendar",
            "type": "n8n-nodes-base.googleCalendarTool",
            "position": [
                680,
                -460
            ],
            "parameters": {
                "options": [],
                "timeMax": "={{ $now.plus(1, 'month').toISO() }}",
                "timeMin": "={{ $now.minus(1, 'day').toISO() }}",
                "calendar": {
                    "__rl": true,
                    "mode": "id",
                    "value": "your_email@gmail.com"
                },
                "operation": "getAll",
                "returnAll": true
            },
            "credentials": {
                "googleCalendarOAuth2Api": {
                    "id": "kWMxmDbMDDJoYFVK",
                    "name": "Google Calendar account"
                }
            },
            "typeVersion": 1.3000000000000000444089209850062616169452667236328125
        },
        {
            "id": "47e07b6c-d432-4111-b33e-56d6c305c40c",
            "name": "Mark as read",
            "type": "n8n-nodes-base.gmail",
            "position": [
                940,
                -480
            ],
            "webhookId": "7e2d851b-c9f3-471c-875d-0da7c2c3b561",
            "parameters": {
                "messageId": "={{ $('Gmail Trigger').first().json.id }}",
                "operation": "markAsRead"
            },
            "credentials": {
                "gmailOAuth2": {
                    "id": "Sf5Gfl9NiFTNXFWb",
                    "name": "Gmail account"
                }
            },
            "typeVersion": 2.100000000000000088817841970012523233890533447265625
        }
    ],
    "pinData": [],
    "connections": {
        "Agent": {
            "main": [
                [
                    {
                        "node": "Send reply",
                        "type": "main",
                        "index": 0
                    },
                    {
                        "node": "Mark as read",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Gmail Trigger": {
            "main": [
                [
                    {
                        "node": "Classify appointment",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Google Calendar": {
            "ai_tool": [
                [
                    {
                        "node": "Agent",
                        "type": "ai_tool",
                        "index": 0
                    }
                ]
            ]
        },
        "OpenAI Chat Model": {
            "ai_languageModel": [
                [
                    {
                        "node": "Classify appointment",
                        "type": "ai_languageModel",
                        "index": 0
                    }
                ]
            ]
        },
        "OpenAI Chat Model1": {
            "ai_languageModel": [
                [
                    {
                        "node": "Agent",
                        "type": "ai_languageModel",
                        "index": 0
                    }
                ]
            ]
        },
        "Classify appointment": {
            "main": [
                [
                    {
                        "node": "Agent",
                        "type": "main",
                        "index": 0
                    }
                ],
                []
            ]
        }
    }
}
Back to Workflows

Related Workflows

GitHub Manual Create Scheduled
View
Easily Compare LLMs Using OpenAI and Google Sheets
View
Manual Mysql Automation Triggered
View
Receive updates when a new activity gets created and tweet about it
View
HTTP Stripe Create Webhook
View
Schedule Filter Update Scheduled
View
Datetime Slack Automate Scheduled
View
Optimize Prompt
View
Filter Form Send Triggered
View
Manual Hunter Automate Triggered
View