Обмен данными между полями формы Pyrus и внешним сервисом
Чтобы расширение работало, необходимо определить, какая информация будет попадать из внешнего сервиса в поля формы Pyrus и/или наоборот. Для этого нужно задать перечень полей для обмена данными между полями формы Pyrus и данными из внешнего сервиса.
Для настройки такого перечня доступны следующие типы полей в Pyrus: текст, число, файлы, эл. почта, дата, время, выбор, телефон, деньги, таблица.
При установке расширения пользователь сможет указать поля формы, в которые будет попадать информация из внешней системы, например, Имя отправителя, Ссылка на пост и т. д.
При этом каждому полю расширения соответствует определенный код — постоянный идентификатор, который не видят пользователи, но может изменять разработчик расширения, и который сохраняется при переименовании поля. В приведенном примере — это SenderName и PostUrl.
Подсказка 1: мы рекомендуем использовать стандартные коды полей: они облегчают настройку новых расширений, так как при совпадении кодов с полями, у которых уже настроен перечень полей для обмена данными, Pyrus автоматически предложит подходящий перечень при подключении новой интеграции.
Как настроить перечень полей для обмена данными в расширении
Чтобы настроить обмен данными между данными внешнего сервиса и полями в Pyrus, войдите в раздел Расширения.
Откройте вкладку Разработка расширений.
Откройте ваше расширение.
Выберите шаг Обмен данными с формой.
Настройте перечень полей, которые расширение будет заполнять или принимать. Например, можно задать правило, что данные клиента (имя, проблема, контакты, канал обращения и т.д.), который обратился в вашу службу поддержки по телефону, будут попадать в соответствующие поля формы Pyrus для обработки клиентских заявок.
Отметьте обязательные для заполнения и опциональные поля в форме Pyrus, а затем сохраните настройки.
В настройках расширения перейдите к шагу 3, в раздел Информация о расширении. Задайте локализацию — укажите языки, которые поддерживает ваше расширение, для обмена данными между сервисами.
Пример заполнения полей расширения
- mappings — необязательный параметр. Данные для автоматического заполнения полей формы. Массив объектов вида:
- code — строка. Символьный код поля расширения Pyrus.
- value — строка. Значение для поля в Pyrus (не заполняется для поля типа Таблица). Максимальная длина — 300 символов.
- rows — заполняется только для полей типа Таблица. Представляет собой массив массивов объектов вида:
- code — строка. Символьный код поля расширения Pyrus.
- value — строка. Значение для поля в Pyrus. Максимальная длина — 300 символов.
Подробнее о вебхуках для сервиса расширения
Табличные поля
В заявку Pyrus, в поле типа Таблица, можно загружать данные таблиц из внешнего сервиса, в том числе выборочно обновлять значения и удалять отдельные строки и ячейки.
Например, из таблицы в системе ЭДО можно передавать новые значения колонки с подписью контрагентов по мере смены статуса согласования документов.
Как настроить обмен данными между таблицами
Добавьте поле типа Таблица, а также код поля.
После добавления поля Таблица под ним откроются вложенные поля (столбцы таблицы). Заполните их, указав поля, которые должны подгружаться в таблицу из внешнего сервиса или передаваться в него.
Подсказка 2: в перечне полей для обмена данными между таблицами должно присутствовать хотя бы одно обязательное вложенное поле.
Подсказка 3: если поле типа Таблица отмечено как опциональное, то пользователь при установке расширения может не привязывать это поле к данным внешнего сервиса, при этом вложенные поля-столбцы таблицы тоже не будут привязаны к нему, даже если они отмечены как обязательные.
Пример отправки значений табличных полей
mappings: [ { code: "TableFieldCode", rows: [ [ { code: "DocumentNumber", value: "doc123/1" }, { // обновляем статус документа (файл уже приложен, не трогаем) code: "Status", value: "Signed" }, ], [ { code: "DocumentNumber", value: "doc123/2" }, { // добавляем новый документ code: "Attachment", value: "f8c594bf-9ca4-44f1-9483-1c2932a1b291" }, ], ] } ]
Параметры
- mappings — необязательный параметр. Данные для автоматического заполнения полей формы. Массив объектов вида:
- code — строка. Символьный код поля расширения.
- value — строка. Значение для поля в Pyrus. Максимальная длина — 300 символов.
- rows — заполняется только для полей типа Таблица. Представляет собой массив массивов объектов вида:
- code — строка. Символьный код поля расширения.
- value — строка. Значение для поля в Pyrus. Максимальная длина — 300 символов.
Важно:
- расширение должно передавать все строки таблицы одним запросом: если строка не передана, то она удаляется;
- в одной строке можно передать часть полей: если поле не передано, оно сохраняет предыдущее значение;
- при частичном обновлении таблицы для сохранения логической целостности данных рекомендуется сохранять изначальный порядок строк.
Примеры запросов
Заполнение таблицы
Данный запрос заполнит таблицу, состоящую из двух столбцов, тремя строками.
mappings: [ { code: "TableFieldCode", rows: [ [ { code: "Document", value: "doc1" }, { code: "SignatureStatus", value: "Signed" }, ], [ { code: "Document", value: "doc2" }, { code: "SignatureStatus", value: "Signed" }, ], [ { code: "Document", value: "doc3" }, { code: "SignatureStatus", value: "Signed" }, ], ] } ]
Модификация таблицы
Данный запрос обновит таблицу из предыдущего запроса: первая строка неизменна (передается пустой массив), во второй строке изменена ячейка 2 (ячейки, коды полей которых не были переданы в рамках строки, не изменяют своего значения), а третья строка будет удалена, так как не было передано ни нового значения ячеек, ни пустого массива для сохранения данных.
mappings: [ { code: "TableFieldCode", rows: [ [], [ { code: "SignatureStatus", value: "Declined" }, ] ] } ]