Pipeline action
Automated pipeline actions
INFO
Каждый ответ приходит в общем конверте — code, message, messages, status_code, time — а полезная нагрузка лежит в data. Таблицы ниже описывают содержимое data.
POST /pipeline-action/create
Create a CRM pipeline automation rule. Specify a trigger (event or scheduled), an optional condition tree, and an action to execute (create task, send SMS, change state, etc.).
Тело запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
organization_id | string | Да | Organization ObjectId this action belongs to |
state_id | string | Нет | Optional CRM pipeline state (column) ObjectId this action is linked to |
trigger_category | string | Да | How the action is triggered: on a business event or on a recurring schedule. Допустимые значения: event, scheduled |
event_trigger | string | Нет | Required when trigger_category=event. Which business event fires this action. Допустимые значения: created_in_stage, moved_to_stage, created_or_moved, responsible_changed, tag_changed, products_changed |
scheduled_trigger | string | Нет | Required when trigger_category=scheduled. Which schedule type. Допустимые значения: relative_to_field, specific_date, daily, weekly, monthly, yearly |
trigger_config | object | Нет | Trigger-specific configuration. Shape varies by trigger type. Examples: {change_type, tag_ids} for tag_changed; {field_name, offset_hours, offset_direction} for relative_to_field; {hour, minute} for daily. |
condition | object | Нет | Optional condition tree evaluated before executing the action. If absent, the action always fires. Shape: {logic: '$and'|'$or', items: [{type, field_name, ...}]} |
action_type | string | Да | Which automation to execute when the trigger fires. Допустимые значения: auto_create_task, auto_assign_responsible, auto_change_field, auto_sms_send, webhook, complete_task, auto_change_state, add_tag, remove_tag, divide_leads |
action_config | object | Да | Action-specific configuration. Shape varies by action_type. Examples: {responsible_ids, mode} for auto_assign_responsible; {template_id, phone_field} for auto_sms_send; {url, method} for webhook; {state_id} for auto_change_state; {tag_ids} for add_tag/remove_tag. |
name | string | Нет | Optional display name for this automation rule |
order | number | Нет | Sort order within a pipeline state column |
is_active | boolean | Нет | Whether this action is currently enabled (defaults to true) |
apply_to_existing | boolean | Нет | If true, the action is applied to all existing matching sale orders immediately after creation (async, post-commit) |
{
"organization_id": "string",
"state_id": "string",
"trigger_category": "event",
"event_trigger": "created_in_stage",
"scheduled_trigger": "relative_to_field",
"trigger_config": {
"hour": 9,
"minute": 0
},
"condition": {
"logic": "$and",
"items": [
{
"type": "reference",
"field_name": "responsible_id",
"ref_ids": [
"64a1b2c3d4e5f6a7b8c9d0e1"
],
"ref_logic": "$or"
}
]
},
"action_type": "auto_create_task",
"action_config": {
"state_id": "64a1b2c3d4e5f6a7b8c9d0e2"
},
"name": "string",
"order": 0,
"is_active": false,
"apply_to_existing": false
}Ответ
| Поле | Тип | Описание |
|---|---|---|
_id | string | Pipeline-action ObjectId |
organization_id | string | |
state_id | string | |
state | object | Populated pipeline state (name, bg_color) — present when state_id is set |
state._id | string | |
state.name | string | |
state.bg_color | string | |
trigger_category | string | Допустимые значения: event, scheduled |
event_trigger | string | |
scheduled_trigger | string | |
trigger_config | object | |
condition | object | |
action_type | string | |
action_config | object | |
name | string | |
order | number | |
is_active | boolean | |
apply_to_existing | boolean | |
last_checked_at | string (date-time) | |
created_at | string (date-time) | |
updated_at | string (date-time) |
{
"code": 0,
"message": "Success",
"status_code": 200,
"data": {
"_id": "string",
"organization_id": "string",
"state_id": "string",
"state": {
"_id": "string",
"name": "string",
"bg_color": "string"
},
"trigger_category": "event",
"event_trigger": "string",
"scheduled_trigger": "string",
"trigger_config": {},
"condition": {},
"action_type": "string",
"action_config": {},
"name": "string",
"order": 0,
"is_active": false,
"apply_to_existing": false,
"last_checked_at": "2025-05-01T12:00:00Z",
"created_at": "2025-05-01T12:00:00Z",
"updated_at": "2025-05-01T12:00:00Z"
},
"time": "2025-05-01T12:00:00Z"
}GET /pipeline-action/get-by-id/{id}
Fetch a single pipeline action by ObjectId, with populated references (state, integration, SMS template, tags, etc.).
Параметры пути
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
id | string | Да | Pipeline-action ObjectId |
Тело запроса
Тело запроса не требуется.
Ответ
Структура ответа совпадает с POST /pipeline-action/create.
POST /pipeline-action/get-paging
Paginated list of pipeline actions. Filterable by organization, state, trigger category, or active status. References are not populated on list rows; use get-by-id for full detail.
Тело запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
page | number | Да | По умолчанию: 1 |
limit | number | Да | По умолчанию: 20 |
organization_id | string | Нет | Filter by organization ObjectId |
state_id | string | Нет | Filter by pipeline state (column) ObjectId |
trigger_category | string | Нет | Filter by trigger category. Допустимые значения: event, scheduled |
is_active | boolean | Нет | Filter by active/inactive status |
{
"page": 1,
"limit": 20,
"organization_id": "string",
"state_id": "string",
"trigger_category": "event",
"is_active": false
}Ответ
| Поле | Тип | Описание |
|---|---|---|
total | number | |
list | object[] | |
list[]._id | string | Pipeline-action ObjectId |
list[].organization_id | string | |
list[].state_id | string | |
list[].state | object | Populated pipeline state (name, bg_color) — present when state_id is set |
list[].state._id | string | |
list[].state.name | string | |
list[].state.bg_color | string | |
list[].trigger_category | string | Допустимые значения: event, scheduled |
list[].event_trigger | string | |
list[].scheduled_trigger | string | |
list[].trigger_config | object | |
list[].condition | object | |
list[].action_type | string | |
list[].action_config | object | |
list[].name | string | |
list[].order | number | |
list[].is_active | boolean | |
list[].apply_to_existing | boolean | |
list[].last_checked_at | string (date-time) | |
list[].created_at | string (date-time) | |
list[].updated_at | string (date-time) |
{
"code": 0,
"message": "Success",
"status_code": 200,
"data": {
"total": 0,
"list": [
{
"_id": "string",
"organization_id": "string",
"state_id": "string",
"state": {
"_id": null,
"name": null,
"bg_color": null
},
"trigger_category": "event",
"event_trigger": "string",
"scheduled_trigger": "string",
"trigger_config": {},
"condition": {},
"action_type": "string",
"action_config": {},
"name": "string",
"order": 0,
"is_active": false,
"apply_to_existing": false,
"last_checked_at": "2025-05-01T12:00:00Z",
"created_at": "2025-05-01T12:00:00Z",
"updated_at": "2025-05-01T12:00:00Z"
}
]
},
"time": "2025-05-01T12:00:00Z"
}PUT /pipeline-action/update/{id}
Update an existing pipeline action. Provide the full payload — partial updates are not supported.
Параметры пути
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
id | string | Да | Pipeline-action ObjectId |
Тело запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
organization_id | string | Да | Organization ObjectId this action belongs to |
state_id | string | Нет | Optional CRM pipeline state (column) ObjectId this action is linked to |
trigger_category | string | Да | How the action is triggered: on a business event or on a recurring schedule. Допустимые значения: event, scheduled |
event_trigger | string | Нет | Required when trigger_category=event. Which business event fires this action. Допустимые значения: created_in_stage, moved_to_stage, created_or_moved, responsible_changed, tag_changed, products_changed |
scheduled_trigger | string | Нет | Required when trigger_category=scheduled. Which schedule type. Допустимые значения: relative_to_field, specific_date, daily, weekly, monthly, yearly |
trigger_config | object | Нет | Trigger-specific configuration. Shape varies by trigger type. Examples: {change_type, tag_ids} for tag_changed; {field_name, offset_hours, offset_direction} for relative_to_field; {hour, minute} for daily. |
condition | object | Нет | Optional condition tree evaluated before executing the action. If absent, the action always fires. Shape: {logic: '$and'|'$or', items: [{type, field_name, ...}]} |
action_type | string | Да | Which automation to execute when the trigger fires. Допустимые значения: auto_create_task, auto_assign_responsible, auto_change_field, auto_sms_send, webhook, complete_task, auto_change_state, add_tag, remove_tag, divide_leads |
action_config | object | Да | Action-specific configuration. Shape varies by action_type. Examples: {responsible_ids, mode} for auto_assign_responsible; {template_id, phone_field} for auto_sms_send; {url, method} for webhook; {state_id} for auto_change_state; {tag_ids} for add_tag/remove_tag. |
name | string | Нет | Optional display name for this automation rule |
order | number | Нет | Sort order within a pipeline state column |
is_active | boolean | Нет | Whether this action is currently enabled (defaults to true) |
apply_to_existing | boolean | Нет | If true, the action is applied to all existing matching sale orders immediately after creation (async, post-commit) |
{
"organization_id": "string",
"state_id": "string",
"trigger_category": "event",
"event_trigger": "created_in_stage",
"scheduled_trigger": "relative_to_field",
"trigger_config": {
"hour": 9,
"minute": 0
},
"condition": {
"logic": "$and",
"items": [
{
"type": "reference",
"field_name": "responsible_id",
"ref_ids": [
"64a1b2c3d4e5f6a7b8c9d0e1"
],
"ref_logic": "$or"
}
]
},
"action_type": "auto_create_task",
"action_config": {
"state_id": "64a1b2c3d4e5f6a7b8c9d0e2"
},
"name": "string",
"order": 0,
"is_active": false,
"apply_to_existing": false
}Ответ
{
"code": 0,
"message": "Success",
"status_code": 200,
"data": "string",
"time": "2025-05-01T12:00:00Z"
}DELETE /pipeline-action/delete/{id}
Soft-delete a pipeline action (sets is_deleted=true). The action is immediately deactivated; any in-flight BullMQ jobs for this action will still complete.
Параметры пути
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
id | string | Да | Pipeline-action ObjectId |
Тело запроса
Тело запроса не требуется.
Ответ
{
"code": 0,
"message": "Success",
"status_code": 200,
"data": "ok",
"time": "2025-05-01T12:00:00Z"
}PUT /pipeline-action/set-status/{id}
Activate or deactivate a pipeline action. When deactivated (is_active=false) the action will not fire for new events or scheduled triggers.
Параметры пути
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
id | string | Да | Pipeline-action ObjectId |
Тело запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
is_active | boolean | Да | Set to true to activate or false to deactivate the pipeline action |
{
"is_active": false
}Ответ
Структура ответа совпадает с PUT /pipeline-action/update/{id}.
Эта страница сгенерирована из спецификации OpenAPI.