Sync contacts and deals across every pipeline. FastFollow auto-enriches AI-drafted follow-ups with HubSpot property values and posts every sent message back to the contact timeline.
Two supported paths — pick whichever fits your deployment shape
Create a HubSpot public app in the HubSpot developer portal. Best for multi-tenant deployments and customer-facing installs — users authorize via OAuth and tokens refresh automatically.
Generate a Private App access token from HubSpot Settings → Integrations → Private Apps. Simpler if only one HubSpot portal will ever connect to your FastFollow tenant.
Select all 7 in the HubSpot consent screen or Private App scope picker
| Scope | Why FastFollow needs it |
|---|---|
| crm.objects.contacts.read | Read contact records for sync |
| crm.objects.contacts.write | Update contact fields and log activities |
| crm.objects.deals.read | Read deal stages and pipeline state |
| crm.objects.deals.write | Update deal stage on follow-up completion |
| crm.objects.companies.read | Resolve contact companies |
| crm.schemas.contacts.read | Discover custom contact properties |
| timeline | Post follow-up activity events to contact timelines |
Standard properties synced out of the box. Custom properties configurable post-connect.
| HubSpot property | FastFollow field |
|---|---|
| firstname + lastname | contact.fullName |
| email (unique key) | contact.email |
| phone | contact.phone |
| lifecyclestage | contact.lifecycleStage |
| company → Company.name | contact.companyName |
| deal.dealname | deal.title |
| deal.amount | deal.value |
| deal.dealstage | deal.stage |
| deal.closedate | deal.expectedCloseDate |
| deal.pipeline | deal.pipelineId |
How HubSpot pushes changes to FastFollow
When you connect HubSpot via OAuth, FastFollow automatically registers webhooks for contact and deal property changes. We verify every payload using X-HubSpot-Signature-v3 with HMAC-SHA256.
For more on signature verification across all providers, see the webhooks reference.
HubSpot caps API usage per portal — these are the published tiers
100 requests / 10 seconds, 250,000 / day
Initial backfill of >100K contacts may take multiple days.
150 requests / 10 seconds, 500,000 / day
Sufficient for typical mid-market workloads.
200 requests / 10 seconds, 1,000,000 / day
Handles large initial syncs without throttling.
The most common HubSpot sync errors
INVALID_AUTHENTICATIONToken rejected immediately on every request.
Fix: For OAuth apps, verify the refresh token has not been revoked from HubSpot Settings → Integrations → Connected Apps. For Private Apps, regenerate the access token — they expire if not used for 6+ months.
MISSING_SCOPESReads succeed but writes return 403.
Fix: The connecting user did not grant the write scopes. Reconnect from FastFollow → Integrations → HubSpot and confirm all 7 scopes are checked on the HubSpot consent screen.
PROPERTY_DOESNT_EXISTCustom property sync fails on a specific field.
Fix: The property was deleted from HubSpot or its internal name changed. Update the field mapping in FastFollow → Integrations → HubSpot → Field Mapping.
RATE_LIMITEDSync slows or stops with 429 errors during high-volume periods.
Fix: FastFollow respects HubSpot rate limits with exponential backoff. Upgrade the HubSpot tier or schedule large reconciliation jobs during off-hours.