Bot Skills
Bot Skills are structured, multi-step conversation flows that your AI bot follows when handling specific customer scenarios. Unlike the freeform AI pipeline (which generates responses dynamically), skills provide deterministic, predictable conversation paths — perfect for processes that must follow exact steps every time.
Navigate to Conversations > Agent Builder > Skills tab.
Why Bot Skills?
| Freeform AI (Brain) | Bot Skills |
|---|---|
| Generates unique responses each time | Follows exact pre-defined steps |
| Great for open-ended conversations | Great for structured processes |
| May vary in quality/consistency | 100% consistent every time |
| Requires high confidence to auto-reply | Always confident (deterministic) |
Use skills for: order tracking, return/refund flows, appointment booking, product recommendations, lead qualification, FAQ walkthroughs.
Use freeform AI for: general questions, complaints, complex multi-topic conversations.
How Skills Work
- A customer sends a message
- The ICE pipeline classifies the message (intent + keywords)
- If a skill matches (by intent or keyword), the skill takes over the conversation
- The bot walks through the skill's steps: sending messages, collecting input, calling tools, evaluating conditions
- When the skill completes (or transfers), normal processing resumes
If multiple skills match, the one with the lowest priority number wins (0 = highest priority).
Creating a Skill
- Go to Agent Builder > Skills tab
- Click Add Skill
- Fill in:
- Name — A descriptive name (e.g., "Order Tracker")
- Description — Optional explanation of what this skill does
- Priority — Lower number = higher priority (0 is checked first)
Setting Up Triggers
Skills are triggered by intents and/or keywords:
- Trigger Intents — Select from the available intent types (e.g.,
order_tracking,refund_request). The skill activates when the classifier detects a matching intent. - Trigger Keywords — Add keywords that trigger the skill when found in the customer's message. Keywords are normalized automatically (case-insensitive, Arabic letter normalization).
Keywords support Arabic text normalization — alef variants (أ, إ, آ) are normalized to ا, and taa marbuta (ة) is normalized to ه. This means أين طلبي and اين طلبي both match.
Building Steps
Each skill consists of ordered steps. The bot executes steps sequentially, pausing when it needs customer input.
Step Types
| Type | What It Does |
|---|---|
| Message | Sends a text message to the customer |
| Collect Input | Asks the customer a question and stores their answer |
| Condition | Branches the flow based on collected data |
| Tool Call | Calls a backend tool (e.g., look up an order, check stock) |
| Transfer | Hands off the conversation to a human agent |
| End | Sends a final message and completes the skill |
Message Step
Provide text in each supported language (English and Arabic). The bot automatically sends the message in the customer's detected language.
Collect Input Step
- Input Prompt — The question to ask (per language)
- Input Key — A variable name to store the answer (e.g.,
orderNumber) - Validation Type — Validates the customer's response:
text— Any text (default)email— Must be a valid emailphone— Must be a valid phone numbernumber— Must be a numberchoice— Must match one of the provided options
Condition Step
Create branches that evaluate collected data. Each branch has conditions (field + operator + value) and a target step. If no branch matches, the default step is used.
Tool Call Step
Calls a backend function using collected data as input:
- Tool — Select from available tools (
searchOrders,checkStock,getShippingStatus,getProductDetails,getReturnPolicy,getCustomerProfile) - Result Key — Variable name to store the tool's result
- Result Message — Template message with
{{result}}placeholder
Transfer Step
Escalates to a human agent with a reason and priority level (LOW, MEDIUM, HIGH, CRITICAL).
Navigation Between Steps
Each step (except Condition and End) has a Next Step selector. Choose which step to go to after this one completes. Leave empty to end the flow.
Example: Order Tracker Skill
A simple 4-step order tracking flow:
- Message → "Hi! I can help you track your order."
- Collect Input → "What is your order number?" (key:
orderNumber) - Tool Call → Call
getShippingStatuswithorderNumber, store inshippingResult - End → "Here's your order status:
{{result}}"
Managing Skills
Enable/Disable
Toggle the switch on any skill card to enable or disable it without deleting the configuration.
Edit
Click the pencil icon to modify an existing skill's triggers, steps, or settings.
Delete
Click the trash icon and confirm to permanently remove a skill.
Execution History
Skill executions are logged for observability. Each execution tracks:
- Which skill ran
- Which thread it ran on
- Current step progress
- Data collected from the customer
- Final status (completed, abandoned, failed)
Tips
- Start with simple 3-4 step skills and expand as needed
- Use Collect Input with validation to ensure clean data before tool calls
- Add a Transfer step as a fallback for when the bot can't resolve the issue
- Test skills in the Bot Sandbox before enabling them in production
- Set priority carefully — if a customer's message matches multiple skills, the lowest-priority-number skill wins