If your CRM integration is showing failed syncs, missing records, or duplicates, the root cause is usually one of a small number of patterns. Walk through these in order.
Where to see sync status
Open Settings → Integrations → your CRM → Sync log.
Each row shows direction, object, status, and the underlying error message.
The dashboard at the top shows last-24-hour success rate and queue depth.
OAuth token revoked
Someone in your CRM removed BrandJet from the connected apps list, or the password was changed and OAuth was reset.
Fix: open the integration page and click Reconnect. Existing field mappings are kept.
Field too long or Field type mismatch
A BrandJet field is being written into a CRM field with a smaller character limit or a different type.
Fix: open Field mapping, click the failing mapping, and either pick a different CRM field or shorten the source.
Duplicate detected
The CRM already has a contact with the same email and your deduplication rule is set to block, not merge.
Fix: change the dedupe rule to merge (recommended), or update the dedupe key to include a custom field.
Permission denied
The OAuth scope is insufficient for the object you are trying to sync.
Fix: disconnect and reconnect with the higher scope. For Salesforce specifically, the connected user must have create and edit permissions on the Lead, Contact, and Activity objects.
Rate limit exceeded
HubSpot, Pipedrive, and Salesforce all have API quotas. Bulk sync occasionally hits them.
BrandJet auto-throttles and retries. If you see this in the log frequently, lower the sync batch size in Integration settings → Advanced, or split syncs across multiple workspaces.
Missing records in the CRM
Confirm the lead has at least the field your CRM requires (HubSpot requires email, Salesforce requires lastname).
Check the lead sync history from Lead detail → Integrations to see whether it was skipped or failed.
Duplicate records appearing
Often happens after a CRM data import where existing records lacked the dedupe key.
Run a one-time dedupe inside the CRM, then BrandJet stops creating duplicates on the next sync.
Forcing a manual resync
Select rows in the sync log and click Retry to attempt them again with current settings.
For a full backfill, click Full resync at the top. This re-evaluates every lead and is rate-limit aware.
When to open a ticket
Open a ticket with the CRM name, the failing object, and one or two error messages from the sync log. We can pull the upstream API response and diagnose the exact field that failed.