1. Agent Template
Storm OpenAPI(en)
  • Welcome to STORM
    • Introduction
  • Quickstart
    • Getting Started
      • Account Creation
      • Creating an Agent
    • Core Scenario
      • Document Upload
      • Workflow Design
      • Test
      • Deployment
      • Channel Integration
  • Feature Guide
    • Console
      • Agent Management
      • Dashboard
      • Permission Management
    • Agent Template
      • Deep Knowledge Exploration
      • Explore knowledge
      • Free Chat
      • Create reports
      • FAQ Chatbot
      • Resume Screening
      • Character Conversation
      • Analyze chat history
      • Write articles
      • Write SQL queries
    • Agent Builder
      • Knowledge
        • Documents
        • Folders
        • Feedback
      • Workflow
        • Node Description
          • LLM
          • Search(RAG)
          • Agentic RAG
          • API
          • IF ELSE
          • Variable Declaration and Assignment
          • Postprocessing
          • Response
          • Loop
          • Document Generation
      • Test
      • Log
      • Dashboard
    • Admin Tools
      • Deployment Management
      • Channel Integration
      • Model Fine-Tuning
      • Training Data Quality Management
      • Other Settings
      • Teams Channel Integration
  • Apis
    • Agent
      • Deploy Agent
      • View Agent Deployment History
      • View Agent
    • Bucket
      • Create Bucket
      • View Bucket
    • Document
      • Document Training Request by file
      • Document Training Request by URL
      • View Documents
      • Delete Document
    • Chat
      • File upload during chat
        • File creation and presigned URL issuance
        • File upload completion handling
        • File status lookup
      • Chat Sending (OpenAI Compatible)
      • Send Chat (non-stream)
      • Send Chat (stream)
      • Search Context
    • STORM Parse
      • /convert/md
    • Instance Agent
      • Add Instance Session
      • Upload Instance Document
      • Request RAG Source For Query
      • Delete Instance Session
  • Learn More
    • FAQ
    • Pricing
    • Error Code Guide
      • AgentRag
      • ApiCall
      • DocGen
      • Function
      • IfElse
      • Loop
      • OpenLLM
      • Post
      • Rag
      • Response
      • Variable
  1. Agent Template

FAQ Chatbot

FAQ Chatbot Template#

The FAQ Chatbot Template is designed for building an agent that searches all CS documents such as FAQs, guides, user manuals, policies, and internal wikis to provide accurate answers, and transfers the case to a human agent when necessary. By automatically classifying the user’s question, you can build an intelligent CS agent that routes requests through the most appropriate path among knowledge-based response, general conversation response, and human agent handoff.
Automatic intent classification: Automatically classifies user questions into more than 40 CS intent labels and determines their priority
3-way routing: Automatically selects the route for knowledge search, general conversation, or human agent handoff depending on the question type
Accurate knowledge-based responses: Searches registered CS documents and generates evidence-based answers
Automated human agent handoff: Automatically generates a handoff summary for urgent cases and delivers a guidance message to the user
Multilingual support: Automatically detects the user’s input language and responds in that language

The FAQ Chatbot Template is used after registering CS documents in Knowledge.
You can get more accurate responses by registering FAQs, user manuals, policies/terms, price lists, troubleshooting guides, and similar materials.

Workflow Structure#

The FAQ Chatbot Template consists of 5 LLM nodes, 1 search (RAG) node, 1 conditional branching node, and 2 variable assignment nodes. Based on the intent classification result, it branches into 3 routes, each of which follows a different response path.

Step 1. Intent Classification (LLM)#

Analyzes the user’s question to determine the intent, priority, and required handling method.
Classification Fields:
FieldDescriptionOutput Value
need_ragWhether knowledge search is requiredTRUE / FALSE
need_apiWhether account-specific action/query is requiredTRUE / FALSE
intent_labelUser intent classification label1 of 40 labels
entitiesExtracted entities (product, order number, amount, etc.)JSON object
user_languageDetected user languageko / en / ja, etc.
priorityPriority levellow / normal / high / urgent
Intent Label Categories:
CategoryExample Labels
Product / Technicalgetting_started, how_to, troubleshooting, error_message, product_info
Setup / Integrationsetup_installation, configuration, integration_api, developer_docs
Billing / Subscriptionpricing_billing, payment_issue, subscription_plan, cancellation, refund_request
Orders / Shippingorder_status, shipping_delivery, return_exchange, promotion_coupon
Policy / Securitywarranty_policy, policy_terms, privacy_security, compliance, data_retention_deletion
Accountaccount_access, authentication, password_reset, account_update
Operationsusage_limits_quota, performance_sla, outage_incident, maintenance
Otherfeedback, abuse_report, legal_question, general_question
Priority Criteria:
urgent: Fraud, security breach, unrecognized charges, data leak, service outage, health or safety issues
high: Financial risk, imminent deadline, production blockage, or other serious short-term impact
normal: All other general inquiries

Step 2. Variable Assignment#

Stores the classification results from Step 1 in custom variables.
These variables are then referenced in the conditional branching step and in the LLM nodes for each route.
VariablePurpose
need_ragDetermines whether to branch to the knowledge search route
need_apiIndicates whether API integration is needed (for future extension)
intent_labelReferenced by each route’s LLM to generate an intent-appropriate response
entitiesPasses extracted entities such as product names and order numbers
user_languageDetermines the response language
priorityDetermines urgency-based branching and is passed during human agent handoff

Step 3. Conditional Branching (If/Else)#

Routes the request into one of three paths based on the stored variable values.
ConditionRoute
priority = "urgent"Route A: Human Agent Handoff
need_rag = "TRUE"Route B: Knowledge-Based Response
OtherwiseRoute C: General Conversation Response


Route A. Human Agent Handoff (urgent)#

Urgent cases such as fraud, security issues, or data leaks are automatically handed off to a human agent.
This route consists of 3 steps.
A-1. Handoff Summary Generation (LLM)
Generates a concise handoff summary for the human agent.
Included items:
Summary of the user’s request
Steps already attempted or provided
Current status (success / failure / blocking issue)
Urgency and supporting reason
Required permissions or systems
Extracted identifiers (order number, account, email, etc.)
Suggested resolution and next action items
A-2. Variable Assignment
Stores the generated handoff summary in the assistant_draft_ko variable.
A-3. User Guidance Message Generation (LLM)
Generates a message informing the user that the case has been handed off to a human agent.
Included items:
Confirmation message and summary of the next action
Ticket / request ID, if available
Expected next steps and contact method
Information the user should prepare


Route B. Knowledge-Based Response (need_rag = TRUE)#

Finds answers in registered CS documents such as FAQs, policies, and manuals.
This route consists of 3 steps.
B-1. Query Expansion (LLM)
Expands the user’s question into a query optimized for RAG search.
Includes key entities (product name, order number, amount, etc.)
Adds CS domain synonyms (for example, refund/return/exchange, payment/billing)
Explicitly includes keywords related to policies, fees, and warranties
Outputs a single query string within 200 characters
B-2. Knowledge Search (RAG)
Searches the registered CS documents using the expanded query.
Returns up to 30 relevant chunks.
B-3. Knowledge-Based Answer Generation (LLM)
Generates an answer based on the retrieved document content.
Rules:
Use only the content present in the retrieved context to generate the answer
Quote policy / warranty / fee / date values exactly as written in the documents
If the answer is not in the context, state that “it cannot be answered based on the current knowledge” and suggest the next step
Do not invent numbers or URLs
Refer to the most recent 5 turns of conversation history to maintain multi-turn context


Route C. General Conversation Response (Otherwise)#

The LLM directly answers general inquiries that do not require knowledge search.
Concise, polite, and action-oriented responses
If the request is ambiguous, ask 1 clarifying question and suggest the most likely next step
Provide specific steps (1–5) and explain what information is needed
Do not invent policies, prices, or dates, and suggest connecting to a human agent for specialized domains

Customizing the Evaluation Criteria#

You can modify the prompt of each node in the workflow editor to adjust it for your service.
Customization TargetNodeExample Customization
Intent classification criteriaIntent Classification (Node 5)Add / remove labels, change priority criteria
Human agent handoff conditionConditional Branching (Node 6)Add extra conditions beyond urgent
Handoff summary formatHandoff Summary (Node 7)Change summary items or output format
Query expansion strategyQuery Expansion (Node 12)Modify domain synonyms or expansion rules
Answer tone / formatAnswer Generation (Node 3, 10)Adjust tone, response format, or response length
Search precisionKnowledge Search (Node 2)Adjust number of chunks or search scope

If you first adjust the label list and priority criteria in the intent classification node to fit your service domain, the response quality across the later routes will also improve.
The human agent handoff route is currently automated only up to generating the guidance message.
To create actual tickets or connect to a human agent, you need to add an API node and integrate with an external system.
Modified at 2026-05-27 08:55:52
Previous
Create reports
Next
Resume Screening
Built with