AskVault skills, an overview
What a skill is
A skill is a structured capability the AI agent can invoke during a conversation. Different from a simple knowledge-retrieval answer in three ways:
- Skills can take actions. Create a Zendesk ticket, book a Calendly slot, look up an order, capture a lead. Knowledge retrieval just produces text.
- Skills have policy bounds. Each skill has hard limits the LLM cannot override (per-visitor caps, per-workspace caps, rate limits, audience restrictions).
- Skills are configured per workspace. You decide which skills are on and what bounds apply. Trigger phrases, response messages, integration mappings.
A conversation might invoke zero, one, or several skills. Most conversations use zero (just knowledge retrieval). Sales-intent conversations may use 3 to 5 (collect_lead, sdr_lead_qualifier, demo_scheduler, then maybe escalate_to_human).
The 14 built-in skills
Categorized by purpose:
| Skill | Purpose | Plan |
|---|---|---|
| knowledge_search | Retrieve and cite content from indexed knowledge | Free |
| collect_lead | Capture name, email, phone with conversation context | Free |
| escalate_to_human | Hand off to live chat with full context | Growth |
| ticketing_router | Create Zendesk tickets routed by intent | Starter |
| sentiment_router | Detect frustration and route or de-escalate | Starter |
| sdr_lead_qualifier | BANT-style qualification before CRM sync | Growth |
| demo_scheduler | Book Calendly slots from chat | Growth |
| content_recommender | Suggest related articles after answers | Growth |
| wismo_order_status | Live order lookup via Shopify | Growth |
| wc_order_status | Live order lookup via WooCommerce | Growth |
| cart_recovery | Detect cart hesitation and offer help | Growth |
| discount_negotiator | Apply pre-approved codes within bounds | Business |
| subscription_manager | Live Stripe subscription lookups | Business |
| custom_webhook | Fire your own webhook with conversation context | Business |
How the bot decides to invoke a skill
For each customer message, the bot evaluates in this order:
- Check explicit trigger phrases. Every skill has a list of phrases like "where is my order?", "I want a demo", "talk to a human". If the customer's message matches a trigger, the skill fires.
- Check intent classifiers. For each enabled skill with auto-trigger enabled, an intent classifier evaluates the conversation context. High-confidence matches trigger the skill.
- Check policy preconditions. Even when a trigger fires, the skill verifies its policy preconditions are met. For example,
collect_leadonly fires once per conversation;discount_negotiatorchecks caps before offering. - Default to knowledge_search. If no skill triggers, the bot answers from the knowledge base.
Most messages take path 4 (just knowledge retrieval). Skills fire on specific intent-bearing messages, not every turn.
Policy bounds the LLM can't override
Each skill has bounds enforced at the AskVault layer, not in the LLM prompt. This matters because LLM-only guardrails are bypassable; AskVault's policy layer isn't.
Examples:
- discount_negotiator has per-visitor (15%), per-workspace ($5,000/mo), and per-code caps. Even if the LLM "decides" to offer 50% off, the policy layer rejects it.
- collect_lead runs once per conversation. Even if the LLM keeps trying, it won't ask again.
- custom_webhook has rate limits per workspace. Burst traffic gets a polite fallback rather than overwhelming your endpoint.
Configure bounds under AI Agents > Skills > [skill name] > Bounds.
Customizing skill behavior
Three layers of customization per skill:
- Triggers. What phrases fire the skill. Default lists work for most teams; customize for industry vocabulary.
- Messages. What the bot says when the skill fires. Customer-facing wording matches your brand voice.
- Integration mappings. For skills that call external services (Shopify, Stripe, HubSpot), map field names and routing rules.
All three configurable in the dashboard per workspace. Changes apply within seconds, no redeploy.
Enabling and disabling skills
Each skill has an on/off toggle. Disable skills you don't need:
- Free-tier customers don't need
subscription_managerif they're not on Business plan. - Internal helpdesk bots don't need
cart_recoveryordiscount_negotiator. - B2B SaaS without e-commerce doesn't need
wismo_order_status.
Reducing skill surface area improves accuracy (fewer false-positive trigger matches) and audit clarity.
Skill execution latency
Most skills add minimal latency:
- Knowledge-only. 400 ms to 1 second per turn.
- Skill with API call. Add 300 ms to 2 seconds for the external API roundtrip.
- Multi-skill chain. A conversation that triggers collect_lead -> sdr_lead_qualifier -> demo_scheduler totals 60 to 120 seconds wall-clock, mostly waiting on the customer's responses.
Skills don't significantly affect bot response time in normal usage. Skills with slow downstream APIs (your WooCommerce host on a shared server) are the exception.
Audit logging per skill
Every skill invocation is logged:
- Skill name and trigger that fired.
- Input passed to the skill.
- Result returned.
- Policy bound check (pass/fail and reason).
- Timestamp.
Visible under Dashboard > AI Agents > Skill Audit Log. Retained 365 days on standard plans, 6 years on Enterprise.
Multi-skill conversations
Conversations can invoke multiple skills in sequence. Typical sales flow:
- Visitor asks pricing. Bot answers via knowledge_search.
- Visitor shows buying intent. collect_lead captures contact info.
- sdr_lead_qualifier asks BANT questions.
- Lead syncs to HubSpot.
- Visitor asks for a demo. demo_scheduler offers Calendly slots.
- Booking confirmed. Confirmation emails fire.
Each skill maintains state in the conversation context. The bot's reasoning carries across skill invocations.
Limits
- Plan availability. Each skill has a minimum plan; see the table above.
- Concurrent skill invocations. Up to 3 skills can run in parallel within one bot turn. Multi-skill chains run sequentially.
- Custom skills. Today only via
custom_webhook. Native custom-skill SDK on the roadmap.
Common pitfalls
Skills fire on the wrong messages. Trigger phrases are too broad. Tighten the lists or move to intent-only auto-trigger.
Skills don't fire when they should. Trigger phrases too narrow. Add synonyms or enable auto-trigger.
Skills interrupt the conversation. Skill fires mid-explanation. Configure trigger conditions to require explicit signals or end-of-explanation markers.
Customers confused by skill output. Customer-facing messages don't match your tone. Customize messages under each skill's settings.
Related guides
- What is Retrieval-Augmented Generation (RAG)?
- Custom webhook skill
- Escalate to human skill
- Collect lead skill
- Webhooks reference