1. Lead comes in
Forward the Yelp notification email, or connect Zapier — either way, we see the lead the moment it lands.
YELP LEAD AI
Every Request-a-Quote lead costs you real money in Yelp ad spend — typically $45–$120 a lead — including the spam, the out-of-area jobs, and the ones asking for work you don't do. Yelp Lead AI reads every lead, replies to the real ones in under 60 seconds, and filters out the rest.
HOW IT WORKS
Forward the Yelp notification email, or connect Zapier — either way, we see the lead the moment it lands.
We check it against your service area, the jobs you do (and don't), and typical spam patterns — then draft a reply that actually answers the question.
On Instant, we text you the drafted reply and post it to the Yelp thread the moment you reply SEND — a human always signs off before it goes out, per Yelp's own rules. On Lite, you paste it in yourself. Ask your dashboard agent to switch to fully automatic if you'd rather skip the SEND step. Junk leads get filtered out before anyone on your team spends a minute on them.
NOT A FILTER — AN EMPLOYEE
Your dashboard comes with a live specialist who knows your numbers and your leads. Ask it "why did you skip that lead yesterday?" or "how much have you saved me this month?" — it answers from your real data. Tell it "stop taking gate repair jobs" and it updates its own rules on the spot, remembers, and applies it to every lead after that.
BUILT FOR HOME-SERVICE BUSINESSES
Pick the onramp that fits how you work: forward an email, or connect Zapier. Either way, there's nothing to migrate and no new inbox to check. See the specifics for your trade:
Plus 13 more trades — calculate what junk leads cost your business or read our guides on responding to Yelp leads faster.
PRICING
No Zapier — forward Yelp's lead emails to us and we text you the drafted reply to paste in yourself. Working in 2 minutes.
Start free trialConnect Zapier once. Qualified leads text you the drafted reply — reply SEND and it posts to Yelp in seconds. Nothing to paste, and full auto-post is one chat message away.
Start free trial14 days free on either plan, card required. Cancel anytime from your dashboard. Prefer white-glove setup? Talk to a human.
Coming from an AI phone receptionist? See how we compare to Rosie, Smith.ai, and others — we don't answer calls, we're built just for Yelp leads.
INSTANT PLAN SETUP
POST, URL is the personalized ingest link from your onboarding page. Map fields: consumer name → consumerName, phone → consumerPhone, the project/request text → rawRequestText, location → zip, and — important — the trigger's own lead identifier (labeled something like Id or Lead Id in the New Lead step's output) → yelpLeadId. That last one is what lets the optional Zaps below post into the right Yelp thread later.qualified field (Boolean) is true.reply_text.4 steps, no Twilio account needed — we text you the lead summary ourselves the moment it comes in. New accounts default to "approve" reply mode (a human signs off on every reply before it posts, per Yelp's own Leads Agreement), which means this Zap's Filter step won't fire on qualified leads yet — you also need Zap #2 below to actually post them once you've replied SEND. Told your dashboard agent to switch you to "auto" mode instead? Then this Zap alone is all you need.
ZAP #2 — NEEDED FOR APPROVE MODE (the default)
Every qualified reply texts you first: "Reply SEND to post it, or SKIP to let it go." This Zap is what actually posts it once you've said SEND — it needs the same yelpLeadId captured in Zap #1's mapping above.
https://swiftapplab.com/api/leads/pending-approved-replies?token=<your webhook token>. Returns a replies array — empty until you've texted back SEND on a lead.replies array from the step above.yelpLeadId. Message = the loop item's reply_text.https://swiftapplab.com/api/leads/pending-approved-replies/mark-sent?token=<your webhook token>. Body: {"leadId": "<loop item's leadId>"}. Stops the same reply from posting twice.Skip this Zap entirely if you've asked your dashboard agent to switch you to "auto" mode — replies post straight from Zap #1 with no review step.
OPTIONAL ZAP #3
This is a separate Zap, since it runs on its own schedule rather than reacting to a new lead. It needs your ingest link's yelpLeadId to be captured above — without that, there's no way for this Zap to know which Yelp thread to post into.
https://swiftapplab.com/api/leads/pending-followups?token=<your webhook token>. This returns a followups array — usually empty, occasionally one or two items.followups array from the step above. Everything after this runs once per item in the array.yelpLeadId. Message = the loop item's followup_text.https://swiftapplab.com/api/leads/pending-followups/mark-sent?token=<your webhook token>. Body: {"leadId": "<loop item's leadId>", "index": <loop item's index>}. This is what stops the same touch from going out twice.Default sequence is 3 touches (~45 min, ~4 hours, ~next day) — adjustable by telling your agent on the dashboard, e.g. "only follow up once" or "stop following up."
OPTIONAL ZAP #4
https://swiftapplab.com/api/leads/consumer-replied?token=<your webhook token>. Body: {"yelpLeadId": "<the trigger's Lead Id field>"} — map the consumer's phone number too as a fallback if you're not sure which field carries the lead id.Optional: turned on "politely decline junk" (badge-protection mode) in your dashboard? Change the Filter step in Zap #1 to check shouldRespond instead of qualified so declines post too — just know a decline still counts as a response in Yelp's eyes, so it's for protecting your response badge, not for saving lead spend.
Zapier's exact field labels can shift between app versions — if a name above doesn't match what you see, look for the closest match (Zapier lets you inspect a sample payload from each trigger while building the Zap) or ask us and we'll walk through it with you.