Virbe Documentation

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

FieldDescription
Find optionFind 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 tableThe 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 byHow matched rows are ordered before being returned (e.g., Latest)
Store inThe name of the variable that will hold the result

Filter results

When enabled, four fields define the filter:

FieldDescription
Filter byThe table column to filter on (e.g. Created At, Name, Description, Room number, etc.)
ConditionThe comparison to apply – options depend on the column's type (e.g. a date column offers Equals, On or after, On or before)
Match ByWhether 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?"

On this page