{
  "id": "FBguDlbJmbBGngKf",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Voice Assistant \u2013 Restaurant Booking, Orders & Info System",
  "tags": [],
  "nodes": [
    {
      "id": "ca6c5397-c47e-4fde-b08a-c996fc5b242b",
      "name": "Trigger: Voice Request (VAPI)",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -20,
        -380
      ],
      "parameters": {
        "path": "9f6b9125-0b75-41c2-87a9-1b6746c89e2e",
        "options": {},
        "httpMethod": "POST",
        "responseMode": "responseNode"
      },
      "typeVersion": 2
    },
    {
      "id": "bbb963c4-1fc3-4dbc-84c5-ed818197fc8a",
      "name": "Update Data (Table Booking / Orders)",
      "type": "n8n-nodes-base.postgres",
      "position": [
        420,
        -380
      ],
      "parameters": {
        "table": {
          "__rl": true,
          "mode": "name",
          "value": "id"
        },
        "schema": {
          "__rl": true,
          "mode": "list",
          "value": "public"
        },
        "columns": {
          "value": {},
          "schema": [],
          "mappingMode": "autoMapInputData",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "upsert"
      },
      "credentials": {
        "postgres": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.6
    },
    {
      "id": "97376776-cc21-434b-89b3-e373d4fcc0fe",
      "name": "Respond: Booking/Order Confirmation (VAPI)",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        640,
        -380
      ],
      "parameters": {
        "options": {},
        "respondWith": "json",
        "responseBody": "={\n    \"results\": [\n        {\n            \"toolCallId\": \"{{ $('Trigger: Voice Request (VAPI)').item.json.body.message.toolCalls[0].id }}\",\n            \"result\": \"{{ $json.status }}\"\n        }\n    ]\n}"
      },
      "typeVersion": 1.2
    },
    {
      "id": "7cdb8cb3-94fd-4784-9b79-c9ae26fd7ae6",
      "name": "Wait For Response",
      "type": "n8n-nodes-base.wait",
      "position": [
        200,
        -380
      ],
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "f715f043-661b-4118-9763-642128d936ce",
      "name": "Wait For Response1",
      "type": "n8n-nodes-base.wait",
      "position": [
        420,
        -120
      ],
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "4a2f8aee-6e5a-44d5-873c-8b8c28aeff3b",
      "name": "Trigger: Info Request (VAPI)",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -20,
        -120
      ],
      "parameters": {
        "path": "efe2c13f-1ba5-46e1-9996-57bdc6041973",
        "options": {},
        "httpMethod": "POST",
        "responseMode": "responseNode"
      },
      "typeVersion": 2
    },
    {
      "id": "33a7e434-5228-4475-9b21-a5afb7c8656b",
      "name": " Get Restaurant Info (Postgres)",
      "type": "n8n-nodes-base.postgres",
      "position": [
        200,
        -120
      ],
      "parameters": {
        "table": {
          "__rl": true,
          "mode": "name",
          "value": "id"
        },
        "schema": {
          "__rl": true,
          "mode": "list",
          "value": "public"
        },
        "options": {},
        "operation": "select"
      },
      "credentials": {
        "postgres": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.6
    },
    {
      "id": "09058c8d-e3f4-4caa-898a-123ef4ec3eba",
      "name": "Respond: Restaurant Details (VAPI)",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        640,
        -120
      ],
      "parameters": {
        "options": {},
        "respondWith": "json",
        "responseBody": "={\n    \"results\": [\n        {\n            \"toolCallId\": \"{{ $('Trigger: Info Request (VAPI)').item.json.body.message.toolCalls[0].id }}\",\n            \"result\":  \"{{ $json.available }}\"\n        }\n    ]\n}"
      },
      "typeVersion": 1.2
    },
    {
      "id": "e5c43fa2-68c9-4303-bd74-6662cf95a05f",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -480,
        -620
      ],
      "parameters": {
        "color": 4,
        "width": 440,
        "height": 340,
        "content": "## Table Booking & Order Handling\n\n- Use this workflow to let the voice assistant take table reservations and food orders from customers.\n\n- It saves booking and order details into the database and confirms them back to the customer instantly.\n\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "4ec14fb4-e367-4b3f-bba4-50cc70c008d2",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -500,
        -220
      ],
      "parameters": {
        "width": 480,
        "height": 340,
        "content": "## Restaurant Info Provider\n\n- Use this workflow to let the voice assistant take table reservations and food orders from customers.\n\n- It saves booking and order details into the database and confirms them back to the customer instantly.\n\n\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "timezone": "Asia/Kolkata",
    "callerPolicy": "workflowsFromSameOwner",
    "executionOrder": "v1"
  },
  "versionId": "01e81376-112a-42ae-bb2f-5037a2d5da94",
  "connections": {
    "Wait For Response": {
      "main": [
        [
          {
            "node": "Update Data (Table Booking / Orders)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait For Response1": {
      "main": [
        [
          {
            "node": "Respond: Restaurant Details (VAPI)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Trigger: Info Request (VAPI)": {
      "main": [
        [
          {
            "node": " Get Restaurant Info (Postgres)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Trigger: Voice Request (VAPI)": {
      "main": [
        [
          {
            "node": "Wait For Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    " Get Restaurant Info (Postgres)": {
      "main": [
        [
          {
            "node": "Wait For Response1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Data (Table Booking / Orders)": {
      "main": [
        [
          {
            "node": "Respond: Booking/Order Confirmation (VAPI)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}