Find Records
Query a Knowledge Base Table document and retrieve rows matching a filter. Store results in a variable for use downstream.
The Find Records node queries a Table document in the Knowledge Base and retrieves rows matching a filter expression. The results are stored in a variable and can be used by subsequent nodes – displayed as cards, referenced in a Text response, or processed further.
Available in: Conversational Flows and Handlers
Configuration
| Field | Description |
|---|---|
| Find option | Find one – return a single matching row. Find many – return multiple matching rows, up to Max records. |
| Max records | (Find many only) Maximum number of rows to return |
| Select table | The Knowledge Base Table document to query |
| Filter results? | Toggle on to restrict results to rows matching a condition. Off by default – with no filter, all rows in the table are considered. |
| Sort by | How matched rows are ordered before being returned (e.g., Latest) |
| Store in | The name of the variable that will hold the result |
Filter results
When enabled, four fields define the filter:
| Field | Description |
|---|---|
| Filter by | The table column to filter on (e.g. Created At, Name, Description, Room number, etc.) |
| Condition | The comparison to apply – options depend on the column's type (e.g. a date column offers Equals, On or after, On or before) |
| Match By | Whether to compare against an Exact value you enter, or a Context Variable |
| Variable Name | (Match By: Context Variable only) The plain name of the variable to compare against – no {{ }} syntax |
Using the results
After Find Records runs, the result variable holds the matched row (Find one) or an array of matched rows up to Max records (Find many). Use it with:
- Text – reference
{{conversation.results[0].column_name}}to display a specific value from the first result - LLM Response or Tool Agent – inject the result data into the AI context
Example: product lookup by scan
A kiosk flow that looks up a product when a barcode is scanned:
[Route by Signal: scan]
→ [Store Variable: conversation.scannedCode = signal.payload]
→ [Find Records:
Select table: Products
Find option: Find one
Filter results?: on
Filter by: Barcode, Condition: Equals, Match By: Context Variable, Variable Name: conversation.scannedCode
Store in: conversation.foundProduct
]
→ [Check Variable: conversation.foundProduct]
→ [Does not exist]: [Text: "Sorry, I couldn't find that product."]
→ [Exists]: [LLM Response: "I found your product. What would you like to know?"