Tutorials

How to Auto-Sync Your Leads to Google Contacts, Zoho, or HubSpot

·7 min read

Lead capture has a failure mode that has nothing to do with software. The leads arrive, they sit in a list, and the export you promised yourself you would do on Friday does not happen. Three weeks later the context has gone and so has the lead.

Connecting a CRM removes the step where a human has to remember. This guide covers what the connection actually does, how to set it up, and the two or three things about it that are worth knowing before you rely on it.

CRM sync is an Enterprise feature, and it currently supports Google Contacts, Zoho CRM, and HubSpot.

What connecting a CRM actually does

Once a CRM is connected, every new lead is pushed to it as it arrives. There is no nightly job and no button to press. A visitor fills in the form on your card, the lead lands in your account, and a moment later it is a contact in your CRM.

The push happens after the lead is saved, not during. That is deliberate. If your CRM is having a bad afternoon, the form on your card still works and the lead is still captured; the sync deals with the outage afterwards, and the person who filled in the form never finds out there was a problem. A design that pushed to the CRM first would let somebody else's downtime cost you the lead entirely.

For teams, this covers leads captured on your members' cards too. Those already route into the admin's lead list, so they flow onward to the connected CRM without every member having to connect anything themselves.

Connecting one

  1. Open the dashboard and go to Leads.
  2. Find the integrations row. Each supported CRM has its own card showing whether it is connected.
  3. Press Connect. You are sent to that provider's own consent screen, where you sign in and approve the access.
  4. Approve, and you land back on the Leads page. The card now reads Connected with the account you authorised.

You can connect more than one at a time. Each is independent: new leads go to all of them.

Bring your existing leads across

Connecting only affects leads captured from that moment on. Everything already in your list stays where it is until you ask for it.

The Sync existing button on a connected card walks your recent leads and pushes them too. Run it once, straight after connecting. It reports back how many synced, how many failed, and how many were skipped, and the skipped number is worth reading rather than ignoring, for the reason in the next section.

Email is the deduplication key

Every provider here matches contacts on email address. It is how your CRM decides whether an incoming lead is a new person or an update to somebody it already knows, which is the whole reason connecting a CRM does not fill it with duplicates.

The consequence is that a lead with no email cannot be synced. There is nothing to match it against and nothing sensible to create, so it is skipped rather than pushed in as a nameless record that somebody has to clean up later. Those leads stay in AtlasLinq, where you can still see and export them.

If your capture form treats email as optional, expect a share of your leads to stay AtlasLinq-only. That is a reasonable trade if a shorter form gets you more responses. It is just worth choosing on purpose rather than discovering it in a skipped count.

What lands in the CRM

Name, email, and phone number where the visitor gave one. Whatever they typed in the message field goes into the contact's note.

If the lead came in through a team member's card, that member's name is added to the same note. This is deliberately unglamorous: it means you can tell who a lead came through without first creating a custom field in your CRM and mapping it, which is the step where this kind of integration usually stalls for a fortnight.

A lead that arrives without a name uses its email address as the name, so you never end up with a blank record you cannot identify in a list.

When one says Error

Each connection is tracked separately. If one provider's authorisation expires, that one shows an error and the others carry on working. The dashboard shows the error and when it happened, against that integration only.

Expired authorisation is the ordinary cause, and reconnecting fixes it. Once you have, Retry sync pushes the leads that were missed.

A failed push is not retried indefinitely, and that is on purpose. Repeatedly hammering a CRM that is already rejecting you is how a small problem becomes a rate limit, which is a larger problem that takes longer to clear.

Where the credentials live

The authorisation tokens are held server-side, in storage that no browser client can read. The dashboard never receives them. What the dashboard can see is status: connected or in error, which account you authorised, and when the last sync ran.

This is worth stating plainly, because the more convenient design, keeping tokens where the app can reach them, is common and means anything that manages to run in your dashboard tab inherits your CRM access along with it.

Disconnect removes the stored tokens and stops the sync. Contacts that were already pushed stay in your CRM. They are your records, in your account.

Is it worth it?

CRM sync earns the Enterprise tier for one reason: it removes the human step between capturing a lead and that lead being somewhere your team will actually look. If your leads currently live in a file you export monthly, this is the difference between a pipeline and a spreadsheet.

If you are not on Enterprise, CSV export is still there and still fine. Capturing and exporting leads covers that route.

CRM auto-sync is included with Enterprise.

See what Enterprise includes → or compare plans
AtlasLinq Logo