AutomationFlowsAI & RAG › Ai-powered Salon Booking with Gpt, Google Calendar & Email Confirmations

Ai-powered Salon Booking with Gpt, Google Calendar & Email Confirmations

ByAziz B @azizb28 on n8n.io

This workflow is an AI-powered Salon Booking Assistant that automates hair, beauty, and spa appointment scheduling through a Webhook trigger. It interacts with the user in natural conversation, collects booking details (service type, stylist preference, date/time, and any…

Webhook trigger★★★★☆ complexityAI-powered20 nodesOpenAI ChatOutput Parser AutofixingOutput Parser StructuredGoogle CalendarAgentMemory Buffer WindowGmail
AI & RAG Trigger: Webhook Nodes: 20 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #7783 — we link there as the canonical source.

This workflow follows the Agent → Gmail recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "8czbnI4iBMuXq48K",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Salon Booking",
  "tags": [],
  "nodes": [
    {
      "id": "4ed1dd4c-30ff-4840-bc22-09a12082e6f8",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1568,
        640
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "o3-mini",
          "cachedResultName": "o3-mini"
        },
        "options": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "8e0c3165-0201-4fee-b602-cf9fc5976c19",
      "name": "Auto-fixing Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserAutofixing",
      "position": [
        1872,
        640
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "f16c511e-d28b-4bd0-b994-ce07d406dac3",
      "name": "OpenAI Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1840,
        784
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini",
          "cachedResultName": "gpt-4.1-mini"
        },
        "options": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "c83f45f7-6030-434d-b4f6-184ec99b9a49",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        2000,
        768
      ],
      "parameters": {
        "schemaType": "manual",
        "inputSchema": "{\n\t\"is_pass_next\": \"boolean\",\n\t\"message\": \"string\"\n}"
      },
      "typeVersion": 1.2
    },
    {
      "id": "d4d24714-7f47-4aa5-878f-80b5623114fa",
      "name": "Switch",
      "type": "n8n-nodes-base.switch",
      "position": [
        2208,
        464
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "Booking",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "b27f50ed-f26d-4310-b049-f0b38ca069f6",
                    "operator": {
                      "type": "boolean",
                      "operation": "true",
                      "singleValue": true
                    },
                    "leftValue": "={{ $json.output.is_pass_next }}",
                    "rightValue": ""
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "Feedback",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "ca6f2ea1-9dd1-4e77-9935-c3dbeb872ee4",
                    "operator": {
                      "type": "boolean",
                      "operation": "false",
                      "singleValue": true
                    },
                    "leftValue": "={{ $json.output.is_pass_next }}",
                    "rightValue": ""
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "28a6030e-cccd-4bf5-9f87-805dd9f12fb7",
      "name": "Edit Fields",
      "type": "n8n-nodes-base.set",
      "position": [
        2640,
        400
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "34357e62-87db-4d9c-a4ac-b8008c944821",
              "name": "user_data",
              "type": "string",
              "value": "={{$('Switch').item.json.output.message}}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "05bff1d7-592c-473b-91c7-bb6ab23fd45e",
      "name": "Google Calendar",
      "type": "n8n-nodes-base.googleCalendar",
      "position": [
        3328,
        368
      ],
      "parameters": {
        "end": "={{ $json.output.calendar_event.end_time }}",
        "start": "={{ $json.output.calendar_event.start_time }}",
        "calendar": {
          "__rl": true,
          "mode": "list",
          "value": "user@example.com",
          "cachedResultName": "user@example.com"
        },
        "additionalFields": {
          "color": "7",
          "summary": "={{ $json.output.email.description }}",
          "attendees": [
            "={{ $json.output.email.to }}"
          ]
        },
        "useDefaultReminders": false
      },
      "typeVersion": 1.3
    },
    {
      "id": "eefd2266-e4f8-413f-a7f3-4ecbf34158d3",
      "name": "Booking Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        2880,
        400
      ],
      "parameters": {
        "text": "=You are the Booking Agent for Glow & Grace Salon \u2013 Where Beauty Meets Elegance.\n\nYour job is to take finalized booking details from the Salon Agent, and:\n\nGenerate a Google Calendar event object with proper start and end time.\n\nInput from Restaurant Agent:  {{ $('Edit Fields').item.json['user_data'] }}\n\nGenerate a confirmation email with:\n\nRecipient email address\n\nEmail subject line\n\nA professional and beautifully formatted HTML body\n\n\u2705 Your OUTPUT must be in this structure:\n\n{\n  \"calendar_event\": {\n    \"start_time\": \"2025-06-05T10:00:00\",\n    \"end_time\": \"2025-06-05T11:30:00\",\n    \"name\": \"Olivia Brown\"\n  },\n  \"email\": {\n    \"to\": \"olivia.brown@example.com\",\n    \"subject\": \"Your Glow & Grace Salon Appointment Confirmation \ud83d\udc87\u200d\u2640\ufe0f\u2728\",\n    \"html_body\": \"<html>... (full email HTML below) ...</html>\", \n    \"description\": \"Salon appointment with Olivia\"\n  }\n}\n\n\nEXAMPLE: \n<html>\n  <body style=\"font-family: Arial, sans-serif; color: #333; background-color: #fafafa; padding: 20px;\">\n    <h2 style=\"color: #C71585;\">\ud83d\udc87\u200d\u2640\ufe0f Glow & Grace Salon \u2013 Appointment Confirmed</h2>\n    <p>Dear Olivia Brown,</p>\n    <p>We\u2019re delighted to confirm your salon appointment with us! Here are your booking details:</p>\n    <table style=\"margin-top: 15px; border-collapse: collapse;\">\n      <tr>\n        <td><strong>Date:</strong></td>\n        <td>June 5, 2025</td>\n      </tr>\n      <tr>\n        <td><strong>Time:</strong></td>\n        <td>10:00 AM \u2013 11:30 AM</td>\n      </tr>\n      <tr>\n        <td><strong>Services:</strong></td>\n        <td>Haircut + Blowout</td>\n      </tr>\n      <tr>\n        <td><strong>Stylist:</strong></td>\n        <td>Sophia (Master Stylist)</td>\n      </tr>\n      <tr>\n        <td><strong>Location:</strong></td>\n        <td>Glow & Grace Salon, 21 Beauty Lane, Glamour City</td>\n      </tr>\n    </table>\n    <p style=\"margin-top: 15px;\">\ud83d\udcdd <strong>Special Notes:</strong> Requested volume styling for an evening event.</p>\n    <p>We look forward to pampering you and making you glow with confidence! \u2728</p>\n    <p style=\"margin-top: 25px;\">Warm regards,<br/>The Glow & Grace Team</p>\n    <hr style=\"margin-top: 30px;\">\n    <p style=\"font-size: 12px;\">Questions? Contact us at <a href='mailto:appointments@glowandgrace.com'>appointments@glowandgrace.com</a> or call (555) 123-9876</p>\n  </body>\n</html>\n\n\n\n\ud83e\udde0 Behavior Notes:\n\nDefault service durations (unless specified):\n\nHaircut: 1 hour\n\nHair Color: 2 hours\n\nBlowout/Styling: 1 hour\n\nManicure/Pedicure: 1.5 hours\n\nFacial: 1 hour\n\nMassage: 1.5 hours\n\nIf multiple services are booked, add up durations in order.\n\nIf the user specifies a custom duration, honor that.\n\nFormat start and end time in ISO 8601 (RFC3339).\n\nTime zone is assumed to be the Salon\u2019s local time: {{ $now }}",
        "options": {},
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.8
    },
    {
      "id": "ea30c358-bd1c-4703-bd3a-d779af0829a5",
      "name": "OpenAI Chat Model2",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        2864,
        624
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini",
          "cachedResultName": "gpt-4.1-mini"
        },
        "options": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "59665448-7d44-4f8b-a330-e6e16460785c",
      "name": "Structured Output Parser1",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        3040,
        608
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"calendar_event\": {\n    \"start_time\": \"2025-05-10T14:00:00\",\n    \"end_time\": \"2025-05-10T17:00:00\",\n    \"name\": \"Sarah Johnson\"\n  },\n  \"email\": {\n    \"to\": \"user@example.com\",\n    \"subject\": \"Your Relaxing SPA Booking Confirmation \u2013 Rejuvenate & Revive Package\",\n    \"html_body\": \"<html>... (full email HTML below) ...</html>\",\n    \"description\": \"Booking with Sarah\"\n  }\n}\n"
      },
      "typeVersion": 1.2
    },
    {
      "id": "abf22778-be62-4bf2-9172-6b94bc103b1e",
      "name": "Simple Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        1728,
        640
      ],
      "parameters": {
        "sessionKey": "={{ $json?.message?.chat?.id || $json?.body?.sessionId }}",
        "sessionIdType": "customKey",
        "contextWindowLength": 15
      },
      "typeVersion": 1.3
    },
    {
      "id": "815868dd-3fda-483b-a076-87837c595c62",
      "name": "Send a message",
      "type": "n8n-nodes-base.gmail",
      "position": [
        3328,
        560
      ],
      "parameters": {
        "sendTo": "={{ $json.output.email.to }}",
        "message": "={{ $json.output.email.html_body }}",
        "options": {},
        "subject": "={{ $json.output.email.subject }}"
      },
      "typeVersion": 2.1
    },
    {
      "id": "abfe4772-8b9c-47e9-83f2-b6892e625ffa",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        64,
        -16
      ],
      "parameters": {
        "width": 1180,
        "height": 1120,
        "content": "## Overview\n\n- This workflow is an **AI-powered Salon Booking Assistant** that automates hair, beauty, and spa appointment scheduling through a **Webhook trigger**.  \n- It interacts with the user in natural conversation, collects booking details (service type, stylist preference, date/time, and any special requests), finalizes the draft, and confirms the appointment by storing it in **Google Calendar** and sending an **email confirmation** \u2014 fully automated end-to-end.\n\n---\n\n## How It Works\n\n### 1. User Interaction\n- The workflow starts when a user submits a request via the **Webhook**.  \n- The AI agent asks step-by-step questions:  \n  - Type of service (haircut, facial, manicure, etc.)  \n  - Preferred stylist (optional)  \n  - Preferred date & time  \n  - Any additional notes (special treatments, products, etc.)  \n- Once details are gathered, it generates a draft appointment summary.\n\n### 2. Confirmation & Personal Details\n- The user reviews the draft and confirms.  \n- The assistant then asks for personal details (name, email, phone number).\n\n### 3. Booking & Notifications\n- After confirmation, the details are sent to **Google Calendar** to create an appointment.  \n- A **confirmation email** is sent to the user with all booking information.  \n- A final webhook response confirms that the appointment is successfully booked.\n\n---\n\n## How to Use\n- Triggered directly via a **Webhook URL** (can be embedded in your salon website or mobile app).  \n- Simply fill in the details, and the assistant will guide the user step by step until the booking is finalized.  \n- Once completed, the user receives both an **email confirmation** and an on-screen success message.\n\n---\n\n## Requirements\nTo use this workflow, you\u2019ll need:  \n- **n8n account** (self-hosted or cloud)  \n- **Webhook node** (for booking trigger)  \n- **OpenAI or OpenRouter API Key** (for AI-driven conversation)  \n- **Google Calendar API access** (to create appointments)  \n- **Gmail / SMTP credentials** (to send confirmation emails)  \n"
      },
      "typeVersion": 1
    },
    {
      "id": "2714a16f-48aa-4203-92a8-7aec75ecb531",
      "name": "Information Gathering Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1696,
        416
      ],
      "parameters": {
        "text": "=You are the Salon Reservation Agent for Glow & Grace Salon \u2013 Premium Hair & Beauty Services.\n\nYour role is to assist users in booking a salon appointment, starting with gathering their information, confirming the booking, and ensuring it\u2019s added to the calendar and an email is sent.\n\nUser Input: {{ $json?.message?.text || $json?.body?.message }}\n\n\ud83c\udfad Tone and Behavior\n\nWarm, polite, and professional \u2014 like a friendly salon receptionist.\n\nMake the client feel cared for and pampered.\n\nAlways move step by step \u2014 never jump ahead.\n\nNever suggest random services or times \u2014 always confirm with the user.\n\n\ud83e\uddfe FLOW STRUCTURE:\n\n1. FIRST INTERACTION (Warm Greeting)\nAlways start with a polite opening and ask how you can help.\n\n{\n  \"is_pass_next\": false,\n  \"message\": \"Welcome to Glow & Grace Salon \ud83d\udc87\u200d\u2640\ufe0f\u2728 Your beauty, our passion. How may I assist you today? Would you like to book an appointment?\"\n}\n\n\n2. APPOINTMENT DETAILS (Step by Step Questions)\n\nAsk one question at a time in sequence:\n\nService Type (Haircut, Hair Spa, Facial, Manicure, Pedicure, Makeup, etc.)\n\nPreferred Stylist/Therapist (if any)\n\nPreferred Date & Time\n\nSpecial Requests (bridal prep, event styling, sensitive skin, etc.)\n\nExample response if still collecting info:\n\n{\n  \"is_pass_next\": false,\n  \"message\": \"Got it! Which service would you like to book \u2014 for example haircut, facial, manicure, or something else?\"\n}\n\n\n3. PRE-CONFIRMATION: Reservation Draft\nOnce enough details are gathered, propose a draft for review.\n\n{\n  \"is_pass_next\": false,\n  \"message\": \"Here\u2019s your appointment draft \ud83d\udc86\u200d\u2640\ufe0f:\\n\\n\ud83d\uddd3 Date & Time: [Insert Date & Time]\\n\ud83d\udc87\u200d\u2640\ufe0f Service: [Service Type]\\n\u2728 Preferred Stylist: [If any]\\n\ud83c\udf80 Special Notes: [If any]\\n\ud83d\udccd Location: Glow & Grace Salon, 21 Beauty Avenue, Style City\\n\\nShall we finalize this?\"\n}\n\n\n4. GATHER PERSONAL DETAILS (After Confirmation)\nOnly after the user confirms the reservation draft, ask for full name, email, and phone number.\n\n{\n  \"is_pass_next\": false,\n  \"message\": \"Perfect! To complete your reservation, may I have your full name, email, and an optional contact number?\"\n}\n\n\n5. FINAL CONFIRMATION & PASS TO SYSTEM\nOnce user provides details, finalize booking and pass it to system:\n\n{\n  \"is_pass_next\": true,\n  \"message\": {\n    \"customer_name\": \"[Name]\",\n    \"email\": \"[Email]\",\n    \"phone\": \"[Phone Number]\",\n    \"appointment_date\": \"[YYYY-MM-DD]\",\n    \"appointment_time\": \"[Time]\",\n    \"service_type\": \"[Haircut/Facial/etc.]\",\n    \"preferred_stylist\": \"[If any]\",\n    \"special_notes\": \"[Any notes from user]\"\n  }\n}\n\n\nTime zone is assumed to be the Salon's local time : {{ $now }}\n\n",
        "options": {},
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.8
    },
    {
      "id": "22fbf5d5-05f1-4479-bafa-ec273c68d2b3",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1392,
        144
      ],
      "parameters": {
        "color": 7,
        "width": 740,
        "height": 820,
        "content": "### Telegram Trigger & AI Agent Flow\n\n- **Webhook Trigger** \u2192 Listens for new messages from the user.  \n- **AI Agent** \u2192 Processes the user\u2019s message, understands intent (e.g., booking, feedback, etc.), and replies in a conversational way.  \n- **Memory & Parsers** \u2192 Help the AI remember context and structure the responses so the flow remains smooth.  \n"
      },
      "typeVersion": 1
    },
    {
      "id": "9395eadb-53ab-4790-b574-7295fda7252f",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2160,
        64
      ],
      "parameters": {
        "color": 7,
        "width": 620,
        "height": 820,
        "content": "### Switch, Respond& Edit Fields\n\n- **Switch Node** \u2192 Decides the flow based on user input.  \n  - If the user is making a **Booking**, the process continues toward reservation steps.  \n  - If the user is giving **Feedback**, it routes the conversation separately.  \n\n- **Repond Nodes** \u2192 Send appropriate responses back to the user on  webhook depending on the chosen path.  \n\n- **Edit Fields** \u2192 Prepares and formats the booking details (guest count, preferences, date/time, etc.) before passing them to the next step in the workflow.  \n"
      },
      "typeVersion": 1
    },
    {
      "id": "85b9fe22-224a-4319-8dc1-33c054c35e3d",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2800,
        64
      ],
      "parameters": {
        "color": 7,
        "width": 920,
        "height": 820,
        "content": "### Booking Agent, Google Calendar & Gmail\n\n- **Booking Agent** \u2192 Collects all finalized booking details from the user, organizes them, and prepares a structured summary. It also creates a formatted HTML template for the confirmation email and ensures the booking payload is properly structured.  \n\n- **Google Calendar** \u2192 Automatically creates a reservation event with the provided details (guest count, preferences, date/time, special requests).  \n\n- **Send a Message (Gmail)** \u2192 Sends a professional confirmation email to the user with all booking details included.    \n"
      },
      "typeVersion": 1
    },
    {
      "id": "60b74241-494f-4782-9e2e-4538094bc9d3",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        1440,
        432
      ],
      "parameters": {
        "path": "1306a6cb-608a-471a-a84b-f07f981c67da",
        "options": {},
        "httpMethod": "POST",
        "responseMode": "responseNode"
      },
      "typeVersion": 2
    },
    {
      "id": "a9a98a78-447b-4b33-ba9f-553a3b40489d",
      "name": "Respond to Webhook",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        2432,
        640
      ],
      "parameters": {
        "options": {},
        "respondWith": "text",
        "responseBody": "={{ $('Information Gathering Agent').item.json.output.message }}"
      },
      "typeVersion": 1.1
    },
    {
      "id": "c5c6e80c-c4cb-48fc-a1f0-63477de52205",
      "name": "Respond to Webhook1",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        2432,
        432
      ],
      "parameters": {
        "options": {},
        "respondWith": "text",
        "responseBody": "Thank you for your confirmation! We have noted down your information. You will be getting confirmation mail soon. "
      },
      "typeVersion": 1.1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "d2c0a675-cc2f-456b-9ac0-27561f1acec2",
  "connections": {
    "Switch": {
      "main": [
        [
          {
            "node": "Respond to Webhook1",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Respond to Webhook",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook": {
      "main": [
        [
          {
            "node": "Information Gathering Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields": {
      "main": [
        [
          {
            "node": "Booking Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Booking Agent": {
      "main": [
        [
          {
            "node": "Google Calendar",
            "type": "main",
            "index": 0
          },
          {
            "node": "Send a message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "Information Gathering Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Information Gathering Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "Auto-fixing Output Parser",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model2": {
      "ai_languageModel": [
        [
          {
            "node": "Booking Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Respond to Webhook1": {
      "main": [
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Auto-fixing Output Parser",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Auto-fixing Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Information Gathering Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser1": {
      "ai_outputParser": [
        [
          {
            "node": "Booking Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Information Gathering Agent": {
      "main": [
        [
          {
            "node": "Switch",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This workflow is an AI-powered Salon Booking Assistant that automates hair, beauty, and spa appointment scheduling through a Webhook trigger. It interacts with the user in natural conversation, collects booking details (service type, stylist preference, date/time, and any…

Source: https://n8n.io/workflows/7783/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

🧾 An intelligent automation system that turns Google Meet recordings into structured meeting notes — integrating Fireflies.ai, OpenAI GPT-4.1-mini, Notion, Slack, Google Drive, and Gmail via n8n.

Google Drive, OpenAI Chat, Output Parser Structured +8
AI & RAG

Enhance your support, onboarding, and internal knowledge workflows with an intelligent RAG-powered chatbot that responds using live data stored in Google Sheets. 🤖📚 Built for teams that rely on struct

Chat Trigger, Output Parser Structured, Memory Buffer Window +6
AI & RAG

This workflow is an AI-powered Dental Appointment Assistant that automates appointment booking, rescheduling, and cancellations through Telegram or a Webhook. It uses intelligent agents to understand

Memory Buffer Window, Output Parser Structured, Mcp Client Tool +12
AI & RAG

This workflow automates enterprise resource planning (ERP) operations across Engineering, Finance, HR, and Admin departments for operations managers, ERP administrators, and business process owners wh

Agent, Gmail, Slack +6
AI & RAG

This workflow automates credit operations onboarding by running KYC verification, credit bureau checks, identity validation, and sanctions screening through a single AI-powered agent. Built for credit

Agent, OpenAI Chat, Output Parser Structured +8