Hi @idanc
In case you didnt get it solved. HubSpot doesn’t send deletion events via standard API endpoints, so tools like Workato or even native exports won’t catch them.
Here are a few workarounds you can explore:
1. Use the GDPR delete webhook (if possible):
If you have a Private App set up and are using webhooks, HubSpot will send a contact.deleted event for GDPR deletions or merges.
Docs: HubSpot Webhooks API
But: this only works for contacts, and only if the record is fully deleted, not just removed from a list or made inactive.
2. Track deleted/merged IDs via exports or Workato diffs:
Here’s a workaround using Workato:
• Regularly sync all contact IDs (minimal payload, e.g. just vid, hs_object_id)
• Keep a snapshot of previous syncs in BigQuery
• Compare current vs previous if an ID disappears, you can assume it was deleted or merged
→ flag it as deleted = true in your warehouse
It’s a bit of work but gives you visibility.
3. Use a “soft delete” property (manual fallback):
You could introduce a custom property in HubSpot like is_deleted or deletion_flag, and set that before actual deletion (e.g. via workflow or API). Then sync this flag with Workato.
Downside: requires consistent internal process to flag before delete.
4. Merged records: handle with the merged-into ID
When a record is merged, HubSpot redirects to the primary record. If you use the API or Workato to pull merge-audit info, you might be able to detect which IDs have been merged and update your warehouse accordingly.
Let me know how clean or automated you need this. There are ways to go more real-time or stick with daily batch comparisons.