What an agent is
In Halo, an agent is a persistent, configurable AI persona. Each agent has its own:- Identity, name, avatar, type (
customer_facing,internal,sales,help_center). - Instructions, system prompt that defines tone, scope, and behavior.
- Skills, opt-in capabilities like web search and UI highlighting (knowledge search is always on for customer-facing agents). Voice and Live Help are configured as widget modes on the Chat Widget channel, not as skills.
- Channels, where the agent runs: web widget, email mailbox, Slack workspace, help center.
- Actions, third-party tools the agent can call: HubSpot, Linear, Stripe, Slack, plus built-ins like ticket escalation and Stripe billing.
- Escalation rules, when and how to hand off to a human.
- Style, colors, trigger icon, greeting, suggested messages.
/dashboard/agents).
Agent types
| Type | Used for |
|---|---|
customer_facing | Default. Handles customer questions in the web widget, email, and Slack. |
internal | Team-facing assistant for staff. Different tone, no escalation. |
sales | Pre-sale qualification, demo scheduling, lead capture. Often paired with the sales-specific agent template. |
help_center | Embedded in your published help center site for self-serve search and chat. |
The agent editor
Open an agent (/dashboard/agents/[id]) and you’ll see:
Top tabs — switch between sections:
| Tab | What’s there |
|---|---|
| Channels | Where this agent runs: chat widget, email, Slack |
| Configure | Name, instructions, voice, Live Help, human mode, onboarding, chat routing rules |
| Style | Colors, trigger icon, header avatar, highlight presets |
| Train | ”Live Train” — practice mode using the real agent in a sandboxed widget |
| Actions | Ticket escalation, Linear bug filing, Stripe billing, plus per-integration actions |
| Data Sources | Structured “Primary Goal”, “Ideal Customer”, and “Boundaries” appended to instructions |
| Integrations | High-level org integration context for this agent |
The default support agent
Whenever Halo needs to pick “the” agent — for example, the chat widget on your help center, or fallback action resolution — it uses the oldest active customer-facing agent in your org. This usually matches what teams expect (the original support agent everyone knows about). If you create new customer-facing agents and want one of them to take over, deactivate the old one or assign channels explicitly to the agent you want.Multi-agent setups
Common patterns once you have more than one agent:| Pattern | Setup |
|---|---|
| Support + Sales | Two agents on the widget, routed by page URL filters or by widget mode. Sales agent appears on marketing pages; support inside the app. |
| Per-product agent | Different agents for different product lines. Use page URL filters or visibility filters on each agent. |
| Per-region agent | Different language/tone per region. Use visibility filters to scope by user/company segment. |
| Internal + customer-facing | One internal agent for staff, one customer-facing agent for users. Internal agent runs in your team’s Slack only. |
| Linear agent | A dedicated agent connected to Linear that replies to dev comments on tickets it created. See Linear. |
Visibility & routing
Customer-facing agents can be scoped to specific users, companies, or pages:- Require authentication — only show to identified users.
- User segment filters — only show when the user’s traits match (e.g. plan = pro).
- Company segment filters — only show when the company’s traits match.
- Page URL filters — only show on URLs matching include/exclude rules (
is,is_not,contains,starts_with,ends_with).
Where to go next
Instructions & Behavior
Write the system prompt that defines tone, scope, and rules for your agent.
Skills
Turn on capabilities like knowledge search, ticket creation, and UI highlighting.
Channels
Connect the agent to web widget, email, or Slack.
Escalation
Decide when the agent hands off to a human.
Actions
Let the agent create deals, file bugs, or trigger billing changes.
Voice & Live Help
Add voice mode and a real-time video avatar.