HubSpot Integration
Last updated: May 12, 2026
Overview
The HubSpot integration syncs every sent follow-up email back to your HubSpot CRM automatically. When you send a follow-up from ReplySequence, we find or create the contact, log the meeting as an engagement, record the sent email on the contact's activity timeline, and upsert a deal — no copy-pasting, no manual CRM entry, no duplicate records.
Subscription requirements
- HubSpot: Free, Starter, Professional, or Enterprise. All paid Hubs are supported. The integration uses standard Contacts, Meetings, Emails, and Deals objects available on every HubSpot tier.
- ReplySequence: Any active ReplySequence plan, including the free trial.
Prerequisites
- A ReplySequence account with at least one transcript source connected.
- Super Admin or App Marketplace permissions in your HubSpot portal — required to install third-party apps.
- Access to the email inbox associated with your ReplySequence account (used to confirm OAuth callbacks).
Setup
- Sign in to your ReplySequence dashboard and open Settings → Integrations.
- Under HubSpot, click Connect. You'll be redirected to HubSpot to authorize the connection.
- Choose the HubSpot portal you want to connect, then review and accept the requested permissions on HubSpot's consent screen.
- HubSpot redirects you back to ReplySequence with the integration active. The status indicator next to HubSpot will flip to Connected.
- Send a test follow-up. Within a few seconds, the contact, meeting engagement, and sent email appear on the contact's HubSpot timeline.
What gets synced
Every time you send a follow-up from ReplySequence, the following HubSpot objects are created or updated:
Contact
Matched by recipient email (case-insensitive, trimmed). If no contact exists, a new one is created with email, first name, and last name when available.
Meeting engagement
Title, start/end time, source label (Zoom, Fireflies, Otter, etc.), and the full follow-up email body, associated to the contact. Idempotent on (meeting, draft, step) — re-sends never produce duplicates.
Email engagement
Subject, recipient, sender, and body of the sent follow-up, recorded on the contact’s Activity → Emails tab.
Deal
Either a new deal is created for the contact, or the most-recently-modified open deal is updated with meeting context in the description. ReplySequence respects existing manually-set values (amount, close date, stage) by default.
Task
When you mark a next step as complete in ReplySequence, it’s logged as a completed task in HubSpot.
All syncs are idempotent. A dedup token embedded in each engagement body prevents duplicate records if a sync is retried.
Field mappings
By default, meeting data maps to standard HubSpot meeting properties:
| ReplySequence field | HubSpot property |
|---|---|
| Meeting timestamp | hs_timestamp |
| Meeting title | hs_meeting_title |
| Meeting notes & follow-up | hs_meeting_body |
| Start time | hs_meeting_start_time |
| End time | hs_meeting_end_time |
| Meeting outcome | hs_meeting_outcome |
You can customize these mappings — including writing sentiment score, sentiment label, and emotional tones to custom HubSpot properties — in Settings → Integrations → HubSpot → Field Mappings. If a mapped custom property doesn't exist in HubSpot, ReplySequence skips that property and writes everything else.
Scopes used
ReplySequence requests only the scopes it actively uses. Every scope below maps to a specific feature:
| Scope | Why we need it |
|---|---|
| crm.objects.contacts.read | Find existing contacts by recipient email so follow-ups attach to the right person — never creates a duplicate. |
| crm.objects.contacts.write | Create a contact when one doesn’t exist yet for the recipient of a sent follow-up. |
| crm.objects.appointments.read | Search meeting engagements before write so re-syncing the same follow-up doesn’t produce duplicates. (HubSpot scopes meeting engagements under the “appointments” permission internally.) |
| crm.objects.appointments.write | Log each follow-up as a meeting engagement with the title, time, source, and draft body on the contact timeline. |
| crm.objects.deals.read | Look up the most-recently-modified open deal for a contact so meeting context updates the right pipeline record. |
| crm.objects.deals.write | Create or update a deal associated with the contact when a follow-up is sent — never overwrites manually-set fields by default. |
| sales-email-read | Read sent email metadata so future versions of the integration can de-dupe email engagements created outside ReplySequence. |
| oauth | Standard scope required by HubSpot for refresh-token rotation. |
ReplySequence never reads, modifies, or deletes anything outside the objects it creates on your behalf. We don't touch pre-existing deals, contacts, or notes unless your follow-up references them.
Disconnect / uninstall
To disconnect HubSpot from ReplySequence:
- Open Settings → Integrations → HubSpot in your ReplySequence dashboard and click Disconnect.
- Optionally revoke access directly in HubSpot under Settings → Integrations → Connected Apps → ReplySequence → Uninstall.
Past syncs remain in your HubSpot CRM. Future follow-ups will no longer be logged. Reconnecting later picks back up with no data loss.
Troubleshooting
Follow-ups aren't appearing in HubSpot
Confirm the integration is still connected in Settings → Integrations. If the access token expired and couldn't refresh, reconnect and resend.
Contact wasn't matched to an existing record
Contacts are matched by email (case-insensitive, trimmed). If the recipient email doesn't exactly match the email on the HubSpot contact, a new contact is created. Merge them in HubSpot to consolidate the timeline.
Deal updates aren't writing
By default, ReplySequence respects existing values on a deal. It won't overwrite amounts, close dates, or stages you've set manually. Contact support if you need to change that behavior.
Custom property doesn't exist
If you mapped a field to a custom property that hasn't been created in HubSpot, ReplySequence skips that property and writes the rest. Create the property in HubSpot (Settings → Properties) to enable the mapping.
Support
Email support@replysequence.com or visit our support page. We respond within one business day.