
Lead intake: forms, Facebook Lead Ads, routing
Closr ingests leads from four places: an embeddable form for your website, the generic inbound API (anything that can POST JSON), Facebook Lead Ads via Zapier (one-click Facebook connect is coming), and email-only feeds like Realtor.ca that get parsed out of inbound mail. New leads land as a Contact plus a Lead row, fire the `LEAD_CREATED` trigger, run any routing rules you've set, push a notification, and bump the contact's lead score. The whole path is the same regardless of source.
This is partially live. Generic API + Realtor.ca + Zillow.ca are running, and Facebook Lead Ads works today through Zapier. The direct "Connect Facebook" button is waiting on Meta's app approval, and direct Zillow Premier Agent plus the polished "paste-your-Zapier-URL" UX are paused for alpha (more on that below).
Embeddable form for your website
Drop a hand-coded HTML form on any page you control and post it to Closr's inbound endpoint.
- 1Go to Settings → Integrations → API Keys and mint a new key. Label it "Website form" so you can revoke just that one later. Copy the key. You only see it once.
- 2Build a normal HTML form with fields like `firstName`, `lastName`, `email`, `phone`, `message`, `propertyAddress`. The endpoint accepts JSON only, so wire a small `fetch()` in the submit handler instead of a plain form POST.
- 3POST to `https://getclosr.app/api/leads/inbound` with header `x-api-key: <your key>` and the JSON body. `firstName` is the only required field. Optional: `source` (defaults to "API"), `tags`, `value`.
- 4Test by submitting the form yourself. Within a few seconds the contact appears in Contacts and the lead lands in your pipeline at the default stage.
That's the whole API. Same endpoint Zapier hits, same endpoint Make.com hits, same endpoint a brokerage-supplied IDX site could hit if your provider lets you customize the post-submit handler.
Facebook Lead Ads (via Zapier, today)
The direct "Connect Facebook" flow is built but waiting on Meta's app review, so don't use the Facebook page under Settings → Integrations yet. Until Meta approves, run your Lead Ads through Zapier — Zapier's Facebook connection is already Meta-approved, so leads flow the moment the Zap is on.
- 1Mint an API key: Settings → Integrations → API Keys. Label it "Facebook via Zapier". Copy the key — you only see it once.
- 2In Zapier, create a Zap with trigger "Facebook Lead Ads → New Lead" and connect your Facebook account and Page.
- 3Action: "Webhooks by Zapier → POST" to `https://getclosr.app/api/leads/inbound` with header `x-api-key: <your key>`.
- 4Map the body: `firstName`, `lastName`, `email`, `phone` from the lead form fields. Set `source` to "Facebook" and `tags` to something per-campaign like `["facebook", "first-time-buyer"]`.
- 5Use Meta's Lead Ads Testing Tool (or submit your own form) to fire a test lead. It should appear in Contacts within seconds, tagged and in your pipeline.
The per-campaign tag is the payoff: point a campaign's trigger tags at the same tag (say `first-time-buyer`) and every lead from that ad auto-enrolls in that campaign — buyer guide delivered, no manual step. Source attribution surfaces under Analytics → Sources so you can see cost-per-lead if you fill in the monthly ad spend.
Zapier's free tier covers 100 tasks a month — one task per lead, which is plenty while an ad ramps up. When the direct Facebook connect ships, you can switch over and drop the Zap; the leads land the same way either way.
Zapier pathway
For everything Closr doesn't directly integrate with yet (Zillow US Premier Agent, FUB transfers, Realtor.com agent webhooks, a Google Ads lead form extension, your brokerage's proprietary lead pool, etc.), Zapier is the path.
Build a Zap with your source as the trigger and "Webhooks by Zapier → POST" as the action. URL is `https://getclosr.app/api/leads/inbound`, header `x-api-key: <your key>`, body shaped the same as the website form. Set `source` to something descriptive like "Zillow Flex" or "Realtor.com Lender Connect" so analytics splits them out properly.
The alpha-invite email mentions Zillow / Facebook Lead Ads / Zapier are "paused for alpha". That referred to the polished one-click setup screens, which were too developer-flavored for a "I don't do software" product. The underlying generic API has been live the whole time. If you're comfortable with Zapier, this works today. The guided versions come back when we ship a setup flow that doesn't require copy-pasting webhook URLs.
Round-robin routing (teams)
If you're on a team plan, every inbound lead can auto-assign to a teammate via a rotation rule. Configured in Settings → Routing.
- 1Settings → Routing → New rule.
- 2Name it ("FB Toronto leads", "Stale-pricing-page leads", whatever).
- 3Set match criteria: by `source` (e.g. "Facebook"), by tag, by address-contains, by value range. Leave criteria empty to match everything.
- 4Pick a strategy: **Specific user** (always assigns to one teammate), **First in set** (walks an ordered list, picks the first one who's still on the team), or **Round-robin** (rotates through the list).
- 5Set priority. Higher priority rules match first. Save.
Unassigned leads also show a "Claim" button on the pipeline kanban for any teammate to grab.
What happens when a new lead lands
The flow is the same for every source:
- •Contact gets matched by email if one's there, otherwise created.
- •Lead row gets created at the default pipeline stage.
- •`LEAD_CREATED` trigger fires. Any automation rule you've set up (welcome SMS, auto-tag by source, notify on-call) runs.
- •Routing rule assigns the lead to a teammate (or to you, if you're solo).
- •Push notification fires to the assigned agent.
- •Lead score recomputes overnight on the cron. Web-tracker activity counts toward it.
- •If you've enrolled the matching source in a campaign, the drip starts.
Every inbound lead also creates a NOTE activity if the source included a "message" field. So buyer-form free-text questions stick to the contact record and show up in the activity timeline.
Where to go next
- •`lead-scoring-views`: what makes a lead score high, and how to save filtered lists
- •`automations`: wire reactions to `LEAD_CREATED` and the other triggers
- •`campaigns`: drip new leads from a given source automatically