Free webinar

Can We Ever Get Composable Without Complexity?

Sign up today! →

Automate Your Lead Flow in Umbraco with Webhooks and Zapier

Niels Christian Laursen
Written by Niels Christian Laursen

Learn how to automate your lead flow in Umbraco using webhooks and Zapier. A simple no code setup that validates, and routes your leads automatically.

This is the first article in a  series about how we build automation setups in Umbraco using webhooks and no-code tools like Zapier.

My goal is to show editors and marketers that you don’t need to write code to create something powerful.

With the right setup, you can connect your forms, clean your leads, and sync everything across tools automatically.

Each article in this series is based on real workflows we’ve built in the Growth team, so you can follow along, tweak them, and make them your own.

But it’s just a lead form on the website?

Let's dive into the first workflow: one we built to let us make the most of our lead form submits.

For years, our contact forms felt like the finish line.

Hit submit, hand off, move on.

In reality, submit is the ignition switch. That’s when the real work begins: validation, enrichment, routing, and giving sales a lead they can actually understand from the first click.

Over time, we built a composable system around Umbraco webhooks. This is our setup, not the setup. Swap tools as you like, as long as it fits your organization.

In this article, we’ll walk through the core pattern: Submit → Validate →Add to CRM (And some AI)

Zapier workflow that starts with an Umbraco Forms webhook, filters out spam, checks Zoho CRM, then branches to create or update a lead
The full Zapier automation we will build, sending Umbraco Forms submissions through spam checks and into Zoho CRM as new or updated leads.

A note on tools

Our stack: Umbraco + Zapier + NeverBounce + Zoho CRM.

You can replace any piece, as long as it connects via Zapier or webhooks. Make and n8n work just as well as Zapier for this. We use a paid plan of Zapier, so not all tools will be available if you use the free plan. 

If you’re unsure what you are doing, get help from your developer or agency.

Now, with the disclaimers out of the way, let’s get to the fun part: something you can try today.

The marketer’s dev mindset (no-code, developer habits)

You don’t need to be a developer to think like one.

Editors and marketers can build structured automations with the same kind of systems thinking, You just need to do some  configurations and add connectors instead of code.

Once you start seeing your tools as building blocks, it gets easier to spot where a simple trigger or webhook can save hours of manual work.

Think “when this happens → do that”

Let’s take a simple example. You have a lead form on your Umbraco site, and you want submissions to land in your CRM.

Sure, you could forward them by email or check submissions manually, but that doesn’t scale. Instead, use a webhook:

  • When a form is submitted → Send to webhook → Create or update CRM entry.

You can apply the same logic anywhere:

  • When a page is published → send data to Airtable → use AI to analyze and improve content. (By the way, this will be an upcoming article)

  • When a form is submitted → summarize the data with AI → send it to your CRM.

Sounds complex?  It’s quick once you’ve done it once, so no need to worry.

Let’s build your first automation step by step.

A few tips you really should think of before we go ahead!

When you play around with webhooks and automation tools, you need to think about your usage. The tools come with some sort of credit / zaps / automations you are paying for. So make sure to always think this into your setup, and add something like blocking out spam submits.

Consider if you need to block some email providers. And consider if you need to buy into a service that validates emails, to keep yourself sane, and not have to remove 100+ spam submits. We use Newerbounce for this, but there’s more of these services out there, so pick the one that fits your needs, and have a connection to your automation tool. If you are in doubt, talk with your developer or Umbraco agency. 

You can pretty easily follow along my setup here. I hope that you will try this simple setup this week with Zapier, Make or n8n.

If you don’t have a similar setup or are unsure, just try adding Umbraco Forms to Google Sheets instead of your CRM to see the data flow in, or even just a Slack notification that is sent in a secret channel every time a form is submitted, and experience the magic happen. 

Configure a webhook from Umbraco forms to send data to your CRM.

Step 1: Configure your form in Umbraco

  • Create your form in Umbraco Forms with the usual fields (name, email, company, message).

  • Add it to the page where you’ll test it, but no need to publish yet.

  • Previewing works fine for setup and testing.

Umbraco Forms backoffice showing a contact form with fields for name, email, country and enquiry

Step 2: Set up your webhook in Zapier

  • In Zapier, create a new Zap.

  • Choose the trigger: Webhooks by Zapier → Catch Hook.

  • Skip configuration and go to Test Trigger.

  • Copy the Webhook URL. You’ll need it for Umbraco forms.

That’s it for Zapier for now. Let’s connect it to your form.

Zapier editor showing a Webhooks by Zapier Catch Hook trigger with the webhook URL ready to copy
Create a new Zap with a Webhooks by Zapier ‘Catch Hook’ trigger and copy the webhook URL for Umbraco Forms.

Step 3: Connect Umbraco Forms to the webhook

  • In Umbraco, open your form.

  • Scroll to Configure Workflow and choose Send form to URL.

    • You might experience this does not work, or you cannot access this,. If that is the case you need to talk to yourYou might not have the right permissions and should consult your website administrator. 

  • For method pick POST. This will send the data to the webhook

  • Paste the webhook URL from Zapier.

  • Set the trigger to On Submit.

  • Enable Sensitive Data if you want to include hidden fields.

  • Save, preview your page, and do a test submit.

Now, head back to Zapier and check if your test data appears. when you use "Find new Records". It might take a couple of minutes before it shows up, so in case you don't see it, try a few times.

If it shows up, you’ve just sent data from Umbraco to Zapier.

Umbraco Forms “Edit workflow” screen configuring a Zapier Webhook to send form submissions via POST to a webhook URL

Step 4: Check for existing leads in your CRM

Next, make sure you don’t create duplicates.

We’ll use a Zoho CRM action here, but the same logic applies to HubSpot, Salesforce, or others.

  • Add a Zoho CRM “Find Lead” step.

  • Use Email as the unique identifier.

  • Enable “Success if no results are found.”
    (This keeps the Zap running even if the lead is new.)

  • Test with a sample email. If it’s found, Zapier will show it; if not, you’ll create it next.

If your CRM has separate modules for accounts or contacts, you can expand the search to those later. For now, we keep it simple and only look for leads

Zapier workflow with a Webhooks by Zapier trigger and a Zoho CRM “Find Module Entry” step configured to search leads by email to avoid duplicates
Use Zoho CRM’s ‘Find Lead’ step to search by email so your Zap checks for existing leads before creating new ones.

Step 5: Create or update the lead

We’ll use the path utility in Zapier to create two paths: one if the lead exists, one if it doesn’t.

Path 1 – Lead doesn’t exist:

  • Condition: Email (pick the email field from the search step we just performed in step 4, and set the condition to does not exist.

  • Action: Create Lead.

Path 2 – Lead exists:

  • Condition: Email exists.

  • Action: Update Lead.

Zapier Paths setup that branches into “Lead does not exist” and “Lead exists” based on email conditions to create or update the lead in the CRM

In Zoho, the action is Create module entry, for both of the above two steps.

  • Select your Leads module,

  • Choose the right template,

  • Map each field from your webhook to the corresponding field you need in Zoho CRM.

Run a test to make sure everything lands in the right place.

For updates, use the same logic but double-check you’re not overwriting key data (like attribution or source).

Zapier Paths branch showing a Zoho CRM “Create Module Entry” action where Umbraco form fields are mapped into a new lead record

Step 6: Test and launch

Do one final test from your website form.

If all runs cleanly, publish the Zap.

Congratulations! You just automated your first Umbraco Forms CRM workflow.

Optional: Add Slack notifications or spreadsheet logging

You can easily extend this flow with extra actions, like:

  • Send a Slack message to a private channel for each new lead.

  • Log form data in Google Sheets or Airtable.

These are great for visibility or reporting or notification setup. But in reality, you can add in so many extra actions and steps you would like.

How about creating a deal room for a potential lead with vital information for prospects on your company and products?

Prevent spam submissions

Nobody wants 200 fake leads clogging the CRM or burning your Zap credits. And as a nice bonus we can also save the environment for wasted computing resources and carbon emissions.

Let’s fix that with Zapier filters right after the webhook trigger.

Step 1 – Filter suspicious words:

  • Add a Filter step.

  • Use the form’s message field → “Text does not contain.”

  • Block obvious spam terms (Link building scams, medication offers, HTML tags, etc.).

  • Use the “And” option for each word you want to filter out.

Zapier editor showing a Filter step that checks the form message field and blocks leads containing spam terms like “linkbuilding” or HTML tags

Step 2 – Filter spam domains:

  • Add another Filter step for the email field.

  • “Text does not contain” → add known spam domains.

  • Use the “And” option for each domain you want to filter out.

Maintain the list as you go. It’ll save time, money, and carbon footprint from wasted runs.

Zapier editor showing an email spam filter step that blocks leads when the email address contains known spam domains using “Text does not contain” rules

Go build with webhooks

You’ve now built a full automation that validates, enriches, and routes new leads directly from Umbraco Forms.

If you’re new to this, start small. Try sending form data to Google Sheets or Slack first.

If you’re using Zapier, there’s an official Umbraco Zapier integration you can enable for your Umbraco website. It supports both form submissions and content published triggers, so every time new content goes live in Umbraco, your workflow can react instantly.

That’s exactly what we’ll explore in the next article:

How to build your own content repository and AI assistant using Umbraco, Zapier, and Airtable.

Until then, have fun building your first automation with webhooks.

And if you want to chat about automations, webhooks, or AI feel free to reach out.