AI AssistantKnowledge Base

Bot Context Sources

Context sources let you attach external knowledge to an AI assistant — help center articles, house rules, message templates, or any text — so that content is automatically included every time the bot generates a reply.

What are context sources?

Every AI assistant has a system prompt — the Instructions you write to define the bot's behaviour and tone. Context sources extend that prompt with additional content that lives outside the instructions text itself.

When a guest sends a message, the platform resolves all context sources attached to the bot, concatenates their content, and appends it to the system prompt before sending everything to the AI model. The model then sees both your instructions and the additional context when composing its reply.

ℹ️
Context sources are resolved on every message. URL sources are fetched live each time, so any updates you make to the linked content are immediately reflected in the bot's answers — no need to update the bot itself.

Source types

There are three types of context source:

URLKnowledge base URL

A public URL that returns a JSON array of articles. On every message, the platform fetches the URL and injects all articles as structured text into the bot's context. This is the recommended approach for help centers and policy documents you want to keep in sync automatically.

The JSON should be an array of objects with at minimum a title and content field per article. Plain-text URLs are also supported — the full text is injected as-is.

TextInline text

A static text block stored directly in the bot configuration. Useful for short, rarely-changing content: house rules, a list of nearby amenities, parking instructions, or any other plain text that doesn't warrant a separate file.

TemplateMessage template

A reference to one of your saved Message Templates. The template's content is loaded from your library each time the bot replies, so any edits to the template are automatically reflected. Useful when you want the bot to be aware of the exact wording of a specific automated message you send — for example, a check-in instructions template.

How URL sources are loaded

When the bot generates a reply, the following happens for each URL context source:

  1. The platform makes an HTTP GET request to the configured URL.
  2. If the response is JSON, it is parsed as an array of articles. Each article's title and content are formatted into a readable text block.
  3. If the response is plain text, it is included verbatim.
  4. The resulting text is appended to the bot's system prompt under a Knowledge Base heading before the request is sent to the AI model.
💡
Because the URL is fetched live, you can update your knowledge base file at any time and the bot will use the new content immediately — no configuration changes required. This makes URL sources ideal for help centers and policy pages that evolve regularly.
⚠️
The URL must be publicly accessible without authentication. If the URL returns an error or is unreachable, that source is skipped silently and the bot continues with the remaining context.

Adding context sources to a bot

Context sources are configured per bot on the Instructions tab of the bot detail page:

  1. Go to AI Agents → Bots and open the bot you want to configure.
  2. Click the Instructions tab.
  3. In the Context Sources panel on the right, click + URL, + Text, or + Template.
  4. For URL sources, paste the URL and optionally add a label. Then use Preview articles to verify the content loads correctly before saving.
  5. The source is saved immediately. It will be included in every reply the bot generates from that point on.

A single bot can have multiple context sources of any combination of types. All sources are resolved in parallel and appended to the prompt in the order they are listed.

Expected JSON format for URL sources

The recommended format is a JSON array where each item has a title and content field:

[
  {
    "title": "Check-in time",
    "content": "Standard check-in is from 15:00. Early check-in may be available on request."
  },
  {
    "title": "Cancellation policy",
    "content": "Full refund if cancelled more than 7 days before check-in."
  }
]

The title is used as a heading in the injected context. The content is the text the bot will read. Additional fields are ignored.