The problem: two front doors
Lewis Realtors runs Facebook ads. Good news: people were filling out the lead forms. Less good news: every one of those leads landed in Meta’s Lead Center, a place nobody on the team ever opens.
Meanwhile, anyone who filled out a form on the website went straight into the team’s CRM (they use Monday.com), the right agent got notified, and a follow-up email sequence started. Same day, every time.
Same business. Two front doors. Only one had anyone standing at it.
Nothing was broken, which is exactly why nobody noticed. No error message. No alarm. The leads just went somewhere quiet.
What I built
The goal was simple to say: a Facebook lead should get the exact same treatment as a website lead. Here’s what happens now, start to finish.
- One trigger for every form. Instead of wiring up each Facebook lead form one at a time, the automation watches the whole Facebook page. When the team launches a new ad with a new form next month, it’s already covered.
- Clean it up and check for a match. Before creating anything, it looks for an existing contact by phone number. If this person is already in the CRM, their record gets updated instead of duplicated.
- Create or update the lead in the CRM. The record is tagged with the form and ad it came from and set to the Lead stage, so the team can see which ads are actually producing people.
- Tell the agent. The assigned agent gets an email the moment the lead lands.
- Start the follow-up. The lead goes into ActiveCampaign, gets tagged, and enters the same nurture sequence every other buyer lead gets.
The day it went live, I went back and pulled in the leads that had been sitting in Meta’s inbox. There were 29.
The parts that took the real time
The five steps above are the part that looks good on a whiteboard. These are the parts that actually ate the afternoon.
Phone numbers are a mess
The website forms store phone numbers as ten plain digits. Facebook sends them with a +1 in front. Some older records have a 1 with no plus. Search the CRM for one format and it won’t find the other two, which means duplicates.
The fix: store numbers in one standard format going forward, but always search using just the last ten digits. That matches all three formats already on the board. It’s a tiny detail. It’s also the difference between a clean CRM and one where every lead shows up twice.
Facebook’s own test lead broke things
Meta has a testing tool that sends a fake lead so you can check your setup. Its fake name looks like this: <test lead: dummy data for full_name>. Monday.com does not like angle brackets in a name, and it says so with a vague server error and nothing else. Now the automation strips those characters out before it creates anything.
The form name wasn’t in the data
I wanted every lead tagged with the form it came from. Facebook’s trigger sends the form’s ID but not its name. So the automation does one extra lookup to get the name. Leads that come in through Messenger have no form at all, and they’re labeled that way instead of failing.
Not every field shows up where you’d expect
A real test lead came through with the phone number in one place and the name and email somewhere else entirely. The automation checks both places for every field. That fallback looks like overkill until the day it’s the only reason a lead has an email address.
Deciding what happens when something fails
If saving to the CRM fails, the automation retries three times over 45 minutes and then holds the lead so nothing is lost. If sending a notification fails, it flags the record and moves on, since the lead itself is already safe. My rule: retry where data could be lost, keep going where it can’t.
The part I’m proudest of: it tells on itself
Here’s the uncomfortable truth about automations. A green checkmark tells you the automation ran. It doesn’t tell you it did anything.
The connection between Make and Facebook expires every couple of months. When it does, leads stop flowing, and nothing complains. So there’s a second, tiny automation that runs every Monday morning and reports one thing: the date of the most recent Facebook lead.
Why the date and not a count? “0 leads this week” could be a slow week. “Most recent lead was 19 days ago” means something is broken. One number tells you the ads are quiet. The other tells you the plumbing is.
I build everything this way now. If an automation is supposed to produce something, it has to tell me when it produced nothing.
If you run ads, ask one question
Where do your leads actually land, and who’s looking?
If the honest answer involves a platform inbox nobody opens, an email address nobody checks, or “I think it goes into the CRM,” it’s worth ten minutes to find out. The fix is rarely clever. The problem is usually just invisible.
And if you’d like a hand finding the quiet spots in your own setup, the Digital Clarity Quiz takes about three minutes and shows you where the gaps are.
Tools in this build: Make, Monday.com, Facebook Lead Ads, ActiveCampaign, Gmail.


