AutomationFlowsAI & RAG › Voice-driven Travel Itinerary Generator Using Elevenlabs, Gpt-4o & Pinecone

Voice-driven Travel Itinerary Generator Using Elevenlabs, Gpt-4o & Pinecone

ByMohan Gopal @mohan on n8n.io

This release introduces a Voice-Enabled Tour Recommendation System that leverages n8n, ElevenLabs Voice Agent, OpenAI GPT-4o, and Pinecone Vector DB to deliver personalized travel itineraries based on spoken input. Users speak their preferences to the ElevenLabs voice agent,…

Webhook trigger★★★★☆ complexityAI-powered10 nodesOpenAI EmbeddingsOpenAI ChatAgentPinecone Vector StoreTool Vector Store
AI & RAG Trigger: Webhook Nodes: 10 Complexity: ★★★★☆ AI nodes: yes Added:

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

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

The workflow JSON

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

Download .json
{
  "id": "YuB6Lt8NQUCamKzZ",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "VoiceCall Travel Agent",
  "tags": [
    {
      "id": "r3Cwkf4bJhSx5yQB",
      "name": "n8n Release done",
      "createdAt": "2025-07-19T05:10:40.581Z",
      "updatedAt": "2025-07-19T05:10:40.581Z"
    }
  ],
  "nodes": [
    {
      "id": "51a32127-fd25-4b43-a53e-b5e8e37c6ce1",
      "name": "Embeddings OpenAI",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "position": [
        128,
        1424
      ],
      "parameters": {
        "model": "text-embedding-ada-002",
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "22c1022f-3b27-4846-b60c-1ce51670bf87",
      "name": "OpenAI Chat Model2",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        544,
        1328
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o",
          "cachedResultName": "gpt-4o"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "7018fadc-6ecc-44e0-8b4e-225deb189589",
      "name": "Respond to Webhook",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        576,
        880
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.1
    },
    {
      "id": "dc0555a8-6a90-40db-89db-d361838b3594",
      "name": "OpenAI Chat Model3",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        64,
        1088
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "b56e15c4-4944-4faa-92da-f5350f87849a",
      "name": "Tour Recommendation AI Agent1",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        80,
        880
      ],
      "parameters": {
        "text": "={{ $json.body }}",
        "options": {
          "systemMessage": "You are an experienced tours and Packages travel agent who build tour packages for customers as per the request you receive. \nYour source for tours is from the pinecone vector databse, and you smartly analyse and combine the tours and activities and recommend to the customers acordingly. \noutput the format as per the Structured Output Parser response\n\nConditions of daily tour recommendations:\n1. Always keep total duration of tours and activities between 8AM and 11.59 PM unless the activity itself is through the night like Casinos, bar hopping etc...\n2. If there is any 'full day' activity, do not include any other activity for that day. \n3. Group activities that are in proximity to one another unless the cusotmer specifically asks for or adds the activities manually.\n4. Add default 'Breakfast' between 8.00am and 9.00am as an activity.\n5. Add default 'Lunch' between 1.00pm and 2.00pm as an activity.\n6. Add defauly 'dinner' between 8.00pm and 9.00pm as an activity. \n "
        },
        "promptType": "define"
      },
      "typeVersion": 1.9
    },
    {
      "id": "c648861d-bcb7-4c11-8f60-56486218135f",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -240,
        784
      ],
      "parameters": {
        "width": 1088,
        "height": 816,
        "content": "## Voice Driven Travel Agent"
      },
      "typeVersion": 1
    },
    {
      "id": "202c81b6-0d38-441b-978e-a926fc2a98eb",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -704,
        784
      ],
      "parameters": {
        "color": 4,
        "width": 440,
        "height": 820,
        "content": "## Steps\n1. Add the Voice Agent Webhook: Connect to Elevenlabs Voice Agent by copying and configuring the webhook URL in Elevenlabs using the POST method.\nFormat the Tour query from the customer breaking it down to Destination, Type of your, Number of days and Number of Passengers.\n\n2. Add Tour Recomendation AI Agent: Give appropiate System Prompt and the references to the Tools available. \n\n\n3. OpenaAI Model: ChatGPT-4o\n\n4. Simple memory - upto 5 context window length\n\n5. Answer Questions with Vector Store: Add specific role and instructions to extract the tour packages from the pinecone database. \n\n6. Connect the Vectorized Tours and Activities content and store in pinecone database. Refer to the link below to create embedded content and store it in the vector detabase\n(https://creators.n8n.io/workflows/5085)\n\n8. Respospond to Webhook: Respond to the customer tour request with itinerary plan.  \n"
      },
      "typeVersion": 1
    },
    {
      "id": "1e9a4dec-ca35-49d8-a6f0-d4b245e3dc18",
      "name": "Tour List Data store",
      "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
      "position": [
        176,
        1248
      ],
      "parameters": {
        "options": {},
        "pineconeIndex": {
          "__rl": true,
          "mode": "list",
          "value": "value",
          "cachedResultName": "name"
        }
      },
      "credentials": {
        "pineconeApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "e74a5928-f6ec-40a9-a4ae-3965f2932b13",
      "name": "Tour Builder Q&A",
      "type": "@n8n/n8n-nodes-langchain.toolVectorStore",
      "position": [
        304,
        1088
      ],
      "parameters": {
        "description": "#Role#\nYou are an expert Tour Packaging Agent who has more than 15 years experience in travel agencies and experience in building amazing tour packages for customers.\n\n##Instructions##\nYou look into the pinecone vector database and from the packages created previously, you recreate best suitable packages for the customers and help respond back.\n\nYou always reply with politeness and friendly messages with few emojis.  \n"
      },
      "typeVersion": 1.1
    },
    {
      "id": "3cf42ffa-ded3-41bc-8bcc-dd436fe1c968",
      "name": "Voice Agent Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -160,
        880
      ],
      "parameters": {
        "path": "travel",
        "options": {},
        "httpMethod": "POST",
        "responseMode": "responseNode"
      },
      "typeVersion": 2
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "d86bd654-1385-4bf6-9088-ee4b5a848525",
  "connections": {
    "Tour Builder Q&A": {
      "ai_tool": [
        [
          {
            "node": "Tour Recommendation AI Agent1",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings OpenAI": {
      "ai_embedding": [
        [
          {
            "node": "Tour List Data store",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model2": {
      "ai_languageModel": [
        [
          {
            "node": "Tour Builder Q&A",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model3": {
      "ai_languageModel": [
        [
          {
            "node": "Tour Recommendation AI Agent1",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Voice Agent Webhook": {
      "main": [
        [
          {
            "node": "Tour Recommendation AI Agent1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Tour List Data store": {
      "ai_vectorStore": [
        [
          {
            "node": "Tour Builder Q&A",
            "type": "ai_vectorStore",
            "index": 0
          }
        ]
      ]
    },
    "Tour Recommendation AI Agent1": {
      "main": [
        [
          {
            "node": "Respond to Webhook",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

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

About this workflow

This release introduces a Voice-Enabled Tour Recommendation System that leverages n8n, ElevenLabs Voice Agent, OpenAI GPT-4o, and Pinecone Vector DB to deliver personalized travel itineraries based on spoken input. Users speak their preferences to the ElevenLabs voice agent,…

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

More AI & RAG workflows → · Browse all categories →

Related workflows

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

AI & RAG

Agent Vocal Insane. Uses agent, lmChatOpenAi, googleCalendarTool, toolVectorStore. Webhook trigger; 16 nodes.

Agent, OpenAI Chat, Google Calendar Tool +8
AI & RAG

Calendar to ClickUp. Uses stickyNote, textSplitterCharacterTextSplitter, embeddingsOpenAi, vectorStorePinecone. Webhook trigger; 12 nodes.

Text Splitter Character Text Splitter, OpenAI Embeddings, Pinecone Vector Store +6
AI & RAG

Survey Auto Analyze. Uses stickyNote, textSplitterCharacterTextSplitter, embeddingsOpenAi, vectorStorePinecone. Webhook trigger; 12 nodes.

Text Splitter Character Text Splitter, OpenAI Embeddings, Pinecone Vector Store +6
AI & RAG

GA Report Email. Uses stickyNote, textSplitterCharacterTextSplitter, embeddingsOpenAi, vectorStorePinecone. Webhook trigger; 12 nodes.

Text Splitter Character Text Splitter, OpenAI Embeddings, Pinecone Vector Store +6
AI & RAG

JSON to Sheet. Uses stickyNote, textSplitterCharacterTextSplitter, embeddingsOpenAi, vectorStorePinecone. Webhook trigger; 12 nodes.

Text Splitter Character Text Splitter, OpenAI Embeddings, Pinecone Vector Store +6