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 and open the Integrations tab. The tools are listed under CRM, webhooks and tracking, one card per integration.

  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 they move to another funnel stage: the CRM receives a Status: tag followed by the stage, for example Status: Booked when they book or Status: Paid when they pay. Tags accumulate, so the latest one tells you which stage they’re in. The full list is in Webhooks.
  • When their contact details show up: if they leave their email while booking a meeting, or share their email or phone number during the conversation, the CRM contact is updated with it. It works the same in all three CRMs.

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 GoHighLevel, HubSpot and Airtable all behave: as soon as the lead books and leaves their email, the record is updated. They don’t need to give their phone number too.

What about an Instagram lead’s phone number

Section titled “What about an Instagram lead’s phone number”

While booking, the AI asks for the full name and email; the phone number only if you added it as a question before booking. Otherwise the number only reaches your CRM if the lead shares it on their own in the conversation: ZeroChats picks it up, saves it on the lead’s card and adds it to your CRM contact. If you need the phone number of every lead who books, add it as a question on your calendar.

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 arrives as a tag, not as a native CRM stage. If you want to trigger an automation when a lead books, filter on the Status: Booked tag.
  • 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 is synced under their Instagram username as the contact name. Only a lead with neither name nor username known is left unsynced.
  • In GoHighLevel, Instagram leads keep their placeholder email until they book a call and leave their email.