Разработка коннекторов
Формат действий и триггеров
Действия и триггеры возвращаются в той же форме, что и встроенные шаги конструктора — конструктор рисует их единообразно.
Действия и триггеры возвращаются в той же форме, что и встроенные шаги конструктора — конструктор рисует их единообразно.
#Действие
php
['type' => 'telegram.send', 'label' => 'Сообщение в Telegram', 'icon' => 'send',
'connector' => 'telegram', 'hint' => 'Через подключённый бот',
'config' => [
['key' => 'chatId', 'type' => 'text', 'label' => 'Chat id', 'optional' => true],
['key' => 'text', 'type' => 'longtext', 'label' => 'Текст', 'tokens' => true],
]]#Триггер
php
['type' => 'telegram.message.received', 'label' => 'Получено сообщение', 'scope' => 'connector',
'connector' => 'telegram', 'icon' => 'send', 'hint' => 'Клиент написал в бот',
'config' => [
['key' => 'keyword', 'type' => 'text', 'label' => 'Только если текст содержит', 'optional' => true],
]]#Дескриптор поля config
key— имя параметра (по нему значение придёт в$config).type—text,longtext,number,select,field,stage,user,collection,fieldmap.source— варианты активной коллекции:fields,userFields,dateFields,stages,employees,collections.options— дляselect:[[value,label], …].default,optional,anyLabel,when(условный показ),tokens(поддержка токенов).
#Рантайм-токены
Поля с tokens: true и всё, что прогоняется через ActionContext::render(), поддерживают подстановки (когда в контексте есть запись):
{{title}}— заголовок записи;{{stage}}— название этапа;{{collection}}— название коллекции;{{link}}— ссылка на карточку;{{field:<fieldId>}}— значение поля по id.