Отправка уведолмений по правилам
Получение всех правил
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
Field | Required | Type | Description |
---|---|---|---|
sms_template_id | Если не указан email_template_id | int | ID sms сообщения |
email_template_id | Если не указан sms_template_id | int | ID email сообщения |
type | ✅ | enum(operational,marketing) | Тип сообщения |
rule | ✅ | string | Правило отправки уведомления |
send_at | ✅ | time(H:i:s) | Время отправки ежедневных уведомлений |
cron_schedule | ❌ | string | Крон запись для отправки пользовательских уведомлений. Работает только при правиле custom |
daily | ✅ | boolean | Признак ежедневных уведомлений |
request | ❌ | object | Объект для получения сущностей для отправки пользовательских уведомлений |
stop_on_weekend | ✅ | boolean | Признак отклчения уведомлений в выходные |
expression | ❌ | string | Выражение для дополнительной проверки правила |
Пользовательские уведомления
Для отправки таких уведомлений необходимо использовать поля 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
- Путь до поля идентификатора клиента