Facebook Lead Ads to HubSpot and Slack, every 15 minutes
Sweep new Facebook and Instagram lead form submissions every 15 minutes, sync them to HubSpot, and post a qualified alert with a draft intro email to Slack.
Build an agent workflow that runs on a cron every 15 minutes to move new Facebook and Instagram Lead Ad submissions from Meta Ads into HubSpot and post an enriched alert to Slack.
Trigger: cron, every 15 minutes.
On each run, the agent should:
1. For each active lead form in the configured Meta Ads account, use Meta Ads Get Ad Leads to pull the latest lead submissions. Keep a small state note of the last-seen lead id per form so we only process new submissions and never post the same lead twice.
2. For every new lead, use HubSpot Search Contacts to check whether a contact already exists (match on the email captured on the form). Remember whether this was a new create or an existing update, because we surface that in Slack.
3. Upsert the lead into HubSpot via HubSpot Batch Upsert Contacts, matched on email. Write standard properties (first name, last name, email, phone) plus source campaign, source ad, source ad set, and each form question and answer. Batch upserts up to 100 leads per HubSpot call when a single sweep pulls in many at once.
4. Take the email domain of the new lead and use HubSpot Search Companies to see if there is an existing company with that domain. If yes, remember the company name so we can flag this as an account-based touch in Slack.
5. Write a short qualification summary (2 to 4 sentences) from the form answers, calling out fit signals like company size, role, budget, or timeline where present. Also draft a one-paragraph intro email the AE can copy: friendly, references the specific ad or offer the lead responded to, and ends with a soft ask for a 15-minute call.
6. Post one message per lead to the configured sales Slack channel using Slack Bot Send a Message. The message should include: the lead's full name and title, email and phone, the campaign and ad they came from, whether they are new or already in HubSpot, the account-based flag when the domain matched a company, the qualification summary, and the draft intro email in a code block so it's easy to copy.
Inputs to expose on the workflow: the Meta Ads account id, the Slack channel id for sales alerts, and an optional list of lead form ids to restrict to (default: all active lead forms on the account).
Guardrails: if Get Ad Leads returns nothing new for a form, skip silently. If HubSpot rejects a contact (bad email, etc.), still post the Slack message but note the sync failure so the AE can fix it manually. Never post the same lead twice, even across runs.
Additional information
What does this prompt do?
- Checks your Facebook and Instagram lead forms every 15 minutes for new submissions so nothing sits waiting for hours.
- Creates or updates each new lead in HubSpot with the campaign, ad, and every form answer attached so the record is ready to work.
- Posts a Slack alert to your sales channel with the lead's contact info, a short qualification summary, and a ready-to-send intro email your AE can copy.
- Flags when a lead's email matches an existing HubSpot company so the AE knows it's an account touch, not a fresh cold lead.
What do I need to use this?
- A Meta Ads account with at least one active lead form on Facebook or Instagram.
- A HubSpot login with permission to search contacts and companies and to create or update contacts.
- A Slack workspace with the channel where you want sales to be notified.
How can I customize it?
- Change the sweep frequency from every 15 minutes to hourly, or twice a day, if you don't need near-real-time alerts.
- Pick which Slack channel gets pinged, or route different lead forms to different channels for different sales pods.
- Adjust which HubSpot properties get written from the form answers, and tweak the qualification and intro-email style to match your team's voice.
Frequently asked questions
How is this different from HubSpot's built-in Facebook Lead Ads sync?
Will the same lead ever get posted twice?
What if a lead already exists in HubSpot?
How does the account-based flag work?
Do I need a paid HubSpot tier?
Related templates
Stop losing Facebook leads to a two-hour sync delay.
Connect Meta Ads, HubSpot, and Slack once, and every new lead lands in your CRM and sales channel within 15 minutes, with a qualification summary and a draft intro email attached.