Custom Skills are launching in beta in May 2026 for participating institutions. Reach out to your CSM if you'd like to be added to the beta cohort.
Overview
Bolt Agents come with a set of system skills — Inquiry Flow, Schedule Appointments, Start an Application, and so on — that work the same way for every institution. Custom Skills let you go further: build your own skills that teach an agent how to handle the scenarios that are specific to your school.
A Custom Skill is two things together:
A condition — when this skill should fire, including hard channel and time-of-day restrictions plus a natural-language description of the trigger.
An action — what the agent should do when the skill fires, written in plain language with optional
@-mentions that hook into deterministic tools (transfer the call, register for an event, share a document, hand off to another agent, and so on).
Skills apply to all inbound conversations — direct messages on Messenger, SMS, Email, or Voice, replies inside a Bolt Agent Job, and conversations handed off from another agent.
When to use a Custom Skill
Reach for a Custom Skill when:
A scenario doesn't map to a system skill (mental-health questions, athletic recruiting, transfer credit evaluation, a specific scholarship program).
You need deterministic behavior — "always send this exact document," "always transfer the call to this number during business hours."
You want different behavior on different channels or different times of day.
You need the agent to follow a specific script (especially common over Voice).
You want one general agent to route conversations into specialized agents based on what the student is asking about.
Anatomy of a Custom Skill
Every Custom Skill has the same shape. Here's what each piece does.
1. Name & Description
A short, descriptive name (e.g. Financial Aid Inquiry Handler, After-Hours Voice Routing) and an optional description explaining what the skill is for. Both are internal — students never see them.
2. Availability (channels & schedule)
Hard, deterministic gates that run before the agent even evaluates whether the skill applies. If a conversation doesn't match availability, the skill is skipped — no LLM call, no surprises.
Channels: Pick which of Messenger, SMS, Email, Voice, and WhatsApp the skill should fire on. Default is all channels.
Schedule: Optionally restrict the skill to specific times of day in a chosen timezone. Choose Business hours only, After hours only, or define a custom schedule.
Use availability when you need predictability — for example, a "transfer to admissions counselor" skill that's only available 9–5 Eastern, with a separate "after-hours" skill that texts a callback link instead.
3. Trigger
A natural-language description of when the skill applies. The agent uses this to decide whether the skill matches the current conversation.
Good triggers describe the student's intent or situation in plain English:
"Student asks about financial aid, scholarships, or FAFSA."
"Caller wants to schedule or learn about a campus tour."
"Student mentions mental health, counseling, or feeling overwhelmed."
4. Action
The instructions the agent follows when the skill fires. Written in plain language, with optional @-mentions for deterministic tools.
Actions can mix natural-language guidance with structured logic:
Ask the caller which program they're interested in. If they mention nursing, share @Share Document: Nursing Program Overview and offer to register them for @Register for Event: Nursing Open House. If they want to talk to an advisor, @Transfer Call to the admissions line.
@-mentions: deterministic tools inside a skill
Typing @ in the Action field opens an autocomplete of tool actions the agent can take. Each tool you insert opens a small configuration sheet so you can pick the exact event, document, agent, or phone number it should target. The result is a styled chip in your instructions and a guaranteed action at runtime — no guessing on the agent's part.
Tool | What it does | You configure |
@Transfer Call | On Voice: transfers the call to a specific number. On chat/SMS: routes the conversation to the staff queue, like a standard human handoff. | One or more phone numbers. Falls back to the line's default handoff number if none is set. |
@Hand Off to Agent | Transfers the live conversation to a different Bolt Agent — for example, from a general front-door agent to a specialized Financial Aid Agent. Conversation context carries over and the target agent's skills become active. | The target agent. |
@Register for Event | Registers the student for a specific event you've chosen. The agent handles any extra info collection (guest count, etc.) conversationally. | The event. |
@Create Task | Creates a staff follow-up task linked to the student and conversation, with the agent's summary attached. | Task type/template, assignee (team or individual), priority. |
@Share Document | Sends a specific knowledge base document to the student, adapting delivery to the channel (link via SMS on a voice call, inline preview on chat, link/attachment on email). | The document. |
@Add Label | Applies a label to the student's contact record — useful for segmentation and downstream automation. | The label. |
More tools coming after beta
A few additional tools are on the roadmap and will appear in the @-mention menu as they ship:
@Schedule Appointment, @Start Application, @Send Form — deterministic versions of the existing system-skill behaviors.
@Write to Contact Field — capture data from the conversation and write it back to a custom field on the student's record.
@Enroll in Workflow — drop the student into an Element451 workflow based on what they say. Until this lands, the recommended workaround is to use a custom field + segment + workflow trigger.
Enabling skills on an agent
Custom Skills are managed in two places:
Instance level — Skills are created and edited once, available across the whole instance. Find them under Engagement > Bolt Agents > Custom Skills.
Agent level — Each agent has a list of skills you can enable or disable. The same skill can be on for one agent and off for another.
Skill priority
When more than one skill could match an inbound message, priority decides which one wins. On the agent configuration page, drag enabled skills to reorder them — the skill higher in the list takes precedence over a lower one. Priority is per-agent, so the same skill can rank differently on different agents.
A good rule of thumb: more specific triggers go higher. A "Mental Health Support" skill should sit above a generic "Student Support Questions" skill so the more specific one is chosen first.
Testing your skill: the Agent Test Console
Every agent configuration page now has a Test Agent button that opens an embedded test console. Use it to simulate conversations across any channel, see exactly which skills fire, and iterate on your trigger and action text without touching live data.
What the test console does
Channel simulation — Pick Messenger, SMS, Email, or Voice. The agent responds the way it would on that channel: shorter, spoken-friendly replies for Voice, character-conscious for SMS, longer for Email, rich content on Messenger.
Full configuration — The simulation uses every skill you have enabled, in priority order, with all your
@-mention tools wired up. Channel and schedule controls are respected.Debug trace — Every agent response has a collapsible debug panel showing which skills were evaluated, which one matched and why, which were skipped (wrong channel, outside schedule, condition didn't fit), and what tool actions would have executed.
No side effects — No real contact records are created. No real transfers, registrations, or texts go out. Tool actions show up in the trace as "would execute: @Transfer Call to 555-1234" rather than actually executing.
A typical testing workflow
Save your skill and enable it on the agent.
Click Test Agent on the agent config page.
Pick the channel you want to test (start with the most-used one).
Send a message that should trigger the skill. Confirm in the debug trace that your skill matched.
Send a message that should not trigger it. Confirm the skill is correctly skipped.
Repeat across each channel the skill is enabled on.
Voice testing tip: The beta test console simulates voice conversations with text input — you type what a caller would say. Real audio testing (TTS/STT in-browser) is on the roadmap for after beta.
Worked examples
A few patterns to model your own skills on. These are simplified — your actual skills will be longer and more specific to your institution.
Example 1 — Financial Aid Inquiry Handler
Example 1 — Financial Aid Inquiry Handler
Goal: When a student asks about financial aid, hand them tailored information and a way to get a person involved if they need one.
Availability: All channels. No schedule restriction.
Trigger:
Student asks about financial aid, scholarships, FAFSA, payment plans, tuition cost, or how to afford school.
Action:
Ask the student which aspect of financial aid they need help with.
If they mention FAFSA, share
@Share Document: FAFSA Step-by-Step Guideand explain our school code and priority deadline.If they mention scholarships, share
@Share Document: Scholarship Programs Overview.If they want to talk to a counselor,
@Hand Off to Agent: Financial Aid Agent.If their question is unclear or they're stuck,
@Create Taskfor the Financial Aid team with a summary of the conversation.
Example 2 — Campus Visit Scheduler
Example 2 — Campus Visit Scheduler
Goal: Convert any "I want to visit campus" mention into an event registration.
Availability: All channels. No schedule restriction.
Trigger:
Prospective student asks about visiting campus, taking a tour, an open house, or attending an info session.
Action:
Tell the student about our upcoming Open House — date, time, what's included. If they're interested, @Register for Event: Spring Open House 2026. After registration, add the @Add Label: Visit Interested label so our recruitment team can follow up.
Example 3 — Voice Call Routing (business hours vs. after hours)
Example 3 — Voice Call Routing (business hours vs. after hours)
Goal: Route inbound voice calls to a live counselor during business hours, and offer a callback or text-based help after hours. This pattern uses two skills working together.
Skill A — Business Hours Voice Routing
Availability: Voice only. Business hours only (9 AM–5 PM, your timezone).
Trigger:
Caller asks to speak with a person, an admissions counselor, or anyone other than the agent.
Action:
Confirm the caller wants to be transferred. Ask whether they're calling about admissions or financial aid. If admissions, @Transfer Call: 555-100-2000. If financial aid, @Transfer Call: 555-100-3000.
Skill B — After-Hours Voice Routing
Availability: Voice only. After hours only.
Trigger:
Caller asks to speak with a person, an admissions counselor, or anyone other than the agent.
Action:
Apologize that our counselors are unavailable, and let the caller know we'll text them resources and a callback link. @Share Document: After-Hours Resource Guide. @Create Task for the Admissions team to call them back tomorrow morning.
Because the two skills have non-overlapping schedules, only one ever fires for a given call.
Best practices
One job per skill. If a skill is doing two things, split it. Smaller skills are easier to reason about, debug, and reorder.
Use availability for the things you can't get wrong. If something must only happen on Voice, set the channel restriction. Don't rely on the trigger description to enforce it.
Specific triggers go higher in priority. A "Mental Health Support" skill should sit above a generic "Student Questions" skill so the specific one wins.
Use
@-mentions whenever the action involves a specific entity. Don't write "send the financial aid doc" — pick exactly which document with@Share Document.Test each channel separately. Skills can behave differently on Voice vs. SMS vs. Messenger; the test console is fastest.
Start small. One agent, two or three skills, watch how they behave on real conversations, expand from there. The library will grow naturally.
Beta limitations and what's coming next
Custom Skills are launching in beta. A few capabilities are intentionally not in the first release:
@Enroll in Workflow isn't available yet. To route students into workflows from a skill today, use the
@Add Labeltool (or write to a custom field once@Write to Contact Fieldships) and trigger the workflow off that.@Schedule Appointment, @Start Application, and @Send Form are deferred. The system-skill versions still work — agents can already help students schedule, apply, and submit forms via natural language.
@Write to Contact Field is on the roadmap. We're actively testing whether voice conversations can reliably write back to contact fields, particularly for inbound voice pilots.
Voice testing in the test console is text-based. Real audio simulation is a future enhancement.
Skill templates and a shared library are not in the beta. Every institution builds its own from scratch for now.
Per-agent customization of an instance-level skill (overriding the action text on one agent only) isn't in the beta — skills are shared across agents, with priority ordering as the per-agent control.
If your team has a use case that depends on one of these, let your CSM know — beta feedback drives the post-beta roadmap.
Related articles
Bolt Agent Skills — the system skills your agents already have.
Bolt Agent Handoffs — how human handoffs work in conversations.
Bolt Agent Settings — agent-level configuration.
Bolt Agent Teams — group agents for inbound routing.
Playbook: Handling Inbound Communications — channel-by-channel guidance.
Creating a Bolt Agent Job — for proactive (outbound) agent work.