How it works
The engine behind every lead.
Maple is a real-time routing engine wrapped in a marketplace. Here's exactly what happens between a consumer pressing submit and the lead landing in your CRM — and how we keep it fair.
The pipeline
Six stages. Under fifty milliseconds.
Every lead runs the same deterministic pipeline, and its routing and delivery history is visible in your portal.
- 1POST /v1/leads
Ingest
A supplier posts the lead the instant the consumer submits a form. Age — and therefore price — is measured from the submission timestamp.
- 2TCPA · TrustedForm
Verify
Phone, email, state and ZIP are validated and normalized. TCPA consent language, timestamp, IP and TrustedForm certificate are attached.
- 330-day window
Deduplicate
If the same phone number arrived in the same vertical within 30 days, the lead is recorded as a duplicate and never sold.
- 4Hot 1 · $110
Price
The lead is placed on the 9-tier ladder. Its tier sets the price and the maximum number of buyers allowed to share it.
- 5< 50 ms
Match & rank
Every active campaign is checked for eligibility; matches are ranked by VIP routing, account priority and round-robin fairness.
- 6lead.delivered
Charge & deliver
Your wallet is debited at the locked tier price and the lead is pushed to your webhook, CRM and inbox — and appears in your portal live.
Eligibility
Which campaigns can receive a lead.
A campaign is a candidate only when every check passes. Nothing is ever charged to you that your campaign didn't ask for.
- Filters matchVertical, lead type, state, ZIP and attribute filters (loan amount, credit, timeline…).
- Tier opted inThe campaign buys the tier the lead is currently in.
- Within scheduleInside the campaign's delivery days and hours, in your time zone.
- Under capsDaily and monthly lead caps haven't been reached.
- Wallet covers itYour balance covers the current tier price.
- Not already yoursYour organization hasn't already bought this lead.
Routing priority
Who gets it first — and why it's fair.
Eligible campaigns are ranked in a strict, transparent order until the lead's share cap is filled.
- 01VIP ZIP routingEnterprise
Enterprise accounts can reserve ZIP codes. Matching leads go only to the VIP buyer for an exclusive window (15 minutes by default) before reaching the general pool — and fall through immediately if the VIP can't take them.
- 02Account priorityEnterprise
Volume agreements can carry a priority weight that moves an account up the queue among otherwise-equal candidates.
- 03Round-robin fairnessEveryone
Among equal candidates, whoever has waited longest since their last lead goes first. Nobody is starved; nobody gets every lead because they signed up first.
Delivery
Signed webhooks to any CRM.
Each campaign can post leads to your webhook as JSON, form-encoded or XML — the formats Zapier, GoHighLevel, Salesforce, HubSpot, Follow Up Boss and Pipedrive accept — plus instant email alerts.
- Every request is signed with HMAC-SHA256 in the X-Maple-Signature header
- Custom headers per campaign for CRM API keys
- Failed deliveries retry automatically with exponential backoff
- Every attempt — status code, latency, response — is logged in your portal
- Send a test lead to your endpoint before going live
Headers: X-Maple-EventX-Maple-Signature
import { createHmac, timingSafeEqual } from "node:crypto";
// Express / Next.js route handler — use the raw request body.
export function verifyMapleSignature(rawBody: string, header: string, secret: string) {
// Header format: X-Maple-Signature: t=1760540000,v1=5f2c…
const parts = Object.fromEntries(header.split(",").map((p) => p.split("=")));
const timestamp = Number(parts.t);
// Reject replays older than 5 minutes.
if (!timestamp || Math.abs(Date.now() / 1000 - timestamp) > 300) return false;
const expected = createHmac("sha256", secret).update(`${timestamp}.${rawBody}`).digest("hex");
const a = Buffer.from(expected, "hex");
const b = Buffer.from(parts.v1 ?? "", "hex");
return a.length === b.length && timingSafeEqual(a, b);
}{
"event": "lead.delivered",
"lead_number": 48213,
"vertical": "mortgage",
"lead_type": "FHA",
"tier": "HOT_1",
"price": 110,
"first_name": "Jordan",
"phone": "+12145550142",
"state": "TX",
"zip": "75201",
"source": "facebook",
"lead_age_minutes": 0.4,
"attributes": { "loanAmount": 318000, "creditScore": "Good (680-739)", "propertyType": "Single Family" },
"consent": { "trustedFormCertUrl": "https://cert.trustedform.com/…" }
}Plug Maple into your CRM in ten minutes.
Create an account, fund your wallet and switch on a campaign. Your first lead can land in your CRM within minutes.
No subscription · No setup fee · Pay only for leads you receive