Du svarar på samma resefrågor om och om igen. Sedan börjar du tvivla på dina egna råd eftersom du förra veckan rekommenderade något helt annat på exakt samma fråga. Det är så ”hjälpsamt” blir rörigt.
Reseagenter känner av det först, men marknadschefer som driver destinationskampanjer och grundare som bygger en nischad resecommunity känner också av det. Med den här Gemini Couchbase-automationen kommer dina rekommendationer från ett gemensamt destinationsbibliotek, så svaren blir konsekventa och du slipper uppfinna hjulet på nytt.
Du får se hur det här n8n-flödet laddar in sevärdheter i Couchbase och sedan låter Gemini besvara frågor genom att automatiskt hämta de mest relevanta platserna. Samma ton. Samma källa till sanning. Mycket snabbare.
Så fungerar den här automationslösningen
Hela n8n-flödet, från trigger till slutligt resultat:
n8n Workflow Template: Gemini + Couchbase: stabila resetips vid begäran
flowchart LR
subgraph sg0["Incoming Chat Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Incoming Chat Trigger", pos: "b", h: 48 }
n1@{ icon: "mdi:brain", form: "rounded", label: "Gemini Chat Engine", pos: "b", h: 48 }
n5@{ icon: "mdi:memory", form: "rounded", label: "Buffer Memory Store", pos: "b", h: 48 }
n6@{ icon: "mdi:robot", form: "rounded", label: "Travel Assistant Agent", pos: "b", h: 48 }
n7@{ icon: "mdi:cog", form: "rounded", label: "Couchbase Vector Retriever", pos: "b", h: 48 }
n9@{ icon: "mdi:vector-polygon", form: "rounded", label: "OpenAI Embedding Builder", pos: "b", h: 48 }
n5 -.-> n6
n1 -.-> n6
n0 --> n6
n7 -.-> n6
n9 -.-> n7
end
subgraph sg1["Standard Data Loader Flow"]
direction LR
n2["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/webhook.dark.svg' width='40' height='40' /></div><br/>Inbound Webhook Hook"]
n3@{ icon: "mdi:robot", form: "rounded", label: "Standard Data Loader", pos: "b", h: 48 }
n4@{ icon: "mdi:robot", form: "rounded", label: "Recursive Text Splitter", pos: "b", h: 48 }
n8@{ icon: "mdi:cog", form: "rounded", label: "Couchbase Vector Inserter", pos: "b", h: 48 }
n10@{ icon: "mdi:vector-polygon", form: "rounded", label: "OpenAI Embedding Builder 2", pos: "b", h: 48 }
n2 --> n8
n3 -.-> n8
n4 -.-> n3
n10 -.-> n8
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0 trigger
class n6,n3,n4 ai
class n1 aiModel
class n5 ai
class n9,n10 ai
class n2 api
classDef customIcon fill:none,stroke:none
class n2 customIcon
Problemet: reserekommendationer spretar, och det kostar dig
Reseråd låter enkelt tills du sitter och svarar hela dagen. Någon frågar ”Vart ska jag åka för en lugn långhelg med bra mat?” och du letar febrilt i gamla anteckningar, blogginlägg, kalkylblad och halvt ihågkomna tips. Nästa gång svarar du annorlunda för att du är på ett annat humör, eller för att du glömt detaljerna du delade tidigare. Den inkonsekvensen skapar omarbete: följdfrågor, korrigeringar och den subtila ”vet de ens?”-läckan i förtroende som sänker konverteringen.
Friktionen byggs på. Ett enstaka fel eller ett luddigt svar är inte hela världen, men ett mönster av dem är det.
- Att copy-pasta från gamla resplaner tar cirka 10 minuter per svar, och du missar ändå viktig kontext.
- Din bästa destinationskunskap finns i folks huvuden, så svaren varierar beroende på vem som är online.
- När detaljer uppdateras (säsong, trängsel, stängningar) fortsätter gamla rekommendationer att cirkulera.
- Nya teammedlemmar kommer inte in snabbt eftersom det saknas ett enkelt sätt att ”fråga biblioteket” och lära sig.
Lösningen: Gemini svarar från ditt destinationsbibliotek i Couchbase
Det här n8n-flödet ger dig ett enkelt upplägg: lagra destinationers sevärdheter i Couchbase och låt sedan Gemini besvara resefrågor genom att hämta de mest relevanta utdragen innan svaret skrivs. Det börjar med ett litet ingest-flöde som tar emot ny destinationstext via en HTTP-webhook, delar upp den i användbara chunkar, skapar embeddings (en numerisk representation av ”betydelse”) och lägger in dem i Couchbase Vector Search. Därefter tar chattflödet över: en chat-trigger fångar användarens fråga, flödet omvandlar frågan till en embedding, hämtar de närmaste träffarna från Couchbase och skickar den kontexten till Gemini via en agent. Svaret du skickar är förankrat i ditt bibliotek, inte i vad modellen råkar gissa.
Flödet startar när du ingest:ar sevärdheter eller när ett chattmeddelande kommer in. Couchbase hanterar hämtningslagret, OpenAI Embeddings driver steget ”hitta närmaste match”, och Gemini genererar slutsvaret baserat på de hämtade detaljerna. Du får snabbare svar som ligger i linje med din egen destinationskunskap.
Det här får du: automation vs. resultat
| Vad det här flödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut i praktiken
Säg att du får 15 destinationsfrågor om dagen via chatten. Manuellt, om varje tar cirka 10 minuter att kolla anteckningar, minnas detaljer och formulera ett svar, blir det ungefär 2,5 timmar per dag. Med det här flödet blir ”arbetet”: ställ frågan, vänta på hämtning och generering (oftast under en minut), skumma igenom och skicka. Räkna med cirka 2 minuter per fråga. Det är nära 2 timmar tillbaka en vanlig dag, och svaren låter som om de kommer från en och samma spelbok.
Det här behöver du
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
- Couchbase-kluster för att lagra och söka destinationsvektorer.
- Google Gemini för att generera de slutliga reserekommendationerna.
- OpenAI API-nyckel (hämta den i OpenAI API-dashboarden).
Kunskapsnivå: Medel. Du kopplar upp credentials, sätter upp en Couchbase bucket/scope/collection och testar ingest samt chatt end-to-end.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
Destinationsinnehåll kommer in via en webhook. Du skickar sevärdheter till n8n (ofta via en snabb cURL-request eller ett enkelt internt formulär). Det ger dig ett repetitivt sätt att lägga till och uppdatera biblioteket.
Texten struktureras och delas upp för sökning. Data loader och den rekursiva text-splittern bryter upp långa beskrivningar i delar som är enklare att hämta senare, vilket ger färre träffar som är ”nära men inte riktigt”.
Embeddings skapas och lagras i Couchbase. OpenAI Embeddings omvandlar varje chunk till vektorer, och Couchbase Vector-noden lägger in dem i den bucket, scope och collection du valt (mallen använder en reseagent-setup).
Chattar triggar hämtning plus ett Gemini-svar. När en användare ställer en fråga använder agenten Couchbase Vector Search som ett verktyg för att hämta de bäst matchande sevärdheterna, behåller kontext med Simple Memory och låter sedan Gemini skriva svaret du kan skicka.
Du kan enkelt justera fälten för sevärdheter så att de inkluderar prisnivåer, säsonger eller taggar som ”bra för familjer” utifrån dina behov. Se hela implementeringsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera chatt- och webhook-triggers
Konfigurera de två ingångarna som driver det här arbetsflödet: chattkonversationer för hjälp med resplaner och en webhook för att mata in sevärdheter i vektordatabasen.
- Lägg till och öppna Incoming Chat Trigger för att aktivera chattbaserade förfrågningar.
- Öppna Inbound Webhook Hook och ställ in HTTP Method till
POST. - Ställ in Path till
3ca6fbdd-a157-4e9d-9042-237048da85b6och aktivera hantering av rå body i Options så att payloaden lagras underraw_body. - Bekräfta att körflödet har Inbound Webhook Hook → Couchbase Vector Inserter och Incoming Chat Trigger → Travel Assistant Agent.
Steg 2: anslut Couchbase vektorlager
Konfigurera Couchbase för att lagra och hämta vektoriserade sevärdheter.
- Öppna Couchbase Vector Inserter och ställ in Mode till
insert. - Ställ in Text Field Key till
descriptionoch Embedding Batch Size till1. - Välj er Couchbase Bucket, Scope, Collection och Vector Index Name i både Couchbase Vector Inserter och Couchbase Vector Retriever.
- I Couchbase Vector Retriever ställer ni in Mode till
retrieve-as-tool, Top K till10, Tool Name tillPointofinterestKBoch Tool Description tillThe list of Points of Interest from the database..
Steg 3: bygg pipeline för datainmatning
Omvandla inkommande webhook-data till rena dokument, dela upp text och förbered embeddings för vektorinfogning.
- Öppna Standard Data Loader och ställ in JSON Mode till
expressionData. - Ställ in JSON Data till
={{ $json.body.raw_body.point_of_interest.title }} - {{ $json.body.raw_body.point_of_interest.description }}för att bygga ett dokument per sevärdhet. - Anslut Recursive Text Splitter till Standard Data Loader via anslutningen ai_textSplitter.
- Koppla OpenAI Embedding Builder 2 till Couchbase Vector Inserter via anslutningen ai_embedding.
Steg 4: konfigurera Travel Assistant Agent
Konfigurera den konversationsbaserade AI:n som svarar på reseplaneringsförfrågningar med vektorsökning och minne.
- Öppna Travel Assistant Agent och ställ in Max Iterations till
10. - Ställ in System Message till
You are a helpful assistant for a trip planner. You have a vector search capability to locate points of interest, Use it and don't invent much.. - Koppla Gemini Chat Engine som ai_languageModel och ställ in Model Name till
models/gemini-2.0-flash. - Anslut Buffer Memory Store till Travel Assistant Agent via anslutningen ai_memory för att bevara konversationskontext.
Steg 5: konfigurera vektorhämtning för agenten
Koppla in vektorsökverktyget och embedding-modellen så att agenten kan hämta relevanta sevärdheter.
- Koppla Couchbase Vector Retriever till Travel Assistant Agent via anslutningen ai_tool.
- Anslut OpenAI Embedding Builder till Couchbase Vector Retriever via anslutningen ai_embedding.
- Verifiera att Text Field Key fortfarande är
descriptionså att retrievern matchar det infogade dokumentschemat.
Steg 6: testa och aktivera ert arbetsflöde
Validera båda arbetsflödesvägarna och aktivera automationen.
- Klicka på Test Workflow och skicka en POST-begäran till Inbound Webhook Hook med en JSON-body som innehåller
body.raw_body.point_of_interest.titleochbody.raw_body.point_of_interest.description. - Bekräfta att körningen infogar vektorer via Standard Data Loader → Recursive Text Splitter → Couchbase Vector Inserter.
- Öppna chattgränssnittet och skicka en resefråga till Incoming Chat Trigger för att säkerställa att Travel Assistant Agent använder Couchbase Vector Retriever som ett verktyg.
- När resultaten ser korrekta ut växlar ni arbetsflödet till Active för produktionsanvändning.
Vanliga fallgropar
- Couchbase-credentials kan gå ut eller kräva specifika behörigheter. Om saker skapar fel, kontrollera först användaråtkomst i Couchbase, Search Service-status och tillåtna IP-inställningar.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er varumärkeston tidigt, annars kommer du redigera output för alltid.
Vanliga frågor
Cirka 10 minuter när ditt Couchbase-kluster och dina API-nycklar är klara.
Nej. Du kommer mest att klistra in credentials, välja rätt Couchbase bucket/scope/collection och köra ett par testmeddelanden.
Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver också räkna in användningen av OpenAI Embeddings API och din Gemini-användning, som beror på meddelandevolymen.
Två alternativ: n8n Cloud (hanterat, enklast att sätta upp) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och hanterar n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serveradministration.
Ja, och det bör du, helt ärligt. Lägg till fält som ”bästa säsong”, ”prisnivå” och ”reslängd” i ditt innehåll om sevärdheter innan du ingest:ar det, och kör sedan ingest igen så att detaljerna bäddas in. Du kan också justera instruktionerna för Travel Assistant Agent så att Gemini alltid ställer en förtydligande fråga när användarens begränsningar saknas. Om du vill byta kanal kan du ersätta Incoming Chat Trigger med Telegram och skicka slutmeddelandet dit. Själva hämtningsdelen (Couchbase Vector Search + embeddings) är densamma.
Oftast handlar det om credentials, IP-allowlisting eller att Search Service inte är aktiverad på ditt Couchbase-kluster. Bekräfta att ditt kluster kör Search Service, verifiera att vektorindexet finns och säkerställ att n8n:s utgående IP är tillåten. Om du nyligen roterade lösenord, uppdatera båda Couchbase vector-noderna i n8n så att ingest och hämtning inte divergerar i det tysta.
I self-hosted n8n beror det främst på din server och API:ernas rate limits.
För en RAG-liknande reseagent är n8n oftast bättre eftersom du kan hålla logiken samlad på ett ställe och köra mer komplex förgrening utan att betala per liten delsteg. Det stödjer också self-hosting, vilket spelar roll när chattvolymen ökar eller när du vill ha hårdare kontroll på dataflödet. Zapier eller Make kan fortfarande fungera om du bara behöver en enkel väg ”skicka fråga, få svar”, men att sy ihop hämtning, minne och ingest blir snabbt krångligt. Om du är osäker, prata med en automationsexpert och beskriv dina kanaler, volym och var din destinationsdata finns.
När ditt destinationsbibliotek väl ligger i Couchbase slutar Gemini att ”gissa” och börjar svara utifrån ditt eget material. Sätt upp det en gång och njut sedan av lugnet med konsekventa svar.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.