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 |
|---|---|
0 | Categories |
1 | States |
2 | Priorities |
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
| Format | Examples | Notes |
|---|---|---|
| Numeric (recommended) | 0, 1, 2 | Preferred for integration. |
| Descriptive slug | category-table, state, priority | Readable URL alternative. |
Available endpoints
Public prefix: /gateway/crm-config/{configType}.
| Method | URL | Summary |
|---|---|---|
| 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
| Parameter | Type | Description |
|---|---|---|
page | int | Page number (1-based). Default: 1. |
pageSize | int | Records per page. Default: 20. Maximum: 100. |
Paginated list response
| Field | Type | Description |
|---|---|---|
totalCount | int | Total records. |
pageSize | int | Effective page size. |
currentPage | int | Current page (1-based). |
totalPages | int | Total pages. |
data | array | Entries 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
configType | Max length |
|---|---|
0 (Categories) | 4000 |
1 (States) | 40 |
2 (Priorities) | 40 |
Common errors
| Code | Typical HTTP | Meaning |
|---|---|---|
CrmConfig.InvalidConfigType | 400 | Invalid {configType}. |
CrmConfig.NameMaxLengthExceeded | 400 | name too long for the type. |
CrmConfig.NotFound | 404 | Unknown id. |
CrmConfigCreate.Fail | 409 | Create persistence failure. |
CrmConfigUpdate.Fail | 409 | Update persistence failure. |
CrmConfigDelete.Fail | 409 | Delete failure. |
Integration notes
- Use
Content-Type: application/jsonand camelCase property names. - Pass explicit
pageandpageSizefor long lists; there is no text filter on this endpoint. - Do not send
idonPOST; it is assigned by the server.
Last updated: June 2, 2026