What this covers
Every common way to get leads from the outside world into RemixCRM:
- Your own website (form on Squarespace, Wix, WordPress, Webflow, plain HTML)
- Google Ads (Lead Form Extensions)
- Facebook Ads / Instagram Ads (Lead Ads)
- Calendly (when someone books a call)
- TikTok Lead Generation Ads
- Manual paste / CSV
All routes funnel into the same leads table in your org. Every lead, no
matter the source, fires the lead.created outbound webhook — so any
downstream automation (Slack alert, auto-reply email, SMS confirmation)
runs once, regardless of where the lead came from.
The two integration patterns
There are exactly two ways to send leads into RemixCRM:
- Lead API —
POST /api/v1/leadswith your API key. Direct, no middleman, fastest. Use when the source can send a custom HTTP request (your own backend, n8n, Zapier custom-webhook action). - Webhook receiver — point the source at a Zapier/Make/n8n webhook trigger, transform the payload, then call the Lead API. Use when the source (Facebook, TikTok) emits a fixed format you can't customize.
When in doubt, pattern 2 (via Zapier/n8n) is fine — the cost is one extra hop and ~$20/mo for a Zapier Starter plan or self-hosted n8n ($0–$10/mo). The cost is zero engineering hours per new source.
Your own website
Squarespace / Wix / generic form builders
These platforms typically have a "Webhook on submit" or "Zapier integration" option:
- Build your contact form with at minimum: name, email, phone, event date
- Squarespace: Form → Storage → "Connect to Zapier" → New Zap
- Wix: Velo code or Wix Automations → Trigger on form submit
- In Zapier: Trigger = form submit. Action = "Webhooks → Custom Request":
- Method: POST
- URL:
https://app.remixcrm.com/api/v1/leads - Headers:
Authorization: Bearer rmx_yourkey - Data: JSON with mapped fields
- Map their fields → RemixCRM fields (
name,email,phone,event_date) - Turn on
See the Lead API doc for the exact field schema.
WordPress (Contact Form 7, WPForms, Gravity Forms)
Use the form plugin's webhook addon, OR install Zapier-for-WordPress. Same
pattern as above: form submit → POST to /api/v1/leads.
For Gravity Forms specifically, there's a "Webhooks" addon ($59/year) that lets you POST directly without Zapier — saves the middleman.
Plain HTML (recommended for full control)
Drop this on any page. Note the API key is on your server, never in the HTML:
Frontend (anywhere on your site):
<form id="rcm-lead" class="space-y-3">
<input name="name" placeholder="Your name" required />
<input name="email" type="email" placeholder="Email" required />
<input name="phone" placeholder="Phone" required />
<input name="event_date" type="date" required />
<select name="event_type">
<option>Wedding</option>
<option>Birthday party</option>
<option>Corporate event</option>
<option>Other</option>
</select>
<textarea name="notes" placeholder="Tell us about your event"></textarea>
<button type="submit">Get a quote</button>
</form>
<script>
document.getElementById('rcm-lead').addEventListener('submit', async (e) => {
e.preventDefault()
const fd = new FormData(e.target)
const res = await fetch('/api/lead', {
method: 'POST',
headers: { 'content-type': 'application/json' },
body: JSON.stringify(Object.fromEntries(fd)),
})
if (res.ok) {
e.target.innerHTML = '<p>Got it — we’ll be in touch within 24 hours.</p>'
} else {
alert('Something went wrong. Please email us at hello@yourdomain.com.')
}
})
</script>
Backend (/api/lead on your site — Node, Next.js, PHP, anything):
// pseudo-code
app.post('/api/lead', async (req, res) => {
await fetch('https://app.remixcrm.com/api/v1/leads', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.REMIXCRM_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
...req.body,
source: 'Website contact form',
}),
})
res.json({ ok: true })
})
The API key lives in your server's env vars. Browser-side code never sees it.
Google Ads — Lead Form Extensions
Google Ads has a built-in lead form that captures user info without sending them to your site. Higher conversion, simpler attribution.
Setup
- Google Ads → Tools → Audience Manager → Lead Form Asset
- Build the form: questions, headline, business info
- In Lead delivery options, choose Webhook integration:
- Webhook URL: Your bridge endpoint (you'll build this — keep reading)
- Key: A shared secret you'll verify
Google posts each lead to your webhook URL with a payload like:
{
"lead_id": "...",
"api_version": "1.0",
"form_id": "...",
"campaign_id": "...",
"google_key": "your-shared-secret",
"user_column_data": [
{ "column_name": "FULL_NAME", "string_value": "Jane Doe" },
{ "column_name": "EMAIL", "string_value": "jane@example.com" },
{ "column_name": "PHONE_NUMBER", "string_value": "+15551234567" }
]
}
The bridge — Zapier or n8n
Google's payload doesn't match RemixCRM's /api/v1/leads schema, so you
need a quick transform.
With Zapier:
- Trigger: Webhooks by Zapier → Catch Hook (get a URL)
- Paste that URL into Google Ads
- Action: Code by Zapier (JavaScript) — parse
user_column_dataintoname,email,phone - Action: Webhooks → Custom Request → POST to
/api/v1/leadswith your API key
With n8n:
- Webhook node → public URL into Google Ads
- Function node — flatten
user_column_datato top-level fields - HTTP Request node → POST
/api/v1/leadswith your API key
In your RemixCRM payload, set source: 'Google Ads' so you can filter
leads by acquisition channel later.
Facebook Ads / Instagram Ads — Lead Ads
Meta's Lead Ads work the same as Google's: form rendered inside FB/IG, lead data posted to your webhook. The cleanest path is via Zapier or n8n because Meta's webhook setup requires app review (more work than it's worth).
Easy path — Zapier
- Zapier offers a native Facebook Lead Ads trigger
- Choose your page + lead form
- Action: Webhooks → Custom Request → POST to
/api/v1/leads - Map fields:
full_name→name,email→email,phone_number→phone,event_date→event_date
Zapier handles all the Meta webhook signing and refresh-token plumbing.
Easy path — n8n
n8n has a Facebook Lead Ads Trigger node (community node — install from the n8n marketplace). Same flow as the Zapier path but self-hosted.
Instagram Lead Ads
Instagram Lead Ads use the same Meta lead delivery system as Facebook — the trigger is identical, you just select your IG-connected page. No separate integration.
Custom Field tip
Add "Event date" as a multiple choice or custom question in your
Meta lead form. Pre-fill suggestions like "Within 3 months / 3-6 months /
6-12 months / 12+ months" — then post the picked option into RemixCRM's
notes field. The exact event_date can be confirmed during your first
call.
TikTok Lead Generation
TikTok added Lead Generation in 2023. Zapier supports it as a trigger.
Same pattern — TikTok trigger → transform → POST to /api/v1/leads.
Calendly
When someone books a call with you, RemixCRM auto-creates a lead. See
Calendly integration for setup. The Calendly
flow is special-cased — it uses a dedicated webhook endpoint at
/api/calendly/webhook rather than the generic Lead API, but the resulting
lead is identical and fires the same lead.created outbound webhook.
Manual entry / CSV import
For one-offs (referral from a friend, lead from an in-person conversation):
- Leads → New in RemixCRM — paste in what you know
- Clients → Import CSV — for batches (e.g. importing a list from a competitor's tool)
Putting it all together — recommended setup
For most DJ businesses, the right combination is:
- Your website's contact form → direct to Lead API
- Google Ads Lead Forms → Zapier bridge → Lead API
- Facebook + Instagram Lead Ads → Zapier bridge → Lead API
- Calendly → built-in webhook integration
- Outbound webhook from RemixCRM (
lead.created) → Slack channel or SMS to your phone so you never miss a new lead
Total automation effort: ~30 minutes once, then forever.
Tracking which channel converted
Set the source field on every Lead API call:
source: "Website"— direct formsource: "Google Ads — Wedding campaign"— be specific, you'll thank yourself when reading reportssource: "Facebook — Summer 2026"source: "Referral — [referrer name]"
RemixCRM matches the string against your lead_sources table or creates
a new one. Reports → Leads by Source will group conversions and tell you
which ads are actually paying off.
Things to watch out for
Duplicate leads. A user fills out your website form AND clicks your Facebook ad. You get two leads with the same email. Currently RemixCRM doesn't dedupe — you'll get both. Watch for this and merge manually for now. (Automatic dedup-by-email is on the roadmap.)
Phone format. International leads come in with different formats.
Twilio receipts require E.164 (+15551234567). If you're running ads
outside the US, normalize phones in your transform step before calling
the Lead API.
Rate limit. Lead API is capped at 100 leads/hour per org. If an ad campaign goes viral and you hit the cap, leads start returning HTTP 429. Either rate-limit at the source (Zapier "Delay" step) or contact us to raise the cap.
API key security. Never put the Lead API key in client-side code, public Zapier zaps, or anything that gets shared. Treat it like a password. Revoke and rotate immediately if it leaks.