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

Build a Phone Agent to qualify outbound leads and inbound calls with RetellAI -vide
View
Respondtowebhook Form Automation Webhook
View
Smart Factory Use Case
View
Stickynote Send Triggered
View
Whisper Transkription copy
View
Get Company by Name
View
Manual Slack Automation Webhook
View
Snowflake CSV
View
chrome extension backend with AI
View
RAG Workflow For Stock Earnings Report Analysis
View