В итоге реализовал через события бизнес-процессов.
Если кому надо, то код ниже рабочий.
<?php
use Bitrix\Main\Loader;
class BizprocEvents
{
public static function OnTaskDelegate($taskId, $fromUserId, $toUserId)
{
$arTask = self::getTask($taskId);
self::addNotify($toUserId, $arTask["NAME"], $arTask["DESCRIPTION"]);
return true;
}
private static function getTask($taskId)
{
global $DB;
$taskId = intval($taskId);
$strSql = "SELECT DESCRIPTION, NAME, DOCUMENT_NAME FROM b_bp_task WHERE ID = '" . $taskId . "'";
$result = $DB->Query($strSql);
return $result->Fetch();
}
private static function addNotify($toUserId, $name, $text)
{
Loader::includeModule("im");
$arMessageFields = array(
"TO_USER_ID" => $toUserId,
"FROM_USER_ID" => 0,
"NOTIFY_TYPE" => IM_NOTIFY_SYSTEM,
"NOTIFY_MODULE" => "bizproc",
"NOTIFY_MESSAGE" => $name . "[BR]" . $text . "[BR][url=тут урл]Перейти к бизнес-процессам[/url]",
"NOTIFY_MESSAGE_OUT" => $name . "[BR]" . $text . "[BR][url=тут урл]Перейти к бизнес-процессам[/url]"
);
CIMNotify::Add($arMessageFields);
}
}