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
Display name (e.g.
Leads)URL-safe identifier — lowercase alphanumeric, hyphens, underscores (e.g.
leads). Must be unique per brand.Singular label (e.g.
Lead)Plural label (e.g.
Leads)Icon identifier (max 64 chars)
Hex color (max 64 chars)
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
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
Stage name (e.g.
Qualified)Hex color for the stage badge
cURL
Update Stage
Reorder Stages
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
Field label (e.g.
Email Address)Slug key used in
values on entries (e.g. email). Lowercase alphanumeric + underscores.Field type:
text, number, date, boolean, select, multi_select, url, email, phoneFor
select and multi_select types — array of option strings.Whether this field is required on entry creation (default:
false)Display order
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
Entity ID
Results per page (max 100, default: 25)
Page number (default: 1)
Filter by pipeline
Filter by stage
Filter by external reference type (e.g.
conversion, lead)Filter by external reference ID
Full-text search on
titleAttach matched customer record to each entry (default:
false)cURL
Get Entry
Create Entry
Human-readable label for the entry (e.g. the lead’s name or email)
ID of the pipeline this entry belongs to
ID of the initial stage
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.External ID to link the entry to another record (e.g. a conversion ID)
Type of external reference (e.g.
conversion, lead, order)Assign to a specific team member by user ID
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.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