This guide covers setting up Fin Messenger with HubSpot handoff. Customers chat with Fin via the Intercom Messenger on your website; when Fin cannot resolve the issue, it either routes to your HubSpot agent queue or creates a new HubSpot ticket with the full conversation transcript.
Prerequisites
Before you begin, ensure you have the following:
HubSpot connected via OAuth: If you haven't connected yet, follow the steps in Fin for HubSpot tickets: Setup — skip this if you're already connected.
Website access: Access to your website or app code to install the Fin Messenger snippet.
HubSpot permissions: Admin access to your HubSpot account to add an inbox channel.
Tip: Create a dedicated user — e.g. "Fin AI" — rather than using a personal account. This keeps Fin's ticket ownership separate from your teammates' queues and makes the integration easier to manage if you need to pause or revoke it.
Part 1: Connect to HubSpot
In Deploy > Fin Messenger you can connect to HubSpot.
Connect with HubSpot
Connect your HubSpot account to give Fin access to conversations and enable AI-powered support.
Click the "Connect" button.
You will be redirected to HubSpot to authenticate
Once you authenticate you will be redirected back to Intercom to continue.
By connecting Intercom to HubSpot, you agree to our third-party platform terms.
Install the Fin Messenger channel to your HubSpot portal
Connect the Fin Messenger channel in your HubSpot helpdesk to allow Fin to answer incoming questions.
Go to your HubSpot portal.
Navigate to CRM → Inbox → Settings.
Click Connect a channel.
Select your Fin Messenger account from the list to start receiving Fin Messenger conversations in your HubSpot inbox.
Click Connect with Fin messenger to continue the setup.
Click Connect to complete the setup to connect your Fin Messenger channel to your HubSpot Helpdesk.
Optionally, enable Auto assign conversations to automatically route incoming conversations to a teammate.
Once installed, return to your Fin workspace and click Refresh status to continue.
Tip: Test the Messenger in a QA environment before installing it in production.
Fin HubSpot agent
Choose which HubSpot agent Fin should act as when handling Fin Messenger conversations. This user becomes the owner of tickets while Fin is actively working them — making it clear in HubSpot which conversations are being handled by Fin vs. your teammates.
Note: We recommend a dedicated account rather than a personal one — it's easier to debug when it's clear which admin is taking action, and it protects against issues if that agent's account is deleted or their permissions change. If a HubSpot user does not appear in the list, verify they have a valid support seat and correct permissions in HubSpot.
Sync data from HubSpot
This step is optional, you must connect to HubSpot first to sync data. Use this data to target your content to different audiences, automatically classify tickets, and create branches in workflows.
Part 2: Build your workflow
Customize the way Fin greets and responds to customers, or hands off when it's unable to help. Navigate to Manage workflow in your Fin workspace to customize the experience and set it live.
A workflow with the trigger when a customer opens a new conversation in the Fin Messenger will auto-populate with a default flow. The default workflow includes:
A Fin triage step — Fin attempts to resolve the customer's question using your knowledge base and content
A resolve path — if Fin resolves the query, the conversation is closed
A handoff path — if Fin can't resolve it, the conversation is escalated to your HubSpot agent queue or a new HubSpot ticket is created with the full transcript
Within the workflow you can customize:
The greeting message Fin sends when a customer opens a conversation
Fin's response behavior — tone, escalation triggers, and content targeting
The handoff conditions — when Fin routes to a teammate vs. creates a ticket, and which HubSpot inbox or queue to route to. There are two handoff modes to choose from: Hand-off to agent in HubSpot (when the Fin Messenger channel is installed in your HubSpot inbox) or Hand-off to ticket in HubSpot (when it isn't).
Note: On a successful connection, Fin automatically creates 4 HubSpot workflows: Resolution, Pending, Route to team, and Assign new tickets. To view them in HubSpot, go to Automation > Workflows.
Don't delete these — they're required for Fin to manage tickets correctly.
Part 3: Install the Fin Messenger
Install Fin Messenger for web
For web installation:
Choose your installation method (Code snippet, React, Angular, Vue, Ember, Shopify)
Follow the method-specific instructions — copy the NPM package/code snippet and paste it before the tag on every page you want the Messenger to appear
Use Check installation to verify it's working
Secure the Messenger with JWTs (especially for logged-in users)
Install Fin Messenger for mobile
For mobile installation:
Choose your platform (iOS, Android, or React Native)
Initialize Intercom in your codebase and follow platform-specific steps
Generate your iOS SDK API key if using iOS
Use Check installation to verify
Secure with JWTs
Optional: set up push notifications
Part 4: Test
Test the integration
Use the Fin Test dashboard: Navigate to the Test tab in the Fin sidebar to preview response quality and verify escalation paths without affecting your live site.
Control where the Messenger is shown: The Fin Messenger only appears where you install the code snippet. For testing, install it on a staging URL or use URL rules in the Deploy section to restrict it to a specific test page (e.g.,
yoursite.com/test) before rolling it out to all visitors.
Note: The integration must be set to Live for Fin to respond. Because you control where the Messenger snippet is installed, you can safely test while live — install it on a staging URL or use URL rules in the Deploy section to limit it to a specific test page. Customers won't see it unless they visit that URL.
Part 5: Go live with Fin Messenger
Once you're happy with your setup, select Go live to turn Fin on.
Your escalation setup depends on whether you have the Fin Messenger channel installed in your HubSpot inbox:
Hand-off to agent in HubSpot
Use this option when the Fin Messenger channel is installed in your HubSpot inbox. When Fin can't resolve a conversation, it updates the ticket to "Waiting on us" and unassigns Fin so a teammate can pick it up in HubSpot.
Hand-off to ticket in HubSpot
Use this option when the Fin Messenger channel is not installed in your HubSpot inbox. Fin handles the full conversation in Intercom without syncing to HubSpot. At escalation, a new HubSpot ticket is created with the full transcript.
Important: If you disable user verification (OTP) at handoff to ticket, logged-in users will no longer be verified before a HubSpot ticket is created. Without JSON Web Token (JWT) identity verification, a customer could impersonate another user in HubSpot — this is a serious security risk. Only disable OTP if you're fully confident in your existing authentication setup. Learn more about verifying customer identity with the Email OTP workflow step.
User verification
When using Hand-off to ticket in HubSpot, you can require users to verify their email address before a ticket is created. This adds an extra layer of identity confirmation at the point of escalation.
Enforce email verification before handoff to ticket: When enabled, users must successfully verify their email before a HubSpot ticket is created on their behalf.
Require OTP when Messenger is not secure: If the Messenger isn't secured with JSON Web Token (JWT) identity verification, users are required to verify their email address with a one-time password (OTP) before the handoff proceeds. This prevents unverified users from creating tickets under another person's identity.
Tip: The most secure setup is to implement JWT identity verification on your Messenger. OTP is a fallback for unsecured Messenger installations — not a substitute for proper identity verification.
Note: During Messenger handoff, if the customer doesn't already exist as a contact in HubSpot, a new contact is automatically created using the information collected during the conversation.
Audience & content targeting
If you serve multiple locations or brands, set up separate Audiences in Fin for each and attach the relevant snippets and web syncs to each audience.
Audience priority rules
A broader audience (e.g. "URL contains theescapegame.com") will not automatically be overridden by a more specific one (e.g. "URL contains theescapegame.com/nashville") unless the specific audience is placed higher in priority order.
If a visitor on a location-specific page is receiving content from the wrong audience, check that your specific audience rule is ranked above the general one.
Important: When updating content target audiences after syncing, delete the content and re-sync. Simply updating the audience on already-synced content may not apply correctly. This is a known behavior — not a permanent limitation — so check back for updates.
Note: Fin can sync content directly from your website URLs. If you update content on a synced page, you will need to re-sync it for Fin to pick up the changes — Fin does not auto-detect page updates.
Deactivate vs. revoke
When you need to pause or remove the HubSpot integration, you have two options, and it's important to understand the difference.
Deactivate, pauses the integration without destroying your setup. All HubSpot workflows created by Fin are disabled, and conversations stop routing through Fin. Your configuration, OAuth connection, and HubSpot properties are preserved. You can reactivate at any time and pick up where you left off.
Revoke, this is a full teardown. The OAuth connection is destroyed, all 4 HubSpot workflows created by Fin are permanently deleted, and your Fin configuration is removed. You'll need to go through the full setup process again if you want to reconnect.
Taking over a conversation from Fin
If you need to step in while Fin is actively handling a Messenger conversation, don't manually unassign Fin before replying. Unassigning Fin first means it won't process any incoming messages — because it's no longer assigned.
Instead, just reply directly in HubSpot without changing the assignment. Fin detects that a teammate has responded and automatically backs off — it won't send further replies and will clean up the Fin tags to reflect the handoff.
FAQs
Can I stop the Fin Messenger from auto-opening when a visitor returns?
Can I stop the Fin Messenger from auto-opening when a visitor returns?
There is currently no native setting to prevent Fin from re-opening when a visitor returns to the page. The visitor would need to manually click the Messenger icon to re-open it. Contact your Intercom team to track demand for this feature.
Can I customize the "Your conversation has been transferred" message?
Can I customize the "Your conversation has been transferred" message?
The transfer confirmation message ("Your conversation has been transferred to a support ticket. You will receive updates via email.") is a system message and cannot be edited.
Fin Messenger not showing on website
Fin Messenger not showing on website
Confirm the Messenger code snippet is correctly installed on your website and check that the Messenger is set to Live in your Fin workspace Deploy settings. There is a default "Need Help?" pop-out that appears after 6 seconds. This behavior cannot currently be fully disabled.
Duplicate tickets are being created in HubSpot
Duplicate tickets are being created in HubSpot
Duplicate tickets are created when both handoff modes are active at the same time. Here's how to fix it based on your setup: If using Hand-off to agent in HubSpot: Remove the Fin Messenger app from your HubSpot inbox (go to Settings → Inboxes in HubSpot). Having the Fin Messenger channel installed in HubSpot at the same time causes each escalation to generate two tickets. If using Hand-off to ticket in HubSpot: Do not also have the Fin Messenger channel installed in your HubSpot inbox. The Fin Messenger channel already creates a ticket on handoff — adding a Hand-off to ticket in HubSpot step duplicates this. Only one handoff method should be active at a time.
Fin is giving incorrect answers for a specific location
Fin is giving incorrect answers for a specific location
Check the following:
Confirm your Audiences are configured correctly and that the location-specific audience is ranked above any general audience in priority order.
Confirm that the relevant snippets and web syncs are attached to the correct audience, not the general one.
Use Fin’s Test feature to simulate a visitor from a specific URL and verify which content Fin is pulling.
Need more help? Get support from our Community Forum
Find answers and get help from Intercom Support and Community Experts















