{
  "name": "Hotel receptionist with WhatsApp, Gemini model-switching, Redis & Google Sheets",
  "nodes": [
    {
      "id": "2ccdee26-1db9-4717-b1ad-79651d7d65dc",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -368,
        -96
      ],
      "parameters": {
        "width": 336,
        "height": 224,
        "content": "💬 Workflow Overview\nThis workflow acts as an AI receptionist for hotels, built on n8n.\nGuests can message the hotel via WhatsApp, and the system automatically replies using AI with real booking or pri"
      }
    },
    {
      "id": "750f8f4d-35dd-4a82-90fd-0ef01a89888b",
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1456,
        -16
      ]
    },
    {
      "id": "1a267886-51fa-4500-ab95-6200cc512a1a",
      "name": "Simple Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        1600,
        192
      ]
    },
    {
      "id": "75cab8e8-7d1d-4730-a4b4-f9ba7f4f651e",
      "name": "Google Gemini Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        1280,
        384
      ]
    },
    {
      "id": "c3229f34-a2d5-4472-b54d-9c960a3baa0f",
      "name": "Pricing",
      "type": "n8n-nodes-base.googleSheetsTool",
      "position": [
        1728,
        192
      ]
    },
    {
      "id": "0ab80c8e-e0ae-48d3-ace7-7afa25cdadc1",
      "name": "Google Gemini Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        1456,
        384
      ]
    },
    {
      "id": "1f14faf9-f819-4a3d-9ca5-8dd35d814e95",
      "name": "WhatsApp Trigger",
      "type": "n8n-nodes-base.whatsAppTrigger",
      "position": [
        80,
        -16
      ]
    },
    {
      "id": "78022ecc-79b5-4f44-a209-155dd7c9e967",
      "name": "Model Decider",
      "type": "n8n-nodes-base.code",
      "position": [
        752,
        -16
      ]
    },
    {
      "id": "707df459-df55-4686-b64e-3d99c1380e03",
      "name": "Send message",
      "type": "n8n-nodes-base.whatsApp",
      "position": [
        2016,
        -16
      ]
    },
    {
      "id": "8a9c3637-4e4d-4445-9c3b-c584e24dbdb5",
      "name": "Execute a SQL query in MySQL",
      "type": "n8n-nodes-base.mySqlTool",
      "position": [
        1856,
        192
      ]
    },
    {
      "id": "e1b30ed3-0ad7-417f-95de-752ab618c89a",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        528,
        -256
      ],
      "parameters": {
        "width": 544,
        "height": 176,
        "content": "⚙️ Model Switching System\nThe workflow uses Redis to track each user’s AI model assignment.\nEach user is automatically routed to a different Google Gemini model, helping:\nDistribute traffic evenly acr"
      }
    },
    {
      "id": "13bbf86c-a3cb-4fec-b66f-9f8cd912f494",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1216,
        -272
      ],
      "parameters": {
        "width": 448,
        "height": 208,
        "content": "🧠 AI-Powered Hotel Assistant\nThe AI Agent interprets the user’s query and converts it into a read-only SQL SELECT statement.\n\nIt fetches information like room availability, guest check-ins, or booking"
      }
    },
    {
      "id": "448b3618-9ccd-45d1-b905-bedf5540d877",
      "name": "Check Message",
      "type": "n8n-nodes-base.code",
      "position": [
        304,
        -16
      ]
    },
    {
      "id": "f13bf318-7585-4787-a7ca-c083617a9e8f",
      "name": "Store User Number",
      "type": "n8n-nodes-base.redis",
      "position": [
        976,
        -16
      ]
    },
    {
      "id": "ca6ba30a-da25-42e2-b9c0-f30b0438ab8e",
      "name": "Check User Number",
      "type": "n8n-nodes-base.redis",
      "position": [
        528,
        -16
      ]
    },
    {
      "id": "eeeac186-0627-45f9-a122-c5b0ac50a537",
      "name": "Choose Model",
      "type": "@n8n/n8n-nodes-langchain.modelSelector",
      "position": [
        1328,
        192
      ]
    },
    {
      "id": "a317cb5a-56a2-41e7-8ab8-3a0758c09c11",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        448,
        160
      ],
      "parameters": {
        "width": 288,
        "height": 192,
        "content": "Redis Get Node\n\n🧩 What it does\nWhen a WhatsApp message arrives, this node checks Redis for a record matching that user’s WhatsApp ID.\nThat stored record tells the workflow which AI model this user was"
      }
    },
    {
      "id": "86bfc5ea-e65c-4a6c-bd53-1ef3d473b97f",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        880,
        160
      ],
      "parameters": {
        "width": 288,
        "height": 192,
        "content": "Redis Set Node\n\n🧩 What it does\nAfter the Model Decider decides which model the user should use, this node stores that model index back into Redis.\nIt also sets an expiration (ttl = 3600 seconds → 1 ho"
      }
    }
  ],
  "connections": {
    "Pricing": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent": {
      "main": [
        [
          {
            "node": "Send message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Choose Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Check Message": {
      "main": [
        [
          {
            "node": "Check User Number",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Model Decider": {
      "main": [
        [
          {
            "node": "Store User Number",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "AI Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "WhatsApp Trigger": {
      "main": [
        [
          {
            "node": "Check Message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check User Number": {
      "main": [
        [
          {
            "node": "Model Decider",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Store User Number": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Choose Model",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "Choose Model",
            "type": "ai_languageModel",
            "index": 1
          }
        ]
      ]
    },
    "Execute a SQL query in MySQL": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    }
  }
}