Изменить и обогатить клиента CRM
/api/v1/developer/crm/clients/{clientId}Идемпотентно исправляет профиль/lifecycle, патчит ответственного и теги либо связывает клиента с существующей организацией. Metadata требует crm.clients.write; organization-команды дополнительно требуют crm.organizations.write.
Право доступаcrm.clients.write
Authorization: Bearer YOUR_PROJECT_TOKEN
Параметры
clientIdобязательно · pathstringminLength: 1 · maxLength: 160JSON Schema
{ "type": "string", "minLength": 1, "maxLength": 160 }idempotency-keyобязательно · headerstringpattern: "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$"JSON Schema
{ "type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$" }
Тело запроса
application/jsonunion
Вариант 1
object
operationобязательно- stringenum: ["display_name"]
displayNameобязательно- stringminLength: 1 · maxLength: 160
JSON Schema
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"enum": [
"display_name"
]
},
"displayName": {
"type": "string",
"minLength": 1,
"maxLength": 160
}
},
"required": [
"operation",
"displayName"
],
"additionalProperties": false
}Вариант 2
object
operationобязательно- stringenum: ["phone"]
phoneобязательно- string | nullmaxLength: 40
JSON Schema
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"enum": [
"phone"
]
},
"phone": {
"type": [
"string",
"null"
],
"maxLength": 40
}
},
"required": [
"operation",
"phone"
],
"additionalProperties": false
}Вариант 3
object
operationобязательно- stringenum: ["lifecycle"]
statusобязательно- stringenum: ["active","archived"]
JSON Schema
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"enum": [
"lifecycle"
]
},
"status": {
"type": "string",
"enum": [
"active",
"archived"
]
}
},
"required": [
"operation",
"status"
],
"additionalProperties": false
}Вариант 4
object
operationобязательно- stringenum: ["metadata_patch"]
responsibleIdentityId- string | nullminLength: 1 · maxLength: 120
addTags- arraymaxItems: 12
Вложенная схема
arraymaxItems: 12stringminLength: 1 · maxLength: 40JSON Schema
{ "type": "string", "minLength": 1, "maxLength": 40 }JSON Schema
{ "type": "array", "items": { "type": "string", "minLength": 1, "maxLength": 40 }, "maxItems": 12 } removeTags- arraymaxItems: 12
Вложенная схема
arraymaxItems: 12stringminLength: 1 · maxLength: 40JSON Schema
{ "type": "string", "minLength": 1, "maxLength": 40 }JSON Schema
{ "type": "array", "items": { "type": "string", "minLength": 1, "maxLength": 40 }, "maxItems": 12 }
JSON Schema
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"enum": [
"metadata_patch"
]
},
"responsibleIdentityId": {
"type": [
"string",
"null"
],
"minLength": 1,
"maxLength": 120
},
"addTags": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"maxItems": 12
},
"removeTags": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"maxItems": 12
}
},
"required": [
"operation"
],
"additionalProperties": false
}Вариант 5
object
operationобязательно- stringenum: ["organization_link"]
organizationIdобязательно- stringminLength: 1 · maxLength: 160
role- string | nullminLength: 1 · maxLength: 120
JSON Schema
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"enum": [
"organization_link"
]
},
"organizationId": {
"type": "string",
"minLength": 1,
"maxLength": 160
},
"role": {
"type": [
"string",
"null"
],
"minLength": 1,
"maxLength": 120
}
},
"required": [
"operation",
"organizationId"
],
"additionalProperties": false
}Вариант 6
object
operationобязательно- stringenum: ["organization_unlink"]
organizationIdобязательно- stringminLength: 1 · maxLength: 160
JSON Schema
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"enum": [
"organization_unlink"
]
},
"organizationId": {
"type": "string",
"minLength": 1,
"maxLength": 160
}
},
"required": [
"operation",
"organizationId"
],
"additionalProperties": false
}JSON Schema
{
"oneOf": [
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"enum": [
"display_name"
]
},
"displayName": {
"type": "string",
"minLength": 1,
"maxLength": 160
}
},
"required": [
"operation",
"displayName"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"enum": [
"phone"
]
},
"phone": {
"type": [
"string",
"null"
],
"maxLength": 40
}
},
"required": [
"operation",
"phone"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"enum": [
"lifecycle"
]
},
"status": {
"type": "string",
"enum": [
"active",
"archived"
]
}
},
"required": [
"operation",
"status"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"enum": [
"metadata_patch"
]
},
"responsibleIdentityId": {
"type": [
"string",
"null"
],
"minLength": 1,
"maxLength": 120
},
"addTags": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"maxItems": 12
},
"removeTags": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"maxItems": 12
}
},
"required": [
"operation"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"enum": [
"organization_link"
]
},
"organizationId": {
"type": "string",
"minLength": 1,
"maxLength": 160
},
"role": {
"type": [
"string",
"null"
],
"minLength": 1,
"maxLength": 120
}
},
"required": [
"operation",
"organizationId"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"enum": [
"organization_unlink"
]
},
"organizationId": {
"type": "string",
"minLength": 1,
"maxLength": 160
}
},
"required": [
"operation",
"organizationId"
],
"additionalProperties": false
}
],
"$ref": "#/components/schemas/UpdateDeveloperCrmClientRequest"
}Примеры запроса
curl --request PATCH 'https://YOUR_NOVA_HOST/api/v1/developer/crm/clients/CLIENT_ID' --header 'Authorization: Bearer YOUR_PROJECT_TOKEN' --header 'Idempotency-Key: YOUR_UNIQUE_COMMAND_ID' --header 'Content-Type: application/json' --data '{"operation":"metadata_patch","responsibleIdentityId":"MEMBER_ID","addTags":["priority"]}'Ответы
200 Updated CRM client receipt
application/jsonobject
resourceIdобязательно- stringminLength: 1 · maxLength: 160
changedобязательно- boolean
JSON Schema
{
"type": "object",
"properties": {
"resourceId": {
"type": "string",
"minLength": 1,
"maxLength": 160
},
"changed": {
"type": "boolean"
}
},
"required": [
"resourceId",
"changed"
],
"$ref": "#/components/schemas/DeveloperMutationResponse"
}400 Invalid client command or idempotency key
application/problem+jsonobject
type- stringformat: "uri" · default: "about:blank"
titleобязательно- string
statusобязательно- integerminimum: 100 · maximum: 599
detail- string
instance- string
errors- object
JSON Schema
{
"type": "object",
"properties": {
"type": {
"type": "string",
"format": "uri",
"default": "about:blank"
},
"title": {
"type": "string"
},
"status": {
"type": "integer",
"minimum": 100,
"maximum": 599
},
"detail": {
"type": "string"
},
"instance": {
"type": "string"
},
"errors": {
"type": "object",
"additionalProperties": {}
}
},
"required": [
"title",
"status"
]
}401 Invalid developer credential
application/problem+jsonobject
type- stringformat: "uri" · default: "about:blank"
titleобязательно- string
statusобязательно- integerminimum: 100 · maximum: 599
detail- string
instance- string
errors- object
JSON Schema
{
"type": "object",
"properties": {
"type": {
"type": "string",
"format": "uri",
"default": "about:blank"
},
"title": {
"type": "string"
},
"status": {
"type": "integer",
"minimum": 100,
"maximum": 599
},
"detail": {
"type": "string"
},
"instance": {
"type": "string"
},
"errors": {
"type": "object",
"additionalProperties": {}
}
},
"required": [
"title",
"status"
]
}404 CRM client, responsible member, or organization not found
application/problem+jsonobject
type- stringformat: "uri" · default: "about:blank"
titleобязательно- string
statusобязательно- integerminimum: 100 · maximum: 599
detail- string
instance- string
errors- object
JSON Schema
{
"type": "object",
"properties": {
"type": {
"type": "string",
"format": "uri",
"default": "about:blank"
},
"title": {
"type": "string"
},
"status": {
"type": "integer",
"minimum": 100,
"maximum": 599
},
"detail": {
"type": "string"
},
"instance": {
"type": "string"
},
"errors": {
"type": "object",
"additionalProperties": {}
}
},
"required": [
"title",
"status"
]
}409 Archived client/organization or idempotency key conflict
application/problem+jsonobject
type- stringformat: "uri" · default: "about:blank"
titleобязательно- string
statusобязательно- integerminimum: 100 · maximum: 599
detail- string
instance- string
errors- object
JSON Schema
{
"type": "object",
"properties": {
"type": {
"type": "string",
"format": "uri",
"default": "about:blank"
},
"title": {
"type": "string"
},
"status": {
"type": "integer",
"minimum": 100,
"maximum": 599
},
"detail": {
"type": "string"
},
"instance": {
"type": "string"
},
"errors": {
"type": "object",
"additionalProperties": {}
}
},
"required": [
"title",
"status"
]
}429 Developer API rate limit exceeded
application/problem+jsonobject
type- stringformat: "uri" · default: "about:blank"
titleобязательно- string
statusобязательно- integerminimum: 100 · maximum: 599
detail- string
instance- string
errors- object
JSON Schema
{
"type": "object",
"properties": {
"type": {
"type": "string",
"format": "uri",
"default": "about:blank"
},
"title": {
"type": "string"
},
"status": {
"type": "integer",
"minimum": 100,
"maximum": 599
},
"detail": {
"type": "string"
},
"instance": {
"type": "string"
},
"errors": {
"type": "object",
"additionalProperties": {}
}
},
"required": [
"title",
"status"
]
}503 Developer API rate limiter unavailable
application/problem+jsonobject
type- stringformat: "uri" · default: "about:blank"
titleобязательно- string
statusобязательно- integerminimum: 100 · maximum: 599
detail- string
instance- string
errors- object
JSON Schema
{
"type": "object",
"properties": {
"type": {
"type": "string",
"format": "uri",
"default": "about:blank"
},
"title": {
"type": "string"
},
"status": {
"type": "integer",
"minimum": 100,
"maximum": 599
},
"detail": {
"type": "string"
},
"instance": {
"type": "string"
},
"errors": {
"type": "object",
"additionalProperties": {}
}
},
"required": [
"title",
"status"
]
}