Skip to content

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

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

GET api/mailings

Response:

json
{
  "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-го месяца

json
{
  "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 - Путь до поля идентификатора клиента