Support handoff
Let your Onboarding agent hand visitors to your support team in your support chat, with their question already written.
When a visitor asks for a person, or the Onboarding agent can't answer their question, the agent offers a Contact support button. A click opens your support chat with the visitor's question already written, and the agent steps aside. Your support tool sends the conversation to your team.
You need your support chat and embed.js from the quick start on the same pages. Support handoff works with the Intercom Messenger.
Set up Intercom
-
Turn on the Messenger API. Settings → Channels → Messenger → Install: switch on "Enable the Messenger API".
-
Add two people attributes. Settings → Data → People → Attributes:
handhold_support_requested_at, type Date. Handhold sets it when your support chat opens from the Contact support button.handhold_session_url, type Text. The link to the session in Handhold.
Switch off "Require verified updates" on both. Intercom switches it on for new attributes and then ignores updates from the Messenger, so conversations would no longer reach your team.
-
Send these conversations to a person. Create a workflow from scratch with the trigger "When customer opens a new conversation in the Messenger":
- Audience: Custom, with Visitors, Leads and Users, and the rule
handhold_support_requested_atis less than 1 day ago. - Its first message: a neutral line, such as "Send us your message and a teammate will reply here."
- After "Customer sends a message": assign to your support team.
Set it live and drag it above your Fin workflow. Intercom runs only the top workflow that matches, so visitors handed over by the agent skip Fin and everyone else keeps your usual setup. Intercom counts in whole days, so a conversation the visitor starts on their own within a day also goes to a person.
Until the visitor sends their message, Intercom shows the first message under Fin's name.
- Audience: Custom, with Visitors, Leads and Users, and the rule
Add the action to your agent
- Connect your support tool under Data & connections → Connections.
- Open your Onboarding agent, go to Outcomes, add an action and pick your support tool.
- Edit the label and when the agent should offer it. Each Onboarding agent can have one Contact support action.
What visitors see
- Only one chat on the page. While the Onboarding agent shows,
embed.jshides your support chat's launcher and brings it back once the agent is gone. - The visitor's question comes along. The agent writes it in the visitor's own words, and the visitor can edit it before sending.
- The agent steps aside. The session ends when your support chat opens, and the agent leaves the page to it until the next page load, unless your page calls
launch()orshowLauncher(). If the support chat doesn't open, the agent stays and carries on without it. - Replies reach the visitor. While your team's reply is unread, the agent steps aside and your support chat shows the reply with its launcher, on any page.
Your support chat's launcher can show for a moment before embed.js hides it. Loading embed.js before your support chat's snippet makes that moment shorter. To avoid it entirely, hide the launcher in your support tool's settings; visitors then can't reach support on pages where the agent doesn't load. A visitor who closes your support chat after a handoff then can't open it again on that page, and embed.js doesn't bring the launcher back for your team's replies.
Good to know
- Use the attributes for routing only. Any visitor's browser can set them, so don't grant anything based on them.
- Find handoffs. A handoff counts as the session's outcome, so you can filter Visitors and your agent's Overview by your Contact support action.
- SDK events. A Contact support click fires
onactionclick, but notoncloseoronsessionfinished. See tracking events.
For AI agents: a clean Markdown version is available at /docs/support-handoff.md.