DocumentationGuidesMuseum Cultural Guide Assistant

Museum & Cultural Guide Assistant

Build a conversational assistant for a museum, gallery, or cultural institution. The assistant answers visitor questions from your own content — opening hours, exhibitions, accessibility, policies — and enriches conversations with public information about artists, artworks, and history via the API Tool.

This is the lineup’s primary showcase of how to combine proprietary knowledge (your own documents) with dynamic public enrichment (an external API) in a single agent.

Reusable pattern. We’ll use Pulteney Art House, a fictional regional art museum in Bath, England, as the worked example. The same workflow applies to galleries, science museums, historic houses, archives, university museums, and any cultural institution with a defined visitor experience and a collection that benefits from external context.

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

  • “What are your opening hours on Saturdays?” — answered from the knowledge base.
  • “How much is a family ticket?” — answered from the knowledge base.
  • “Tell me about Pieter de Hooch.” — Wikipedia lookup via the API Tool.
  • “What’s the Cassatt exhibition about, and who was she?” — knowledge base for the exhibition details, API for biographical context, in one reply.
  • “Where are you located?” — optional Show Map for a visual location pin.
  • “I’d like to book a private tour for a group of 12.” — Lead Capture fires with structured fields.

Prerequisites

No Google API key is required for this guide. Show Map (if you choose to enable it) runs on Jhunkoo’s own infrastructure; the API Tool uses Wikipedia’s public REST API, which requires no authentication.

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 visitor guide and current-exhibitions document have inline images — gallery shots, exhibition banners — and the Markdown source includes those as URL references. When a visitor asks about, say, the Cassatt exhibition, the agent can surface the matching image alongside its answer. 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 “Image: https://example.com/cassatt-bath.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 Northern Light exhibition” will likely include the gallery photo; “what are your opening hours?” 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. Pulteney Art House Assistant) and optional Description.
  4. Click Create.

Set basic instructions

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

You are a helpful museum assistant for Pulteney Art House in Bath, England. You help visitors plan their visits, answer questions about our exhibitions and collection, and provide background on the artists and works in our care.
 
Be warm, knowledgeable, and unhurried — like a thoughtful gallery steward. Answer questions about the museum from the information you have been given. For background questions about artists or art history, you may look up public information.

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 opening hours vary by day and our exhibitions run for fixed date ranges, so visitors ask things like “are you open tomorrow?” or “is the Cassatt exhibition still on next weekend?”. Without knowing today’s date, the agent can retrieve the hours and exhibition dates but can’t work out what “tomorrow” or “next weekend” actually is. (Leave Chat history at its default — a museum conversation rarely needs the longer window.)

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/pulteney-art-house/pulteney-art-house-visitor-guide.md
  2. https://files.jhunkoo.ai/demo/pulteney-art-house/pulteney-art-house-current-exhibitions.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 specifically about Pulteney Art House — our opening hours, ticket prices, memberships, accessibility, café and shop, family and school visits, group bookings, current and upcoming exhibitions, our history, and our policies. Use this tool whenever a visitor asks about the museum, our exhibitions, our collection's holdings on display, or anything else specific to our operations.
💡

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

Configure the Wikipedia API Tool

This is the main act of this guide. We’re going to give the agent a way to look up public information about artists, art movements, historical figures, and any other widely-documented topic — so it can enrich conversations beyond what your own documents contain.

We’ll use Wikipedia’s public REST API. It requires no authentication, returns clean structured responses, and includes lead images in many of its replies — which the chat widget renders inline.

Open the API tab and click Add API Tool. Fill in the fields:

Title. Wikipedia Summary — the form will show the derived runtime key (wikipedia_summary) below the field as you type. That key is what the model uses to dispatch the tool and what appears in the system prompt.

Description.

Look up a short, factual summary of a topic from Wikipedia. Use this for biographical context on artists, descriptions of art movements and periods, historical figures, places, and any widely-documented public-knowledge topic. Returns a paragraph of plain-text summary and, when available, an image URL.

Method. GET

URL.

https://en.wikipedia.org/api/rest_v1/page/summary/{title}

Path parameters. Define one parameter named title:

KeyDescriptionRequired
titleThe Wikipedia page title to look up. Use the canonical English Wikipedia title — e.g. Pieter de Hooch, Mary Cassatt, Impressionism, Rosetta Stone. Spaces are accepted.Yes

Headers. Add one custom header. Wikipedia asks API consumers to identify themselves, so we send a polite User-Agent:

KeyValue
User-AgentPulteneyArtHouseBot/1.0 (https://www.pulteneyarthouse.example; [email protected])

Authentication. None.

Timeout. 30 seconds.

For reference, here is the complete configuration as the runtime schema:

{
  "title": "wikipedia_summary",
  "description": "Look up a short, factual summary of a topic from Wikipedia. Use this for biographical context on artists, descriptions of art movements and periods, historical figures, places, and any widely-documented public-knowledge topic. Returns a paragraph of plain-text summary and, when available, an image URL.",
  "method": "get",
  "url": "https://en.wikipedia.org/api/rest_v1/page/summary/{title}",
  "headers": [
    {
      "key": "User-Agent",
      "value": "PulteneyArtHouseBot/1.0 (https://www.pulteneyarthouse.example; [email protected])"
    }
  ],
  "params": [
    {
      "type": "string",
      "key": "title",
      "description": "The Wikipedia page title to look up. Use the canonical English Wikipedia title — e.g. 'Pieter de Hooch', 'Mary Cassatt', 'Impressionism'. Spaces are accepted.",
      "defaultValue": "",
      "required": true
    }
  ],
  "query": [],
  "body": [],
  "auth": { "type": "none" },
  "timeout": 30
}

Save the tool.

⚠️

A note on Wikipedia title matching. The summary endpoint returns a 404 when the title doesn’t match a Wikipedia page exactly. The model may occasionally construct titles that don’t exist — for example, “Vermeer paintings” instead of “Johannes Vermeer”. Our instructions in the next step handle this honestly: if the lookup returns nothing, the agent tells the visitor it doesn’t have information on that topic rather than guessing or retrying with variations.

Configure Lead Capture

Open the Tools tab and enable Lead Capture. We’ll keep the field set focused on the inquiries a museum actually receives — tour bookings, group visits, school enquiries, memberships, and accessibility-related questions.

Step 1 — Built-in contact fields

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

FieldRequiredPurpose
nameYesVisitor’s name
emailYesFor follow-up
phoneNoOptional, for school and group enquiries

Step 2 — Custom fields

Below the contact fields, click Add field to add each of the following under Custom Fields. These capture the enquiry details the museum’s team needs to follow up usefully:

LabelTypeRequiredDescription hint
Enquiry TypeTextNoOne of: private_tour, school_visit, group_booking, membership, accessibility, other
Group SizeNumberNoFor tour and group enquiries
Preferred DateTextNoMonth or date range, not exact slots
NotesTextNoFree text — anything the visitor wants the team to know

The key for each custom field is derived automatically from the label. Enquiry Type becomes enquiryType, Preferred Date becomes preferredDate, and so on. You’ll see the derived key displayed below the label as you type in the Add field dialog.

Why Preferred Date is Text, not Date. A visitor enquiring about a school visit says “sometime in November” or “early spring term” — a range, not a single calendar day. A free-form date belongs in a Text field; reserve the Date type for a value that is genuinely one specific day. Group Size, by contrast, is a clean integer, so Number is right there.

Timing. Lead capture should fire on clear intent, not preemptively. Examples:

  • “Could I book a private tour for my book club?” — yes, capture.
  • “I’d like to plan a school visit for Year 5 in November.” — yes, capture.
  • “How much is a family ticket?” — no, just answer.
  • “Tell me about the Cassatt exhibition.” — no, just answer.

(Optional) Enable Show Map

If you’d like the agent to surface the museum’s location visually when a visitor asks where to find you, enable Show Map on the Tools tab. No API key, no Google billing — it uses Jhunkoo’s built-in map service.

This is a small UX enhancement, not a primary feature of this guide. Skip it if you’d rather not bring it in.

Refine your instructions

Now that all the capabilities are wired up, update the instructions so the agent knows when to call each. This is where the “KB for proprietary, API for dynamic enrichment” pattern becomes explicit.

Go back to the Persona tab and replace the instructions with:

You are a helpful museum assistant for Pulteney Art House in Bath, England. You help visitors plan their visits, answer questions about our exhibitions and collection, and provide background on the artists and works in our care.
 
## Tone
 
Be warm, knowledgeable, and unhurried — like a thoughtful gallery steward. Match the voice of our visitor guide and exhibitions content: factual, generous with context, never breezy or salesy. We're a small museum that takes its visitors seriously.
 
## When to use the knowledge base
 
For any question specifically about Pulteney Art House — opening hours, ticket prices, concessions, memberships, accessibility, café, shop, family activities, schools programmes, group bookings, current or upcoming exhibitions, our history, photography rules, anything in our published guide — call the `search_knowledge_base` tool before answering. Do not answer questions about the museum from general knowledge.
 
If the knowledge base returns no results for a museum-specific question, say you don't have that information and offer to put the visitor in touch with the team ([email protected], +44 1225 000 000).
 
## When to use the Wikipedia API
 
For background questions about artists, art movements, periods, historical figures, places, artworks by name, or any widely-documented public-knowledge topic, call the `wikipedia_summary` tool with the most appropriate Wikipedia page title.
 
Use plain canonical English Wikipedia titles. Examples:
 
- _"Who was Pieter de Hooch?"_ → call `wikipedia_summary` with title `Pieter de Hooch`.
- _"What is Impressionism?"_ → call `wikipedia_summary` with title `Impressionism`.
- _"Tell me about the Rosetta Stone"_ → call `wikipedia_summary` with title `Rosetta Stone`.
 
If the Wikipedia API returns no result (a 404 or empty summary), tell the visitor you don't have information on that topic. **Do not retry with variations or guess.** Suggest they ask the team directly if it's important for their visit.
 
When the Wikipedia response includes an image URL, include that image in your reply using standard Markdown image syntax. Do not invent image URLs.
 
## Combining the two
 
Some questions need both. For example: _"What's the Northern Light exhibition about, and who was Pieter de Hooch?"_ — the exhibition details come from the knowledge base, the artist background from Wikipedia. In your reply, lead with the museum-specific information (because that's what the visitor came to us for) and bring in the public-knowledge context as enrichment.
 
Never present Wikipedia information as if it were our own curatorial position. Words like _"according to public sources"_ or _"in general"_ signal that you're drawing on external information; phrases like _"in our collection"_ or _"in this exhibition"_ are reserved for content from the knowledge base.
 
## When to capture a lead
 
Call the `lead_capture_tool` only when the visitor expresses clear intent to be contacted or to book something the assistant can't complete — private tours, school visits, group bookings, membership enquiries, accessibility arrangements, or curatorial questions about specific works. Do not capture leads when the visitor is browsing or asking general information questions.
 
When the visitor agrees to be contacted, collect their name and email at minimum. If the conversation has already revealed the enquiry type, group size, or preferred dates, include those — but do not interrogate the visitor for fields they haven't volunteered.
 
## When you don't know
 
If a visitor asks about something we explicitly cannot help with — processing ticket payments through chat, confirming whether a specific work is on display today, providing valuations, reserving café tables — explain that those go through the team directly and offer the appropriate contact (per the visitor guide's "what we can't help with" section).
 
## Formatting
 
Use Markdown. Lead with the direct answer. Include images from the knowledge base or from Wikipedia API responses when they exist; 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.

How the assistant decides what to retrieve

This is the pedagogical core of the guide — the pattern you can lift into any cultural-institution build, regardless of which specific APIs you wire up.

The assistant has two distinct sources of information, and the instructions above teach it when to use each:

SourceUsed forExample
Knowledge baseAnything proprietary to the institution — operations, schedules, prices, exhibitions, history, policies, anything published by us”What are your hours?”, “How much is a family ticket?”, “What’s in the Northern Light exhibition?”
Wikipedia API ToolPublic, widely-documented information that gives context to the institution’s content — artists, movements, places, historical figures, general art history”Who was Mary Cassatt?”, “What is the Dutch Golden Age?”, “Tell me about Wedgwood.”

Three things make this composition work:

  1. The knowledge base “wins” for institutional questions. The instructions explicitly say “do not answer questions about the museum from general knowledge” — the agent won’t pretend Wikipedia knows our ticket prices.
  2. The API “wins” for context questions. Conversely, the instructions don’t let the agent fabricate facts about an artist from training data — it’s required to look them up.
  3. The voice stays consistent across both. Phrases like “according to public sources” signal the source without breaking character.

The reusable principle: knowledge base for the institution’s own voice, external API for everything outside it. This pattern generalises to bookshops (KB for stock and events, API for book metadata), restaurants (KB for menu and reservations, API for ingredients or wine pairings), and any operator whose own content is one part of a larger conversational landscape.

Configure each tool

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

Knowledge base

Two URL sources form the agent’s single source of truth for institution-specific content:

  • Visitor Guide — opening hours, tickets, memberships, transport, accessibility, café, shop, families, schools, group bookings, house rules, history.
  • Current Exhibitions — what’s on now, what’s coming next, past exhibitions list, practical exhibition notes.

Why two sources, not one? Splitting visitor information from exhibition content improves retrieval. A question about “how much is a family ticket” pulls from the visitor guide alone; a question about “what’s in the Cassatt exhibition” pulls from exhibitions alone; “what time is the Cassatt exhibition open on Sundays?” pulls from both. Each source can be updated independently as content changes — exhibitions rotate more often than visitor policies.

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 all of that cleanly. The PDFs are still useful — visitors can download them — but the agent reads from Markdown.

Wikipedia API Tool (the primary lesson)

The single API tool we configured does a lot of work. Here’s what to know about it.

What it returns. A successful call returns a JSON object with these fields the agent uses:

  • extract — the plain-text summary (typically 2–4 sentences)
  • description — a short one-line description
  • thumbnail.source and originalimage.source — image URLs, when the page has one
  • content_urls.desktop.page — the link back to the full Wikipedia page

The model surfaces the extract and (when present) the image. It can also offer the visitor a link to the full Wikipedia page if they want to read more.

404 handling. Wikipedia is unforgiving about page titles. “Pieter de Hooch” works; “Pieter De Hooch” or “Pieter Hooch” may not. The instructions tell the agent to give up honestly rather than retry with variations. That’s a deliberate teaching point — API Tools aren’t magic, and graceful failure beats clever guessing.

Image rendering. Wikipedia’s response includes a thumbnail.source URL. When the agent surfaces this in a Markdown image tag, the chat widget renders the image inline. This is what gives the assistant its “richer than a chatbot” feel. The instructions tell the agent to use the URL from the API response — never to invent one.

Rate limits. Wikipedia’s REST API is generous (no per-user limit for low-volume use), but they ask all API consumers to identify themselves via the User-Agent header. The configuration above does that. If you fork this for your own institution, update the User-Agent to identify your organisation.

Cost. Free. The Wikipedia API is open and unauthenticated for read access. Calls don’t accrue any third-party cost to you or to Jhunkoo. (The agent’s LLM tokens are billed normally; the API call itself is free.)

Lead Capture

The built-in contact fields (name, email, phone) plus the custom fields (Enquiry Type, Group Size, Preferred Date, Notes) give the museum’s team enough to follow up usefully without interrogating the visitor.

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, Google Sheets, or your team’s inbox using your own workflow.

Show Map (optional)

If enabled, this surfaces a visual map of the museum’s location when a visitor asks “where are you?” or “how do I get there?”. No configuration; the tool runs on Jhunkoo’s own infrastructure with no API key.

This is a small visual enhancement — useful if your institution gets visitors who travel to see you, optional otherwise.

Test in the studio

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

  1. Pure knowledge base. “What are your opening hours on Saturdays?” — must come from the knowledge base, not the API.
  2. Knowledge base — exhibitions. “What’s the Northern Light exhibition about?” — KB retrieval; agent should also surface the exhibition’s image.
  3. Pure Wikipedia API. “Who was Mary Cassatt?” — must call wikipedia_summary; agent should return a paragraph of context and the Wikipedia portrait image.
  4. Composed (KB + API). “What’s the Cassatt exhibition about, and who was she?” — knowledge base for the exhibition, API for biographical context, in one reply.
  5. Composed (KB + multiple API calls). “Tell me about Pieter de Hooch and Gerard ter Borch — I saw them mentioned in your Northern Light exhibition.” — KB confirms the exhibition; the agent makes two API calls for the artists.
  6. Wikipedia 404 handling. “Tell me about Pieter Hooch.” — Wikipedia 404s on this title. Agent should say it doesn’t have information, not retry with variations.
  7. Honest “no” — KB only. “Can I reserve a table in the café for Saturday lunch?” — KB explicitly says we can’t, agent should explain and offer the contact for arrival timing.
  8. Lead capture. “I’d like to bring a Year 5 class of twenty-eight pupils for a curator-led session in November.” — agent should collect at minimum name and email, ideally also enquiry type, group size, preferred date.
  9. Show Map (if enabled). “Where are you?” — agent should call Show Map with the museum’s address.

If any answer is wrong or off-brand:

  • Wrong museum-specific answer. Confirm both knowledge sources finished Training in the Knowledge tab.
  • Agent answered about the museum without checking KB first. Re-read the “When to use the knowledge base” section of the instructions — the rule needs to be explicit and the agent needs to be told not to answer institutional questions from general knowledge.
  • Agent invented Wikipedia information. Re-read the “When to use the Wikipedia API” section. The rule needs to require an API call, and the failure case needs to be an honest “no”, not a guess.
  • Wikipedia API call returned a 404 and the agent retried with variations. Add the explicit “do not retry with variations” line if it’s been edited out.
  • Image didn’t render. Confirm the agent included a markdown image tag with the URL from the Wikipedia response. Look at the raw API result in the chat trace to confirm the image URL was present in the response.
  • Lead capture fires too early. Tighten the “clear intent” language in the instructions; add explicit “do not capture while the visitor is browsing” guidance.

Publish and embed

  1. Use the publish control at the top of the agent page to make the agent live.
  2. Open SettingsClient settings and set Origin to the institution’s site (e.g. https://www.pulteneyarthouse.example).
  3. Open Client script to copy your 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 visitor questions from the museum’s own content (visitor guide + exhibitions)
  • Looks up artists, art movements, places, and historical context on Wikipedia at the moment the visitor asks
  • Surfaces images from both the knowledge base and the API response
  • Knows the difference between “what we publish” and “what’s publicly documented”
  • 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 pattern adapts to any cultural institution — galleries, science museums, historic houses, university archives, libraries. Replace the two source documents with your own, configure the API Tool against whichever public knowledge source fits your domain (Wikipedia for art and history; Open Library for bookshop catalogues; PubMed for medical content; or your own published API for anything specific to your sector), and the rest of the structure stays the same.

Next steps

  • API Tool reference — full schema, authentication patterns, and configuration tips.
  • Lead Capture — full reference for fields, dedup, and the leads dashboard.
  • Knowledge tool — multi-source retrieval, RAG behavior, and best practices for content structure.
  • Widget guide — install the chat widget on the institution’s site.
  • Prompt Builder — form-driven alternative to hand-writing the instructions above.
  • FAQ — billing, limits, troubleshooting.

Disclaimer: The institution, exhibits, and supporting materials in this guide are fictional and created solely for demonstration purposes. Any resemblance to real organisations or historical details is unintended.

Portions of the example assistant use data retrieved from the Wikipedia REST API for demonstration purposes.

Sample images are sourced from Unsplash (under the Unsplash License) and Wikimedia Commons, including public-domain artwork by Mary Cassatt.