Website Form Integration

Website Leads Integrations Updated Aug 17, 2026

Use this API to send leads from your website or landing page contact/enquiry forms directly into Abstract One CRM. When a visitor submits a form on your site, your frontend or backend should call this endpoint to create the lead in CRM with the correct project, campaign, and sub source mapping.

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 integrating your website form, 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.
  • Sub Source — identifies which website or landing page the lead came from. See Get Sub Source.
Important: The campaignID must belong to the same project as the projectID you pass in the request. The sub_source value must exactly match a sub source name configured in your CRM under the Website source.

Endpoint

POST https://app.abstractone.in/api/website-lead-create

Request headers

Include these headers in every API request:

HeaderValueDescription
x-api-keyyour_api_key_hereYour API key from CRM. See Generate API Key.
Acceptapplication/jsonExpected response format
Content-Typeapplication/jsonRequest body format

Request body

Send lead data as a JSON object in the request body.

Required fields

FieldTypeDescription
namestringLead full name
mobile_numberstring10-digit Indian mobile number (starts with 6–9). Country code and spaces are stripped automatically — only the last 10 digits are used.
projectIDstringProject ID from CRM (e.g. AAP002)
campaignIDstringCampaign ID from CRM (e.g. AAC001). Must belong to the selected project.
sub_sourcestringSub source name from CRM (e.g. landing page or website form name). See Get Sub Source.

Optional fields

FieldTypeDescription
emailstringLead email address
alternate_numberstringAlternate mobile number (10 digits, must differ from mobile_number)
professionstringLead profession or occupation
locationstringLead city or location
notesstringAdditional enquiry details or message from the form
utm_idstringUTM ID from the page URL
utm_campaignstringUTM campaign parameter
utm_sourcestringUTM source parameter
utm_mediumstringUTM medium parameter
utm_termstringUTM term parameter
gclidstringGoogle Click ID from the page URL
fbclidstringFacebook Click ID from the page URL
visitor_ipstringVisitor IP address

Example request

curl --location 'https://app.abstractone.in/api/website-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",
  "sub_source": "Abstract Next Landing Page",
  "location": "Mumbai",
  "notes": "Interested in 2BHK unit",
  "utm_source": "google",
  "utm_medium": "cpc",
  "utm_campaign": "summer_launch",
  "utm_term": "2bhk flats kalyan",
  "gclid": "CjwKCAiA...",
  "visitor_ip": "103.21.244.0"
}'

Success response

HTTP 200

{
  "status": true,
  "message": "Lead created successfully",
  "data": { }
}

The data object contains the created lead details from CRM.

Error responses

HTTP StatusMessageCause
401API Key missingx-api-key header not provided
401Invalid API credentialsAPI key is incorrect or inactive
404Client not foundAPI key does not map to a valid CRM account
422Sub source not foundsub_source name does not exist in CRM under Website source
422Project not foundprojectID does not exist in CRM
422Campaign not foundcampaignID does not exist in CRM
422Lead already existsDuplicate mobile number for the same project (when duplicacy mode is set to ignore)
500Error messageUnexpected server error during lead creation

Integration flow

  1. A visitor fills out a contact or enquiry form on your website or landing page.
  2. Your form handler collects the lead data and any UTM / tracking parameters from the page URL.
  3. Send a POST request to this API with projectID, campaignID, sub_source, and x-api-key.
  4. Use a unique sub_source value per website or landing page so leads can be tracked by source in CRM. See Get Sub Source for how to find or set up sub sources.
  5. 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 422 response.
  • 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, submit a test form on your website or send a test API request with sample data. Verify the lead appears in CRM under the correct project, campaign, and sub source with any UTM parameters captured.