Skip to main content

Jitbit External Tool — search_bookstack

Overview

FieldValue
Workflow IDqLw7S1Rr0eznKDhi
n8n URLhttps://n8n.pbr.org.au/workflow/qLw7S1Rr0eznKDhi
StatusActive
TriggerWebhook — called by Jitbit AI as a registered External Tool
Webhook URLhttps://n8n.pbr.org.au/webhook/jitbit-search-bookstack
SystemsJitbit Helpdesk (caller), BookStack (search target)

Purpose

This workflow acts as a bridge between the Jitbit AI assistant and PBR's internal BookStack documentation wiki. It is registered in Jitbit as an External Tool named search_bookstack. When the Jitbit AI is answering a helpdesk ticket and determines that relevant internal documentation may exist, it automatically calls this tool, passing search keywords extracted from the ticket. The workflow queries BookStack and returns a formatted list of matching pages — titles, types, URLs, and content previews — which the AI incorporates into its response to the technician.


How It Works

  1. Jitbit AI calls the webhook via HTTP POST with a JSON body containing a query parameter — search keywords extracted by the AI from the ticket subject and body.
  2. Search BookStack — the workflow calls GET /api/search on BookStack with the query string, requesting up to 8 results. Authentication uses the BookStack API token.
  3. Build response — a Set node formats the results into a plain-text string. Each result includes: name, content type (page, chapter, or book), full URL, and a content preview snippet (up to 200 characters, HTML tags stripped).
  4. Respond to Jitbit — the workflow returns a JSON response to the Jitbit AI containing the formatted result string and a total_found count.

Jitbit External Tool Configuration

This workflow is registered in Jitbit under Admin > AI Features > External Tools with the following settings:

FieldValue
Namesearch_bookstack
URLhttps://n8n.pbr.org.au/webhook/jitbit-search-bookstack
DescriptionSearch PBR's internal IT documentation wiki (BookStack) for relevant articles, configuration guides, troubleshooting procedures, and technical documentation. Use this when a ticket involves a known system, technology, or procedure that may be documented internally.

Parameters

NameDescriptionRequired
querySearch terms extracted from the ticket — keywords describing the system or issue (e.g. "Proxmox iSCSI timeout" or "PA-440 IPsec VPN")Yes

Response Format

The workflow returns a JSON object to the Jitbit AI:

{
  "result": "Page Title (page): https://bookstack.pbr.org.au/books/book-slug/page/page-slug
  Preview: content snippet...

Another Page (book): https://...",
  "total_found": 29
}

The result field is a formatted plain-text string the AI can read directly. total_found is the total number of matching results in BookStack (not just the 8 returned).


Nodes

NodeTypePurpose
Receive from Jitbit AIWebhook (POST, responseMode: responseNode)Entry point — receives the search query from Jitbit AI
Search BookStackHTTP Request (GET)Calls https://bookstack.pbr.org.au/api/search with the query and count=8
Build Jitbit ResponseSetFormats the BookStack results array into a plain-text string; strips HTML tags from preview_html.content; falls back to "No preview available" if content is empty
Respond to JitbitRespond to WebhookReturns the JSON result to the Jitbit AI caller

Credentials

CredentialTypeUsed For
BookStack TokenHTTP Header Auth (Authorization: Token id:secret)BookStack search API

Maintenance Notes

  • The BookStack API token is stored as an HTTP Header Auth credential in n8n. Regenerate it at https://bookstack.pbr.org.au under the Claude_AI user profile if access is revoked.
  • The result count is capped at 8 to keep AI responses focused. This can be adjusted in the Search BookStack node query parameter count if broader results are needed.
  • BookStack search uses keyword matching. If searches return poor results, the issue is likely in the quality of keywords the Jitbit AI is passing — this is controlled by Jitbit's AI system prompt, not this workflow.
  • Books and chapters without page-level content return "No preview available" in the result — this is expected behaviour, as BookStack only generates preview snippets for pages.