How Sync Works: Webhooks, Historical, & Scheduled
Last updated: May 29, 2026
The integration uses three different mechanisms to keep HubSpot in sync with SmartRec. Each is best suited to a different kind of data.
At a glance
Mechanism | When it runs | Typical use |
|---|---|---|
Webhook (real-time) | Immediately when SmartRec data changes | Most CRUD events on people and purchases |
Historical sync | On demand (typically at setup) | Backfilling existing SmartRec data |
Scheduled sync | Once a day at a fixed time | Data types webhooks don't cover |
Real-time webhooks
SmartRec sends a webhook payload to the integration as soon as certain data changes. The integration processes the payload and updates HubSpot within seconds.
Webhook context | Actions | HubSpot target |
|---|---|---|
Account (Members & Owners) | Create, Update, Delete | Contacts |
Person | Delete | Contacts |
DonationPurchased | Create | Deals |
MembershipPurchased | Create, Delete | Deals |
MultiPassPurchased | Create | Deals |
Registration | Create | Appointments |
Activity | Create, Update, Delete | Courses |
About deletes: SmartRec deletes never hard-delete records in HubSpot. They archive or move them. See How Deletions & Archiving Work.
Historical sync (backfill)
Historical sync pulls data from the SmartRec REST API for initial migration or catch-up. Each runs as a paginated job that automatically continues until complete.
Data type | SmartRec endpoint | HubSpot target | Default date range |
|---|---|---|---|
Accounts |
| Contacts | All accounts |
Activities |
| Courses | All activities |
Donations Sold |
| Deals | Last 30 days |
Memberships Sold |
| Deals | Last 30 days |
MultiPass Sold |
| Deals | Last 30 days |
Registrations |
| Appointments | Last 30 days |
Scheduled sync (daily)
Scheduled jobs poll SmartRec once a day for data types that don't support webhooks or need periodic refresh. All times are in your local timezone.
Job | Time | SmartRec endpoint | HubSpot target | Window |
|---|---|---|---|---|
Locations | 4:00 AM |
| App Object (Locations) | All locations |
Memberships | 4:00 AM |
| App Object (Memberships/MultiPasses) | All memberships |
MultiPasses | 4:00 AM |
| App Object (Memberships/MultiPasses) | All multipasses |
Activity Occurrences | 4:15 AM |
| Deals | Last 24h → 30 days out |
Access Scans | 4:30 AM |
| App Events | Last 24h |
Things to know
Webhooks beat scheduled syncs. If a piece of data is covered by a webhook, you'll see HubSpot update almost immediately. Scheduled syncs only handle the gaps.
Activity Occurrences look ahead 30 days. The daily sync grabs occurrences from the past 24 hours through 30 days into the future, so your HubSpot pipeline reflects upcoming sessions.
Access Scans are timeline-only. They show up on a Contact's activity timeline, not as searchable CRM objects. See Access Scans → Person Access Scan.
Skipping archived records. During an upsert, if the integration sees that the matching HubSpot record is already archived, it skips it rather than re-creating or failing.