Відправлення повідомлень користувачам: Send User Notification (v1)
1. Загальна інформація
Інтеграційне розширення Send User Notification дозволяє налаштовувати автоматичне надсилання повідомлень користувачам через внутрішні та зовнішні канали в рамках бізнес-процесу. Делегат дозволяє адаптувати формат і зміст повідомлень на основі динамічних шаблонів у регламенті, а також вибирати Keycloak-реалми доставлення. Використовується у завданнях типу Send Task.
| Назва | Пояснення | 
|---|---|
| Бізнес-назва інтеграційного розширення | Send User Notification | 
| Службова назва інтеграційного розширення | 
 | 
| Назва файлу у бібліотеці розширень | 
 | 
2. Перед початком
| Якщо ви використовуєте функціональність Кабінету адміністратора регламентів для розробки реєстру, вам не потрібно встановлювати типові розширення, додаткові зовнішні застосунки та плагіни. Портал містить усе необхідне вбудоване з коробки. При моделюванні бізнес-процесів із використанням сторонніх застосунків, важливо інтегрувати каталог типових розширень з нашого репозиторію. Завітайте до business-process-modeler-extensions, щоб завантажити необхідні файли. Наприклад, для таких інструментів, як Camunda Modeler, у вашій теці /element-templates мають бути включені відповідні JSON-файли. Для детальних інструкцій, будь ласка, перегляньте Встановлення типових розширень. | 
3. Налаштування
Делегат Send User Notification призначений для використання у завданнях типу Send Task бізнес-процесу. Він дозволяє налаштувати ключові параметри відправки повідомлень, включаючи отримувача, шаблон, тему повідомлення, мовні налаштування та реалми доставлення.
| Повідомлення можуть надсилатися через кілька каналів, включаючи inbox, електронну пошту або мобільний додаток "ДіЯ" (за умови їхньої активації). | 
3.1. Налаштування завдання
- 
Створіть завдання типу Send Task у бізнес-процесі. 
- 
Назвіть завдання, наприклад, Відправка повідомлення в inbox.
- 
Застосуйте шаблон делегата, обравши Send User Notification у списку налаштувань завдання.  
3.2. Налаштування делегата
Для налаштування делегата вкажіть наступні параметри:
- Recipient
- 
У полі Recipient вкажіть ідентифікатор отримувача повідомлення. Наприклад, для відправки повідомлення ініціатору процесу, можна використати JUEL-функцію initiator():${initiator().userName}Для надсилання повідомлення користувачу, який завершив попереднє завдання, використовуйте функцію completer():${completer('taskDefinitionId').userName}де taskDefinitionId— ID попередньої задачі.
- Realm
- 
Виберіть Realm для відправлення повідомлень, залежно від типу користувача, наприклад, CITIZENдля отримувачів послуг абоOFFICERдля надавачів.
- Subject
- 
Вкажіть тему повідомлення як текст. Наприклад, Автоматичне відправлення повідомлень у inbox-template-ubki. Це значення визначає заголовок повідомлення уinbox.
- Notification message template
- 
У полі Notification message template вкажіть назву шаблону повідомлення напряму, як константу. Наприклад, feature-inbox-template-ubki. Важливо, щоб назва збігалася із наявним шаблоном у регламенті вашого реєстру.Шаблон повідомлення можна також отримати динамічно, наприклад, як значення з форми процесу. Докладніше про це ви можете дізнатися на сторінці Відправлення повідомлень користувачам: Send User Notification v2. 
- Notification template model
- 
У полі Notification template model вкажіть змінну ${templateModel}, яка зберігає дані для заповнення шаблону. Ця змінна створюється попереднім Groovy-скриптом і включає значення полів форми, наприклад, дату відкриття кредиту (dateCredOpen) та ім’я кредитора (creditor).
- Notification Language
- 
У полі Notification Language вкажіть мову, наприклад, deдля німецької.Значення має відповідати стандарту ISO 639-1. Якщо поле порожнє, буде використана мова за замовчуванням у реєстрі. Для автоматичного вибору мови, обраної користувачем у Кабінеті, скористайтеся JUEL-функцією completer()і методомlanguage. Наприклад:${completer(<task_id>).language}де <task_id>— ідентифікатор завдання користувача у бізнес-процесі.
4. Приклад використання у бізнес-процесі
4.1. Опис бізнес-процесу
Цей бізнес-процес автоматизує відправлення повідомлень у inbox користувача. Процес включає два ключові етапи:
- 
Підготовка шаблону повідомлення. 
- 
Відправлення повідомлення користувачеві. 
| Де можна знайти приклад бізнес-процесу?Адміністратор Платформи може розгорнути для вас демо-реєстр — еталонний реєстр, що містить референтні та інші приклади файлів для створення цифрового регламенту. Він містить різноманітні елементи для розробки моделі даних, бізнес-процесів, UI-форм, аналітичної звітності, витягів, сповіщень, зовнішніх інтеграцій та багато іншого. Еталонний регламент з прикладами для України зберігається в репозиторії  Детальну інструкцію щодо розгортання демо-реєстру та отримання референтних прикладів моделювання ви знайдете на сторінці Розгортання демо-реєстру із референтними прикладами. Send User Notification — делегат, який використовується у всіх бізнес-процесах, що потребують автоматичного надсилання повідомлень. Процес можна знайти за ключовими словами — feature-auto-send-inbox. 
 У Кабінеті користувача бізнес-процес буде доступний у розділі Доступні послуги. | 
4.2. Кроки процесу
- 
Старт процесу: - 
Процес розпочинається подією Start Event, де ініціатором визначається користувач, який отримає повідомлення. У полі Start initiator вкажіть initiator. 
 
- 
- 
Підготовка шаблону повідомлення: - 
Виконується завдання Script Task з Groovy-скриптом для підготовки даних шаблону.  
- 
Скрипт формує об’єкт templateModelз поточною датою та ім’ям кредитора:import java.text.SimpleDateFormat def date = new Date() def dateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss") def templateModel = S([:], 'application/json') templateModel.prop("dateCredOpen", dateFormat.format(date)) templateModel.prop("creditor", "Monobank") execution.removeVariable('templateModel') set_transient_variable('templateModel', S(templateModel, 'application/json'))Цей скрипт виконує такі кроки: 
- 
Створює об’єкт templateModelта додає до нього поляdateCredOpen(з поточною датою) таcreditor(значення —Monobank).
- 
Зберігає templateModelяк транзитну змінну для використання у наступному завданні.
 
- 
- 
Відправка повідомлення: Виконується завдання Send Task з делегатом Send User Notification для відправки сформованого повідомлення користувачу. Опис налаштувань див. у розділі вище.  
4.3. Результат виконання
Цей бізнес-процес автоматизує відправлення повідомлення, яке містить дані про поточну дату та кредитора. Користувач отримує повідомлення у скриньку повідомлень (inbox) Кабінету із контекстуально налаштованим змістом та визначеним заголовком.
| Детальніше про локалізовані повідомлення у реєстрі див. на сторінці registry-admin/user-notifications/localized-notifications.adoc. | 
