When bookings aren't showing up in GoHighLevel or HubSpot, the sync log tells you whether SalesCal tried and failed, or never tried at all. Start there.
Go to Integrations, open your CRM, and find the sync log. Every attempt is recorded with the event that triggered it:
Form Started
Form Completed
Booking Created
Booking Cancelled
Booking Rescheduled
Outcome Recorded
Each entry shows success or failure.
If the log is empty and reads:
Syncs will appear here when bookings are made
then SalesCal never attempted a sync. That points at the connection or the event configuration rather than the CRM. Check that the integration is actually connected, and that the event you're testing is set to sync.
A failed entry means SalesCal reached your CRM and the CRM rejected the request. Usual causes:
The connection expired. Reconnect the CRM from the Integrations page.
A required field in the CRM isn't being sent. If your CRM makes a field mandatory and SalesCal has nothing mapped to it, the contact is rejected outright.
A field type mismatch. Sending free text into a field your CRM expects to be a number or a fixed set of options.
API limits. A burst of bookings can hit your CRM's rate limits. These usually clear on their own.
This is the most common complaint, and it's nearly always the field mapping rather than the sync.
Go to Integrations, open your CRM, then field mapping. Check that each question you care about is mapped to a CRM field. An unmapped question is collected in SalesCal and simply not sent.
Two things that catch people out:
Renaming a question can break an existing mapping. If you've edited question wording recently and fields stopped arriving at the same time, re-check the mapping.
Archived saved questions are excluded from new mappings, so a question you archived won't be available to map.
Answers to multi-select questions arrive as several lines within a single field rather than a comma separated list. This is deliberate, because option labels can themselves contain commas and a comma separated value would be impossible to split reliably.
If your CRM field is showing what looks like run-together text, check whether it's rendering the line breaks.
The sync log is a record, not a queue you can re-run. If a batch of bookings failed because a connection had expired, reconnecting fixes future bookings but does not automatically resend the ones that already failed.
Get in touch if you need historical bookings pushed across after fixing a connection. We can look at what failed and re-send it.
Make a real test booking through your own booking page rather than assuming. The sync log entry appears within a few seconds, and it's the only reliable confirmation that a mapping change worked.
Get in touch with the approximate time of a booking that should have synced and the name of the CRM field that's wrong. We can see the exact payload SalesCal sent and what your CRM replied, which is usually conclusive.