All CRM endpoints are under the prefix
/api/brands/{brand}/crm/ and authenticate via EF-Access-Key.Entity Presets
Before creating a custom entity you can list and apply built-in presets (e.g. Leads, Contacts, Deals) which come pre-configured with pipelines and fields.cURL
Entities
Entities define the type of record tracked in the CRM (e.g. “Leads”, “Customers”). Each brand can have multiple entities.List Entities
cURL
Get Entity
pipelines (including stages) and fields loaded.
Create Entity
string
required
Display name (e.g.
Leads)string
required
URL-safe identifier — lowercase alphanumeric, hyphens, underscores (e.g.
leads). Must be unique per brand.string
Singular label (e.g.
Lead)string
Plural label (e.g.
Leads)string
Icon identifier (max 64 chars)
string
Hex color (max 64 chars)
string
Optional preset key from Entity Presets. When set, pre-populates pipelines and fields.
cURL
Update Entity
Delete Entity
Pipelines
Pipelines belong to an entity and contain an ordered list of stages.List Pipelines
Get Pipeline
Create Pipeline
string
required
Pipeline name (e.g.
Sales Pipeline)cURL
Update Pipeline
Delete Pipeline
Stages
Stages belong to a pipeline and represent progress steps (e.g. “Prospect → Qualified → Closed”).List Stages
Get Stage
Create Stage
string
required
Stage name (e.g.
Qualified)string
Hex color for the stage badge
cURL
Update Stage
Reorder Stages
array
required
Array of
{id, position} objects in the desired order.cURL
Delete Stage
Custom Fields
Custom fields define the schema for entry data. Each entity has its own set of fields.List Fields
Get Field
Create Field
string
required
Field label (e.g.
Email Address)string
required
Slug key used in
values on entries (e.g. email). Lowercase alphanumeric + underscores.string
required
Field type:
text, number, date, boolean, select, multi_select, url, email, phonearray
For
select and multi_select types — array of option strings.boolean
Whether this field is required on entry creation (default:
false)number
Display order
object
Optional reporting metadata. Supported keys:
reportable (boolean), aggregation_type (numeric, categorical, date, boolean), baseline (min/max numbers), bucket_size (positive number), and preferred_chart (kpi, histogram, pie, bar, line).cURL
Update Field
reporting_config.
Delete Field
Entries
Entries are the individual records in a CRM entity (e.g. a single lead or deal). They are stored and queried via Elasticsearch.List Entries
string
required
Entity ID
number
Results per page (max 100, default: 25)
number
Page number (default: 1)
number
Filter by pipeline
number
Filter by stage
string
Filter by external reference type (e.g.
conversion, lead)string
Filter by external reference ID
string
Full-text search on
titleboolean
Attach matched customer record to each entry (default:
false)cURL
Get Entry
Create Entry
string
required
Human-readable label for the entry (e.g. the lead’s name or email)
number
required
ID of the pipeline this entry belongs to
number
required
ID of the initial stage
object
Flat key-value object of custom field values (e.g.
{"email": "jane@example.com", "lead_source": "Facebook"}). Keys must match a defined field key on the entity.string
External ID to link the entry to another record (e.g. a conversion ID)
string
Type of external reference (e.g.
conversion, lead, order)number
Assign to a specific team member by user ID
number
Assign to a CRM team by team ID
cURL
Python
Update Entry
cURL — update values and reassign
Move Entry to Stage
Move an entry to a different stage within the same pipeline.number
required
Target stage ID (must belong to the entry’s current pipeline)
cURL
Delete Entry
Automation: Create CRM Entry from Conversion
A common pattern is creating a CRM entry whenever a conversion is recorded. Using the EF automation pipeline or an external webhook:Python