Custom Fields API - Настройка пользовательских полей

Введение

В данной статье будет рассказано, как можно создавать и настраивать пользовательские поля через DealApp API. Все методы, описанные ниже требуют авторизацию через пользователя с настроенными правами по обновлению пользователей. О том, как производить авторизацию, можно прочитать в статье

Добавление и настройка пользователей через API

Пользовательские поля (Custom Fields) это дополнительные поля, которые добавляются к звонкам и другим объектам коммуникаций с клиентами (Client Interactions), таким как чаты и тикеты. Эти поля расширяют основную схему таких объектов для реализации дополнительной бизнес логики. По этим полям можно фильтровать список на странице Таблицы Коммуникаций и эти данные можно так же увидеть на странице оценки.

Примеры возможных значений в таких полях:

  1. Проект или контракт по которому совершался звонок

  2. Город из которого пришел звонок

  3. Время последнего закрытия тикета

  4. Кол-во закрытий тикета или дата последнего закрытия

  5. Массив NPS с опросом клиента о качестве. Сценарий такой: диалог в тикете может открываться или закрываться несколько раз, каждое значение оценки записывается и может передаваться нам в виде массива.

  6. Список тематик. При чем тематики могут иметь под-тематики, список которых будет зависеть от тематики

Значения пользовательских полей хранятся в объекте ClientInteraction в виде json поля custom_fields. Данные хранятся как пары ключ-значения, где ключ используется для того, чтобы сопоставить значение с ресурсом Custom Field. Пример получения данных о Custom Field:

{
  "data": {
    "id": "16915806-8327-4899-9e1c-6a59474c877b",
    "type": "phone-calls",
    "attributes": {
      ...
      "custom-fields": {
        "opened_at": "2020-06-21T09:51:13.588Z",
        "reopen_count": 5,
        "sale_stage": "negotiations"
      }
    },
    "relationships": {
      "operator": {...}
    }
  }
}

Методы API

Пользовательские поля (custom_fields)

GET /api/v1/custom_fields

Возвращает список объектов пользовательских полей (custom-fields) для вашей организации

Пример запроса: curl -X GET -H @headers.txt https://api.dev.dealapp.io/api/v1/custom_fields

POST /api/v1/custom_fields

Создание пользовательского поля

Пример запроса:

Пример ответа:

PUT /api/v1/custom_fields

Обновление пользовательского поля, при обновлении реализовано частичное обновление полей объектов (можно указывать только те, которые обновляются). Однако options и select поля нужно определять полностью.

Пример запроса:

Пример ответа:

Пример ответа:

Работа с зависимыми полями (select)

Custom Field со значением field_type select позволяют создавать поля с возможностью выбора вариантов, которые зависят от значения других полей с таким же типом. Так же значения поля settings в таких selectCustom Field будут хранить объекты с полями key, text и parent-key. Поле key в этом объекте будет использоваться как id этого варианта ответа, text - для отображения варианта на UI, а parent-key будет задавать значение key в другом select поле, от которого зависит данное поле, при котором этот вариант должен отображаться в данном селекте на UI.

Пример такого объекта:

Такая конфигурация задает 2 зависимых поля: Parent и Child. При выборе значения Parent 1 в поле Child будет возможность выбрать только Child 1.1 и Child 1.1. В целом зависимость значений будет выглядеть следующим образом.

select Custom Field работают точно так же как и остальные со следующими изменениями:

  • добавлено поле depends_on, которое обозначает поле от которого зависит это поле

  • добавлено поле settings, в котором храниться массив с настройками возможных значения поля select

В settings хранится массив объектов, в каждом объекте есть следующие поля:

  • key - ключ по которому будет проходить поиск

  • text - текст, который соответствует значение key

  • parent_key - значение ключа key в select поле c depends_on, по которому должно отображаться это поле

  • Пример скрипта, который создает зависимые поля через bash с помощью curl

Last updated

Was this helpful?