Общие функции

Общие функции могут быть использованы в любом процессе, независимо от того, какие сервисы используются в проекте.

Источник

Сайт

Входящие данные неизвестны, поэтому для работы с ними необходимо использовать маску input как описано в Процесс

Создаёт точку и код счетчика для размещения на сайте. В рамках кода, располагаемого на сайте также включен механизм, который собирает данные аналитики на сайте (UTM-метки, счетчики Яндекс.Метрики, Google Analytics и Roistat).

Стартовый блок у процесса с таким источником отличается от остальных более сложной структурой:

  • Код для сайта — код, который необходимо разместить на страницах сайта, с которых требуется произвести интеграцию с сервисом. Код может быть размещён как на CMS-системах, так и на облачных системах создания сайта, если они позволяют вставку JavaScript кода на странице;
  • Стандартная обработка — при включении на сайт подгружается подготовленный код для обработки форм. Код эффективен, если сайт свёрстан в соответствии со стандартами HTML5 и событиями браузера; *
  • jQuery — переключатель, позволяющий включить в код для сайта подгрузку библиотеки jQuery. Это может быть полезно при написании своего кода интеграции.
  • Свой код — переключатель, который включает подгрузку собственного кода, который можно внести в окно ниже. Необходимо, если 1) вёрстка отличается от ожидаемых стандартов; 2) стандартная обработка не даёт результата; 3) нужно собрать дополнительные данные со страницы; 4) нужно добавить кастомные условия сбора.

После подгрузки кода на страницу сайта в документе создаётся объект MK.

При написании собственной обработки форм можно использовать следующие функции:

  • MK.formHandler(form) — принимает указатель на форму, данные с которой необходимо собрать. **
  • MK.handler(data) — принимает собранные данные, дополняет их данными аналитики и отправляет в систему.

*Данные с формы будут успешно собраны, если обработка формы на сайте происходит по событию Submit и не блокирует исполнение другого кода (возвращает true).

**При сборе данных игнорируются теги/типы checkbox radio select password — их необходимо обрабатывать вручную. При обработке остальных типов ввода в качестве ключа берётся значение из атрибута name id data-type в порядке приоритета.

Пример интеграции скрипта

Рассмотрим небольшой пример интеграции скрипта MoreKit — обработчика форм. Есть форма на сайте, которая отправляет name, email и feedback.

В данном примере на сайте интегрирована Google — аналитика, которая собирается в cookie, но данные cookie не приходят во входящие данные. Для этого и нужен скрипт MoreKit.

Размещаем скрипт, который генерируется в первоначальном блоке в процессе с типом «Сайт» на нашем сайте, где необходим сбор данных.

На стороне MoreKit активируем «Стандартную обработку».

Если все сделано верно, при заходе на сайт увидим инициализацию скрипта.

После интеграции скрипта на сайт попробуем отправить данные еще раз.

Как видим, ко входящим данным дополнились cookie с сайта. Скрипт успешно отработал.

Другое

Входящие данные неизвестны, поэтому для работы с ними необходимо использовать маску input как описано в Процесс

Создаёт точку приема данных в сервисе. Единственный доступный фильтр источника — определение метода запроса GET/POST.

Функции

Проверка

Функция позволяет осуществить проверку данных для выбора дальнейшего пути обработки.

В данном примере исполнение будет продолжено по успешной ветке в том случае, если входящий параметр active равен 1 или sale > 5000.

Доступные функции сравнения:

  • = — равно
  • ≠ — не равно
  • > — больше
  • < — меньше
  • включает — проверяет является ли значение справа частью строки слева
  • не включает — аналогично предыдущему, но проверяется отсутствие значения
  • один из — проверяет является ли значение слева одним из элементов массива справа
  • не один из — аналогично предыдущему, но проверяется отсутствие значения
  • присутствует — проверка наличия такого ключа
  • отсутствует — проверка отсутствия такого ключа

В качестве объектов сравнения могут выступать как маски данных схемы, так и статичные данные.

Регулярные выражения

Функция поиска значения в строке с использованием регулярных выражений.

  • ключ — поле для ввода названия получившегося результата;
  • выражение — само выражение, которое будет использоваться для поиска. Для подбора и проверки можно использовать внешние сервисы составления выражений, например Regex101;
  • текст — поле, в котором ожидается переменная, которая и содержит целевой текст, в котором будет производиться поиск;
  • результат — способ работы с получившимися данными. Первый — возвращает первое соответствие выражению, Соединить — возвращает объединённый результат поиска, Удалить — убирает из строки всё, что соответствует выражению, возвращая остальное;

Созданные выражения можно использовать в дальнейшей схеме как обращение к блоку-ключу, например {{#4.myfirstregex}}

Дата и время

Подробный синтаксис форматов даты описан на странице Дата и время .

Функция создания или конвертации даты и времени.

  • сейчас — заполнить дату текущим временем;
  • из формата (если необходимо использовать уже существующую дату):
    • дата — поля для ввода переменной, содержащей дату;
    • тип — тип трансформации: таймштамп, если дата в переменной содержится в формате timestamp; из формата, если дата в строковом виде.
    • формат — маска формата даты, описывающая вид даты в строке.
  • сдвиг даты (если нужно изменить дату/время):
    • сдвиг — разница, на которую надо изменить дату/время. Может быть положительным/отрицательным целым числом;
    • размер — единица измерения на которую производится сдвиг (секунда/минута/час/день).
  • в формат (если дата нужна не для использования в функциях даты в системе):
    • тип — тип трансформации: таймштамп, если дата должна быть преобразована в формат timestamp; в формат, если дата должна оказаться в строковом виде.
    • формат — маска формата даты, описывающая вид даты в строке.

Созданную дату можно использовать в дальнейшей схеме как обращение к блоку-ключу, например {{#7.дата}}

Цикл

Позволяет провести ряд операций над каждым элементом полученного массива.

  • для каждого — массив, элементы которого будут подвергаться перебору.

При нажатии на кнопку редактирования на блоке цикла, откроется модальное окно, внутри которого будет находиться тело цикла — схема аналогичная основной. В случае, если необходимо остановить выполнение цикла досрочно, внутри схемы цикла нужно провести связь между точкой выхода блока и иконкой «Прервать», которая появится внизу экрана при начале протягивания связи.

Выбор пользователя

Позволяет выбрать пользователя из групп, которые были созданы ранее в системах типа CRM/ERP.

  • все по очереди из — выбор из списка доступных групп, по которым будет производиться распределение;
  • учитывать график — проверять ли график пользователей при выборе;
  • если не найдено — значение (id), которое будет использоваться, если по какой-то причине не был выбран пользователь (например, нерабочее время у всех).

Выбранного пользователя можно использовать в дальнейшей схеме как обращение к блоку-ключу, например {{#8.пользователь}}

Распарсить url

В качестве аргумента блок принимает в себя какую-либо ссылку.

В результате отработки блока можно получить определенные элементы URL

Запустить подпроцесс

При создании процесса в moreKit можно выбрать тип процесса «Подпроцесс». Данный блок запускает созданный подпроцесс. Может понадобиться для разделения какой-либо логики. Блок принимает в себя название подпроцесса, который необходимо запустить и данные, которые необходимо передать в подпроцесс. Указанные данные придут в созданный подпроцесс во «Входящие данные» после срабатывания блока.

Если добавить поле в блоке запуска подпроцесса, также будет возможность дополнительно добавить данные, на случай необходимости дообогащения передаваемых данных в подпроцесс.

Посчитать

Блок выполняет математические функции.
Для корректной работы блока необходимо убедиться, что присутствует пробел между математическим оператором и обрабатываемой переменной или значением.

Пример 1:
value1 = 15
value2 = 30


Результат выполнения:

Если есть необходимость расчета более сложных формул, блок также обработает их, учитывая при этом математическую грамотность.

Пример 2:
value1 = 15
value2 = 30

Результат выполнения:

Округлить

Округляет переданное блоку значение до целого числа.

Json закодировать

Кодирует указанный объект в формат json.

Json декодировать

Декодирует принимаемую строку из формата json.

base64 закодировать

Кодирует принимаемую строку в формат base64.

base64 декодировать

Декодирует принимаемую строку из формата base64.

HTML декодировать

Декодирует принимаемую строку из формата HTML.

HTML закодировать

Кодирует принимаемую строку для формата HTML.

Отложить событие

Данный блок инициирует ожидание согласно введенному количеству секунд до исполнения следующего шага. Максимально возможное время ожидания 90 секунд.

Отправить webhook

Morekit позволяет отправить webhook. Блок «Webhook» принимает в себя url, куда необходимо отправить webhook.
В блок можно добавить заголовок, тело POST и GET параметры.
При необходимости, можно добавить игнорирование ошибок таймаута и http статус-кода.

  • Url — адрес конечной точки, на который будет производиться отправка
  • Игнорировать ошибку тайм-аута — по умолчанию MoreKit ожидает 1 секунду, чтобы получить ответ от сервиса, на который отправляется webhook. При использовании данной настройки ошибки тайм-аута будут игнорироваться.
  • Игнорировать статус http кодов — можно задать код, статус которого будет игнорироваться после отправки.
  • Заголовок — позволяет добавить к составу webhook заголовок, если это необходимо.
  • GET-параметр — добавление GET параметра в webhook
  • POST-параметр — добавление POST параметра в webhook
  • Тело запроса — содержит данные, связанные с запросом.
  • Отправить HTTP запрос

Morekit позволяет отправить HTTP-запрос. Во время отработки блок отправляет запрос на указанный адрес и получает от него ответ. После отработки блока к нему можно обратиться и получить данные. Например:
Тело ответа {{#103.текст ответа}}
Код ответа: {{#103.статус}}
Заголовки: {{#103.заголовки}}

  • Url — адрес конечной точки, на который будет производиться отправка
  • Заголовок — позволяет добавить к составу HTTP-запроса заголовок, если это необходимо.
  • GET-параметр — добавление GET параметра к HTTP-запросу
  • POST-параметр — добавление POST параметра к HTTP-запросу
  • Тело запроса — содержит данные, которые отправляются в теле запроса.

Создать переменную

Функция позволяет создать переменные, которые могут быть использованы дальше в процессе.

  • название — ключ по которому можно будет обращаться к переменной;
  • значение — что должно содержаться в этой переменной. Значение может быть как статичным, так и любой переменной/блоком, которые ранее были в схеме;
  • перезаписать — если переменная с таким ключом уже существует, то позволяет выбрать заменить её значение на новое или оставить старым.

В одном блоке может:

  • быть создано сразу несколько переменных;
  • могут создаваться сразу несколько переменных с одинаковым ключом (например, если несколько веток сходятся в этот блок, и надо создать переменную, содержащую результат успешной ветки);
  • если переменная была создана раньше, но в значение была передана пустая переменная/блок, то при следующем создании эта переменная будет записана значением, независимо от параметра “Перезаписать”;

Созданную переменную можно использовать в дальнейшей схеме, обращаясь к ней по ключу: {{мояпеременная}}

Создать словарь

Блок создает пустой словарь. Словарь — объект, содержащий в себе набор значений, и позволяющий обращаться к этим значениям по ключу.

Добавить в словарь

Добавляет в словарь элемент с парой ключ-значение. После добавления значения обратиться к словарь можно через маску {{Названиесловаря}}

Достать из словаря

Позволяет достать из словарь значение по ключу.

Удалить из словаря

Удаляет элемент из словаря по ключу. Обратиться к словарю можно через маску Название словаря

Общие переменные

Общие переменные — это хранилище для значений, которое можно использовать между разными событиями или процессами проекта. Пример: отслеживание перевода звонка в телефонии, которая не присылает это событие.

Срок хранения переменной ограничен шестью часами. При необходимости его можно дополнительно уменьшить параметрами функции.

Положить в хранилище

Создаёт переменную в хранилище, принимает параметры:

  • Область (процесс/проект) — ограничивает видимость переменной и возможность её использовать из других процессов;
  • Время хранения (Х часов, ХХ минут, ХХ секунд) — искусственно снижает длительность хранения переменной, если это необходимо (максимум — 6 часов).
  • Переменная:
    • название — название по которому к ней можно обратиться;
    • значение — строка/число/массив которое необходимо запомнить.

Максимальный объем переменных проекта — 100Кб.

Достать из хранилища

Получает ранее созданную переменную из хранилища. Если она отсутствовала, переменная будет пустой.

  • Область (процесс/проект) — определяет на каком уровне была создана переменная.
  • Название — название, по которому она была создана