Открыть меню
Платформа Эра. Документация
Toggle preferences menu
Открыть персональное меню
Вы не представились системе
Your IP address will be publicly visible if you make any edits.

Задание 10. Обработка данных

Материал из Платформа Эра. Документации
Предыдущая статья курса: Работа с внешними системами. Возможности интеграции
Предыдущее задание курса: Задание 9. Пользовательские действия в карточке

Задание

Данное задание состоит из трёх отдельных пунктов:

  • Отправка email-уведомлений при изменении статуса Обращения
  • Разработка сервиса для создания обращений из внешних систем
  • Базовая интеграция с YandexGPT

Отправка уведомлений

Необходимо разработать сервис, который будет подписываться на события по изменению статуса в обращении (поле Ticket.state), и при изменении статуса, будет отправлять контакту Email-уведомление.

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

Перед началом работ, необходимо добавить в класс Контакт (Contact) новое свойство - Адрес Email (тип base/String).

Созданный сервис должен реализовывать следующую логику:

  1. Сервис подписывается на события изменения объекта Ticket,
  2. При получении события, сервис достает из Invocation информацию, отличается ли значение State в старой и новой версии данных
  3. Если значение State было изменено, сервис получает значение адреса email из объекта Contact по идентификатору, сохраненному в Ticket
  4. Сервис запускает служебный сценарий, передавая в него текущий статус и email для отправки нотификации

После разработки сервиса, необходимо реализовать служебный сценарий, который в зависимости от статуса будет отправлять разный текст нотификации - для перевода в статусы "В работе", "Закрыто" и "Отменено". Для отправки Email-сообщения в служебном сценарии предусмотрен специальный компонент.

Сервис для создания обращений

Необходимо реализовать сервис, который будет принимать три параметра:

  • Номер телефона
  • Тема обращения
  • Описание обращения

При получении запроса, сервис должен найти контакт (Contact) по полю PhoneNumber (оно должно быть добавлено в объект Contact в рамках задания 6).

После того как контакт был найден (или не найден), сервис должен создать новое обращение, заполнив следующие свойства:

  • contact_id - идентификатором контакта, если он найден
  • client_id - идентификатором client_id из найденного объекта Contact, если контакт найден, а значение client_id в нем заполнено
  • state - Открыто
  • subject - переданной в сервис темой обращения
  • description - переданным в сервис описанием обращения

После созания обращения сервис должен вернуть идентификатор нового обращения, а также два признака:

  • contactFound (bool) - найден ли контакт по номеру телефона
  • clientFound (bool) - найден ли контрагент через связь с контактом
Следующая статья курса: Работа с универсальным источником данных
Следующее задание курса: Задание 11. Разработка кастомного отчета
Предыдущая статья курса: Работа с внешними системами. Возможности интеграции
Предыдущее задание курса: Задание 9. Пользовательские действия в карточке