{
  "workflow": {
    "id": 6377,
    "name": "Automate real estate property tours with Google Calendar, Slack & Calendly",
    "views": 580,
    "recentViews": 0,
    "totalViews": 580,
    "createdAt": "2025-07-24T10:39:15.055Z",
    "description": "## How It Works ⚙️\n\nThis workflow streamlines your property tour scheduling into two main automated flows:\n\n### A. Property Tour Request & Automated Scheduling\n1.  **0. Form Trigger (Property Tour Request):** 🚀 The workflow initiates immediately when a prospective client fills out a property tour interest form on your website or a dedicated landing page. This serves as the initial data input point.\n2.  **1. Extract Prospect Data (Function):** 🧹 This node processes the incoming form data, intelligently extracting essential details such as the prospect's full name, email, phone number, and the specific property they are interested in.\n3.  **2. Generate Scheduling Link (Function):** 🔗 This node dynamically constructs a personalized scheduling link (e.g., from Calendly or another scheduling tool) that is pre-configured to show your agent's real-time availability.\n4.  **3. Send Scheduling Link (Gmail/SMS):** 📧 An automated email or SMS containing this personalized scheduling link is instantly dispatched to the prospect, allowing them to conveniently select a tour time that fits their schedule and aligns with the agent's availability.\n\n### B. Tour Confirmation & Reminders\n1.  **4. Webhook: Schedule Confirmation (Waiting for Confirmation):** ⏳ The workflow patiently waits for a webhook signal from your scheduling tool (e.g., Calendly) confirming that the prospect has successfully selected and confirmed a tour slot.\n2.  **5. Add Event to Agent's Calendar (Google Calendar):** 🗓️ Upon confirmation, the property tour event is automatically added to the relevant agent's Google Calendar, complete with all prospect and property details, ensuring no appointments are missed.\n3.  **6. Send Confirmation Notification (Slack to Agent):** 📢 A detailed notification is sent to the agent's Slack channel or email, immediately informing them about the newly scheduled tour and providing all pertinent information at a glance.\n4.  **7. Wait (For Tour Reminder):** ⏱️ This node intelligently waits for a calculated period (e.g., 1 hour) before the scheduled tour time, ensuring the reminder is sent precisely when it's most impactful.\n5.  **8. Send Tour Reminder (Gmail):** 🔔 A personalized reminder email or SMS is automatically sent to the prospect a set time before the scheduled tour, significantly helping to reduce no-shows and ensure timely attendance.\n\n## How to Set Up 🛠️\n\nFollow these steps carefully to get your \"Property Tour Scheduling Automation\" workflow up and running in n8n:\n\n1.  **Import Workflow JSON:**\n    * Open your n8n instance.\n    * Click on 'Workflows' in the left sidebar.\n    * Click the '+' button or 'New' to create a new workflow.\n    * Click the '...' (More Options) icon in the top right.\n    * Select 'Import from JSON' and paste the entire JSON code for this workflow.\n\n2.  **Configure 0. Form Trigger (Property Tour Request):**\n    * Locate the '0. Form Trigger (Property Tour Request)' node.\n    * Activate the workflow. n8n will provide a unique 'Webhook URL'.\n    * **Crucial Step:** Integrate this 'Webhook URL' into your website's property tour request form (e.g., via Elementor Forms, Gravity Forms, or any other form platform). Ensure your form sends data in JSON format.\n    * **Form Fields:** Adjust the 'Form Fields' in this node (e.g., \"Full Name\", \"Email\", \"Phone Number\", \"Interested Property ID\", \"Property Name (optional)\") to precisely match the input fields of your actual form. If they don't match, update them here.\n\n3.  **Configure 1. Extract Prospect Data (Function):**\n    * Locate the '1. Extract Prospect Data' node.\n    * **Adjust Field Names:** Review the `functionCode` within this node. **You MUST adjust the variable assignments (e.g., `formData['Full Name']`, `formData['Interested Property ID']`)** to accurately match the exact field names sent by your *Form Trigger*. Use n8n's 'Test Workflow' feature (after submitting a test form entry) to inspect the incoming `items[0].json.body` data structure and make precise adjustments.\n\n4.  **Configure 2. Generate Scheduling Link (Function):**\n    * Locate the '2. Generate Scheduling Link' node.\n    * **Set Base Scheduling URL:** Inside the `functionCode`, **replace `'YOUR_CALENDLY_BASE_LINK_FOR_AGENT'`** with the base URL of your Calendly or other scheduling tool link (e.g., `https://calendly.com/your-agent-name`).\n    * **Adjust Parameters:** If your scheduling tool supports URL parameters for pre-filling information (e.g., prospect name, email), adjust the code to include them (e.g., `?name=${encodeURIComponent(prospectData.clientName)}&email=${encodeURIComponent(prospectData.clientEmail)}`).\n\n5.  **Configure 3. Send Scheduling Link (Gmail):**\n    * Locate the '3. Send Scheduling Link (Gmail)' node.\n    * **Credentials:** Select your existing Gmail OAuth2 credential or click 'Create New' to set one up. You'll need to replace `YOUR_GMAIL_CREDENTIAL_ID` with the actual ID or name of your credential from your n8n credentials list.\n    * **From Email:** Replace `your-agent-email@example.com` with the desired sending email address for tour requests.\n    * The 'To Email', 'Subject', and 'HTML' body fields will be dynamically populated from the previous 'Function' node.\n    * **(Optional: Switch to SMS):** Delete this Gmail node and add a Twilio node. Configure its credentials, 'From Phone Number', 'To Phone Number' (from prospect data), and 'Message' (include the scheduling link).\n\n6.  **Configure 4. Webhook: Schedule Confirmation (Waiting for Confirmation):**\n    * Locate the '4. Webhook: Schedule Confirmation (Waiting for Confirmation)' node.\n    * Activate the workflow. n8n will provide a unique 'Webhook URL'.\n    * **Crucial Step:** In your scheduling tool (e.g., Calendly), configure a webhook to send data to this n8n URL whenever an event is scheduled or confirmed. This is vital for the workflow to proceed after the prospect selects a time.\n\n7.  **Configure 5. Add Event to Agent's Calendar (Google Calendar):**\n    * Locate the '5. Add Event to Agent's Calendar (Google Calendar)' node.\n    * **Credentials:** Select your existing Google Calendar OAuth2 credential or create a new one. Replace `YOUR_GOOGLE_CALENDAR_CREDENTIAL_ID` with the actual ID or name of your credential.\n    * **Calendar ID:** Replace `YOUR_AGENT_CALENDAR_ID` with the specific calendar ID of the agent where you want to add the event.\n    * **Adjust Event Details:** Ensure 'Event Name', 'Start Date & Time', 'End Date & Time', and 'Description' use the correct expressions to pull data from the incoming scheduling tool webhook (e.g., `{{ $json.payload.event.start_time }}`).\n\n8.  **Configure 6. Send Confirmation Notification (Slack to Agent):**\n    * Locate the '6. Send Confirmation Notification (Slack to Agent)' node.\n    * **Credentials:** Ensure your Slack API credential is selected.\n    * **Channel:** Replace `YOUR_AGENT_SLACK_CHANNEL_ID_OR_NAME` with the exact ID or name of the Slack channel where agents receive tour scheduling notifications (e.g., `#tour-bookings`).\n    * **(Optional: Switch to Email):** Delete this Slack node and add a Gmail or SendGrid node. Configure its credentials, 'To Email' (agent's email), 'Subject', and 'HTML' body.\n\n9.  **Configure 7. Wait (For Tour Reminder):**\n    * Locate the '7. Wait (For Tour Reminder)' node.\n    * **Time Calculation:** The node is set to wait until 1 hour before the scheduled tour start time (`{{ $json.payload.event.start_time }}`).\n    * **Timezone:** **Replace `YOUR_TIMEZONE_LIKE_Asia/Jakarta`** with your actual timezone (e.g., `America/New_York`, `Europe/London`). This is crucial for accurate timing.\n\n10. **Configure 8. Send Tour Reminder (Gmail):**\n    * Locate the '8. Send Tour Reminder (Gmail)' node.\n    * **Credentials:** Ensure your Gmail API credential is selected.\n    * **From Email:** Replace `your-agent-email@example.com` with the sending email address.\n    * **(Optional: Switch to SMS):** Delete this Gmail node and add a Twilio node, configuring it similarly to step 5 for SMS reminders.\n\n11. **Review and Activate:**\n    * Thoroughly review all node configurations. Ensure all placeholder values (like `YOUR_...`) are replaced with your actual information and settings are correct.\n    * Click the 'Save' button in the top right corner.\n    * Finally, toggle the 'Inactive' switch to 'Active' to enable your workflow. 🟢 Your \"Property Tour Scheduling Automation\" workflow is now live!",
    "workflow": {
      "id": "XJyz3uhjx55iLxQb",
      "meta": {
        "instanceId": "a287613f1596da776459594685fbf4e2b4a12124f80ab8c8772f5e37bff103ae"
      },
      "name": "Property Tour Scheduling Automation (Real Estate)",
      "tags": [],
      "nodes": [
        {
          "id": "ca5c7060-eec9-4d57-9fc2-9d48e825fc07",
          "name": "0. Form Trigger (Property Tour Request)",
          "type": "n8n-nodes-base.formTrigger",
          "position": [
            0,
            0
          ],
          "webhookId": "a756358b-b478-4d6c-8df6-6f97040d77cd",
          "parameters": {
            "path": "prospect-tour-request",
            "options": {},
            "formTitle": "Property Tour Request",
            "formFields": {
              "values": [
                {
                  "fieldLabel": "Full Name"
                },
                {
                  "fieldLabel": "Email"
                },
                {
                  "fieldLabel": "Phone Number"
                },
                {
                  "fieldLabel": "Interested Property ID"
                },
                {
                  "fieldLabel": "Property Name (optional)"
                }
              ]
            }
          },
          "description": "Triggers the workflow when a new form submission is received for a property tour request.",
          "typeVersion": 1
        },
        {
          "id": "299f1952-2e91-47ec-9142-a46e63b65c9d",
          "name": "1. Extract Prospect Data",
          "type": "n8n-nodes-base.function",
          "position": [
            260,
            0
          ],
          "parameters": {
            "functionCode": "const formData = items[0].json.body;\n\nconst clientName = formData['Full Name'] || '';\nconst clientEmail = formData['Email'] || '';\nconst clientPhone = formData['Phone Number'] || '';\nconst propertyId = formData['Interested Property ID'] || '';\nconst propertyName = formData['Property Name (optional)'] || `Property #${propertyId}`;\n\nreturn [\n  {\n    json: {\n      clientName: clientName,\n      clientEmail: clientEmail,\n      clientPhone: clientPhone,\n      propertyId: propertyId,\n      propertyName: propertyName\n    }\n  }\n];"
          },
          "description": "Extracts prospect and property details from the form data.",
          "typeVersion": 1
        },
        {
          "id": "2ccaeb4d-f047-4c78-95ef-118a43409587",
          "name": "2. Generate Scheduling Link",
          "type": "n8n-nodes-base.function",
          "position": [
            500,
            0
          ],
          "parameters": {
            "functionCode": "const prospectData = items[0].json;\nconst calendlyBaseLink = 'YOUR_CALENDLY_BASE_LINK_FOR_AGENT'; // Example: https://calendly.com/your-agent-name\n\nconst schedulingLink = `${calendlyBaseLink}?name=${encodeURIComponent(prospectData.clientName)}&email=${encodeURIComponent(prospectData.clientEmail)}&a1=${encodeURIComponent(prospectData.propertyName || '')}`;\n\nreturn [\n  {\n    json: {\n      ...prospectData,\n      schedulingLink: schedulingLink,\n      emailSubject: `Schedule Your Property Tour for ${prospectData.propertyName}`,\n      emailBody: `Hello ${prospectData.clientName},\n\nThank you for your interest in our property: ${prospectData.propertyName}.\n\nPlease use the link below to schedule your property tour at your most convenient time:\n\n<a href=\"${schedulingLink}\">${schedulingLink}</a>\n\nWe look forward to meeting you!\n\nSincerely,\nYour Property Agent Team`\n    }\n  }\n];"
          },
          "description": "Generates a personalized scheduling link for the prospect.",
          "typeVersion": 1
        },
        {
          "id": "ba3afff0-c72b-479f-b805-53c79cc9f59f",
          "name": "3. Send Scheduling Link (Gmail)",
          "type": "n8n-nodes-base.gmail",
          "position": [
            760,
            0
          ],
          "parameters": {
            "subject": "={{ $json.emailSubject }}",
            "additionalFields": {}
          },
          "description": "Sends an email containing the scheduling link to the prospect.",
          "typeVersion": 1
        },
        {
          "id": "858e468e-2714-4595-932b-be6a6685931b",
          "name": "4. Webhook: Schedule Confirmation (Waiting for Confirmation)",
          "type": "n8n-nodes-base.webhook",
          "position": [
            0,
            300
          ],
          "webhookId": "5044cb70-b120-49c5-a65e-4c1ffddfda64",
          "parameters": {
            "path": "calendly-tour-confirm",
            "options": {}
          },
          "description": "Receives a webhook from the scheduling tool (e.g., Calendly) once a tour is scheduled.",
          "typeVersion": 1
        },
        {
          "id": "6c467579-91c4-4c69-90f7-7db4b9f3527d",
          "name": "6. Send Confirmation Notification (Slack to Agent)",
          "type": "n8n-nodes-base.slack",
          "position": [
            500,
            300
          ],
          "parameters": {
            "text": "New property tour scheduled!\n\nProspect: {{ $json.payload.invitee.first_name }} {{ $json.payload.invitee.last_name }} ({{ $json.payload.invitee.email }})\nProperty: {{ $json.payload.event.name }}\nDate & Time: {{ new Date($json.payload.event.start_time).toLocaleString('en-US', { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric', hour: '2-digit', minute: '2-digit' }) }}\n\nCalendly Event Link: {{ $json.payload.event.event_show_url }}",
            "channel": "YOUR_AGENT_SLACK_CHANNEL_ID_OR_NAME",
            "attachments": [],
            "otherOptions": {},
            "authentication": "oAuth2"
          },
          "description": "Sends a tour confirmation notification to the agent via Slack.",
          "typeVersion": 1
        },
        {
          "id": "038f6c54-7751-4988-8969-35c95c327c78",
          "name": "7. Wait (For Tour Reminder)",
          "type": "n8n-nodes-base.wait",
          "position": [
            760,
            300
          ],
          "webhookId": "93166c45-24d4-4363-a24f-48beb4e0bdb3",
          "parameters": {},
          "description": "Waits until 1 hour before the tour time to send a reminder.",
          "typeVersion": 1
        },
        {
          "id": "b3f2bab3-3bc8-4ad7-b76f-8d1d74c84d9f",
          "name": "8. Send Tour Reminder (Gmail)",
          "type": "n8n-nodes-base.gmail",
          "position": [
            1000,
            300
          ],
          "parameters": {
            "subject": "Reminder: Your Property Tour for {{ $json.payload.event.name }}",
            "additionalFields": {}
          },
          "credentials": {
            "gmailOAuth2": {
              "id": "credential-id",
              "name": "gmailOAuth2 Credential"
            }
          },
          "description": "Sends a reminder email to the prospect before the tour.",
          "typeVersion": 1
        },
        {
          "id": "7defe25d-ed6a-430e-8d26-1894c8ef194e",
          "name": "5. Add Event to Agent's Calendar (Google Calendar)",
          "type": "n8n-nodes-base.googleCalendar",
          "position": [
            260,
            300
          ],
          "parameters": {
            "calendar": {
              "__rl": true,
              "mode": "list",
              "value": ""
            },
            "additionalFields": {}
          },
          "credentials": {
            "googleCalendarOAuth2Api": {
              "id": "credential-id",
              "name": "googleCalendarOAuth2Api Credential"
            }
          },
          "typeVersion": 1.3
        },
        {
          "id": "57a198d9-3c80-4c80-8bd7-0d7c058160bb",
          "name": "Sticky Note",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -980,
            -60
          ],
          "parameters": {
            "color": 4,
            "width": 860,
            "height": 3060,
            "content": "# Workflow Documentation: Property Tour Scheduling Automation (Real Estate)\n\n## Problem 😩\nManaging property tours manually can be a major bottleneck for real estate agents and agencies, leading to:\n* **Lost Leads:** Slow response times or difficulty coordinating schedules can cause interested prospects to move on.\n* **Scheduling Conflicts:** Manually juggling multiple calendars and prospect availabilities is prone to errors and double-bookings.\n* **Time Consumption:** Agents spend valuable time on administrative tasks like sending follow-ups and reminders instead of focusing on sales.\n* **No-Shows:** Lack of timely reminders can lead to prospects forgetting appointments, wasting agents' time and effort.\n\n## Solution ✨\nThis n8n workflow automates the entire property tour scheduling process, from initial inquiry to post-confirmation reminders. It ensures prospects can easily book tours at their convenience and agents are always informed, reducing manual effort, minimizing scheduling errors, and improving prospect experience.\n\n## For Who 🤝\n* **Real Estate Agents:** To streamline tour bookings and focus on client interaction.\n* **Real Estate Agencies:** To standardize and automate their lead-to-tour process.\n* **Property Managers:** For efficient scheduling of viewings for rental properties.\n* **Anyone** in real estate looking to enhance client experience and operational efficiency.\n\n## How It Works ⚙️\n\nThis workflow streamlines your property tour scheduling into two main automated flows:\n\n### A. Property Tour Request & Automated Scheduling\n1.  **Form Trigger (Property Tour Request):** 🚀 The workflow initiates immediately when a prospective client fills out a property tour interest form on your website or a dedicated landing page. This serves as the initial data input point.\n2.  **Extract Prospect Data (Function):** 🧹 This node processes the incoming form data, intelligently extracting essential details such as the prospect's full name, email, phone number, and the specific property they are interested in.\n3.  **Generate Scheduling Link (Function):** 🔗 This node dynamically constructs a personalized scheduling link (e.g., from Calendly or another scheduling tool) that is pre-configured to show your agent's real-time availability.\n4.  **Send Scheduling Link (Gmail/SMS):** 📧 An automated email or SMS containing this personalized scheduling link is instantly dispatched to the prospect, allowing them to conveniently select a tour time that fits their schedule and aligns with the agent's availability.\n\n### B. Tour Confirmation & Reminders\n1.  **Webhook: Schedule Confirmation (Waiting for Confirmation):** ⏳ The workflow patiently waits for a webhook signal from your scheduling tool (e.g., Calendly) confirming that the prospect has successfully selected and confirmed a tour slot.\n2.  **Add Event to Agent's Calendar (Google Calendar):** 🗓️ Upon confirmation, the property tour event is automatically added to the relevant agent's Google Calendar, complete with all prospect and property details, ensuring no appointments are missed.\n3.  **Send Confirmation Notification (Slack to Agent):** 📢 A detailed notification is sent to the agent's Slack channel or email, immediately informing them about the newly scheduled tour and providing all pertinent information at a glance.\n4.  **Wait (For Tour Reminder):** ⏱️ This node intelligently waits for a calculated period (e.g., 1 hour) before the scheduled tour time, ensuring the reminder is sent precisely when it's most impactful.\n5.  **Send Tour Reminder (Gmail/SMS):** 🔔 A personalized reminder email or SMS is automatically sent to the prospect a set time before the scheduled tour, significantly helping to reduce no-shows and ensure timely attendance.\n\n## How to Set Up 🛠️\n\nFollow these steps carefully to get your \"Property Tour Scheduling Automation\" workflow up and running in n8n:\n\n1.  **Import Workflow JSON:**\n    * Open your n8n instance.\n    * Click on 'Workflows' in the left sidebar.\n    * Click the '+' button or 'New' to create a new workflow.\n    * Click the '...' (More Options) icon in the top right.\n    * Select 'Import from JSON' and paste the entire JSON code for this workflow.\n\n2.  **Configure 0. Form Trigger (Property Tour Request):**\n    * Locate the '0. Form Trigger (Property Tour Request)' node.\n    * Activate the workflow. n8n will provide a unique 'Webhook URL'.\n    * **Crucial Step:** Integrate this 'Webhook URL' into your website's property tour request form (e.g., via Elementor Forms, Gravity Forms, or any other form platform). Ensure your form sends data in JSON format.\n    * **Note:** Adjust the 'Form Fields' in this node to precisely match the input fields of your form (e.g., 'Full Name', 'Email', 'Phone Number', 'Interested Property ID', 'Property Name (optional)').\n\n3.  **Configure 1. Extract Prospect Data (Function):**\n    * Locate the '1. Extract Prospect Data' node.\n    * **Adjust Field Names:** Review the `functionCode` within this node. **You MUST adjust the variable assignments (e.g., `formData['Full Name']`, `formData['Interested Property ID']`)** to accurately match the exact field names sent by your *form trigger*. Use the 'Test Workflow' feature in n8n (after submitting a test form entry) to inspect the incoming `items[0].json.body` data structure and make precise adjustments.\n\n4.  **Configure 2. Generate Scheduling Link (Function):**\n    * Locate the '2. Generate Scheduling Link' node.\n    * **Set Base Scheduling URL:** Inside the `functionCode`, **replace `'YOUR_CALENDLY_BASE_LINK_FOR_AGENT'`** with the base URL of your Calendly or other scheduling tool link (e.g., `https://calendly.com/your-agent-name`).\n    * **Adjust Parameters:** If your scheduling tool supports URL parameters for pre-filling information (e.g., prospect name, email), adjust the code to include them (e.g., `?name=${encodeURIComponent(prospectData.clientName)}&email=${encodeURIComponent(prospectData.clientEmail)}`).\n\n5.  **Configure 3. Send Scheduling Link (Gmail):**\n    * Locate the '3. Send Scheduling Link (Gmail)' node.\n    * **Credentials:** Select your existing Gmail OAuth2 credential or click 'Create New' to set one up. Replace `YOUR_GMAIL_CREDENTIAL_ID` with the actual ID or name of your credential from your n8n credentials.\n    * **From Email:** Replace `your-agent-email@example.com` with the desired sending email address for tour requests.\n    * The 'To Email', 'Subject', and 'HTML' body fields will be dynamically populated from the previous 'Function' node.\n    * **(Optional: Switch to SMS):** Delete this Gmail node and add a Twilio node. Configure its credentials, 'From Phone Number', 'To Phone Number' (from prospect data), and 'Message' (include the scheduling link).\n\n6.  **Configure 4. Webhook: Schedule Confirmation (Waiting for Confirmation):**\n    * Locate the '4. Webhook: Schedule Confirmation (Waiting for Confirmation)' node.\n    * Activate the workflow. n8n will provide a unique 'Webhook URL'.\n    * **Crucial Step:** In your scheduling tool (e.g., Calendly), configure a webhook to send data to this n8n URL whenever an event is scheduled or confirmed. This is vital for the workflow to proceed after the prospect selects a time.\n\n7.  **Configure 5. Add Event to Agent's Calendar (Google Calendar):**\n    * Locate the '5. Add Event to Agent's Calendar (Google Calendar)' node.\n    * **Credentials:** Select your existing Google Calendar OAuth2 credential or create a new one. Replace `YOUR_GOOGLE_CALENDAR_CREDENTIAL_ID` with the actual ID or name of your credential.\n    * **Calendar ID:** Replace `YOUR_AGENT_CALENDAR_ID` with the specific calendar ID of the agent where you want to add the event.\n    * **Adjust Event Details:** Ensure 'Event Name', 'Start Date & Time', 'End Date & Time', and 'Description' use the correct expressions to pull data from the incoming scheduling tool webhook (e.g., `{{ $json.payload.event.start_time }}`).\n\n8.  **Configure 6. Send Confirmation Notification (Slack to Agent):**\n    * Locate the '6. Send Confirmation Notification (Slack to Agent)' node.\n    * **Credentials:** Ensure your Slack API credential is selected.\n    * **Channel:** Replace `YOUR_AGENT_SLACK_CHANNEL_ID_OR_NAME` with the exact ID or name of the Slack channel where agents receive tour scheduling notifications (e.g., `#tour-bookings`).\n    * **(Optional: Switch to Email):** Delete this Slack node and add a Gmail or SendGrid node. Configure its credentials, 'To Email' (agent's email), 'Subject', and 'HTML' body.\n\n9.  **Configure 7. Wait (For Tour Reminder):**\n    * Locate the '7. Wait (For Tour Reminder)' node.\n    * **Time Calculation:** The node is set to wait until 1 hour before the scheduled tour start time (`{{ $json.payload.event.start_time }}`).\n    * **Timezone:** **Replace `YOUR_TIMEZONE_LIKE_Asia/Jakarta`** with your actual timezone (e.g., `America/New_York`, `Europe/London`). This is crucial for accurate timing.\n\n10. **Configure 8. Send Tour Reminder (Gmail):**\n    * Locate the '8. Send Tour Reminder (Gmail)' node.\n    * **Credentials:** Ensure your Gmail API credential is selected.\n    * **From Email:** Replace `your-agent-email@example.com` with the sending email address.\n    * **(Optional: Switch to SMS):** Delete this Gmail node and add a Twilio node, configuring it similarly to step 5 for SMS reminders.\n\n11. **Review and Activate:**\n    * Thoroughly review all node configurations. Ensure all placeholder values (like `YOUR_...`) are replaced with your actual information and settings are correct.\n    * Click the 'Save' button in the top right corner.\n    * Finally, toggle the 'Inactive' switch to 'Active' to enable your workflow. 🟢 Your \"Property Tour Scheduling Automation\" workflow is now live, ready to help you manage tours seamlessly!"
          },
          "typeVersion": 1
        },
        {
          "id": "942b5de8-b2ac-4049-a994-94f72adcf96b",
          "name": "Sticky Note1",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -80,
            -60
          ],
          "parameters": {
            "color": 3,
            "width": 1040,
            "height": 260,
            "content": "## Property Tour Request & Automated Scheduling"
          },
          "typeVersion": 1
        },
        {
          "id": "5d6eafd1-1688-419d-88a1-dca10952fd1f",
          "name": "Sticky Note2",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -80,
            240
          ],
          "parameters": {
            "color": 3,
            "width": 1280,
            "height": 260,
            "content": "## Tour Confirmation & Reminders"
          },
          "typeVersion": 1
        }
      ],
      "active": false,
      "pinData": {},
      "settings": {
        "executionOrder": "v1"
      },
      "versionId": "4fda4a0a-1ae5-457e-8f9a-4cb9465257ac",
      "connections": {
        "1. Extract Prospect Data": {
          "main": [
            [
              {
                "node": "2. Generate Scheduling Link",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "2. Generate Scheduling Link": {
          "main": [
            [
              {
                "node": "3. Send Scheduling Link (Gmail)",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "7. Wait (For Tour Reminder)": {
          "main": [
            [
              {
                "node": "8. Send Tour Reminder (Gmail)",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "0. Form Trigger (Property Tour Request)": {
          "main": [
            [
              {
                "node": "1. Extract Prospect Data",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "5. Add Event to Agent's Calendar (Google Calendar)": {
          "main": [
            [
              {
                "node": "6. Send Confirmation Notification (Slack to Agent)",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "6. Send Confirmation Notification (Slack to Agent)": {
          "main": [
            [
              {
                "node": "7. Wait (For Tour Reminder)",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "4. Webhook: Schedule Confirmation (Waiting for Confirmation)": {
          "main": [
            [
              {
                "node": "5. Add Event to Agent's Calendar (Google Calendar)",
                "type": "main",
                "index": 0
              }
            ]
          ]
        }
      }
    },
    "lastUpdatedBy": 29,
    "workflowInfo": {
      "nodeCount": 12,
      "nodeTypes": {
        "n8n-nodes-base.wait": {
          "count": 1
        },
        "n8n-nodes-base.gmail": {
          "count": 2
        },
        "n8n-nodes-base.slack": {
          "count": 1
        },
        "n8n-nodes-base.webhook": {
          "count": 1
        },
        "n8n-nodes-base.function": {
          "count": 2
        },
        "n8n-nodes-base.stickyNote": {
          "count": 3
        },
        "n8n-nodes-base.formTrigger": {
          "count": 1
        },
        "n8n-nodes-base.googleCalendar": {
          "count": 1
        }
      }
    },
    "status": "published",
    "user": {
      "name": "Marth",
      "username": "marth",
      "bio": "Simplifying Business with Smart Automation. I create and share user-friendly, highly efficient n8n workflow templates for SMEs, focusing on digital marketing, sales, and operational excellence. Get ready to automate, innovate, and elevate your business.\n\nConnect me on Linkedin for custom solutions.",
      "verified": true,
      "links": [
        "https://www.linkedin.com/in/bhetamaranatha"
      ],
      "avatar": "https://gravatar.com/avatar/b171aefe1210cde17102cd98e0b287ee9ea093abef7da61644ae1d0a6c506894?r=pg&d=retro&size=200"
    },
    "nodes": [
      {
        "id": 14,
        "icon": "fa:code",
        "name": "n8n-nodes-base.function",
        "codex": {
          "data": {
            "alias": [
              "Code",
              "Javascript",
              "Custom Code",
              "Script",
              "cpde"
            ],
            "details": "The Function node allows you to execute JavaScript in your workflow. Unlike the Function Item node, this node does not operate on incoming node data per-item. Instead, you must iterate over multiple items of incoming data yourself. This can be useful if you're performing data transformation where you want to manipulate the number of items being outputted by the node (i.e. 1 item is inputted in with nested object, 10 items are outputted without any nested objects)",
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/2021-goals-level-up-your-vocabulary-with-vonage-and-n8n/",
                  "icon": "🎯",
                  "label": "2021 Goals: Level Up Your Vocabulary With Vonage and n8n"
                },
                {
                  "url": "https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/",
                  "icon": "🏭",
                  "label": "Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"
                },
                {
                  "url": "https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/",
                  "icon": "☀️",
                  "label": "2021: The Year to Automate the New You with n8n"
                },
                {
                  "url": "https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/",
                  "icon": "🧬",
                  "label": "Why business process automation with n8n can change your daily life"
                },
                {
                  "url": "https://n8n.io/blog/why-i-chose-n8n-over-zapier-in-2020/",
                  "icon": "😍",
                  "label": "Why I chose n8n over Zapier in 2020"
                },
                {
                  "url": "https://n8n.io/blog/how-to-host-virtual-coffee-breaks-with-n8n/",
                  "icon": "☕️",
                  "label": "How to host virtual coffee breaks with n8n"
                },
                {
                  "url": "https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/",
                  "icon": "📈",
                  "label": "Automatically pulling and visualizing data with n8n"
                },
                {
                  "url": "https://n8n.io/blog/database-monitoring-and-alerting-with-n8n/",
                  "icon": "📡",
                  "label": "Database Monitoring and Alerting with n8n"
                },
                {
                  "url": "https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/",
                  "icon": "🎫",
                  "label": "Supercharging your conference registration process with n8n"
                },
                {
                  "url": "https://n8n.io/blog/creating-triggers-for-n8n-workflows-using-polling/",
                  "icon": "⏲",
                  "label": "Creating triggers for n8n workflows using polling"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/",
                  "icon": "🔗",
                  "label": "How to build a low-code, self-hosted URL shortener in 3 steps"
                },
                {
                  "url": "https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/",
                  "icon": "👦",
                  "label": "Build your own virtual assistant with n8n: A step by step guide"
                },
                {
                  "url": "https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/",
                  "icon": " 🕸️",
                  "label": "How uProc scraped a multi-page website with a low-code workflow"
                },
                {
                  "url": "https://n8n.io/blog/how-to-automatically-give-kudos-to-contributors-with-github-slack-and-n8n/",
                  "icon": "👏",
                  "label": "How to automatically give kudos to contributors with GitHub, Slack, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/",
                  "icon": "🤖",
                  "label": "5 workflow automations for Mattermost that we love at n8n"
                },
                {
                  "url": "https://n8n.io/blog/tracking-time-spent-in-meetings-with-google-calendar-twilio-and-n8n/",
                  "icon": "🗓",
                  "label": "Tracking Time Spent in Meetings With Google Calendar, Twilio, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/creating-error-workflows-in-n8n/",
                  "icon": "🌪",
                  "label": "Creating Error Workflows in n8n"
                },
                {
                  "url": "https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/",
                  "icon": "🙌",
                  "label": "Sending Automated Congratulations with Google Sheets, Twilio, and n8n "
                },
                {
                  "url": "https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/",
                  "icon": "📈",
                  "label": "How a Membership Development Manager automates his work and investments"
                },
                {
                  "url": "https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/",
                  "icon": "🛵",
                  "label": "How Goomer automated their operations with over 200 n8n workflows"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"
                }
              ]
            },
            "categories": [
              "Development",
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Data Transformation"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Function",
          "color": "#FF9922"
        },
        "iconData": {
          "icon": "code",
          "type": "icon"
        },
        "displayName": "Function",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 5,
            "name": "Development"
          },
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 40,
        "icon": "file:slack.svg",
        "name": "n8n-nodes-base.slack",
        "codex": {
          "data": {
            "alias": [
              "human",
              "form",
              "wait",
              "hitl",
              "approval"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/",
                  "icon": "⚙️",
                  "label": "Automate your data processing pipeline in 9 steps"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/",
                  "icon": "👦",
                  "label": "Build your own virtual assistant with n8n: A step by step guide"
                },
                {
                  "url": "https://n8n.io/blog/how-to-automatically-give-kudos-to-contributors-with-github-slack-and-n8n/",
                  "icon": "👏",
                  "label": "How to automatically give kudos to contributors with GitHub, Slack, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/automations-for-activists/",
                  "icon": "✨",
                  "label": "How Common Knowledge use workflow automation for activism"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.slack/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/slack/"
                }
              ]
            },
            "categories": [
              "Communication",
              "HITL"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "HITL": [
                "Human in the Loop"
              ]
            }
          }
        },
        "group": "[\"output\"]",
        "defaults": {
          "name": "Slack"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgMTUwLjg1MiAxNTAuODUyIj48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIuOTI2IiB5PSIuOTI2Ii8+PHN5bWJvbCBpZD0iYSIgb3ZlcmZsb3c9InZpc2libGUiPjxnIHN0cm9rZS13aWR0aD0iMS44NTIiPjxwYXRoIGZpbGw9IiNlMDFlNWEiIHN0cm9rZT0iI2UwMWU1YSIgZD0iTTQwLjc0MSA5My41NWMwLTguNzM1IDYuNjA3LTE1Ljc3MiAxNC44MTUtMTUuNzcyczE0LjgxNSA3LjAzNyAxNC44MTUgMTUuNzcydjM4LjgyNGMwIDguNzM3LTYuNjA3IDE1Ljc3NC0xNC44MTUgMTUuNzc0cy0xNC44MTUtNy4wMzctMTQuODE1LTE1Ljc3MnoiLz48cGF0aCBmaWxsPSIjZWNiMjJkIiBzdHJva2U9IiNlY2IyMmQiIGQ9Ik05My41NSAxMDcuNDA4Yy04LjczNSAwLTE1Ljc3Mi02LjYwNy0xNS43NzItMTQuODE1czcuMDM3LTE0LjgxNSAxNS43NzItMTQuODE1aDM4LjgyNmM4LjczNSAwIDE1Ljc3MiA2LjYwNyAxNS43NzIgMTQuODE1cy03LjAzNyAxNC44MTUtMTUuNzcyIDE0LjgxNXoiLz48cGF0aCBmaWxsPSIjMmZiNjdjIiBzdHJva2U9IiMyZmI2N2MiIGQ9Ik03Ny43NzggMTUuNzcyQzc3Ljc3OCA3LjAzNyA4NC4zODUgMCA5Mi41OTMgMHMxNC44MTUgNy4wMzcgMTQuODE1IDE1Ljc3MnYzOC44MjZjMCA4LjczNS02LjYwNyAxNS43NzItMTQuODE1IDE1Ljc3MnMtMTQuODE1LTcuMDM3LTE0LjgxNS0xNS43NzJ6Ii8+PHBhdGggZmlsbD0iIzM2YzVmMSIgc3Ryb2tlPSIjMzZjNWYxIiBkPSJNMTUuNzcyIDcwLjM3MUM3LjAzNyA3MC4zNzEgMCA2My43NjMgMCA1NS41NTZzNy4wMzctMTQuODE1IDE1Ljc3Mi0xNC44MTVoMzguODI2YzguNzM1IDAgMTUuNzcyIDYuNjA3IDE1Ljc3MiAxNC44MTVzLTcuMDM3IDE0LjgxNS0xNS43NzIgMTQuODE1eiIvPjxnIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiPjxwYXRoIGZpbGw9IiNlY2IyMmQiIHN0cm9rZT0iI2VjYjIyZCIgZD0iTTc3Ljc3OCAxMzMuMzMzYzAgOC4yMDggNi42MDcgMTQuODE1IDE0LjgxNSAxNC44MTVzMTQuODE1LTYuNjA3IDE0LjgxNS0xNC44MTUtNi42MDctMTQuODE1LTE0LjgxNS0xNC44MTVINzcuNzc4eiIvPjxwYXRoIGZpbGw9IiMyZmI2N2MiIHN0cm9rZT0iIzJmYjY3YyIgZD0iTTEzMy4zMzQgNzAuMzcxaC0xNC44MTVWNTUuNTU2YzAtOC4yMDcgNi42MDctMTQuODE1IDE0LjgxNS0xNC44MTVzMTQuODE1IDYuNjA3IDE0LjgxNSAxNC44MTUtNi42MDcgMTQuODE1LTE0LjgxNSAxNC44MTV6Ii8+PHBhdGggZmlsbD0iI2UwMWU1YSIgc3Ryb2tlPSIjZTAxZTVhIiBkPSJNMTQuODE1IDc3Ljc3OEgyOS42M3YxNC44MTVjMCA4LjIwNy02LjYwNyAxNC44MTUtMTQuODE1IDE0LjgxNVMwIDEwMC44IDAgOTIuNTkzczYuNjA3LTE0LjgxNSAxNC44MTUtMTQuODE1eiIvPjxwYXRoIGZpbGw9IiMzNmM1ZjEiIHN0cm9rZT0iIzM2YzVmMSIgZD0iTTcwLjM3MSAxNC44MTVWMjkuNjNINTUuNTU2Yy04LjIwNyAwLTE0LjgxNS02LjYwNy0xNC44MTUtMTQuODE1UzQ3LjM0OCAwIDU1LjU1NiAwczE0LjgxNSA2LjYwNyAxNC44MTUgMTQuODE1eiIvPjwvZz48L2c+PC9zeW1ib2w+PC9zdmc+"
        },
        "displayName": "Slack",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          },
          {
            "id": 28,
            "name": "HITL"
          }
        ]
      },
      {
        "id": 47,
        "icon": "file:webhook.svg",
        "name": "n8n-nodes-base.webhook",
        "codex": {
          "data": {
            "alias": [
              "HTTP",
              "API",
              "Build",
              "WH"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/",
                  "icon": "✍️",
                  "label": "Learn how to automatically cross-post your content with n8n"
                },
                {
                  "url": "https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/",
                  "icon": "🛳",
                  "label": "Running n8n on ships: An interview with Maranics"
                },
                {
                  "url": "https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/",
                  "icon": "🔗",
                  "label": "How to build a low-code, self-hosted URL shortener in 3 steps"
                },
                {
                  "url": "https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/",
                  "icon": " 🪢",
                  "label": "What are APIs and how to use them with no code"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/",
                  "icon": "💻",
                  "label": "How a digital strategist uses n8n for online marketing"
                },
                {
                  "url": "https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/",
                  "icon": "📹",
                  "label": "The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/how-to-automatically-give-kudos-to-contributors-with-github-slack-and-n8n/",
                  "icon": "👏",
                  "label": "How to automatically give kudos to contributors with GitHub, Slack, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/",
                  "icon": "🤖",
                  "label": "5 workflow automations for Mattermost that we love at n8n"
                },
                {
                  "url": "https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/",
                  "icon": "🧠",
                  "label": "Why this Product Manager loves workflow automation with n8n"
                },
                {
                  "url": "https://n8n.io/blog/creating-custom-incident-response-workflows-with-n8n/",
                  "label": "How to automate every step of an incident response workflow"
                },
                {
                  "url": "https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/",
                  "icon": "🧰",
                  "label": "Learn to Build Powerful API Endpoints Using Webhooks"
                },
                {
                  "url": "https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/",
                  "icon": "🦄",
                  "label": "Learn how to use webhooks with Mattermost slash commands"
                },
                {
                  "url": "https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/",
                  "icon": "🛵",
                  "label": "How Goomer automated their operations with over 200 n8n workflows"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.webhook/"
                }
              ]
            },
            "categories": [
              "Development",
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers"
              ]
            }
          }
        },
        "group": "[\"trigger\"]",
        "defaults": {
          "name": "Webhook"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTM1IDM3Yy0yLjIgMC00LTEuOC00LTRzMS44LTQgNC00IDQgMS44IDQgNC0xLjggNC00IDQiLz48cGF0aCBmaWxsPSIjMzc0NzRmIiBkPSJNMzUgNDNjLTMgMC01LjktMS40LTcuOC0zLjdsMy4xLTIuNWMxLjEgMS40IDIuOSAyLjMgNC43IDIuMyAzLjMgMCA2LTIuNyA2LTZzLTIuNy02LTYtNmMtMSAwLTIgLjMtMi45LjdsLTEuNyAxTDIzLjMgMTZsMy41LTEuOSA1LjMgOS40YzEtLjMgMi0uNSAzLS41IDUuNSAwIDEwIDQuNSAxMCAxMFM0MC41IDQzIDM1IDQzIi8+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTE0IDQzQzguNSA0MyA0IDM4LjUgNCAzM2MwLTQuNiAzLjEtOC41IDcuNS05LjdsMSAzLjlDOS45IDI3LjkgOCAzMC4zIDggMzNjMCAzLjMgMi43IDYgNiA2czYtMi43IDYtNnYtMmgxNXY0SDIzLjhjLS45IDQuNi01IDgtOS44IDgiLz48cGF0aCBmaWxsPSIjZTkxZTYzIiBkPSJNMTQgMzdjLTIuMiAwLTQtMS44LTQtNHMxLjgtNCA0LTQgNCAxLjggNCA0LTEuOCA0LTQgNCIvPjxwYXRoIGZpbGw9IiMzNzQ3NGYiIGQ9Ik0yNSAxOWMtMi4yIDAtNC0xLjgtNC00czEuOC00IDQtNCA0IDEuOCA0IDQtMS44IDQtNCA0Ii8+PHBhdGggZmlsbD0iI2U5MWU2MyIgZD0ibTE1LjcgMzQtMy40LTIgNS45LTkuN2MtMi0xLjktMy4yLTQuNS0zLjItNy4zIDAtNS41IDQuNS0xMCAxMC0xMHMxMCA0LjUgMTAgMTBjMCAuOS0uMSAxLjctLjMgMi41bC0zLjktMWMuMS0uNS4yLTEgLjItMS41IDAtMy4zLTIuNy02LTYtNnMtNiAyLjctNiA2YzAgMi4xIDEuMSA0IDIuOSA1LjFsMS43IDF6Ii8+PC9zdmc+"
        },
        "displayName": "Webhook",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 5,
            "name": "Development"
          },
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 317,
        "icon": "file:googleCalendar.svg",
        "name": "n8n-nodes-base.googleCalendar",
        "codex": {
          "data": {
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/how-to-host-virtual-coffee-breaks-with-n8n/",
                  "icon": "☕️",
                  "label": "How to host virtual coffee breaks with n8n"
                },
                {
                  "url": "https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/",
                  "icon": "🎫",
                  "label": "Supercharging your conference registration process with n8n"
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/your-business-doesnt-need-you-to-operate/",
                  "icon": " 🖥️",
                  "label": "Hey founders! Your business doesn't need you to operate"
                },
                {
                  "url": "https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/",
                  "icon": "🤖",
                  "label": "5 workflow automation for Mattermost that we love at n8n"
                },
                {
                  "url": "https://n8n.io/blog/tracking-time-spent-in-meetings-with-google-calendar-twilio-and-n8n/",
                  "icon": "🗓",
                  "label": "Tracking Time Spent in Meetings With Google Calendar, Twilio, and n8n"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googlecalendar/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"
                }
              ]
            },
            "categories": [
              "Productivity"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"input\"]",
        "defaults": {
          "name": "Google Calendar"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgODEgODIiPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9ImEiIG92ZXJmbG93PSJ2aXNpYmxlIj48ZyBmaWxsLXJ1bGU9Im5vbnplcm8iIHN0cm9rZT0ibm9uZSI+PHBhdGggZD0iTTYxLjA1MiAxOC45NDdIMTguOTQ3djQyLjEwNWg0Mi4xMDV6Ii8+PHBhdGggZmlsbD0iI2VhNDMzNSIgZD0iTTYxLjA1MyA4MCA4MCA2MS4wNTNINjEuMDUzeiIvPjxwYXRoIGZpbGw9IiNmYmJjMDQiIGQ9Ik04MCAxOC45NDdINjEuMDUzdjQyLjEwNUg4MHoiLz48cGF0aCBmaWxsPSIjMzRhODUzIiBkPSJNNjEuMDUyIDYxLjA1M0gxOC45NDdWODBoNDIuMTA1eiIvPjxwYXRoIGZpbGw9IiMxODgwMzgiIGQ9Ik0wIDYxLjA1M3YxMi42MzJBNi4zMTQgNi4zMTQgMCAwIDAgNi4zMTYgODBoMTIuNjMyVjYxLjA1M3oiLz48cGF0aCBmaWxsPSIjMTk2N2QyIiBkPSJNODAgMTguOTQ3VjYuMzE2QTYuMzE0IDYuMzE0IDAgMCAwIDczLjY4NSAwSDYxLjA1M3YxOC45NDd6Ii8+PHBhdGggZmlsbD0iIzQyODVmNCIgZD0iTTYxLjA1MyAwSDYuMzE2QTYuMzE0IDYuMzE0IDAgMCAwIDAgNi4zMTZ2NTQuNzM3aDE4Ljk0N1YxOC45NDdoNDIuMTA1VjB6TTI3LjU4NCA1MS42MTFjLTEuNTc0LTEuMDYzLTIuNjYzLTIuNjE2LTMuMjU4LTQuNjY4bDMuNjUzLTEuNTA1cS40OTggMS44OTQgMS43MzcgMi45MzdjMS4yMzkgMS4wNDMgMS44MjEgMS4wMzcgMi45ODkgMS4wMzdxMS43OTIgMCAzLjA3OS0xLjA4OWMxLjI4Ny0xLjA4OSAxLjI5LTEuNjUzIDEuMjktMi43NzRhMy40NCAzLjQ0IDAgMCAwLTEuMzU4LTIuODExYy0uOTA1LS43MjctMi4wNDItMS4wODktMy40LTEuMDg5aC0yLjExMXYtMy42MTZIMzIuMXExLjc1MiAwIDIuOTUzLS45NDdjMS4yMDEtLjk0NyAxLjItMS40OTUgMS4yLTIuNTk1cTAtMS40NjctMS4wNzQtMi4zNDJjLTEuMDc0LS44NzUtMS42MjEtLjg3OS0yLjcyMS0uODc5cS0xLjYxLS4wMDItMi41NTguODU4Yy0uOTQ4Ljg2LTEuMTA2IDEuMzAxLTEuMzc5IDIuMTExbC0zLjYxNi0xLjUwNWMuNDc5LTEuMzU4IDEuMzU4LTIuNTU4IDIuNjQ3LTMuNTk1czIuOTM3LTEuNTU4IDQuOTM3LTEuNTU4cTIuMjItLjAwMiAzLjk4OS44NThjMS43NjkuODYgMi4xMDUgMS4zNjggMi43NzQgMi4zNzlzMSAyLjE1MyAxIDMuNDE2cTAgMS45MzItLjkzMiAzLjI3NGMtLjkzMiAxLjM0Mi0xLjM4NCAxLjU3OS0yLjI4OSAyLjA1OHYuMjE2YTYuOTUgNi45NSAwIDAgMSAyLjkzNyAyLjI4OXExLjE0NiAxLjUzOCAxLjE0NyAzLjY4NGMuMDAxIDIuMTQ2LS4zNjMgMi43MTEtMS4wODkgMy44MzJzLTEuNzMyIDIuMDA1LTMuMDA1IDIuNjQ3Yy0xLjI3OS42NDItMi43MTYuOTY4LTQuMzExLjk2OC0xLjg0Ny4wMDUtMy41NTMtLjUyNi01LjEyNi0xLjU4OXptMjIuNDM3LTE4LjEyNi00LjAxIDIuOS0yLjAwNS0zLjA0MiA3LjE5NS01LjE4OWgyLjc1OHYyNC40NzloLTMuOTM3VjMzLjQ4NHoiLz48L2c+PC9zeW1ib2w+PC9zdmc+"
        },
        "displayName": "Google Calendar",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 4,
            "name": "Productivity"
          }
        ]
      },
      {
        "id": 356,
        "icon": "file:gmail.svg",
        "name": "n8n-nodes-base.gmail",
        "codex": {
          "data": {
            "alias": [
              "email",
              "human",
              "form",
              "wait",
              "hitl",
              "approval"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/",
                  "icon": "🧬",
                  "label": "Why business process automation with n8n can change your daily life"
                },
                {
                  "url": "https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/",
                  "icon": "🎫",
                  "label": "Supercharging your conference registration process with n8n"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/your-business-doesnt-need-you-to-operate/",
                  "icon": " 🖥️",
                  "label": "Hey founders! Your business doesn't need you to operate"
                },
                {
                  "url": "https://n8n.io/blog/using-automation-to-boost-productivity-in-the-workplace/",
                  "icon": "💪",
                  "label": "Using Automation to Boost Productivity in the Workplace"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.gmail/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"
                }
              ]
            },
            "categories": [
              "Communication",
              "HITL"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "HITL": [
                "Human in the Loop"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Gmail"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTYiIGhlaWdodD0iMTkzIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+PHBhdGggZmlsbD0iIzQyODVGNCIgZD0iTTU4LjE4MiAxOTIuMDVWOTMuMTRMMjcuNTA3IDY1LjA3NyAwIDQ5LjUwNHYxMjUuMDkxYzAgOS42NTggNy44MjUgMTcuNDU1IDE3LjQ1NSAxNy40NTV6Ii8+PHBhdGggZmlsbD0iIzM0QTg1MyIgZD0iTTE5Ny44MTggMTkyLjA1aDQwLjcyN2M5LjY1OSAwIDE3LjQ1NS03LjgyNiAxNy40NTUtMTcuNDU1VjQ5LjUwNWwtMzEuMTU2IDE3LjgzNy0yNy4wMjYgMjUuNzk4eiIvPjxwYXRoIGZpbGw9IiNFQTQzMzUiIGQ9Im01OC4xODIgOTMuMTQtNC4xNzQtMzguNjQ3IDQuMTc0LTM2Ljk4OUwxMjggNjkuODY4bDY5LjgxOC01Mi4zNjQgNC42NyAzNC45OTItNC42NyA0MC42NDRMMTI4IDE0NS41MDR6Ii8+PHBhdGggZmlsbD0iI0ZCQkMwNCIgZD0iTTE5Ny44MTggMTcuNTA0VjkzLjE0TDI1NiA0OS41MDRWMjYuMjMxYzAtMjEuNTg1LTI0LjY0LTMzLjg5LTQxLjg5LTIwLjk0NXoiLz48cGF0aCBmaWxsPSIjQzUyMjFGIiBkPSJtMCA0OS41MDQgMjYuNzU5IDIwLjA3TDU4LjE4MiA5My4xNFYxNy41MDRMNDEuODkgNS4yODZDMjQuNjEtNy42NiAwIDQuNjQ2IDAgMjYuMjN6Ii8+PC9zdmc+"
        },
        "displayName": "Gmail",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          },
          {
            "id": 28,
            "name": "HITL"
          }
        ]
      },
      {
        "id": 514,
        "icon": "fa:pause-circle",
        "name": "n8n-nodes-base.wait",
        "codex": {
          "data": {
            "alias": [
              "pause",
              "sleep",
              "delay",
              "timeout"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.wait/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers",
                "Flow"
              ]
            }
          }
        },
        "group": "[\"organization\"]",
        "defaults": {
          "name": "Wait",
          "color": "#804050"
        },
        "iconData": {
          "icon": "pause-circle",
          "type": "icon"
        },
        "displayName": "Wait",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 565,
        "icon": "fa:sticky-note",
        "name": "n8n-nodes-base.stickyNote",
        "codex": {
          "data": {
            "alias": [
              "Comments",
              "Notes",
              "Sticky"
            ],
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers"
              ]
            }
          }
        },
        "group": "[\"input\"]",
        "defaults": {
          "name": "Sticky Note",
          "color": "#FFD233"
        },
        "iconData": {
          "icon": "sticky-note",
          "type": "icon"
        },
        "displayName": "Sticky Note",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 1225,
        "icon": "file:form.svg",
        "name": "n8n-nodes-base.formTrigger",
        "codex": {
          "data": {
            "alias": [
              "table",
              "submit",
              "post"
            ],
            "resources": {
              "generic": [],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.formtrigger/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Other Trigger Nodes"
              ]
            }
          }
        },
        "group": "[\"trigger\"]",
        "defaults": {
          "name": "On form submission"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NiIgaGVpZ2h0PSI0MCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzAwQjdCQyIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzQuOTc4IDM3LjczMmExLjU2IDEuNTYgMCAwIDEtMS41NjIgMS41NjNINi4yNmExLjU2IDEuNTYgMCAwIDEtMS41NjMtMS41NjNWOS42MDdjMC0uNDA1LjE1Ny0uNzk0LjQzOC0xLjA4Nmw2LjMwNC02LjUzMXY1LjM0NEg4LjIxM2ExLjE3MiAxLjE3MiAwIDEgMCAwIDIuMzQzaDQuNDNhMS4xNyAxLjE3IDAgMCAwIDEuMTcxLTEuMTcxVi4yMzJoMTkuNjAyYTEuNTYgMS41NiAwIDAgMSAxLjU2MiAxLjU2M3YxMC4zMjdsLTIuODYgMi44Ni04LjI1MiA4LjI3NmE0MTMuMDA2IDQxMy4wMDYgMCAwIDEtMS42NTQgMS42NjJsLS4zMzcuMzM3YTIgMiAwIDAgMC0uNTU3IDEuMDhMMjAuMyAzMS45MjJjLS4xMDguNjM4LS4yMTUgMS4wNzkuMjExIDEuNDE4LjQwMy4zMi45LjE3NCAxLjU0LjA2Nmw1LjQwOC0uOTI4YTIgMiAwIDAgMCAxLjA4LS41NTZsNi40NC02LjQyOXptLTI0LjAzLTIxLjI2NWExLjE4IDEuMTggMCAwIDAgMS4xNzEgMS4xNzJoMTMuMTYzYTEuMTcyIDEuMTcyIDAgMSAwIDAtMi4zNDRIMTIuMTE5YTEuMTcgMS4xNyAwIDAgMC0xLjE3MiAxLjE3Mm03LjI5NCAxNC43NjZhMS4xNyAxLjE3IDAgMCAwLTEuMTcyLTEuMTcySDEyLjEyYTEuMTcyIDEuMTcyIDAgMSAwIDAgMi4zNDNoNC45NTFhMS4xNyAxLjE3IDAgMCAwIDEuMTcyLTEuMTcybS44Ni03LjM5MWExLjE3IDEuMTcgMCAwIDAtMS4xNzItMS4xNzJoLTUuODExYTEuMTcyIDEuMTcyIDAgMSAwIDAgMi4zNDNoNS44MWExLjE2NCAxLjE2NCAwIDAgMCAxLjE3My0xLjE3MSIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iIzAwQjdCQyIgZD0ibTMzLjUzMiAxNi4zOTcgNC4yODktNC4yODkgMy43NTggMy43MSAxLjYxNy0xLjYxNiAyLjI1OCAyLjI1N2MuMjE4LjIxOC4zNC41MTMuMzQzLjgyLS4wMDIuMzExLS4xMjUuNjA4LS4zNDQuODNsLTYuODA0IDYuNzk2YTEuMTMgMS4xMyAwIDAgMS0uODI4LjM0MyAxLjE1IDEuMTUgMCAwIDEtLjgyOC0uMzQzIDEuMTggMS4xOCAwIDAgMSAwLTEuNjU3bDUuOTc2LTUuOTY4LTEuMzEyLTEuMzEzLTEuMzgzIDEuNDE0LTEzLjE0OSAxMy4xMjUtNC42MTcuNzgyLjc4Mi00LjYxNy4zMzYtLjMzNyAyLjU2MiAyLjU1NWExLjEgMS4xIDAgMCAwIC44MjguMzQ0Yy4zMTIuMDA1LjYxMi0uMTIuODI4LS4zNDRhMS4xOCAxLjE4IDAgMCAwIDAtMS42NTZsLTIuNTYyLTIuNTYyek00NC43MzYgMTIuMjRjMCAuNDE0LS4xNjMuODEtLjQ1NCAxLjEwMmwtLjkyMi45MTQtMy44NTItMy44MjguOTMtLjkzYTEuNTYzIDEuNTYzIDAgMCAxIDIuMjAzIDBsMS42NCAxLjY0MWMuMjkxLjI5My40NTUuNjkuNDU1IDEuMTAyIi8+PC9zdmc+"
        },
        "displayName": "n8n Form Trigger",
        "typeVersion": 3,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      }
    ],
    "categories": [
      {
        "id": 38,
        "name": "Lead Nurturing"
      }
    ],
    "image": []
  }
}