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 for configured tools, such as transferring a call, sending an event registration link, or handing the conversation to another Bolt Agent.
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 a configured action — for example, "always transfer the call to this number during business hours" or "always send the registration link for this event." Until @Share Entity is available, document sharing relies on natural-language instructions rather than a configured entity action.
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)
In the Conditions tab, the Availability section contains the channel and schedule restrictions. These hard gates run before the agent evaluates the trigger. If a conversation does not match them, the skill is skipped.
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 are interested in. If they mention nursing, offer to send the registration link using @Register for Event: Nursing Open House. If they want to talk to an advisor, use @Transfer Call for 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 available tool opens a configuration sheet where you select its target, such as an event, Bolt Agent, or phone number. The resulting chip defines the configured action the agent can run when the action's authentication, permissions, confirmation, and product prerequisites are satisfied.
Why some tools may not appear
The tools available in the @ menu depend on the Element451 products and capabilities enabled for your institution.
For example, if Events is not enabled for your institution, @Register for Event will not be available. If Appointments is not enabled, @Schedule Appointment will not be available.
If a tool is available but you cannot see a specific event, appointment type, workflow, label, application, or other record inside the tool configuration sheet, that is usually related to your user permissions. Product access controls whether the tool is available. User permissions control which items you can view or select inside that tool.
If you expected a tool to be available but do not see it, contact your Element451 team or your institution's Element451 administrator.
Feature required by tool
Tool | Feature required |
| Voice, Conversations, or handoff capabilities, depending on channel |
| Events |
| Tasks |
| Cases / Alerts |
| Labels / People |
| Applications |
| Appointments |
| Workflows |
| Workflows + Rules |
| Bolt Agents |
For @Share Entity, availability can depend on what kind of entity is being shared. For example, your institution may have Forms enabled but not Surveys, or Pages enabled but not Documents.
Tool | What it does | You configure |
@Transfer Call | On Voice: transfers the call to the configured destination. The destination can be a static phone number, the office phone of the contact's assignee, or the office phone of a staff member connected to the contact through a Network Role. On chat/SMS: routes the conversation to the staff queue, like a standard human handoff. | The destination type per Transfer Call chip. Static phone number preserves the existing behavior (a blank number uses the line's default handoff number). Contact Assignee and Network Role transfer to the resolved staff member's office phone and require a fallback (the line's default handoff number or a specific number) used when the destination cannot be resolved. Existing Transfer Call chips continue to work as static numbers. |
@Register for Event | Currently, the tool will send a student a link to register for the event. In the future, the tool may have the ability to take an action and register the student for a specific event you've chosen. | 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, and due date |
@Create Alert | Create a Case Management alert linked to the contact for a reviewer to triage | The alert |
@Add Label | Applies a label to the student's contact record — useful for segmentation and downstream automation | The label |
@Start Application | Sends the student a link to start a specific admission application | The application |
@Schedule Appointment | Books a specific appointment type for the student through a conversational flow | The appointment type |
@Enroll in Workflow | Enrolls the student into a selected Element451 workflow based on the skill logic | The workflow |
@Enroll in Rule | Enrolls the student into a selected automation Rule based on the skill logic. Like @Enroll in Workflow, this runs silently in the background — the agent continues the conversation naturally without announcing the enrollment. | The Rule |
@Hand Off to Agent | Routes the conversation to a different specialized agent in your instance with conversation context | The target agent |
More tools coming after beta
A few additional tools are on the roadmap and will appear in the @-mention menu as they ship:
@Hand Off to Person routes the conversation to a specific person or team, or to a dynamic destination like the student's Contact Owner
@Share Entity sends a specific shareable resource to the student (documents, knowledge items, and similar), adapting delivery to the channel
Authentication during Custom Skill actions
Some Custom Skill actions require a known contact, such as creating a record-linked task, booking an appointment, or continuing a sensitive process. If a visitor is anonymous, the agent can prompt them to authenticate with the existing email-code flow before continuing. After authentication succeeds, the conversation continues with the authenticated contact context. If authentication is not completed, the agent should not perform the record-linked action.
Enabling skills on an agent
Custom Skills are managed in three places:
Instance level — Skills can be created and available across the whole instance 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.
You are able to edit the custom skill here by clicking on the ellipsis more options menu
Agent Test Console - Use the top row skills menu on an active or inactive Custom Skill to open the same editor without leaving the agent or testing flow.
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. For Voice, you can test real-time audio behavior for inbound call simulations and outbound phone simulations. Outbound voice tests ask for a call goal before the simulated interaction begins. No real calls are placed during testing.
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.Response Details — Every agent response has a collapsible 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 response detail 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.
Monitoring live Custom Skill conversations
After a Custom Skill is live, use the Conversations filter found in Engagement > Conversations > All conversations: Advanced Filtering to spot-check real conversations where a specific Custom Skill triggered. Select the Custom Skill in the filter to review matching conversations and confirm the skill is behaving as expected.
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, explain that FAFSA is the first step for most need-based aid.
If they mention scholarships, explain that scholarship options can depend on student type, program, academic profile, and deadlines. Ask whether they are a first-year, transfer, graduate, or continuing student.
If they ask about tuition, cost, payment plans, or affordability, explain that final cost depends on program, residency, enrollment status, and aid eligibility. Ask whether they want help estimating cost, understanding payment options, or connecting with financial aid.
If the student wants to talk to a counselor or asks for a person, use@Transfer CallIf their question is unclear or they're stuck,
@Create Taskfor the Financial Aid team with a summary of the conversation.After clear financial aid intent, use @Add Label: Financial Aid Interested.
Example 2 — Campus Visit Scheduler
Example 2 — Campus Visit Scheduler
Goal: Help students who want to visit campus reach the correct event registration page.
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, and what is included. If they are interested, use @Register for Event: Spring Open House 2026 to send the registration link. After sending the link, add the @Add Label: Visit Interested label so the recruitment team can follow up. Do not state that registration is complete.
Example 3 — Voice Call Routing (business hours vs. after hours)
Example 3 — Voice Call Routing (business hours vs. after hours)
Goal: Route inbound Admissions calls to the Admissions line 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 explicitly asks to speak with Admissions or an admissions counselor.
Action:
Confirm that the caller wants Admissions, then use @Transfer Call: 555-100-2000. Create a separate Financial Aid Custom Skill with its own trigger, priority, and Transfer Call number.
Skill B — After-Hours Voice Routing
Availability: Voice only. After hours only.
Trigger:
Caller explicitly asks to speak with Admissions or an admissions counselor.
Action:
Apologize that our counselors are unavailable, and let the caller know we'll text them resources and a callback link. @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, troubleshoot, 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 them to a person" generically. Use@Transfer Callwhen a transfer or handoff should happen.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. Your institution's Custom Skills catalog 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:
@Share Entity isn't available yet. Until it ships, share documents and resources through natural-language instructions in the action text
@Hand Off to Person isn't available yet. For voice transfers, use @Transfer Call. For chat and SMS handoffs, the standard human handoff still works
Prebuilt skill templates and a shared template library are not in the beta. Each institution creates and manages its own Custom Skills in its instance-level catalog.
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.











