Skip to content

Integrations — sync your leads with your CRM

Integrations connect ZeroChats to the tools you already work in. Every time someone messages you on Instagram or WhatsApp, ZeroChats creates the contact in your CRM automatically — no manual exports, no copy-pasting.

Today you can connect these destinations:

IntegrationWhat it creates in your tool
GoHighLevelA contact, with the lead’s tags as native GHL tags.
HubSpotA contact, with the lead’s tags recorded in a note.
AirtableA record in a ZeroChats Leads table inside the base you choose.
Custom WebhookA JSON POST to any URL you choose, to plug in any other tool.

You can have several connected at once: the lead is sent to all of them.

The Custom Webhook works differently from the rest: it doesn’t create contacts in a specific tool, it hands you the raw event so you can do whatever you want with it (n8n, Make, Zapier or your own backend). It has its own page: Custom Webhook.

The three CRMs connect from the same place, and none of them needs an API key — you authorize with your account.

  1. Go to Business setup. In the Integrations card, click the Integrations button.

  2. Pick the tool and click its connect button (Connect to GoHighLevel, Connect to HubSpot or Connect to Airtable).

  3. Authorize ZeroChats in the tool’s window. In GoHighLevel, choose the location you want to work with.

  4. Come back to ZeroChats. The integration shows a Connected badge and starts syncing.

The Custom Webhook is set up from that same screen, but with its own steps: you’ll find them in Custom Webhook.

Airtable needs one extra step. After connecting, click Configure and choose the destination base. ZeroChats creates a table called ZeroChats Leads inside it, with the right columns (Name, Email, Phone, Instagram, Source, Tags). Until you pick a base, nothing syncs.

Syncing is automatic and real time. There’s nothing to click and no scheduled batch to wait for. A lead reaches your CRM at these moments:

  • On the first interaction: when they first write via DM or WhatsApp, or when they comment on a post or reel.
  • When they get a tag, whether automatic or added by you. Only new tags are sent.
  • When their contact details show up: if they leave their email while booking a meeting, or share it during the conversation, the CRM contact is updated with it. In GoHighLevel this update has its own conditions, covered below.

This part is worth understanding, because it explains something you’ll see with your own eyes inside your CRM.

Every CRM needs a primary key: a unique value that identifies each contact and keeps duplicates from piling up. That key is usually the email or the phone number.

WhatsApp is easy: the lead writes to you from their phone number, so that number is the primary key from the very first message. The contact is created with their real phone right away.

What happens when the lead gives their real email

Section titled “What happens when the lead gives their real email”

As soon as we get the real email — because they type it while booking a meeting, or share it in the conversation — we update the contact that already exists. The placeholder email is replaced by the real one, on the same record.

No new contact is created. Nothing is duplicated. It’s the same lead, with their history intact, now carrying their correct email.

1. Marta messages you on Instagram → contact created as [email protected]
2. Marta books and leaves her email → the same contact becomes [email protected]

That’s how HubSpot and Airtable behave. GoHighLevel waits a bit longer.

In GoHighLevel: name, phone and real email

Section titled “In GoHighLevel: name, phone and real email”

With GoHighLevel, the contact for an Instagram lead isn’t updated the moment a single detail turns up. It waits until the record is complete and writes it in one go: name, phone number and real email.

Both conditions have to be met:

  1. The lead is in the Booked stage — they have booked a call.
  2. They have left their phone number and their email in the chat. The AI asks for both while booking.

If either one is missing, the contact keeps its placeholder email.

1. Marta messages you on Instagram → contact created as [email protected]
2. Marta books, leaves phone and email → the same record becomes [email protected]
and gains her real phone number

Here too, no new contact is created: it’s the same record as always, with its history intact.

FieldGoHighLevelHubSpotAirtable
Name✅ (Name)
Email✅ (Email)
Phone✅ (Phone)
Instagram username✅ (Instagram)
Source channel✅ (Source)
TagsNative tagsIn a note✅ (Tags)

HubSpot has no tags as such, so we write them as a timestamped note on the contact (Tags: interested, pricing). GoHighLevel does apply them as native tags, so you can filter and automate with them.

  • Connect the CRM before launching campaigns. Leads sync from the moment you connect, not retroactively. If you connect mid-campaign, earlier leads won’t show up.
  • Use tags to segment. Since ZeroChats tags travel to the CRM, you can build automations there that fire on what the AI picked up in the conversation.
  • Filter @instagram.com out of your email sequences. A simple “email does not contain @instagram.com” filter saves you from bounces.
  • In Airtable, don’t rename the columns of the ZeroChats Leads table. The integration writes against those names.
  • Syncing is one-way: from ZeroChats to the CRM, never the other way around.
  • Funnel stage isn’t synced. Lead stage changes stay in ZeroChats.
  • There’s no custom field mapping. The fields sent are the ones in the table above.
  • In Airtable, ZeroChats creates the table. You can’t point the integration at a table you already have.
  • A lead with no name isn’t synced until their name is known.
  • In GoHighLevel, Instagram leads keep their placeholder email until they book a call and leave their phone number and email.