Build a scalable, automated lead capture system


At Zapier, we use automation as much as anyone else. Across our teams, my colleagues are building truly incredible workflows that make our work more reliable. We’re replacing repetitive, error-prone manual tasks with automated processes—and there’s no coding required.

Take our Marketing Ops team, for example. One of our Marketing Ops Managers, Sean Kennedy, recently built a scalable automated lead-capture system that pulls data from all our channels and campaigns and formats it for our CRM. Get an overview of the system from the video below, or keep reading for a tutorial to build your own!

Automated but “unscaled”

Like many of you, we use a variety of channels—TikTok, Meta, Google, and all the other usual suspects—to capture leads and hand them off to our Sales team. It’s a process ripe for automation, so we’ve created at least one Zap for each channel to capture those leads, format them according to our needs, and then update our CRM in HubSpot.

Why so many Zaps? Well, advertising leads often have challenging formats that are specific to the channel. So, each of our Zaps differs based on the channel’s output and the format of the data we receive. But—and this is key—the last step in all of these Zaps, where we update HubSpot with the lead info, is essentially the same.

While this automated system has worked well for us, it’s not ideal for three reasons:

  1. It’s not scalable. It’s tough to manage a collection of 15-20 Zaps all doing some variation of the same thing. And whenever we need to add a new campaign, we duplicate one of the existing Zaps, which adds to the operational overhead.

  2. With each additional Zap in our system, we lose some efficiency. If, for example, we want to include a new field (called a “property”) in HubSpot, we have to go through and update each of the Zaps individually. Updates take longer and longer to complete, and Sean spends hours over what is, ultimately, a small change. That undercuts the value of automating in the first place—to save time on repetitive tasks.

  3. It’s not risk-proof. Because those updates need to happen in so many places, the risk of things slipping through the cracks increases pretty significantly. And if the right data in the right format doesn’t end up in HubSpot, it’s really tough to track down which Zap is the culprit.

And because each Zap in the system was a stand-alone automation, we couldn’t add any custom routing roles within the Zap. We had to do that in HubSpot, which made it more challenging to quickly get the leads to the right team or into the right nurture.

Scaling up

Sean came up with a brilliant solution. Instead of maintaining this growing set of nearly but not quite identical Zaps, we completely rejigged it to create a single, scalable system that formats, aggregates, and routes advertising leads without adding risk or operational overhead.

The Canvas below offers an overview of the new system, and there are a couple of things to note. Most importantly, you can see that it’s made up of a few “feeder” Zaps that all funnel into one broader catchall Zap.

(By the way, Canvas is my favorite tool on Zapier, so if you haven’t used it yet, I highly recommend giving it a try!)

The feeder Zaps are all very simple by design, and the more sophisticated processing takes place in the catchall Zap. This configuration is better than the old system for a few reasons.

First, the updates take minutes. Think back to the scenario where we add a new property in HubSpot: We had to manually update 15-20 Zaps to capture the new info. Now, we can just pop into this catchall Zap and make a single change. It takes a few minutes instead of a few hours.

When you update a single Zap, there’s no risk of things falling through the cracks, no duplication, and a significantly decreased risk of something going wrong.

Now, when we want to add a new channel or campaign, we just create a simple feeder app—no need to duplicate the logic.

TL;DR: A scaleable system of connected Zaps saves time, provides peace of mind that leads aren’t slipping through the cracks, and ships leads to our Sales teams, who funnel them into nurtures much faster.

How the “systems approach” works

Let me take you through the nitty-gritty of how it works. This system has two major steps: 

  1. Individual channel- or campaign-specific Zaps taking the form: New lead → Add UTM → Webhook

  2. A single catchall Zap: Webhook → Logic to route the lead and add channel-specific formatting → CRM (HubSpot)

Webhooks are the connective piece that makes this workflow possible. Every feeder Zap includes a webhook, which becomes the first step in the catchall Zap. 

If you haven’t used webhooks before, they’re one of the most powerful tools in the Zapier platform. They let you create systems in a way you just can’t when using individual Zaps.

Webhooks are also a common tool across many, many platforms. As a result, you can even capture things like content syndication leads, which can often be collected via webhook.

The idea is that each feeder app receives the incoming lead from a channel, and sends the data via a webhook to the catchall app. There, it’s formatted, prioritized, and immediately routed based on the paths we’ve defined using properties like company size or seniority. These properties prioritize each lead and send each one to the right nurture experience.

So, if someone is very qualified, or converting off an ad with a “Contact Sales” CTA, that will go right to our Sales team. If they’re less qualified, or converting off an ad with a “Download” CTA, then they’ll go into a drip campaign or another marketing experience.

Want an example? We have a path in our catchall Zap where two conditions (sent from the initial webhook) are met:

  • (a) the source is LinkedIn, and 

  • (b) the lead should be routed directly to Sales. 

We want to reformat leads following this path because LinkedIn processes company sizes in a slightly different way than we process company sizes. 

The path uses a lookup table (see below) that takes what LinkedIn gives us and maps it to our standard company sizes to ensure consistency when it goes into HubSpot. The left-hand column shows what LinkedIn gives us, and the right-hand column shows how we transform that into our preferred brackets.

There’s another path for leads that arrive from TikTok. As with some other channels, leads from TikTok will pass on campaign, source, and other data just fine, but it won’t construct the UTM the way that we need it to. So, this path uses formatting to generate the correct UTM for us.

The other thing to notice here is that at Zapier, we tend to use webhooks to add records to HubSpot because we lean heavily on HubSpot Custom Objects and Form Submissions. But you could easily end the workflow by creating a Contact or Deal instead. We use those tools because they’re a little bit more customizable, and we need to make sure our data properties arrive in a specific way.

Building from scratch

If I were to build this system from scratch, here’s what I would do: 

Start with the catchall Zap

Add a path for each lead source with any formatting details. Set up your webhook step, your CRM step, and then take a peek at what properties you need. 

Pick a channel

It doesn’t really matter which one you start with, but it’s often best to begin with a lower-volume channel to ensure everything runs smoothly from the get-go. We recommend starting with your website because it’s easy to test. You could also start with an ad channel. Just pick your channel, create a Zap to collect the data, and end it with a webhook.

Test the connection

Test your Zap end-to-end by pretending you’re a potential customer. Check that the info ends up where you want it to, and in the format you need.

Add additional channels as needed

Once you’ve got one channel running smoothly, it’s time to expand by duplicating the input Zap! When you’ve covered every channel and campaign, the final step is to roll this out to your team. 

Tips to level up even more

There are a couple of ways to make this system even more impactful: 

  • Think outside of ad leads to capture all your lead sources. Are there additional sources like G2, traditional media, or content syndication, etc., you can build in here? Make sure those leads are getting just as much attention as your ad leads.

  • Keep in mind that while we use HubSpot, this system works regardless of which CRM you use, whether it’s Salesforce, Microsoft Dynamics, or something else.

  • Consider another approach that might fit your organization better—like using Sub-Zaps instead of webhooks. They’re similar tools, but Sub-Zaps are built right into the Zapier editor. Some teams find Sub-Zaps easier to use than webhooks, but ultimately, it comes down to preference. Keep in mind that Sub-Zaps can’t catch external webhooks. If you plan to receive content syndication leads or leads from another channel that can only use webhooks, webhooks are a better choice.

Scale up your automated workflows

One thing I love about this system is that it’s really easy for members of your team to build on. So, if they have an ad lead they’re responsible for, they can tie in and send leads to that same webhook—that way, everything is all in one place.

If you go on vacation, folks know how to troubleshoot. Your team members know how to fix this workflow themselves, which saves everyone time and cuts down on your operational overhead.

Leave a Reply

Your email address will not be published. Required fields are marked *