Skip to main content

Integration Guide — CRM Configurations

Introduction

This guide describes integration with the unified crm-config API, which exposes CRUD operations on three CRM configuration tables:

Value (configType)Name
0Categories
1States
2Priorities

Each entry has id (integer, assigned on create) and name (text description). The same JSON contract applies to all three types; only {configType} selects the target table.


Accepted {configType} values

FormatExamplesNotes
Numeric (recommended)0, 1, 2Preferred for integration.
Descriptive slugcategory-table, state, priorityReadable URL alternative.

Available endpoints

Public prefix: /gateway/crm-config/{configType}.

MethodURLSummary
GET/gateway/crm-config/{configType}List entries with optional page, pageSize.
GET/gateway/crm-config/{configType}/{id}Get entry by id.
POST/gateway/crm-config/{configType}Create; 201 Created with body.
PUT/gateway/crm-config/{configType}Update; 204 No Content.
DELETE/gateway/crm-config/{configType}/{id}Delete; 204 No Content.

Pagination query parameters

ParameterTypeDescription
pageintPage number (1-based). Default: 1.
pageSizeintRecords per page. Default: 20. Maximum: 100.

Paginated list response

FieldTypeDescription
totalCountintTotal records.
pageSizeintEffective page size.
currentPageintCurrent page (1-based).
totalPagesintTotal pages.
dataarrayEntries for the requested page.

Example:

{
"totalCount": 1,
"pageSize": 50,
"currentPage": 1,
"totalPages": 1,
"data": [
{
"id": 1,
"name": "movo"
}
]
}

Request body

Create (POST): { "name": "..." }
Update (PUT): { "id": 1, "name": "..." }

name max length by type

configTypeMax length
0 (Categories)4000
1 (States)40
2 (Priorities)40

Common errors

CodeTypical HTTPMeaning
CrmConfig.InvalidConfigType400Invalid {configType}.
CrmConfig.NameMaxLengthExceeded400name too long for the type.
CrmConfig.NotFound404Unknown id.
CrmConfigCreate.Fail409Create persistence failure.
CrmConfigUpdate.Fail409Update persistence failure.
CrmConfigDelete.Fail409Delete failure.

Integration notes

  • Use Content-Type: application/json and camelCase property names.
  • Pass explicit page and pageSize for long lists; there is no text filter on this endpoint.
  • Do not send id on POST; it is assigned by the server.

Last updated: June 2, 2026