Jitbit External Tool — search_bookstack
Overview
| Field | Value |
| Workflow ID | qLw7S1Rr0eznKDhi |
| n8n URL | https://n8n.pbr.org.au/workflow/qLw7S1Rr0eznKDhi |
| Status | Active |
| Trigger | Webhook — called by Jitbit AI as a registered External Tool |
| Webhook URL | https://n8n.pbr.org.au/webhook/jitbit-search-bookstack |
| Systems | Jitbit 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
- 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.
- 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.
- 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).
- Respond to Jitbit — the workflow returns a JSON response to the Jitbit AI containing the formatted
result string and a total_found count.
This workflow is registered in Jitbit under Admin > AI Features > External Tools with the following settings:
| Field | Value |
| Name | search_bookstack |
| URL | https://n8n.pbr.org.au/webhook/jitbit-search-bookstack |
| Description | Search 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
| Name | Description | Required |
query | Search terms extracted from the ticket — keywords describing the system or issue (e.g. "Proxmox iSCSI timeout" or "PA-440 IPsec VPN") | Yes |
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
| Node | Type | Purpose |
| Receive from Jitbit AI | Webhook (POST, responseMode: responseNode) | Entry point — receives the search query from Jitbit AI |
| Search BookStack | HTTP Request (GET) | Calls https://bookstack.pbr.org.au/api/search with the query and count=8 |
| Build Jitbit Response | Set | Formats 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 Jitbit | Respond to Webhook | Returns the JSON result to the Jitbit AI caller |
Credentials
| Credential | Type | Used For |
| BookStack Token | HTTP 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.
No comments to display
No comments to display