Pipeline action
Automated pipeline actions
INFO
Har bir javob umumiy konvertda qaytadi — code, message, messages, status_code, time — foydali yuk esa data ichida. Quyidagi jadvallar faqat data ichini tavsiflaydi.
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.).
So‘rov tanasi
| Maydon | Tur | Majburiy | Tavsif |
|---|---|---|---|
organization_id | string | Ha | Organization ObjectId this action belongs to |
state_id | string | Yo‘q | Optional CRM pipeline state (column) ObjectId this action is linked to |
trigger_category | string | Ha | How the action is triggered: on a business event or on a recurring schedule. Mumkin qiymatlar: event, scheduled |
event_trigger | string | Yo‘q | Required when trigger_category=event. Which business event fires this action. Mumkin qiymatlar: created_in_stage, moved_to_stage, created_or_moved, responsible_changed, tag_changed, products_changed |
scheduled_trigger | string | Yo‘q | Required when trigger_category=scheduled. Which schedule type. Mumkin qiymatlar: relative_to_field, specific_date, daily, weekly, monthly, yearly |
trigger_config | object | Yo‘q | 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 | Yo‘q | 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 | Ha | Which automation to execute when the trigger fires. Mumkin qiymatlar: 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 | Ha | 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 | Yo‘q | Optional display name for this automation rule |
order | number | Yo‘q | Sort order within a pipeline state column |
is_active | boolean | Yo‘q | Whether this action is currently enabled (defaults to true) |
apply_to_existing | boolean | Yo‘q | 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
}Javob
| Maydon | Tur | Tavsif |
|---|---|---|
_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 | Mumkin qiymatlar: 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.).
Yo‘l parametrlari
| Parametr | Tur | Majburiy | Tavsif |
|---|---|---|---|
id | string | Ha | Pipeline-action ObjectId |
So‘rov tanasi
So‘rov tanasi talab qilinmaydi.
Javob
Javob tuzilishi quyidagi bilan bir xil: 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.
So‘rov tanasi
| Maydon | Tur | Majburiy | Tavsif |
|---|---|---|---|
page | number | Ha | Standart: 1 |
limit | number | Ha | Standart: 20 |
organization_id | string | Yo‘q | Filter by organization ObjectId |
state_id | string | Yo‘q | Filter by pipeline state (column) ObjectId |
trigger_category | string | Yo‘q | Filter by trigger category. Mumkin qiymatlar: event, scheduled |
is_active | boolean | Yo‘q | Filter by active/inactive status |
{
"page": 1,
"limit": 20,
"organization_id": "string",
"state_id": "string",
"trigger_category": "event",
"is_active": false
}Javob
| Maydon | Tur | Tavsif |
|---|---|---|
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 | Mumkin qiymatlar: 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.
Yo‘l parametrlari
| Parametr | Tur | Majburiy | Tavsif |
|---|---|---|---|
id | string | Ha | Pipeline-action ObjectId |
So‘rov tanasi
| Maydon | Tur | Majburiy | Tavsif |
|---|---|---|---|
organization_id | string | Ha | Organization ObjectId this action belongs to |
state_id | string | Yo‘q | Optional CRM pipeline state (column) ObjectId this action is linked to |
trigger_category | string | Ha | How the action is triggered: on a business event or on a recurring schedule. Mumkin qiymatlar: event, scheduled |
event_trigger | string | Yo‘q | Required when trigger_category=event. Which business event fires this action. Mumkin qiymatlar: created_in_stage, moved_to_stage, created_or_moved, responsible_changed, tag_changed, products_changed |
scheduled_trigger | string | Yo‘q | Required when trigger_category=scheduled. Which schedule type. Mumkin qiymatlar: relative_to_field, specific_date, daily, weekly, monthly, yearly |
trigger_config | object | Yo‘q | 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 | Yo‘q | 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 | Ha | Which automation to execute when the trigger fires. Mumkin qiymatlar: 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 | Ha | 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 | Yo‘q | Optional display name for this automation rule |
order | number | Yo‘q | Sort order within a pipeline state column |
is_active | boolean | Yo‘q | Whether this action is currently enabled (defaults to true) |
apply_to_existing | boolean | Yo‘q | 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
}Javob
{
"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.
Yo‘l parametrlari
| Parametr | Tur | Majburiy | Tavsif |
|---|---|---|---|
id | string | Ha | Pipeline-action ObjectId |
So‘rov tanasi
So‘rov tanasi talab qilinmaydi.
Javob
{
"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.
Yo‘l parametrlari
| Parametr | Tur | Majburiy | Tavsif |
|---|---|---|---|
id | string | Ha | Pipeline-action ObjectId |
So‘rov tanasi
| Maydon | Tur | Majburiy | Tavsif |
|---|---|---|---|
is_active | boolean | Ha | Set to true to activate or false to deactivate the pipeline action |
{
"is_active": false
}Javob
Javob tuzilishi quyidagi bilan bir xil: PUT /pipeline-action/update/{id}.
Bu sahifa OpenAPI spetsifikatsiyasidan yaratilgan.