Skip to content

Keep Your CRM: Send Every New Lead and Result to HubSpot, Zoho, Zapier, Make or Google Sheets

Anam Jalal

Founder & CEO, MAJ Leads

Updated 4 Nov 2026 · 8 min read

Quick answer

You can keep your CRM. In MAJ Leads you paste one secure link from your CRM or automation tool, and every new lead and every result (booked, not interested, not reached) is posted to it as JSON. Zapier, Make, Zoho Flow, HubSpot workflows and a Google Apps Script can all receive that kind of post.

Legal caveat

What we have and have not tested. We checked what MAJ Leads sends against the product's code and tests on 4 November 2026, and read each tool's own help page the same day. We have not yet built and run a finished recipe in each of the five tools for this page, so the tool sections say what their documentation says, not what we watched happen. Use Send a test event in MAJ Leads before you rely on any of them. MAJ Leads has no customer results on this feature and none are claimed.

Why keep your existing CRM?

Because the CRM holds more than leads: quotes, invoices, account notes, years of history, reports your manager already reads. Replacing it to fix slow follow-up is a large project for a small gain. MAJ Leads is built for the first minutes of a lead, with an alert on the rep's phone, a call that is due and a chase with up to five tries. The CRM stays the record. Our post on a CRM versus a lead management system covers the split.

What does MAJ Leads send to your CRM?

One link per destination, in Settings, under CRM. Only a workspace admin can set it. You choose which of two events it receives:

  • New lead. Sent when a lead is created, from any source.
  • Result. Sent when a lead's stage changes to Booked, Not interested or Not reached. A lead marked Won is not a separate event.
The fields in each event (one flat JSON object)
FieldWhat it holds
id, type, created_atA stable delivery id, the event type (lead.created, lead.outcome or test) and the time
workspaceYour workspace id and company name
lead.name, first_name, last_nameThe contact's name
lead.phone, email, companyHow to reach them
lead.ask, source, source_label, campaign, landing_urlWhat they asked for, where the lead came from and the campaign and page, if known
lead.stage, language, tags, assigned_to, created_atWhere the lead is, its language, tags, the rep and when it arrived
outcome.result, note, atOn a result event: the new stage, the rep's note and the time

Call transcripts, recordings and internal scores are not sent. The request is an HTTPS POST with the headers X-MAJ-Event, X-MAJ-Delivery, X-MAJ-Timestamp and X-MAJ-Signature.

How do you connect it?

  1. In your CRM or automation tool, create a receiver that accepts a webhook and copy its address. It must start with https:// and be a public address.
  2. In MAJ Leads, open Settings, then CRM, paste the address and choose New lead, Result or both.
  3. Copy the signing secret when it is shown. It is shown once. After that only its last four characters appear.
  4. Press Send a test event. It posts a clearly fake lead named Test Lead in the same shape as a real one, so you can map the fields from it.
  5. Map the fields in your tool, switch the receiver on, and watch the last deliveries list in Settings for the first real lead.

The number of destinations depends on your plan. Changing the address of the one you have does not count as a new one.

How does each tool receive it?

What each tool's own documentation says, read on 4 November 2026
ToolReceiverWhat to know before you start
Zapier<a href="https://help.zapier.com/hc/en-us/articles/8496288690317-Trigger-Zaps-from-webhooks" target="_blank" rel="noopener">Webhooks by Zapier, Catch Hook</a>Gives your Zap a unique URL that accepts POST requests. Zapier needs a real sample first, which the test event provides. Catch Hook is not on the Free plan; it is on Professional, Team and Enterprise.
Make<a href="https://help.make.com/webhooks" target="_blank" rel="noopener">Custom webhook</a>Gives you a URL that takes data over HTTPS and runs the scenario when it arrives. A webhook that is not connected to a scenario for more than 5 days is switched off and answers 410 Gone. Past 300 requests in 10 seconds it answers 429.
Zoho<a href="https://www.zoho.com/flow/features/webhooks.html" target="_blank" rel="noopener">Zoho Flow, webhook trigger</a>Lists JSON among the payload formats it accepts. The page does not say which HTTP methods the incoming trigger accepts, so the test event is the proof. You then build the steps that follow, such as writing to Zoho CRM, inside the flow.
HubSpot<a href="https://knowledge.hubspot.com/workflows/set-when-a-webhook-is-received-workflow-triggers" target="_blank" rel="noopener">Workflow trigger: when a webhook is received</a>Needs Professional or Enterprise of a HubSpot Hub. It accepts only application/json. It cannot create a record: the workflow starts only if a record with a matching unique property already exists. So a brand-new lead needs a step that creates the contact first, usually through Zapier or Make.
Google Sheets<a href="https://developers.google.com/apps-script/guides/web" target="_blank" rel="noopener">Apps Script web app</a>A script with a doPost function runs when something POSTs to the web app, and the body is in e.postData.contents. You deploy it as a web app and choose who can run it. Read the next section before trusting it.

Legal caveat

Open question for the Google Sheets route. MAJ Leads sends the post once, does not follow redirects, waits at most 8 seconds, and treats any answer that is not 2xx as a failure it will retry. The Apps Script page we read does not say how a web app answers a POST. If your script answers with a redirect, MAJ Leads will record a failure and send the same event again, and your sheet could get duplicate rows. Test with Send a test event, look at the delivery status in Settings, and have the script ignore an id it has already stored. If it fails, put Zapier or Make in front of the sheet.

Can you trust what arrives, and what if your CRM is down?

Trust. Each post is signed. X-MAJ-Signature is v1= followed by an HMAC-SHA256 of the timestamp, a dot and the exact raw body, made with your workspace secret. A receiver that checks it should also reject a timestamp older than five minutes. Many no-code receivers just accept the post. If yours cannot check the signature, treat the address as a password: do not paste it in a chat or a public repository, and make a new one if it leaks.

Failure. If the receiver is down or answers with an error, MAJ Leads tries again up to five times in all, waiting 5 minutes, 30 minutes, 2 hours and then 8 hours between tries, then gives up and shows it in the delivery list. The id in X-MAJ-Delivery stays the same across the tries, so a receiver can drop a repeat. Delivery runs from a queue, so a slow CRM does not hold up the lead inside MAJ Leads.

What about data protection?

Sending a lead to your CRM shares personal data with another service, and some of those services keep it outside the UAE. The UAE personal data law, Federal Decree-Law 45 of 2021 (we read an English copy published by Lexis Middle East), has separate articles for transfers outside the State, Articles 22 and 23, depending on whether the destination country has an adequacy decision. Check where your CRM and your automation tool store data before you connect them. This is a question for your data protection adviser, not something MAJ Leads can settle for you.

Where does this leave your team?

Your reps keep working in the tool they know, and the lead reaches it with its source, campaign and what the person asked for. The related guides on one board for every lead source and on choosing a CRM for lead follow-up sit either side of this step. See how it works and pricing.

Sources

Frequently asked questions

Does MAJ Leads work with the CRM we already use?
Yes, through one link. You paste the address of a webhook receiver from HubSpot, Zoho, Zapier, Make or a Google Sheet script, and MAJ Leads posts each new lead and each result to it. It is not a native two-way sync, so your CRM does not send changes back.
What results does MAJ Leads send to the CRM?
A result is sent when a lead's stage changes to Booked, Not interested or Not reached. New leads are sent when they are created. You choose either or both in Settings.
Can HubSpot create a new contact from the webhook?
Not by itself. HubSpot's own page says the workflow only starts if a record with a matching unique property value already exists. To create the contact first, use Zapier or Make, or an earlier step in your own setup.
What happens if my CRM is down when a lead arrives?
MAJ Leads retries up to five times in total, waiting 5 minutes, 30 minutes, 2 hours and 8 hours between tries, then stops and shows the failure in Settings. The lead itself is unaffected.
Do I need a paid Zapier or HubSpot plan?
Per their pages read on 4 November 2026, Zapier's Catch Hook is on Professional, Team and Enterprise and not on Free, and HubSpot's webhook trigger needs Professional or Enterprise of a Hub. Plans change, so check your account.

Anam Jalal

Founder & CEO, MAJ Leads

Anam Jalal is the founder of MAJ Leads, a Dubai-based lead management system that puts every paid lead on a rep's phone within about thirty seconds and chases it until it has an answer. He works hands-on with UAE clinics, brokerages and trading companies on lead follow-up, WhatsApp and CRM integrations, and ran voice AI deployments in the UAE before the company focused on lead management.

Read more about Anam

Related articles

Explore our services