Как создать дело из приложения
Приложения могут создавать дела с провайдером специального типа. У такого дела будет соответствующая иконка в таймлайн. По клиику на дело откроется приложение в слайдере с опциями в PLACEMENT_OPTIONS
Важно
Изменять/удалять дела с провайдером специального типа можно только в контексте приложения, которым дело создано. При обновлении такого дела методом crm.activity.update через вебхук будет ошибка: Access denied! Application context required.
Параметры
Обязательные параметры отмечены *
|
Название |
Описание |
|
PROVIDER_ID* |
Идентификатор провайдера. Для специального типа значение должно быть равно |
|
PROVIDER_TYPE_ID* |
Идентификатор типа дела. В случае использования провайдера |
Пример приложения
Как использовать примеры в документации
<?php
header('Content-Type: text/html; charset=UTF-8');
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
</style>
</head>
<body style="display: none">
<script src="//api.bitrix24.tech/api/v1/"></script>
<?if (isset($_POST['PLACEMENT']) && !empty($_POST['PLACEMENT_OPTIONS'])):
$opt = json_decode($_POST['PLACEMENT_OPTIONS'], true);
?>
<p>Activity ID: <?= (int)$opt['activity_id']?></p>
<button onclick="updateActivity(<?= (int)$opt['activity_id']?>);">Update activity (set new description + completed)</button>
<p><button onclick="deleteActivity(<?= (int)$opt['activity_id']?>);">Delete activity</button>
<?else:?>
<button onclick="selectCRMEntity();">Select LEAD</button>
<span id="selected-entity"></span>
<p>
<button onclick="addActivity();">Add activity</button>
<?endif;?>
<script type="text/javascript">
BX24.init(function()
{
document.body.style.display = '';
});
var selectedEntityId = null;
function addActivity()
{
if (!selectedEntityId)
{
alert('Lead not selected');
return;
}
BX24.callMethod(
'crm.activity.add',
{
fields:
{
"OWNER_TYPE_ID": 1,
"OWNER_ID": selectedEntityId,
"PROVIDER_ID": 'REST_APP',
"PROVIDER_TYPE_ID": 'LINK',
"SUBJECT": "Новое дело",
"COMPLETED": "N",
"RESPONSIBLE_ID": 1,
"DESCRIPTION": "Описание нового дела"
}
},
function(result)
{
if(result.error())
alert("Error: " + result.error());
else
{
alert("Success: " + result.data());
}
}
);
}
function updateActivity(id)
{
BX24.callMethod(
'crm.activity.update',
{
id: id,
fields:
{
COMPLETED: 'Y',
SUBJECT: "Дело выполнено!",
DESCRIPTION: "Описание нового дела (выполнено)"
}
},
function(result)
{
if(result.error())
alert("Error: " + result.error());
else
{
alert("Success: " + result.data());
}
}
);
}
function deleteActivity(id)
{
BX24.callMethod(
'crm.activity.delete',
{
id: id
},
function(result)
{
if(result.error())
alert("Error: " + result.error());
else
{
alert("Success: " + result.data());
}
}
);
}
function selectCRMEntity()
{
document.getElementById('selected-entity').textContent = '';
BX24.selectCRM({
entityType: ['lead']
}, function(selected)
{
if (selected['lead'] && selected['lead'][0])
{
document.getElementById('selected-entity').textContent = selected['lead'][0]['title'];
var id = selected['lead'][0]['id'];
selectedEntityId = id.substring(2);
console.log(selectedEntityId);
}
})
}
</script>
</body>
</html>
