Skip to content

Latest commit

 

History

History
553 lines (472 loc) · 15.1 KB

File metadata and controls

553 lines (472 loc) · 15.1 KB

Update Action bizproc.activity.update

{% note tip "" %}

If you are developing integrations for Bitrix24 using AI tools (Codex, Claude Code, Cursor), connect the MCP server so that the assistant can utilize the official REST documentation.

{% endnote %}

Scope: bizproc

Who can execute the method: administrator

The bizproc.activity.update method updates a business process action added by the application.

It works only in the context of the application.

Method Parameters

{% include Note on required parameters %}

#| || Name type | Description || || CODE* string | Internal identifier of the action || || FIELDS* object | Object with fields of the business process action || |#

FIELDS Parameter {#parametr-fields}

Pass at least one field to update in FIELDS.

#| || Name type | Description || || HANDLER string | URL to which the action will send data via the Bitrix24 queue server.

The link must have the same domain where the application is installed || || AUTH_USER_ID integer | Identifier of the user whose token will be passed to the application || || USE_SUBSCRIPTION boolean | Should the action wait for a response from the application. Possible values:

Can be a string or an associative array of localized strings like:

'NAME': {
    'de': 'Aktionsname',
    'en': 'action name',
    ...
},

|| || DESCRIPTION string | object | Description of the action.

Can be a string or an associative array of localized strings like:

'DESCRIPTION': {
    'de': 'Aktionsbeschreibung',
    'en': 'action description',
    ...
},

|| || PROPERTIES object | Object with parameters of the action. Contains objects, each describing a parameter of the action.

The system name of the parameter must start with a letter and can contain characters a-z, A-Z, 0-9, and underscore _ || || RETURN_PROPERTIES object | Object with additional results of the action. Contains objects, each describing a parameter of the action.

This parameter controls the ability of the action to wait for a response from the application and work with the data that will come in the response.

The system name of the parameter must start with a letter and can contain characters a-z, A-Z, 0-9, and underscore _ || || DOCUMENT_TYPE array | Document type that will determine the data types for the PROPERTIES and RETURN_PROPERTIES parameters. Consists of three string-type elements:

  • module identifier
  • object identifier
  • document type

Possible value options:

  • CRM Module ['crm', 'CCrmDocumentLead', 'LEAD'] — leads ['crm', 'CCrmDocumentContact', 'CONTACT'] — contacts ['crm', 'CCrmDocumentCompany', 'COMPANY'] — companies ['crm', 'CCrmDocumentDeal', 'DEAL'] — deals ['crm', 'Bitrix\Crm\Integration\BizProc\Document\Quote', 'QUOTE'] — estimates ['crm', 'Bitrix\Crm\Integration\BizProc\Document\SmartInvoice', 'SMART_INVOICE'] — invoices ['crm', 'Bitrix\Crm\Integration\BizProc\Document\Dynamic', 'DYNAMIC_XXX'] — SPAs, where XXX is the identifier of the SPA

  • Lists Module ['lists', 'BizprocDocument', 'iblock_XXX'] — processes in the news feed, where XXX is the identifier of the information block ['lists', 'Bitrix\Lists\BizprocDocumentLists', 'iblock_XXX'] — lists in groups, where XXX is the identifier of the information block

  • Drive Module ['disk', 'Bitrix\Disk\BizProcDocument', 'STORAGE_XXX'], where XXX is the storage identifier

|| || FILTER object | Object with rules for limiting the action by document type and edition.

May contain keys:

  • INCLUDE — array of rules where the action will be displayed
  • EXCLUDE — array of rules where the action will be hidden

Each rule in the array can be a string or an array of document types in full or partial form.

To limit the action by Bitrix24 edition, specify:

  • b24 — for cloud
  • box — for on-premise

Examples:

  1. Exclude action for on-premise Bitrix24
    FILTER: {
        EXCLUDE: [ 'box' ]
    }
  2. Display action only for the Lists module
    FILTER: {
        INCLUDE: [
            ['lists']
        ]
    }
  3. Display action only for the Lists module and deals from CRM
    FILTER: {
        INCLUDE: [
            ['lists'],
            ['crm', 'CCrmDocumentDeal']
        ]
    }

|| || USE_PLACEMENT boolean | Allows opening additional settings for the action in the application slider. Possible values:

  • Y — yes
  • N — no || || PLACEMENT_HANDLER string | URL of the placement handler on the application side || |#

PROPERTY Object {#property}

#| || Name type | Description || || Name string | object | Name of the parameter || || Description string | object | Description of the parameter || || Type string | Type of the parameter. Basic values:

  • bool — yes or no
  • date — date
  • datetime — date and time
  • double — number
  • file — file
  • int — integer
  • select — list
  • string — string
  • text — text
  • user — user || || Options array | Array of values for the parameter of type list 'TYPE': select' like:
[
    'value1': 'title1',
    'value2': 'title2',
    'value3': 'title3',
    'value4': 'title4'
]

|| || Required boolean | Parameter requirement. Possible values:

  • Y — yes
  • N — no || || Multiple boolean | Parameter multiplicity. Possible values:
  • Y — yes
  • N — no || || Default any | Default value of the parameter || |#

Examples of Objects

Below are examples of PROPERTY objects for different parameter types.

  • select

    'docType': {
        'Name': {
            'de': 'Dokumenttyp',
            'en': 'Document type'
        },
        'Required': 'Y',
        'Multiple': 'N',
        'Default': 'PDF',
        'Type': 'select',
        'Options': {
            'pdf': 'PDF',
            'docx': 'DOCX'
        }
    }
  • bool

    'saveDoc': {
        'Name': {
            'de': 'Dokument speichern',
            'en': 'Save document'
        },
        'Description': {
            'de': 'Einen fortlaufenden Nummer zuweisen',
            'en': 'Assign a sequential number'
        },
        'Type': 'bool',
        'Required': 'Y',
        'Multiple': 'N',
        'Default': 'Y'
    }
  • file

    'attachment': {
        'Name': {
            'de': 'Datei',
            'en': 'File'
        },
        'Description': {
            'de': 'Datei zum Senden',
            'en': 'File to send'
        },
        'Type': 'file',
        'Required': 'N',
        'Multiple': 'Y'
    }
  • string

    'Parameters': {
        'Name': {
            'de': 'Vorlagenparameter',
            'en': 'Template\'s parameters'
        },
        'Description': {
            'de': 'ParamID={=ParamValue}',
            'en': 'ParamID={=ParamValue}'
        },
        'Type': 'string',
        'Required': 'N',
        'Multiple': 'Y'
    }

Code Examples

{% include Note on Examples %}

{% list tabs %}

  • cURL (OAuth)

    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"CODE":"action_test_code","FIELDS":{"AUTH_USER_ID":1,"USE_SUBSCRIPTION":"N","FILTER":{"INCLUDE":[["lists"],["crm","CCrmDocumentDeal"]]}}, "auth":"**put_access_token_here**"}' \
    https://**put_your_bitrix24_address**/rest/bizproc.activity.update
  • JS

    try
    {
        const response = await $b24.callMethod(
            'bizproc.activity.update',
            {
                'CODE': 'action_test_code',
                'FIELDS': {
                    'AUTH_USER_ID': 1,
                    'USE_SUBSCRIPTION': 'N',
                    'FILTER': {
                        'INCLUDE': [
                            ['lists'],
                            ['crm', 'CCrmDocumentDeal']
                        ]
                    }
                },
            }
        );
        
        const result = response.getData().result;
        alert("Success: " + result);
    }
    catch( error )
    {
        alert("Error: " + error);
    }
  • Python

    from b24pysdk.errors import BitrixAPIError, BitrixSDKException
    
    try:
        bitrix_response = client.bizproc.activity.update(
            code="action_test_code",
            fields={
                "AUTH_USER_ID": 1,
                "USE_SUBSCRIPTION": "N",
                "FILTER": {
                    "INCLUDE": [
                        [
                            "lists",
                        ],
                        [
                            "crm",
                            "CCrmDocumentDeal",
                        ],
                    ],
                },
            },
        ).response
        result = bitrix_response.result
        print(result)
    except BitrixAPIError as error:
        print(
            "Bitrix API error",
            f"error: {error.error}",
            f"error_description: {error.error_description}",
            sep="\n",
        )
    except BitrixSDKException as error:
        print(f"Bitrix SDK error: {error.message}")
    except Exception as error:
        print(f"Unexpected error: {error}")
  • PHP

    try {
        $result = $serviceBuilder
            ->getBizProcScope()
            ->activity()
            ->update(
                'activity_code',
                'https://example.com/handler',
                1,
                ['en' => 'Activity Name', 'de' => 'Aktivitätsname'],
                ['en' => 'Activity Description', 'de' => 'Aktivitätsbeschreibung'],
                true,
                ['param1' => 'value1'],
                false,
                ['returnParam1' => 'value1'],
                null,
                null
            );
    
        if ($result->isSuccess()) {
            print($result->getCoreResponse()->getResponseData()->getResult()[0]);
        } else {
            print('Update failed.');
        }
    } catch (Throwable $e) {
        print('Error: ' . $e->getMessage());
    }
  • BX24.js

    BX24.callMethod(
        'bizproc.activity.update',
        {
            'CODE': 'action_test_code',
            'FIELDS': {
                'AUTH_USER_ID': 1,
                'USE_SUBSCRIPTION': 'N',
                'FILTER': {
                    'INCLUDE': [
                        ['lists'],
                        ['crm', 'CCrmDocumentDeal']
                    ]
                }
            },
        },
        function(result)
        {
            if(result.error())
                alert("Error: " + result.error());
            else
                alert("Success: " + result.data());
        }
    );
  • PHP CRest

    require_once('crest.php');
    
    $result = CRest::call(
        'bizproc.activity.update',
        [
            'CODE' => 'action_test_code',
            'FIELDS' => [
                'AUTH_USER_ID' => 1,
                'USE_SUBSCRIPTION' => 'N',
                'FILTER' => [
                    'INCLUDE' => [
                        ['lists'],
                        ['crm', 'CCrmDocumentDeal']
                    ]
                ]
            ]
        ]
    );
    
    echo '<PRE>';
    print_r($result);
    echo '</PRE>';
  • Go

    // client and ctx are already created — see the Go SDK section
    res, err := client.Core().Call(ctx, "bizproc.activity.update", b24.Params{
    	"CODE": "action_test_code",
    	"FIELDS": b24.Params{
    		"AUTH_USER_ID":     1,
    		"USE_SUBSCRIPTION": "N",
    		"FILTER": b24.Params{
    			"INCLUDE": []any{
    				[]string{"lists"},
    				[]string{"crm", "CCrmDocumentDeal"},
    			},
    		},
    	},
    })
    if err != nil {
    	return fmt.Errorf("bizproc.activity.update: %w", err)
    }
    
    var ok bool
    if err := json.Unmarshal(res.Result, &ok); err != nil {
    	return fmt.Errorf("parse response: %w", err)
    }
    fmt.Println("done:", ok)

{% endlist %}

Response Handling

HTTP Status: 200

{
    "result": true,
    "time": {
        "start": 1738149954.2918739,
        "finish": 1738149954.4590819,
        "duration": 0.16720795631408691,
        "processing": 0.017282962799072266,
        "date_start": "2025-01-29T14:25:54+01:00",
        "date_finish": "2025-01-29T14:25:54+01:00",
        "operating_reset_at": 1738150554,
        "operating": 0
    }
}

Returned Data

#| || Name type | Description || || result boolean | Returns true if the action is successfully updated || || time time | Information about the execution time of the request || |#

Error Handling

HTTP Status: 400

{
    "error": "ERROR_ACTIVITY_VALIDATION_FAILURE",
    "error_description": "Wrong properties array!"
}

{% include notitle error handling %}

Possible Error Codes

#| || Code | Error Message | Description || || ACCESS_DENIED | Application context required | Application context is required || || ACCESS_DENIED | Access denied! | Method executed by a non-administrator || || ERROR_ACTIVITY_VALIDATION_FAILURE | Empty activity code! | Activity code not specified || || ERROR_ACTIVITY_VALIDATION_FAILURE | Wrong activity code! | Invalid activity code || || ERROR_ACTIVITY_NOT_FOUND | Activity or Automation rule not found! | Action or Automation rule not found || || ERROR_UNSUPPORTED_PROTOCOL | Unsupported handler protocol | Invalid handler protocol http, https || || ERROR_WRONG_HANDLER_URL | Wrong handler URL | Invalid handler URL || || ERROR_ACTIVITY_VALIDATION_FAILURE | Wrong properties array! | Incorrectly filled parameters PROPERTIES or RETURN_PROPERTIES || || ERROR_ACTIVITY_VALIDATION_FAILURE | Wrong property key ! | Invalid property identifier || || ERROR_ACTIVITY_VALIDATION_FAILURE | Empty property NAME ! | Property name not specified || || ERROR_ACTIVITY_VALIDATION_FAILURE | Wrong activity FILTER! | Invalid filter || || ERROR_ACTIVITY_VALIDATION_FAILURE | Wrong activity DOCUMENT_TYPE! | Invalid DOCUMENT_TYPE || || ERROR_ACTIVITY_VALIDATION_FAILURE | No fields to update | No fields to update || |#

{% include system errors %}

Continue Learning