Цей action дозволяє робити розгалуження в залежності від стану змінних в state

Приклад самої простої конфігурації, так звана «проста умова»:

{
  "if": {
    "{{total}}>3": "gt3"
    }
}

Тут ми робимо одну єдину умову - якщо параметр більше константи, action поверне подію

Якщо ви бажаєте порівнювати текстові плейсхолдери з текстовими же значеннями, то потрібно брати рядки в 'одинарні лапки' ось так

{
  "if": {
    "'{{name}}'=='John'": "ok"
    }
}

<aside> 🚧 Порівняння дат, regexp, квантори та інші варіанти порівняння в планах, але поки що не реалізовані, якщо вам не достатньо якоїсь можливості - напишіть нам

</aside>

Action може також встановлювати інші плейсхолдери, для цього використовуйте параметр set

{
  "if": {
    "{{currency_mapped_obj.total}}>3": "gt3",
    "set": {
      "newplaceholder": "(({{currency_mapped_obj.total}}*2))"
    }
  }
}

Можна також зазначити необмежену кількість ifelse блоків

{
  "if": {
    "{{currency_mapped_obj.total}}>3": "gt3",
    "set": {
      "newplaceholder": "(({{currency_mapped_obj.total}}*2))"
    }
  },
  "elseif": {
     "{{placeholder2}}!=1":"ne1"
  }
}

Якщо потрібно побудувати логіку «ТА» (виконуються всі умови) або «АБО» (виконується хоча б одна з умов), прості умови доведеться замінити більш складними конструкціями

{
  "if": {
    "and": [
      "{{currency_mapped_obj.total}}>=1",
      "{{currency_mapped_obj.total}}<=2"
    ],
    "event": "e2",
    "set": {
      "placeholder2": "e2"
    }
  }
}

Використовуються масиви

І все це можна об’єднати в одну велику конфігурацію

{
  "if": {
    "{{currency_mapped_obj.total}}>3": "gt3",
    "set": {
      "newplaceholder": "(({{currency_mapped_obj.total}}*2))"
    }
  },
  "elseif": {
    "and": [
      "{{currency_mapped_obj.total}}>=1",
      "{{currency_mapped_obj.total}}<=2"
    ],
    "event": "e2",
    "set": {
      "placee2": "e2"
    }
  },
	"else":{
		"event": "e3",
    "set": {
      "placee3": "e3"
    }
	}
}

Зверніть увагу : else не обов’язковий, його можна взагалі не використовувати, тому що else буде спрацьовувати якщо не спрацював жоден з if або elseif

Також зверніть увагу, що цей action можна використовувати просто для маніпуляції даними state або зазначити умову, яка завжди виконується, наприклад так: