Update Flow tasks.flow.Flow.update
If you are developing integrations for Bitrix24 using AI tools (Codex, Claude Code, Cursor), connect to the MCP server so that the assistant can utilize the official REST documentation.
Scope:
taskWho can execute the method: the creator or administrator of the flow
The method tasks.flow.Flow.update modifies the flow.
Method Parameters
Required parameters are marked with *
|
Name |
Description |
|
flowData* |
Field values for modifying the flow (detailed description provided below) |
Parameter flowData
Required parameters are marked with *
|
Name |
Description |
|
id* |
Identifier of the flow to be modified. You can obtain the identifier using the method for creating a new flow tasks.flow.Flow.create or by retrieving a task tasks.task.get for a task from the flow |
|
name |
Name of the flow. Must be unique for each flow. To check the name, you can use the method tasks.flow.Flow.isExists |
|
description |
Description of the flow |
|
groupId |
Identifier of the group to which the flow will be linked. If not specified, a new group will be automatically created |
|
ownerId |
Identifier of the flow administrator. If not specified, the creator of the flow will be the administrator |
|
templateId |
Identifier of the template that users will use to add tasks to the flow |
|
plannedCompletionTime* |
Planned time to complete the task in seconds |
|
distributionType* |
Type of distribution:
More about distribution types can be found in the article Flows: Overview of Methods |
|
responsibleList* |
Identifiers of employees who will receive tasks. For manual distribution, specify the identifier of the flow moderator. For self-distribution or queue distribution, specify the identifiers of employees or departments. For example:
If you do not add the suffix |
|
taskCreators |
List of users who can add tasks to the flow in the format
If you do not add the suffix To allow all users to add tasks, specify the value |
|
matchWorkTime |
Skip weekends and holidays when calculating the task deadline. Accepts values |
|
responsibleCanChangeDeadline |
Can the responsible person change the task deadline? Accepts values |
|
notifyAtHalfTime |
Notify the assignee at half the task deadline. Accepts values |
|
taskControl |
Send the completed task to the creator for review. Accepts values |
|
notifyOnQueueOverflow |
Notify the flow administrator when the number of tasks in the queue exceeds this parameter. Default is |
|
notifyOnTasksInProgressOverflow |
Notify the flow administrator when the number of tasks in progress exceeds this parameter. Default is |
|
notifyWhenEfficiencyDecreases |
Notify the flow administrator when efficiency drops below this parameter. Default is |
Code Examples
How to Use Examples in Documentation
curl -X POST \
-H "Content-Type: application/json" \
-d '{
"flowData": {
"id": 517,
"name": "Updated Flow Name",
"description": "Updated description",
"plannedCompletionTime": 7200,
"distributionType": "manually",
"responsibleList": [["user","3"]],
"taskCreators": [["meta-user","all-users"]],
"matchWorkTime": 1,
"notifyAtHalfTime": 0
}
}' \
https://your-domain.bitrix24.com/rest/_USER_ID_/_CODE_/tasks.flow.Flow.update
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-d '{
"flowData": {
"id": 517,
"name": "Updated Flow Name",
"description": "Updated description",
"plannedCompletionTime": 7200,
"distributionType": "manually",
"responsibleList": [["user","3"]],
"taskCreators": [["meta-user","all-users"]],
"matchWorkTime": 1,
"notifyAtHalfTime": 0
}
}' \
https://your-domain.bitrix24.com/rest/tasks.flow.Flow.update
try
{
const response = await $b24.callMethod(
'tasks.flow.Flow.update',
{
flowData: {
id: 517,
name: 'Updated Flow Name',
description: 'Updated description',
plannedCompletionTime: 7200,
distributionType: 'manually',
responsibleList: [
[
'user','3'
]
],
taskCreators: [
[
'meta-user','all-users'
]
],
matchWorkTime: 1,
notifyAtHalfTime: 0
}
}
);
const result = response.getData().result;
console.info(result);
}
catch( error )
{
console.error(error);
}
try {
$response = $b24Service
->core
->call(
'tasks.flow.Flow.update',
[
'flowData' => [
'id' => 517,
'name' => 'Updated Flow Name',
'description' => 'Updated description',
'plannedCompletionTime' => 7200,
'distributionType' => 'manually',
'responsibleList' => [
['user', '3']
],
'taskCreators' => [
['meta-user', 'all-users']
],
'matchWorkTime' => 1,
'notifyAtHalfTime' => 0
]
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error updating flow: ' . $e->getMessage();
}
BX24.callMethod(
'tasks.flow.Flow.update',
{
flowData: {
id: 517,
name: 'Updated Flow Name',
description: 'Updated description',
plannedCompletionTime: 7200,
distributionType: 'manually',
responsibleList: [
[
'user','3'
]
],
taskCreators: [
[
'meta-user','all-users'
]
],
matchWorkTime: 1,
notifyAtHalfTime: 0
}
},
function(result) {
if (result.error()) {
console.error(result.error());
} else {
console.info(result.data());
}
}
);
require_once('crest.php'); // connect CRest PHP SDK
$flowData = [
"id" => 517,
"name" => "Updated Flow Name",
"description" => "Updated description",
"plannedCompletionTime" => 7200,
"distributionType" => "manually",
"responsibleList" => [["user", "3"]],
"taskCreators" => [["meta-user", "all-users"]],
"matchWorkTime" => 1,
"notifyAtHalfTime" => 0
];
// execute request to REST API
$result = CRest::call(
'tasks.flow.Flow.update',
[
'flowData' => $flowData
]
);
// Process the response from Bitrix24
if ($result['error']) {
echo 'Error: '.$result['error_description'];
} else {
print_r($result['result']);
}
Response Handling
HTTP Status: 200
{
"result": {
"id": 517,
"creatorId": 1,
"ownerId": 1,
"groupId": 178,
"templateId": 0,
"efficiency": 0,
"active": true,
"plannedCompletionTime": 7200,
"activity": "2024-09-02T15:27:29+00:00",
"name": "Updated Flow Name",
"description": "Updated description",
"distributionType": "manually",
"responsibleList": [
[
"user",
"3"
]
],
"demo": false,
"responsibleCanChangeDeadline": true,
"matchWorkTime": true,
"taskControl": false,
"notifyAtHalfTime": false,
"notifyOnQueueOverflow": 10,
"notifyOnTasksInProgressOverflow": 50,
"notifyWhenEfficiencyDecreases": null,
"taskCreators": [
[
"meta-user",
"all-users"
]
],
"team": [
[
"user",
"3"
]
],
"trialFeatureEnabled": false
}
}
Returned Data
|
Name |
Description |
|
result |
Object with flow data |
|
id |
Identifier of the created flow |
|
creatorId |
Identifier of the flow creator. Read-only |
|
ownerId |
Identifier of the flow administrator |
|
groupId |
Identifier of the group to which the flow is linked |
|
templateId |
Identifier of the template used to create tasks in the flow |
|
efficiency |
Efficiency of the flow in percentage. Read-only |
|
active |
Status of the flow's activity |
|
plannedCompletionTime |
Planned time to complete the task in seconds |
|
activity |
Date and time of the last activity in the flow. Read-only |
|
name |
Name of the flow |
|
description |
Description of the flow |
|
distributionType |
Type of task distribution in the flow |
|
responsibleList |
List of those responsible for tasks in the flow. For manual distribution, this is the flow moderator |
|
demo |
Indicates whether the flow is a demo. System parameter. Read-only |
|
responsibleCanChangeDeadline |
Can the responsible person change the task deadline? |
|
matchWorkTime |
Should weekends and holidays be skipped when calculating the task deadline? |
|
taskControl |
Should the completed task be sent to the creator for review? |
|
notifyAtHalfTime |
Should the assignee be notified at half the task deadline? |
|
notifyOnQueueOverflow |
Number of tasks in the queue, exceeding which will send a notification to the flow administrator (if |
|
notifyOnTasksInProgressOverflow |
Number of tasks in progress, exceeding which will send a notification to the flow administrator (if |
|
notifyWhenEfficiencyDecreases |
Efficiency in percentage, below which a notification will be sent to the flow administrator (if |
|
taskCreators |
List of users who can add tasks to the flow in the format The element |
|
team |
Team of the flow. For manual distribution, this includes all project participants linked to the flow, except for the moderator. For queue and self-distribution, the team is the same as in |
|
trialFeatureEnabled |
Indicates whether the trial period is enabled for the flow. System parameter. Read-only |
Error Handling
HTTP Status: 400
{
"error": "0",
"error_description": "Flow not found"
}
|
Name |
Description |
|
error |
String error code. It may consist of digits, Latin letters, and underscores |
|
error_description |
Textual description of the error. The description is not intended to be shown to the end user in its raw form |
Possible Error Codes
|
Code |
Description |
Additional Information |
|
|
Access denied or flow not found |
The account plan does not allow working with flows or the user does not have permission to modify the flow |
|
|
|
Unknown error |
|
|
|
Invalid value for |
|
|
A flow with this name already exists |
Statuses and System Error Codes
HTTP Status: 20x, 40x, 50x
The errors described below may occur when calling any method.
|
Status |
Code |
Description |
|
|
|
An internal server error has occurred. Please contact the server administrator or Bitrix24 technical support |
|
|
|
An internal server error has occurred. Please contact the server administrator or Bitrix24 technical support |
|
|
|
The request intensity limit has been exceeded |
|
|
|
The current method is not permitted for calls using batch |
|
|
|
The maximum length of parameters passed to the batch method has been exceeded |
|
|
|
Invalid access token or webhook code |
|
|
|
The HTTPS protocol is required for method calls |
|
|
|
The REST API is blocked due to overload. This is a manual individual block; please contact Bitrix24 technical support to lift it |
|
|
|
The REST API is only available on commercial plans |
|
|
|
The user associated with the access token or webhook used to call the method lacks the necessary permissions |
|
|
|
The manifest is not available |
|
|
|
The request requires higher privileges than those provided by the webhook token |
|
|
|
The provided access token has expired |
|
|
|
The user does not have access to the application. This means that the application is installed, but the portal administrator has restricted access to this application to specific users only |
|
|
|
The public part of the site is closed. To open the public part of the site on an on-premise installation, disable the "Temporary closure of the public part of the site" option. Path to the setting: Desktop > Settings > Product Settings > Module Settings > Main Module > Temporary closure of the public part of the site |
Continue Learning
- Create a new Flow tasks.flow.Flow.create
- Get Flow tasks.flow.Flow.get
- Delete Flow tasks.flow.Flow.delete
- Check the existence of the Flow tasks.flow.Flow.isExists
- Activate/Deactivate Flow tasks.flow.Flow.activate
- Pin or Unpin Flow tasks.flow.Flow.pin