Skip to main content

What the sales agent does

A sales agent is an agent with type: sales. It runs on your marketing site through the web widget and is built for pre-sale conversations: answering product and pricing questions, capturing visitor contact details, qualifying leads against your criteria, booking meetings, and handing off to a human rep when it matters. Everything below is configured on AI Agents > [Your Sales Agent] > Configure.

Conversation starters

Preset questions visitors can tap when the widget opens (for example “What pricing plans do you offer?”). Each starter takes an optional page pattern so it only appears on matching pages: /pricing* shows a pricing starter on pricing pages only, while starters without a pattern show everywhere. Patterns support * (single path segment) and ** (across segments).

Lead capture

Collect visitor contact details with a form inside the chat. Turn it on under Lead capture and choose when the form appears: Then pick which form to show:
  • Built-in form. Email is always required. You can add name, phone, and company as built-in fields, plus custom fields (text, email, phone, or dropdown), and drag them into the order you want.
  • Orbit form. Pick any published form from your connected Orbit account (or paste its share link). The form is embedded in the chat in place of the built-in form, with the visitor’s name and email pre-filled when already known. Use this when your form has logic, more fields, or a design you already maintain in Orbit. See Orbit forms in the chat for how submissions attach to the conversation.
Either way, submissions create a lead contact in Contacts with attribution (landing page, UTM parameters, referrer) attached, and visitors who already submitted the form in a session are never asked again.

Qualification

Under Lead qualification criteria, describe in plain language what makes a lead a good fit:
The AI uses this to decide when to mark a lead qualified or not qualified during conversation. Leave it empty and the AI qualifies on general fit signals.

Integration embeds

Embeds are scheduling pages and forms the AI can surface directly in the chat at the right moment, for example when a visitor asks to book a demo. Calendly event types and Orbit forms can be picked straight from your connected accounts; custom links only need a URL.
1

Add an embed

Under Integration embeds, click Add integration and pick Calendly, Orbit forms, or Custom link.
2

Pick the event type or form, or paste a link

For Calendly, choose an event type from the list when Calendly is connected, or paste any scheduling link (a single event type like https://calendly.com/your-team/30-min-demo works best). For Orbit forms, choose a form from the list when Orbit is connected, or paste the form’s share link (https://orbitforms.ai/r/team-id/form-slug).
3

Give it a label

The label (“Book a demo”) is shown as the card title in chat and helps the AI pick the right embed when you have several. Picked event types and forms use their own name until you change it.
How each type renders in the chat: Every inline embed also has an “Open in new tab” link, so visitors on networks that block embedded content can still get through.
The AI shows embeds when conversation context calls for them: a visitor asking to book a call gets the Calendly card, one asking to get in touch gets your contact form. You can steer this with agent instructions, for example “always offer to book a demo after qualifying a lead.”

Scheduling routing

With several booking pages (an enterprise AE’s calendar, an SDR round-robin, a regional team), Scheduling routing sends each visitor to the right one based on who they are. Turn it on under Scheduling routing on the sales agent.
  • Rules use the same contact and company filters as chat routing and segments: company size, plan, country, lead score, any custom attribute, including answers from the lead form or an Orbit form (they are stored as contact attributes). Each rule points at one of your embeds. Rules run top to bottom and the first match wins.
  • Default is the page shown when no rule matches, or when the visitor hasn’t shared anything to match on yet. Leave it empty to show nothing until a rule matches.
Where it applies: The rules never leave the server: the widget only learns which page to show.
Orbit has routing of its own on forms (“if company size is over 50, send to the enterprise page”). That keeps working inside the chat: the page Orbit routes to opens inline. Use Halo’s scheduling routing when the decision should use what Halo knows about the contact (plan, lead score, company data from your CRM), not just the answers on one form.

Orbit forms in the chat

With Orbit connected, the sales agent treats your Orbit forms the way Intercom treats a Typeform: you choose any form from your account, it loads inside the chat, the visitor can keep chatting around it, and each submission reaches your team as a lead with the answers attached. What happens on submit:
  • A lead contact is created or updated with the form’s answers as contact attributes, and the submission appears on the contact’s timeline.
  • Your lead notifications fire (Slack and email), naming the form the lead came in on.
  • The submission is attached to the visitor’s conversation, so it opens from the lead’s page and your team sees it next to the chat.
  • The AI sees the answers for the rest of the conversation and continues from them instead of asking again. It also qualifies against your criteria using what the form collected.
1

Connect Orbit

Connect your Orbit account under Settings > Integrations > Orbit. This is the same connection that syncs submissions and booked meetings into Contacts.
2

Add the handshake field to the form

In Orbit, add a Hidden Field named halo_session to any form you embed in the chat. The chat fills it in automatically; without it, submissions still create contacts but are not attached to the conversation. The form picker in Halo shows whether a form has the field and links to the form’s editor.
3

Pick the form

Choose it as the lead-capture form, as an integration embed, or both.
The first time you pick a form, Halo may ask you to paste the share link of any form from your Orbit account once. Orbit’s API does not expose the team id that share links are built from, so Halo learns it from that link and builds the links for every other form itself.

Lead notifications

Under Notifications, alert your team the moment a fresh lead is captured. Notifications fire once per lead (no duplicates when a lead is captured incrementally across the same conversation).

Slack

Pick a channel and every new lead posts a summary there: name, email, phone, company, the page they came from, and their traffic source. Sales handoff requests post to the same channel.
  • Slack connects once for your whole workspace on the Slack integration page. The same connection powers agent Slack channels; the picker here only controls where lead alerts go. If Slack isn’t connected yet, the panel shows a Connect Slack button.
  • Public channels work immediately (the Halo bot joins automatically). For a private channel, invite the bot to the channel first.
  • Use Send test next to the channel picker to post a test message and confirm the wiring.

Email

Add any number of recipient addresses. Each gets a plain email per new lead with the captured details and a link to the lead in your dashboard.

CRM

If HubSpot is connected, captured leads with an email are also created or updated as HubSpot contacts automatically.

Proactive messaging

Nudge visitors with a teaser bubble before they open the widget. Triggers fire on time on page, scroll depth, or exit intent, each with an optional page pattern so different pages get different messages. A trigger can stack multiple bubbles, and you can customize the teaser’s background and text colors. Clicking a teaser opens the chat and sends the message to the AI so the conversation starts immediately.

Human handoff

The AI hands the conversation to a human when a visitor asks for a person or when the conversation warrants it (enterprise deals, custom requirements). Handoffs create a ticket in your Inbox with the conversation context and lead details attached, and post to your lead-alert Slack channel when one is configured.