Фильтрация уведомлений
Доступны два способа фильтрации уведомлений: При наличии в запросе одновременно и тегов, и фильтра приоритет отдается фильтру.

Теги
Теги при подписке указываются в формате: tag_a+tag_b*tag_c, что означает: "сообщение содержит тег tag_a или содержит tag_b и tag_c одновременно". Оператор "+" — это логическое "или", оператор "*" — логическое "и". Допустимые символы в тегах: a-zA-Z0-9_.

Правила фильтрации
Транспорт нотификаций позволяет применять сложные фильтры - цепочки правил в формате JSON. Перед отправкой сервер последовательно применяет каждое правило - если условие истинно, то выполняется указанное действие и на этом применение фильтра заканчивается. Если ложны все условия во всей цепочке, то выполнится действие по умолчанию, которое тоже можно задать.

Примеры задач, которые можно решить с помощью фильтров:
Цепочка правил задается в формате JSON:
{
  "rules": [
    { "if": <condition>, "do": <action> },
    { "if": <condition>, "do": <action> },
    ...
    { "do": <default_action> }
  ],
  "vars": {
      "var1": {<some complex condition>},
      "var2": {<another complex condition>}
      ...
  }
}

Возможные условия: Возможные действия:
Пример простого фильтра:
{
  "rules": [
    { "if": { "operation": { "$eq": [ "O1" ] } }, "do": "send_bright" },
    { "if": { "$has_tags": ["t1", "t2", "t3"] }, "do": "send_silent" },
    { "do": "skip" }
  ],
  "vars": {}
}

Сложные условия можно выносить в переменные:
{
  "rules": [
    { "if": "NewMail & Inbox & Tabs", "do": "send_bright" },
    { "if": "NewMail & Folders", "do": "send_bright" },
    { "do": "skip" }
  ],
  "vars": {
    "NewMail": { "$event": [ "insert" ] },
    "Folders": { "fid": { "$eq": ["1", "2", "5"] } },
    "Tabs": { "tab": { "$eq": ["defalut"] } },
    "Inbox": { "fid": { "$eq": "1" } }
  }
}
Если вы не используете переменные - оставьте объект vars пустым.