DocumentationGuidesTrip Planning Assistant

Trip-Planning Assistant

Build a conversational trip-planning assistant for a tour operator’s website — one that researches packages from your catalog, answers destination questions, generates directions and maps, and captures booking inquiries.

This is the platform’s richest end-to-end showcase: a knowledge base, three location tools, and structured lead capture, all working together.

Reusable pattern. We’ll use Wanderlust Tours, a fictional Lisbon-based boutique tour operator, as the worked example. The same workflow applies to any tour operator, destination marketing organization (DMO), travel agency, or experiences platform with a defined catalog of trips.

What your agent will do. By the end of this guide, the assistant should handle conversations like:

  • “What tours do you run in October?” — answered from the catalog.
  • “How does the Algarve tour compare to the Lisbon one?” — multi-package retrieval.
  • “What’s there to see near Sintra besides Pena Palace?” — Google Places lookup.
  • “How far is Granada from Seville?” — Directions tool.
  • “Show me where the Azores tour goes.” — visual map.
  • “What’s your cancellation policy if I book and need to change dates?” — policies retrieval.
  • “I’m interested in the Porto trip in May — can someone get in touch?” — lead capture fires with structured fields.

Prerequisites

About the source files. We provide the same content in three formats: Markdown (the agent’s attached source), PDF (the human-facing brochure), and Word .docx (for editing in Word). All three are usable as the agent’s source — the agent extracts text from each format reliably.

For this guide we attach the Markdown because the catalog has inline images of each tour package, and the Markdown source includes those as URL references — which means the agent can surface the matching image alongside an answer about, say, the Algarve tour. The Word and PDF versions we provide here have the same images embedded inside the file as binary attachments (because that’s what pandoc produced when we converted the Markdown), so the visible images don’t have URLs the agent can resurface in chat.

You can still use Word or PDF for image-rich content — you just need the image references to be URLs the agent can read as text, not embedded binaries. For example, you could write “See: https://example.com/algarve.jpg in the body of the document; the agent would extract that URL and could surface the image. For most operators it’s simpler to keep the content in Markdown (where the ![](url) syntax is natural), but the choice is yours.

If your content is image-free, Word and PDF are both fine. See the Local Service Quote Assistant guide for an example where Word is the recommended attach format.

A note on how images show up in chat. Image URLs being preserved doesn’t mean every reply includes an image. The agent surfaces images only when it judges them relevant — e.g. “tell me about the Algarve trip” will likely include the Algarve photo; “what’s your cancellation policy?” will not.

Build the agent

Create the agent

  1. Sign in and go to Agents.
  2. Click Create Agent.
  3. Enter a Name (e.g. Wanderlust Tours Assistant) and optional Description.
  4. Click Create.

Set basic instructions

Open the Persona tab and paste this into Instructions. We’ll refine it later — for now, plain English is enough.

You are a helpful trip-planning assistant for Wanderlust Tours, a boutique tour operator based in Lisbon, Portugal. You help visitors discover our tours across Portugal and southern Spain, answer questions about destinations, and connect interested travellers with our team.
 
Be warm and knowledgeable. Do not invent prices, dates, or itinerary details — answer only from the information you have been given.

Still on the Persona tab, scroll down to the advanced settings and enable one option:

  • Add current date and time to system prompt → enable this checkbox. Our tours run in specific departure months, and visitors phrase their timing relatively — “I want to come next month”, “anything this autumn?”. Without knowing today’s date, the agent can’t resolve “next month” into an actual month to match against the catalog, and a Travel Dates lead saved as “next month” is useless to the sales team a week later — “June 2026” is not. This stays compatible with the field’s month-or-range intent; the agent still won’t pin down an exact day. (Leave Chat history at its default.)

Save your changes.

Attach the knowledge sources

Open the Knowledge tab.

Under URLs, add both sources one at a time:

  1. https://files.jhunkoo.ai/demo/wanderlust-tours/wanderlust-tours-package-catalog.md
  2. https://files.jhunkoo.ai/demo/wanderlust-tours/wanderlust-tours-booking-policies.md

Wait for Training to finish on both. Status appears next to each source.

Expand Retriever description and add when the agent should search the knowledge base:

Search for information about Wanderlust Tours — our tour packages (Lisbon, Porto, Douro Valley, Azores, Alentejo, Algarve, Andalusia, Sintra & Cascais), pricing, departure months, itineraries, what's included, booking policies, cancellations, travel insurance requirements, visa rules, group bookings, and any other operator-specific question. Use this tool whenever a visitor asks about our company, our tours, or our policies.
💡

Once you have URL sources in Knowledge, Jhunkoo automatically enables the search_knowledge_base tool for the agent — no toggle required on the Tools tab.

Enable the location tools

The location tools let the agent answer destination questions, generate directions between cities, and surface visual maps.

Open the Tools tab and enable:

  • Google Places — for “what’s near X?” / “what should I see in Y?” (requires Google API key)
  • Google Directions — for “how far is X from Y?” / “how do I get from X to Y?” (requires Google API key)
  • Show Map — for “show me where X is” / “where does the tour go?” (no API key — uses Jhunkoo’s built-in map service)

For Places and Directions, paste your Google Maps API key when prompted. The same key works for both. See Built-in tools → Google setup if you don’t have one yet.

Show Map has no configuration — just enable it and save. The map is rendered by Jhunkoo on our own infrastructure, so there’s no Google billing for visual map output.

Save the Tools form.

Configure Lead Capture

This is the commercial point of the assistant — turning interest into a follow-up the operator’s team can act on.

Open the Tools tab and enable Lead Capture.

Step 1 — Built-in contact fields

In the Lead Capture Fields section, configure the three built-in contact fields:

FieldRequiredPurpose
nameYesVisitor’s full name
emailYesFor follow-up
phoneNoOptional, for high-intent visitors

Step 2 — Custom fields

Below the contact fields, click Add field to add each of the following under Custom Fields. These capture the trip details your sales team wants before the first reply:

LabelTypeRequiredDescription hint
Destination InterestTextNoWhich tour or region they’re asking about — e.g. “Porto & Douro Valley” or “Portugal in general”
Travel DatesTextNoMonth or rough date range, not specific days — e.g. “May 2026” or “sometime in autumn”
Party SizeTextNoNumber of adults and children — e.g. “2 adults, 1 child age 10”
Budget RangeTextNoBucket they’re comfortable with — e.g. “€1,000–€1,500 per person”

The key for each custom field is derived automatically from the label. Destination Interest becomes destinationInterest, Travel Dates becomes travelDates, and so on. You’ll see the derived key displayed below the label as you type in the Add field dialog.

Why Travel Dates and Party Size are Text, not Date and Number. At the inquiry stage a visitor says “sometime in autumn” or “2 adults and a child” — not a calendar date or a single integer. The Date and Number types are for values that are genuinely a date or a number; a free-form range belongs in a Text field. Pick the type that matches what the visitor will actually say, not the tidiest-looking option.

Timing strategy. Set lead capture to fire on clear intent, not preemptively. Examples of clear intent in a trip-planning context:

  • “I’d like to book the Algarve trip in May.”
  • “Can someone from your team get in touch?”
  • “I’m interested in the Andalusia tour — what are the next steps?”

Examples of not clear intent (the agent should answer first, not collect a lead):

  • “What tours do you have in Portugal?”
  • “How much is the Porto trip?”
  • “What’s included in the Alentejo Wine Trail?”

Save the Lead Capture form.

Refine your instructions

Now that all five capabilities are wired up — knowledge base, Places, Directions, Map, and Lead Capture — update the instructions so the agent knows when to call each. Go back to the Persona tab and replace the instructions with:

You are a helpful trip-planning assistant for Wanderlust Tours, a boutique tour operator based in Lisbon, Portugal. You help visitors discover our tours across Portugal and southern Spain, answer questions about destinations, and connect interested travellers with our team.
 
## Tone
 
Be warm, knowledgeable, and unhurried. Match the brand voice in our catalog — slightly literary, never salesy. We're a small operator running curated trips, not a mass-market booking platform.
 
## When to use the knowledge base
 
For any question about our tour packages, pricing, departure months, itineraries, what's included, single supplements, group bookings, cancellation policy, deposits, travel insurance, visa requirements, or anything else specific to Wanderlust Tours and our operations, call the `search_knowledge_base` tool before answering. Do not answer operator-specific questions from general knowledge.
 
If the knowledge base returns no results for a Wanderlust Tours question, say you don't have that information and offer to connect the visitor with the team (email [email protected], phone +351 21 000 0000).
 
## When to use the location tools
 
Use the `google_places_api_tool` when a visitor asks what's near a destination we visit, what other attractions are nearby, or for general points of interest in a city or region. Examples: _"What's there to see near Sintra Castle?"_, _"What are the best restaurants in Granada?"_
 
Use the `google_directions_api_tool` when a visitor asks how far one place is from another or how to travel between two locations. Examples: _"How far is Lagos from Lisbon?"_, _"How long does it take to get from Seville to Granada?"_
 
Use the `show_map_tool` when a visitor asks to see a place, see the route, or visualise a destination. Examples: _"Show me where the Azores tour goes"_, _"Can you show me Évora on a map?"_
 
These three tools complement our knowledge base — use them for general destination questions, not for questions about our specific tours.
 
## When to capture a lead
 
Call the `lead_capture_tool` only when the visitor expresses clear intent to be contacted or to book — e.g. _"I'd like to book"_, _"Can someone get in touch?"_, _"What are the next steps?"_. Do not call the tool proactively when the visitor is still browsing or researching.
 
When the visitor agrees to be contacted, collect their name and email at minimum. If the conversation has already revealed which tour they're interested in, their rough travel dates, party size, or budget, include those in the lead — but do not interrogate the visitor for fields they haven't volunteered.
 
## When you don't know
 
If a visitor asks about flights, payments, instant booking, live weather, visa eligibility, or private-itinerary customisation, explain that those are handled by the team directly (per the catalog's "what we can't help with" section) and offer the contact details.
 
## Formatting
 
Use Markdown. Lead with the direct answer. Include images from the knowledge base when relevant — for example, if a visitor asks about a specific tour, surface the images for that tour. Never invent image URLs.

Save.

Prefer not to maintain prompt rules by hand? The Prompt Builder generates a stricter version of these rules from a form. Both approaches work — use whichever fits your workflow.

Configure each tool

Each tool below has a focused subsection. Skim to the ones you have questions about.

Knowledge base

The two URL sources we attached form the agent’s single source of truth for operator-specific information:

  • Package catalog — tour descriptions, day-by-day itineraries, prices, departure months, what’s included, single supplements, and a “what we can / can’t help with” honest-scope section. Also contains hosted image URLs for each tour (rendered when the agent surfaces them in chat).
  • Booking policies — deposits, cancellations, travel insurance requirements, visa references, group discounts, accessibility, force majeure, and contact escalation rules.

Why two sources, not one? Splitting the brochure from the policies improves retrieval — the agent can pull tour details for “what’s in the Alentejo trip?” without also dragging in cancellation rules. And operators can update each independently as policies or pricing change.

Why Markdown, not PDF? PDFs are great for human readers, but PDF→text extraction frequently strips markdown image URLs, breaks tables into unreadable spans, and injects page-footer noise. The Markdown source preserves images, keeps tables clean, and chunks predictably. See the Knowledge tool doc for the deeper explainer.

Google Places

Used when a visitor asks about a destination beyond what’s in the catalog — “what should I see in Porto besides the cellars?”, “are there good vegetarian restaurants in Évora?”. The tool returns a short list of nearby places matching the query.

Configuration in this guide: enable the tool, paste your Google Maps API key, save. No additional setup.

When the model should call it. The instructions tell the agent to use Places for general destination questions — anything about what’s in or near a city we visit, where the catalog doesn’t have the answer.

Google Directions

Used when a visitor wants to understand the geography of a trip — “how long is the drive from Lisbon to Évora on day 1 of the Alentejo trip?”, “how far is Granada from Seville?”. The tool returns route distance and duration.

Configuration: same key as Places. Enable, save.

When the model should call it. Strictly route-and-distance questions. The instructions explicitly distinguish Directions (“how do I get from A to B”) from Places (“what’s at B”) so the model doesn’t substitute one for the other.

Show Map

Surfaces a visual map in the chat reply — useful for visualising a destination or a route. Triggers on phrases like “show me where X is”, “can you show me on a map?”, “where does the tour go?”.

No API key required. Unlike Places and Directions, Show Map runs on Jhunkoo’s own map service — there’s no Google billing for the visual output. Just enable the tool and save. The model passes a name and coordinates to the tool, and the widget renders an interactive inline map.

A note on map use. The map is most valuable when the visitor’s question is spatial“where is Cascais relative to Lisbon?” — not when it’s informational“what’s in Cascais?” (which is a Places job). The instructions describe each tool’s job so the model picks the right one.

Lead Capture

The built-in contact fields (name, email, phone) plus the custom fields (Destination Interest, Travel Dates, Party Size, Budget Range) give the operator’s sales team everything they need for a useful follow-up. The model only collects fields the visitor has actually volunteered; it won’t invent values.

Each chat session produces one lead. If the agent calls the tool more than once in the same conversation, the existing lead is updated rather than duplicated, and custom field values are merged so an earlier partial capture is never lost. Two separate conversations create two separate leads. See Lead Capture for the full mechanics.

Where leads land. Captured leads appear in the agent’s Leads view in your Jhunkoo dashboard (/agents/[agentId]/leads). You can export them as CSV or wire the export to a CRM / Sheets / inbox via your own workflow.

Test in the studio

Use the chat panel on the right of the agent configuration page. A test script that exercises every capability:

  1. Catalog retrieval“What tours do you run in October?”
  2. Multi-package comparison“How does the Alentejo trip compare to the Porto one?”
  3. Single-package detail“What’s the daily itinerary for the Azores tour?” — agent should surface the relevant image too.
  4. Places“What’s there to see near Sintra besides Pena Palace?”
  5. Directions“How far is Granada from Seville?”
  6. Map“Show me where the Azores tour goes.”
  7. Policies retrieval“What happens if I need to cancel a booking 45 days before the tour?”
  8. Honest “no”“Can you book my flights from London to Lisbon?” — agent should decline and route to the team.
  9. Lead capture“I’m interested in the Porto trip in May 2026 — can someone get in touch?” — agent should ask for name + email and call the tool.

If any answer is wrong or off-brand:

  • Wrong factual answer about Wanderlust Tours. Check that the relevant URL source finished Training. Re-open the Knowledge tab and confirm both sources show as completed.
  • No image in the tour answer. Confirm the agent attached the Markdown source (not just the PDF). Image URLs are stripped from PDFs.
  • Tool not firing. Re-read the “When to use…” section of your instructions. The model needs explicit triggers, not implicit ones.
  • Lead capture fires too early. The trigger language in the instructions is what controls this — be stricter about “clear intent” and add explicit “do not collect a lead while the visitor is still researching” guidance.

Publish and embed

  1. Use the publish control at the top of the agent page to make the agent live for the widget.
  2. Open SettingsClient settings and set Origin to the tour operator’s site (e.g. https://www.wanderlusttours.example).
  3. Open Client script to copy the publishable key and the install snippet.
  4. Follow the Widget guide to embed the chat widget on the site.

What you built

A working assistant that:

  • Answers tour questions from the operator’s own content (catalog + policies)
  • Surfaces relevant tour images alongside the answer
  • Looks up nearby places and points of interest
  • Generates directions and distances between destinations
  • Shows visual maps for routes and locations
  • Knows when it can’t help and routes the visitor to the team
  • Captures structured leads only when the visitor expresses real intent

The same workflow adapts to any operator with a defined catalog and a sales team. Replace the two source documents with your own, adjust the lead-capture fields to match what your team wants to know, and the rest of the structure stays the same.

Next steps

  • Widget guide — install the chat widget on the operator’s site.
  • Lead Capture — full reference for fields, dedup, and the leads dashboard.
  • Built-in tools — Google API setup, supported tools, configuration.
  • Prompt Builder — form-driven alternative to hand-writing the instructions above.
  • FAQ — billing, limits, troubleshooting.

Sample images are sourced from Unsplash under the Unsplash License.