{
  "name": "PG Automation Workflow (Guest Onboarding + Stay Management)",
  "nodes": [
    { 
      "parameters": {
        "updates": [
          "com.twilio.messaging.inbound-message.received"
        ]
      },
      "type": "n8n-nodes-base.twilioTrigger",
      "typeVersion": 1,
      "position": [
        0,
        0
      ],
      "id": "3b1fa553-d194-4b34-babb-ffdddcfed65c",
      "name": "Twilio Trigger",
      "webhookId": "f54dd657-2d5f-45bf-bdf5-92ef7c7c1dc2",
      "credentials": {
        "twilioApi": {
          "id": "R6dWWTJFACSwxUGe",
          "name": "tarec16401 - twilio account"
        }
      }
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "={{ $json.data.body }}",
        "options": {
          "systemMessage": "=You are an AI assistant for XYZ PG located in Surat.\nYou communicate with customers on WhatsApp and help them with PG information and room booking.\n\nYour job is to answer PG related questions and help customers book a room.\n\n------------------------------------------------\n\nGENERAL GREETING\n\nIf a customer sends a greeting like:\nHello\nHi\nHey\n\nReply with:\n\nHello! 😊 Welcome to XYZ PG in Surat.\n\nI am the XYZ PG AI assistant and I’m here to help you with room bookings and PG information.\n\nHow can I assist you today?\n\n------------------------------------------------\n\nACKNOWLEDGEMENT RESPONSES\n\nIf a customer sends a short acknowledgement message such as:\n\nOkay\nOk\nYes\nYeah\nHmm\nAlright\nThanks\nThank you\n\nThen reply with:\n\nLet us know if you need any other help - we’re happy to assist! 😊\n\n------------------------------------------------\n\nPG INFORMATION\n\nIf the customer asks about PG details, answer with the following information:\n\nPG Name: XYZ PG  \nLocation: Surat  \nPer Day Rent: ₹1000  \nTotal Rooms Available: 10 (Room numbers 1 to 10)\n\nFacilities available in the room:\n\nBed  \nToilet  \nChair  \nTable  \nLocker  \nCupboard for clothes and belongings  \nBasic room utilities  \n\n------------------------------------------------\n\nROOM BOOKING\n\nIf a customer says they want to book a room, you MUST send this exact message and DO NOT modify it.\n\nTo proceed with booking a room, I'll need the following details. Please provide:\n\n1. Full Name  \n2. Phone Number  \n3. Check-in Date (DD-MM-YYYY)  \n4. Check-out Date (DD-MM-YYYY)  \n5. Number of People  \n6. Total Days of Stay  \n7. ID Proof Number  \n8. Room Number (1 to 10)\n\nAlways ask for all 8 fields.\n\n------------------------------------------------\n\nROOM AVAILABILITY CHECK\n\nAfter receiving all booking details you MUST call the tool:\n\nFetch PG Bookings\n\nThis tool returns all existing bookings stored in the Google Sheet.\n\nFrom the sheet read these fields:\n\nroom_number  \ncheck_in_date  \ncheck_out_date  \n\nIMPORTANT RULE:\n\nYou must ONLY check bookings for the SAME room number selected by the customer.\n\nIgnore bookings of all other rooms.\n\nExample:\n\nSheet Data:  \nRoom 1 → 17/03/2026 to 19/03/2026  \n\nCustomer Request:  \nRoom 4 → 17/03/2026 to 20/03/2026  \n\nSince the room numbers are different, the booking for Room 1 must be ignored.\n\nOnly check rows where:\n\nsheet.room_number == selected_room_number\n\nThen check date overlap using:\n\nrequested_checkin <= existing_checkout  \nAND  \nrequested_checkout >= existing_checkin  \n\nIf overlap is TRUE → that room is booked.  \nIf overlap is FALSE → that room is available.\n\nIf there is NO row for that room number → the room is available.\n\n------------------------------------------------\n\nIF ROOM IS ALREADY BOOKED\n\nIf the selected room is booked, reply:\n\nThe selected room is already booked for the requested dates.  \nPlease choose another room number between 1 and 10.\n\n------------------------------------------------\n\nRENT CALCULATION\n\nRoom rent is ₹1000 per day.\n\nrent_amount = total_days × 1000\n\nExamples:\n\n2 days → ₹2000  \n3 days → ₹3000  \n5 days → ₹5000  \n\n\n------------------------------------------------\n\nIMPORTANT BOOKING RULE\n\nA single phone number is allowed to have only ONE active booking at XYZ PG.\n\nBefore creating a new booking, you MUST first call the tool:\n\nFetch PG Bookings\n\nThis tool returns all existing bookings stored in the Google Sheet.\n\nThen extract the customer's phone number from the Twilio Trigger using:\n\n{{ $json.data.from.replace('whatsapp:+', '') }}\n\nExample:\n\n919876543210 → 919876543210\n\nCheck if there is already a booking where:\n\nsheet.phone_number == extracted_phone_number\n\nIf a booking already exists for that phone number, DO NOT create a new booking.\n\nInstead reply with:\n\nYou already have an active booking with XYZ PG.\n\nIf you would like to update or cancel your existing booking, please let me know and I will assist you.\n\nOnly allow a new booking if no existing booking is found for that phone number.\n\n------------------------------------------------\n\nSAVE BOOKING\n\nIf the selected room is available:\n\nCall the tool:\n\nCreate PG Booking\n\nSave the booking with these fields:\n\nbooking_id  \nname  \nphone_number  \ncheck_in_date  \ncheck_out_date  \npeople_count  \ntotal_days  \nid_proof_number  \nroom_number  \nrent_amount  \npayment_status = pending  \n\n------------------------------------------------\n\nBOOKING CONFIRMATION MESSAGE\n\nAfter the booking is successfully saved, send the following message:\n\nPG Booking Confirmed ✅\n\nBooking ID: {booking_id}  \nName: {name}  \nPhone Number: {phone_number}  \nCheck-in Date: {check_in_date}  \nCheck-out Date: {check_out_date}  \nPeople Count: {people_count}  \nTotal Days of Stay: {total_days}  \nPayment Status: pending  \nRent Amount: ₹{rent_amount}  \nRoom Number: {room_number}\n\nThank you for choosing XYZ PG.  \nWe look forward to welcoming you!\n\n------------------------------------------------\n\nBOOKING UPDATE\n\nIf a customer asks to update an existing booking:\n\nAsk the customer to provide the following details:\n\n1. Booking ID  \n2. New Check-in Date (DD-MM-YYYY)  \n3. New Check-out Date (DD-MM-YYYY)  \n4. Updated Number of People  \n\nAfter receiving these details:\n\n1. Recalculate total_days based on the new dates.  \n2. Recalculate rent_amount = total_days × 1000.  \n\nThen call the tool:\n\nUpdate PG Booking\n\nUpdate these fields in the sheet:\n\ncheck_in_date  \ncheck_out_date  \npeople_count  \ntotal_days  \nrent_amount  \n\n------------------------------------------------\n\nUPDATE CONFIRMATION MESSAGE\n\nAfter the booking is updated, send:\n\nBooking Updated Successfully ✅\n\nBooking ID: {booking_id}  \nName: {name}  \nPhone Number: {phone_number}  \nNew Check-in Date: {check_in_date}  \nNew Check-out Date: {check_out_date}  \nPeople Count: {people_count}  \nTotal Days of Stay: {total_days}  \nPayment Status: pending  \nRent Amount: ₹{rent_amount}  \nRoom Number: {room_number}\n\n------------------------------------------------\n\nCHECK BOOKING DETAILS\n\nIf a customer asks something like:\n\n\"please share my booking details\"\n\"show my booking\"\n\"my booking details\"\n\"check my booking\"\n\nThen follow this process:\n\nSTEP 1\n\nCall the tool:\n\nFetch PG Bookings\n\nThis tool returns all existing bookings stored in the Google Sheet.\n\nSTEP 2\n\nExtract the customer's phone number from the Twilio Trigger using:\n\n{{ $json.data.from.replace('whatsapp:+', '') }}\n\nThis will return the WhatsApp phone number without the \"whatsapp:+\" prefix.\n\nExample:\n\n919876543210 → 919876543210\n\nSTEP 3\n\nFind rows where:\n\nsheet.phone_number == extracted_phone_number\n\nSTEP 4\n\nIf no booking is found for that phone number, reply:\n\nWe could not find any booking associated with your phone number.\n\nIf you would like to make a new booking, please let me know and I will assist you.\n\nSTEP 5\n\nIf a booking is found, send the following message:\n\nYour Booking Details 📋\n\nBooking ID: {booking_id}  \nName: {name}  \nPhone Number: {phone_number}  \nCheck-in Date: {check_in_date}  \nCheck-out Date: {check_out_date}  \nPeople Count: {people_count}  \nTotal Days of Stay: {total_days}  \nPayment Status: {payment_status}  \nRent Amount: ₹{rent_amount}  \nRoom Number: {room_number}\n\nIf you need to update or cancel your booking, please let me know."
        }
      },
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 3.1,
      "position": [
        208,
        0
      ],
      "id": "6db68fea-c507-4307-966b-c65f96d97580",
      "name": "AI Agent"
    },
    {
      "parameters": {
        "model": {
          "__rl": true,
          "value": "gpt-4o-mini",
          "mode": "list",
          "cachedResultName": "gpt-4o-mini"
        },
        "builtInTools": {},
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "typeVersion": 1.3,
      "position": [
        -112,
        256
      ],
      "id": "9d4a26d7-bb6a-41f5-a715-832a758cecc8",
      "name": "OpenAI Chat Model",
      "credentials": {
        "openAiApi": {
          "id": "zHTJ5AI7kBmTnuvv",
          "name": "InfyOm"
        }
      }
    },
    {
      "parameters": {
        "from": "={{ $('Twilio Trigger').item.json.data.to }}",
        "to": "={{ $('Twilio Trigger').item.json.data.from }}",
        "message": "={{ $json.output }}",
        "options": {}
      },
      "type": "n8n-nodes-base.twilio",
      "typeVersion": 1,
      "position": [
        560,
        0
      ],
      "id": "bd016b03-7fc8-43be-93db-525215584073",
      "name": "Send an SMS/MMS/WhatsApp message",
      "credentials": {
        "twilioApi": {
          "id": "R6dWWTJFACSwxUGe",
          "name": "tarec16401 - twilio account"
        }
      }
    },
    {
      "parameters": {
        "sessionIdType": "customKey",
        "sessionKey": "={{ $json.data.from }}"
      },
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "typeVersion": 1.3,
      "position": [
        48,
        256
      ],
      "id": "3e6c86e4-8455-416d-a395-fe07c1026cd7",
      "name": "Simple Memory"
    },
    {
      "parameters": {
        "documentId": {
          "__rl": true,
          "value": "1o0Qy76aozl0iekI1OPVLeo--n-iETl3Ly3egdxoWDW4",
          "mode": "list",
          "cachedResultName": "PG Data Sheet",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1o0Qy76aozl0iekI1OPVLeo--n-iETl3Ly3egdxoWDW4/edit?usp=drivesdk"
        },
        "sheetName": {
          "__rl": true,
          "value": "gid=0",
          "mode": "list",
          "cachedResultName": "Sheet1",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1o0Qy76aozl0iekI1OPVLeo--n-iETl3Ly3egdxoWDW4/edit#gid=0"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.googleSheetsTool",
      "typeVersion": 4.7,
      "position": [
        208,
        256
      ],
      "id": "bdf5e65c-4292-4284-84df-96c55bae9de3",
      "name": "Fetch PG Bookings",
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "wQXWIxCRV7ybbbNL",
          "name": "heet - Google Sheets"
        }
      }
    },
    {
      "parameters": {
        "operation": "append",
        "documentId": {
          "__rl": true,
          "value": "1o0Qy76aozl0iekI1OPVLeo--n-iETl3Ly3egdxoWDW4",
          "mode": "list",
          "cachedResultName": "PG Data Sheet",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1o0Qy76aozl0iekI1OPVLeo--n-iETl3Ly3egdxoWDW4/edit?usp=drivesdk"
        },
        "sheetName": {
          "__rl": true,
          "value": "gid=0",
          "mode": "list",
          "cachedResultName": "Sheet1",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1o0Qy76aozl0iekI1OPVLeo--n-iETl3Ly3egdxoWDW4/edit#gid=0"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "name": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('name', `Customer full name who is booking the PG room.`, 'string') }}",
            "phone number": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('phone_number', `Customer full name who is booking the PG room.`, 'string') }}",
            "check_in_date": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('check_in_date', `The date when the customer will check in to the PG room.\nFormat: DD-MM-YYYY`, 'string') }}",
            "check_out_date": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('check_out_date', `The date when the customer will check out from the PG room.\nFormat: DD-MM-YYYY`, 'string') }}",
            "people_count": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('people_count', `The number of people who will stay in the room.`, 'string') }}",
            "total_days": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('total_days', `Total number of days the customer will stay in the PG room.\nCalculated from check-in date and check-out date.`, 'string') }}",
            "id_proof_number": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('id_proof_number', `Government ID proof number provided by the customer for verification.\nExample: Aadhaar, Passport, Driving License.`, 'string') }}",
            "payment_status": "Unpaid",
            "room_number": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('room_number', `Assign a room number automatically for the PG booking.\n\nThe PG has 10 rooms available with numbers from 1 to 10.\n\nBefore assigning a room, call the \"Get PG Data\" tool to check existing bookings in the sheet.\n\nIf a room is already booked for the same check-in date, do not assign that room.\n\nSelect any available room number from 1 to 10 that is not already booked for the requested check-in date.`, 'string') }}",
            "rent_amount": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('rent_amount', `Calculate the total rent amount for the booking.\n\nThe rent is ₹1000 per day.\n\nUse the formula:\nrent_amount = total_days × 1000\n\nExample:\n1 day = 1000\n2 days = 2000\n3 days = 3000\n5 days = 5000`, 'string') }}",
            "booking_id": "={{ 'BOOK-' + Date.now() }}"
          },
          "matchingColumns": [],
          "schema": [
            {
              "id": "booking_id",
              "displayName": "booking_id",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "name",
              "displayName": "name",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "phone number",
              "displayName": "phone number",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "id_proof_number",
              "displayName": "id_proof_number",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "check_in_date",
              "displayName": "check_in_date",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "check_out_date",
              "displayName": "check_out_date",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "people_count",
              "displayName": "people_count",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "total_days",
              "displayName": "total_days",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "room_number",
              "displayName": "room_number",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "rent_amount",
              "displayName": "rent_amount",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "payment_status",
              "displayName": "payment_status",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {}
      },
      "type": "n8n-nodes-base.googleSheetsTool",
      "typeVersion": 4.7,
      "position": [
        368,
        256
      ],
      "id": "0fdf65b0-f25f-4ac7-9c43-f09c65af1ac5",
      "name": "Create PG Booking",
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "wQXWIxCRV7ybbbNL",
          "name": "heet - Google Sheets"
        }
      }
    },
    {
      "parameters": {
        "operation": "update",
        "documentId": {
          "__rl": true,
          "value": "1o0Qy76aozl0iekI1OPVLeo--n-iETl3Ly3egdxoWDW4",
          "mode": "list",
          "cachedResultName": "PG Data Sheet",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1o0Qy76aozl0iekI1OPVLeo--n-iETl3Ly3egdxoWDW4/edit?usp=drivesdk"
        },
        "sheetName": {
          "__rl": true,
          "value": "gid=0",
          "mode": "list",
          "cachedResultName": "Sheet1",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1o0Qy76aozl0iekI1OPVLeo--n-iETl3Ly3egdxoWDW4/edit#gid=0"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "booking_id": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('booking_id__using_to_match_', `Unique booking ID of the booking that needs to be updated.\nUse this ID to find the correct row in the sheet.`, 'string') }}",
            "check_in_date": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('check_in_date', `Unique booking ID of the booking that needs to be updated.\nUse this ID to find the correct row in the sheet.`, 'string') }}",
            "check_out_date": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('check_out_date', `Updated check-out date for the booking in DD/MM/YYYY format.`, 'string') }}",
            "people_count": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('people_count', `Updated number of people staying in the room.`, 'string') }}",
            "total_days": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('total_days', `Total number of days between check-in and check-out.`, 'string') }}",
            "rent_amount": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('rent_amount', `Total rent amount calculated based on total_days × 1000.`, 'string') }}",
            "room_number": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('room_number', `Room number assigned for the booking (1 to 10).`, 'string') }}"
          },
          "matchingColumns": [
            "booking_id"
          ],
          "schema": [
            {
              "id": "booking_id",
              "displayName": "booking_id",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "name",
              "displayName": "name",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "phone number",
              "displayName": "phone number",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "id_proof_number",
              "displayName": "id_proof_number",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "check_in_date",
              "displayName": "check_in_date",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "check_out_date",
              "displayName": "check_out_date",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "people_count",
              "displayName": "people_count",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "total_days",
              "displayName": "total_days",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "room_number",
              "displayName": "room_number",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "rent_amount",
              "displayName": "rent_amount",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "payment_status",
              "displayName": "payment_status",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "row_number",
              "displayName": "row_number",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "number",
              "canBeUsedToMatch": true,
              "readOnly": true,
              "removed": true
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {}
      },
      "type": "n8n-nodes-base.googleSheetsTool",
      "typeVersion": 4.7,
      "position": [
        528,
        256
      ],
      "id": "1cb089c8-80e0-4e6b-92a6-be6b1feb3653",
      "name": "Update PG Booking",
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "wQXWIxCRV7ybbbNL",
          "name": "heet - Google Sheets"
        }
      }
    },
    {
      "parameters": {
        "operation": "delete",
        "documentId": {
          "__rl": true,
          "value": "1o0Qy76aozl0iekI1OPVLeo--n-iETl3Ly3egdxoWDW4",
          "mode": "list",
          "cachedResultName": "PG Data Sheet",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1o0Qy76aozl0iekI1OPVLeo--n-iETl3Ly3egdxoWDW4/edit?usp=drivesdk"
        },
        "sheetName": {
          "__rl": true,
          "value": "gid=0",
          "mode": "list",
          "cachedResultName": "Sheet1",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1o0Qy76aozl0iekI1OPVLeo--n-iETl3Ly3egdxoWDW4/edit#gid=0"
        },
        "startIndex": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Start_Row_Number', `Start row number of the booking that needs to be deleted.\n\nFirst call the \"Get PG Data\" tool and find the row where the booking_id matches the booking ID provided by the customer.\n\nUse that row number here to delete the correct booking record from the sheet.`, 'number') }}",
        "numberToDelete": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Number_of_Rows_to_Delete', `Start row number of the booking that needs to be deleted.\n\nFirst call the \"Get PG Data\" tool and find the row where the booking_id matches the booking ID provided by the customer.\n\nUse that row number here to delete the correct booking record from the sheet.`, 'number') }}"
      },
      "type": "n8n-nodes-base.googleSheetsTool",
      "typeVersion": 4.7,
      "position": [
        704,
        256
      ],
      "id": "6065288e-97e9-4f90-bb51-179d6166018e",
      "name": "Delete PG Booking",
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "wQXWIxCRV7ybbbNL",
          "name": "heet - Google Sheets"
        }
      }
    }
  ],
  "pinData": {},
  "connections": {
    "Twilio Trigger": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent": {
      "main": [
        [
          {
            "node": "Send an SMS/MMS/WhatsApp message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "AI Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Fetch PG Bookings": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Create PG Booking": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Update PG Booking": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Delete PG Booking": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": true,
  "settings": {
    "executionOrder": "v1",
    "binaryMode": "separate",
    "availableInMCP": false
  },
  "versionId": "2da02ba3-8164-4daa-864c-56462ef68acf",
  "meta": {
    "templateCredsSetupCompleted": true,
    "instanceId": "9272721148ea09184b6bbb7ce6219dab088562dd450e2df8280d57c2e34c7d84"
  },
  "id": "eEZCLWtVAh7xmY2r",
  "tags": []
}