Guide
Article Markdown

AI catalog search

Optional track — unlike Use Case 12: Copilot, categorizer and lookup live in the same training bot. A separate Copilot bot is not required.

Required permissions and access

Module / setting Why you need it
Scenario Builder FAQ + categorizer + CD lookup in one bot
Fast Line Pro Categorizer or intent for the catalog
Custom Data products model + seed
Settings → Operator Panel Handoff to an operator (optional)
Runs / Chat preview 5 control queries

Business context

The customer asks for a product or character from the training catalog. The bot replies from Custom Data and, if needed, hands the dialog to an operator. A typical pattern for e-commerce / reference bots without a Copilot architecture.

Expected result

  • Model products + seed products-training.csv
  • Categorizer or filter in CD after action_fastline_pro
  • Handoff edge on “not found” or at the customer’s request
  • Not a separate Copilot bot — everything in the training bot

Architecture

MessageKeyboard "Catalog" → WaitForInput (query)
   → action_fastline_pro (categorizer / intent)
   → Router (valid filters)
   → custom_modules__get / search
      ├─ found     → MessageKeyboard (result)
      ├─ not_found → clarification or handoff
      └─ error     → message + fallback

Optionally: "Operator" → connect (Use Case 3)

Step-by-step implementation

Step 0. Custom Data — products

  1. Create the products model (alias products).
  2. Fields: name, category, faction, price.
  3. Import products-training.csv.

Custom Data set


Step 1. Fast Line Pro — catalog categorizer

Parameter Value
Type Chatbot
Prompt Catalog section in categorizer-training.txt
Test “spellcaster from north” → JSON filters

Step 2. Entry and categorizer in the scenario

Node Parameters
MessageKeyboard “What are you looking for in the catalog?” → WaitForInput
WaitForInput outputVariable: catalog_query
action_fastline_pro user_input: {{catalog_query}}, save_response: catalog_filters

Edges: main → lookup; fallback → “Please rephrase your query.”


Step 3. Lookup in Custom Data

node_params (example) Value
module_name products
filter by category, faction from categorizer

Edges:

Edge Message (example)
found “{{name}} — {{price}} gold”
not_found “Not found in the catalog. Try differently or tap “Operator”.”
error “Search error.”

Step 4. Handoff to an operator

On not_found or the “Operator” button:

MessageKeyboard → operator_panel__connect_to_operator_with_msg
   (subject_alias from Use Case 3)

Edges: success / limit / error — required.

Use Case 3


Step 5. Five control queries (self-check)

# Query Expectation
1 “Geralt” found — warrior, north
2 “dragon from Mars” not_found
3 “something cheap” found or clarification (not silence)
4 “Operator” / handoff connect edges
5 Unknown intent categorizer fallback

Each pass — a separate Run or reset state; record the edge in Runs.

Troubleshooting

Symptom What to check
Always not_found Filters vs seed CSV; case of category/faction
AI “invents” a product Lookup must come from CD, not only from LLM text
Endless clarifications Retry limit → handoff
Handoff without limit edge Edge-driven flow

Self-check

Independent task

Add MessageKeyboard after found: “Search again” → loop to WaitForInput; “To menu” → capstone main menu.

Using your own AI agent?Install the open skill so your AI agent can work with current official ConnectiveOne documentation.Get the skillNeed support?Couldn’t find the answer or need help from the ConnectiveOne team? Create a request in Client Portal.Create a request