Facebook & Instagram Leads Integration
Use this API to send leads from Facebook and Instagram ad campaigns directly into Abstract One CRM. When a user submits a lead form on Meta (Facebook or Instagram), your integration layer should capture the lead data and call this endpoint to create the lead in CRM with the correct project, campaign, and platform attribution.
This is a global API endpoint. Your CRM account is identified using the x-api-key header — no client-specific configuration is required in the URL itself.
Prerequisites
Before calling this API, make sure you have the following values ready from your Abstract One CRM account:
- API Key — required in every request header. See Generate API Key.
- Project ID — the project where the lead should be stored. See Get Project ID.
- Campaign ID — the campaign linked to that project. See Get Campaign ID.
Important: ThecampaignIDmust belong to the same project as theprojectIDyou pass in the request. Mismatched IDs may cause the lead to be rejected.
Endpoint
POST https://app.abstractone.in/api/meta-lead-create
Request headers
Include these headers in every API request:
| Header | Value | Description |
|---|---|---|
x-api-key | your_api_key_here | Your API key from CRM. See Generate API Key. |
Accept | application/json | Expected response format |
Content-Type | application/json | Request body format |
Request body
Send lead data as a JSON object in the request body.
Required fields
| Field | Type | Description |
|---|---|---|
name | string | Lead full name |
mobile_number | string | 10-digit Indian mobile number (starts with 6–9). Country code and spaces are stripped automatically — only the last 10 digits are used. |
projectID | string | Project ID from CRM (e.g. AAP002) |
campaignID | string | Campaign ID from CRM (e.g. AAC001). Must belong to the selected project. |
platform | string | Lead source platform. Allowed values: fb (Facebook), ig (Instagram), wp (WhatsApp) |
Optional fields
| Field | Type | Description |
|---|---|---|
email | string | Lead email address |
alternate_number | string | Alternate mobile number (10 digits, must differ from mobile_number) |
profession | string | Lead profession or occupation |
location | string | Lead city or location |
notes | string | Additional notes for the lead |
meta_campaign | string | Meta campaign name from the ad platform |
meta_adset | string | Meta ad set name |
meta_ad | string | Meta ad name |
Platform values
Use the correct platform value based on where the lead was generated:
fb— Facebook Lead Adsig— Instagram Lead Adswp— WhatsApp (if routed through the same Meta integration flow)
Example request
curl --location 'https://app.abstractone.in/api/meta-lead-create' \
--header 'x-api-key: your_api_key_here' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"name": "Rahul Sharma",
"mobile_number": "9876543210",
"alternate_number": "9123456780",
"email": "rahul@example.com",
"profession": "Software Engineer",
"projectID": "AAP002",
"campaignID": "AAC001",
"platform": "fb",
"location": "Mumbai",
"notes": "Interested in 2BHK unit",
"meta_campaign": "Summer Launch Campaign",
"meta_adset": "Mumbai Audience 25-45",
"meta_ad": "2BHK Offer Ad"
}'
Success response
HTTP 200
{
"status": true,
"message": "Lead created successfully"
}
Error responses
| HTTP Status | Message | Cause |
|---|---|---|
401 | API Key missing | x-api-key header not provided |
401 | Invalid API credentials | API key is incorrect or inactive |
404 | Client not found | API key does not map to a valid CRM account |
422 | Project not found | projectID does not exist in CRM |
422 | Campaign not found | campaignID does not exist in CRM |
422 | Sub source not found | Invalid platform value |
422 | Lead already exists | Duplicate mobile number for the same project (when duplicacy mode is set to ignore) |
500 | Error message | Unexpected server error during lead creation |
Integration flow
- A user submits a lead form on a Facebook or Instagram ad.
- Meta sends the lead data to your webhook or middleware (Zapier, Make, custom server, etc.).
- Your middleware maps Meta form fields to the API request body (name, mobile, email, etc.).
- Set
platformtofborigbased on the ad source. - Pass your
projectID,campaignID, andx-api-keywith every request. - Abstract One CRM creates the lead and assigns it based on your pipeline rules.
Duplicate leads
Abstract One checks for existing leads with the same mobile number within the same project. Behaviour depends on your CRM Lead Duplicacy setting:
- Ignore — duplicate leads are rejected with a
422response. - Create — a new lead is created and marked as repeated.
- Merge — a new lead is created and linked to the original parent lead.
Testing
Before going live, send a test request with sample data and verify the lead appears in your CRM under the correct project and campaign. Confirm the platform is tagged correctly as Facebook or Instagram in the lead source.