Перейти к основному содержимому

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

Получение всех правил

GET api/mailings

Response:

{
"status": "ok",
"timestamp": 1684398090000,
"data": [
{
"id": 1,
"email_template_id": 28,
"sms_template_id": null,
"type": "operational",
"verified": true,
"rule": "newClient",
"send_at": "00:00:00",
"cron_schedule": null,
"daily": true,
"request": null,
"stop_on_weekend": false,
"client_type_flags": 7,
"processed_at": "2023-05-17",
"created_at": null,
"updated_at": "2023-05-17 09:09:52",
"deleted_at": null,
"expression": null
}
]
}

Получение правила по ID

GET api/mailings/{mailingID}

Создание правила

POST api/mailings

Request body: mailing

Изменение правила

PUT api/mailings/{mailingId}

Request body: mailing

Удаление правила

DELETE api/mailings/{mailingId}

Объект mailing

FieldRequiredTypeDescription
sms_template_idЕсли не указан email_template_idintID sms сообщения
email_template_idЕсли не указан sms_template_idintID email сообщения
typeenum(operational,marketing)Тип сообщения
rulestringПравило отправки уведомления
send_attime(H:i:s)Время отправки ежедневных уведомлений
cron_schedulestringКрон запись для отправки пользовательских уведомлений. Работает только при правиле custom
dailybooleanПризнак ежедневных уведомлений
requestobjectОбъект для получения сущностей для отправки пользовательских уведомлений
stop_on_weekendbooleanПризнак отклчения уведомлений в выходные
expressionstringВыражение для дополнительной проверки правила

Пользовательские уведомления

Для отправки таких уведомлений необходимо использовать поля cron и request

Рассмотрим пример отправки уведомления на 8-ое марта всем женщинам с активными контрактами. daily=false

cron="* * 8 3 *" - Данная запись обеспечиает обработку данного правила только 8-го числа, 3-го месяца

{
"request": {
"url": "main/contracts/partial-load",
"body": {
"fields": [
"client.id",
"client.mobilePhone",
"client.email"
],
"orderBy": "id",
"countFrom": 0,
"searchFields": [
{
"field": "issueDate",
"value": "not null"
},
{
"field": "closeDate",
"value": "null"
},
{
"field": "client.sex.id",
"value": "101252"
}
],
"orderByFields": [],
"orderDirection": "DESC"
},
"emailKey": "client.email",
"phoneKey": "client.mobilePhone",
"clientIdKey": "client.id"
}
}

где,

  • url - Адрес в ядре, куда надо запрашивать для полуения данных
  • body - Тело запроса для получения всех сущностей для отпарвки
  • emailKey - Путь до поля эл. почты клиента после выполнения запроса POST в url с телом body
  • phoneKey - Путь до поля телефона клиента
  • clientIdKey - Путь до поля идентификатора клиента