Send a Message to a User on Behalf of the Open Channel imopenlines.network.message.add
Scope:
imopenlinesWho can execute the method: any user
The method imopenlines.network.message.add sends a message to a user on behalf of the open channel connected in Bitrix24 Network.
Method operation limitations:
- The method is unavailable during session authorization. It returns the error
WRONG_AUTH_TYPEfor session authorization. - A message can be sent no more than once per user within a week. There are no limits for accounts with a Partner (NFR) license.
- The keyboard can only be used for formatting the link button to an external site.
Method Parameters
Required parameters are marked with *
|
Name |
Description |
|
CODE* |
Code of the open channel, a string of 32 characters, for example |
|
USER_ID* |
Identifier of the message recipient, for example |
|
MESSAGE* |
Message text. How to format text is described in the article Formatting |
|
ATTACH |
Attachment. The format of the attachment is described in the article How to Use Attachments |
|
KEYBOARD |
Keyboard. How to create keyboards is described in the article Working with Keyboards |
|
URL_PREVIEW |
Link preview. Enabled Pass |
Code Examples
How to Use Examples in Documentation
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"CODE": "ab515f5d85a8b844d484f6ea75a2e494",
"USER_ID": 2,
"MESSAGE": "We have prepared materials for connecting open channels",
"ATTACH": {
"ID": 1,
"COLOR_TOKEN": "primary",
"BLOCKS": [
{
"MESSAGE": "We have sent a checklist and connection diagram in the attachment"
},
{
"FILE": [
{
"NAME": "checklist-openlines.pdf",
"LINK": "https://cdn.example.com/docs/checklist-openlines.pdf",
"SIZE": 428736
}
]
},
{
"IMAGE": [
{
"NAME": "Connection Diagram",
"LINK": "https://cdn.example.com/images/openlines-setup.png",
"PREVIEW": "https://cdn.example.com/images/openlines-setup-preview.png",
"WIDTH": 1280,
"HEIGHT": 720
}
]
}
]
},
"KEYBOARD": {
"BUTTONS": [
{
"TEXT": "Open Instructions",
"LINK": "https://help.example.com/openlines/setup",
"DISPLAY": "LINE",
"BG_COLOR_TOKEN": "primary"
}
]
},
"URL_PREVIEW": "N"
}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/imopenlines.network.message.add
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"CODE": "ab515f5d85a8b844d484f6ea75a2e494",
"USER_ID": 2,
"MESSAGE": "We have prepared materials for connecting open channels",
"ATTACH": {
"ID": 1,
"COLOR_TOKEN": "primary",
"BLOCKS": [
{
"MESSAGE": "We have sent a checklist and connection diagram in the attachment"
},
{
"FILE": [
{
"NAME": "checklist-openlines.pdf",
"LINK": "https://cdn.example.com/docs/checklist-openlines.pdf",
"SIZE": 428736
}
]
},
{
"IMAGE": [
{
"NAME": "Connection Diagram",
"LINK": "https://cdn.example.com/images/openlines-setup.png",
"PREVIEW": "https://cdn.example.com/images/openlines-setup-preview.png",
"WIDTH": 1280,
"HEIGHT": 720
}
]
}
]
},
"KEYBOARD": {
"BUTTONS": [
{
"TEXT": "Open Instructions",
"LINK": "https://help.example.com/openlines/setup",
"DISPLAY": "LINE",
"BG_COLOR_TOKEN": "primary"
}
]
},
"URL_PREVIEW": "N",
"auth": "**put_access_token_here**"
}' \
https://**put_your_bitrix24_address**/rest/imopenlines.network.message.add
try
{
const response = await $b24.callMethod(
'imopenlines.network.message.add',
{
CODE: 'ab515f5d85a8b844d484f6ea75a2e494',
USER_ID: 2,
MESSAGE: 'We have prepared materials for connecting open channels',
ATTACH: {
ID: 1,
COLOR_TOKEN: 'primary',
BLOCKS: [
{
MESSAGE: 'We have sent a checklist and connection diagram in the attachment'
},
{
FILE: [
{
NAME: 'checklist-openlines.pdf',
LINK: 'https://cdn.example.com/docs/checklist-openlines.pdf',
SIZE: 428736
}
]
},
{
IMAGE: [
{
NAME: 'Connection Diagram',
LINK: 'https://cdn.example.com/images/openlines-setup.png',
PREVIEW: 'https://cdn.example.com/images/openlines-setup-preview.png',
WIDTH: 1280,
HEIGHT: 720
}
]
}
]
},
KEYBOARD: {
BUTTONS: [
{
TEXT: 'Open Instructions',
LINK: 'https://help.example.com/openlines/setup',
DISPLAY: 'LINE',
BG_COLOR_TOKEN: 'primary'
}
]
},
URL_PREVIEW: 'N'
}
);
const result = response.getData().result;
console.log(result);
}
catch (error)
{
console.error(error);
}
try {
$response = $b24Service
->core
->call(
'imopenlines.network.message.add',
[
'CODE' => 'ab515f5d85a8b844d484f6ea75a2e494',
'USER_ID' => 2,
'MESSAGE' => 'We have prepared materials for connecting open channels',
'ATTACH' => [
'ID' => 1,
'COLOR_TOKEN' => 'primary',
'BLOCKS' => [
[
'MESSAGE' => 'We have sent a checklist and connection diagram in the attachment'
],
[
'FILE' => [
[
'NAME' => 'checklist-openlines.pdf',
'LINK' => 'https://cdn.example.com/docs/checklist-openlines.pdf',
'SIZE' => 428736
]
]
],
[
'IMAGE' => [
[
'NAME' => 'Connection Diagram',
'LINK' => 'https://cdn.example.com/images/openlines-setup.png',
'PREVIEW' => 'https://cdn.example.com/images/openlines-setup-preview.png',
'WIDTH' => 1280,
'HEIGHT' => 720
]
]
]
]
],
'KEYBOARD' => [
'BUTTONS' => [
[
'TEXT' => 'Open Instructions',
'LINK' => 'https://help.example.com/openlines/setup',
'DISPLAY' => 'LINE',
'BG_COLOR_TOKEN' => 'primary'
]
]
],
'URL_PREVIEW' => 'N',
]
);
$result = $response
->getResponseData()
->getResult();
print_r($result);
} catch (Throwable $e) {
echo $e->getMessage();
}
BX24.callMethod(
'imopenlines.network.message.add',
{
CODE: 'ab515f5d85a8b844d484f6ea75a2e494',
USER_ID: 2,
MESSAGE: 'We have prepared materials for connecting open channels',
ATTACH: {
ID: 1,
COLOR_TOKEN: 'primary',
BLOCKS: [
{
MESSAGE: 'We have sent a checklist and connection diagram in the attachment'
},
{
FILE: [
{
NAME: 'checklist-openlines.pdf',
LINK: 'https://cdn.example.com/docs/checklist-openlines.pdf',
SIZE: 428736
}
]
},
{
IMAGE: [
{
NAME: 'Connection Diagram',
LINK: 'https://cdn.example.com/images/openlines-setup.png',
PREVIEW: 'https://cdn.example.com/images/openlines-setup-preview.png',
WIDTH: 1280,
HEIGHT: 720
}
]
}
]
},
KEYBOARD: {
BUTTONS: [
{
TEXT: 'Open Instructions',
LINK: 'https://help.example.com/openlines/setup',
DISPLAY: 'LINE',
BG_COLOR_TOKEN: 'primary'
}
]
},
URL_PREVIEW: 'N'
},
function(result)
{
if (result.error())
{
console.error(result.error());
}
else
{
console.log(result.data());
}
}
);
require_once('crest.php');
$result = CRest::call(
'imopenlines.network.message.add',
[
'CODE' => 'ab515f5d85a8b844d484f6ea75a2e494',
'USER_ID' => 2,
'MESSAGE' => 'We have prepared materials for connecting open channels',
'ATTACH' => [
'ID' => 1,
'COLOR_TOKEN' => 'primary',
'BLOCKS' => [
[
'MESSAGE' => 'We have sent a checklist and connection diagram in the attachment'
],
[
'FILE' => [
[
'NAME' => 'checklist-openlines.pdf',
'LINK' => 'https://cdn.example.com/docs/checklist-openlines.pdf',
'SIZE' => 428736
]
]
],
[
'IMAGE' => [
[
'NAME' => 'Connection Diagram',
'LINK' => 'https://cdn.example.com/images/openlines-setup.png',
'PREVIEW' => 'https://cdn.example.com/images/openlines-setup-preview.png',
'WIDTH' => 1280,
'HEIGHT' => 720
]
]
]
]
],
'KEYBOARD' => [
'BUTTONS' => [
[
'TEXT' => 'Open Instructions',
'LINK' => 'https://help.example.com/openlines/setup',
'DISPLAY' => 'LINE',
'BG_COLOR_TOKEN' => 'primary'
]
]
],
'URL_PREVIEW' => 'N',
]
);
print_r($result);
Response Handling
HTTP Status: 200
{
"result": true,
"time": {
"start": 1773740787,
"finish": 1773740787.828814,
"duration": 0.8288140296936035,
"processing": 0,
"date_start": "2026-03-17T12:46:27+03:00",
"date_finish": "2026-03-17T12:46:27+03:00",
"operating_reset_at": 1773741387,
"operating": 0.17312097549438477
}
}
Returned Data
|
Name |
Description |
|
result |
Returns |
|
time |
Information about the request execution time |
Error Handling
HTTP Status: 400
{
"error": "CODE",
"error_description": "You entered an invalid code"
}
|
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
|
Status |
Code |
Description |
Value |
|
|
|
Access for this method not allowed by session authorization |
Method called with session authorization |
|
|
|
You entered an invalid code |
Invalid code in the |
|
|
|
Module IMBOT is not installed |
IMBOT module is not installed |
|
|
|
Line not found |
Open channel not found |
|
|
|
User ID can't be empty |
User identifier not specified |
|
|
|
You can't send more than one message per week to each user |
Message limit exceeded for a specific user |
|
|
|
Message can't be empty |
Message text not specified |
|
|
|
You have exceeded the maximum allowable size of attach |
Maximum allowable attachment size exceeded 30 KB |
|
|
|
Incorrect attach params |
Attachment object did not pass validation |
|
|
|
Incorrect keyboard params |
Keyboard object did not pass validation |
|
|
|
Message isn't added |
Message not sent |
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 allowed to be called using batch |
|
|
|
The maximum length of parameters passed to the batch method has been exceeded |
|
|
|
Invalid access token or webhook code |
|
|
|
The methods must be called using the HTTPS protocol |
|
|
|
The REST API is blocked due to overload. This is a manual individual block, to remove it you need to contact Bitrix24 technical support |
|
|
|
The REST API is available only on commercial plans |
|
|
|
The user whose access token or webhook was used to call the method lacks 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 account administrator has allowed access to this application only for specific users |
|
|
|
The public part of the site is closed. To open the public part of the site on an on-premise installation, disable the option "Temporary closure of the public part of the site". Path to the setting: Desktop > Settings > Product Settings > Module Settings > Main Module > Temporary closure of the public part of the site |
Continue Learning
- Open Lines in Bitrix24
- Connect an External Open Channel to the Account imopenlines.network.join
- Formatting
- Attachments in Messages ATTACH
- Working with Keyboards