Действия имеют два смысла в рамках интеграции с Альбато:
В целом, настройка действий происходит аналогично настройке триггеров
Но т.к. обычно действия представляют собой передачу данных В Агбис, т.е. один нюанс, связанный с тем, что мы должны передать данные в URLEncoded-формате. Обычно эти данные должны быть в теле как JSON (в разделе триггеров уже было упомянуто, что Albato не умеет "из коробки" сочетать JSON и URLEncoded), поэтому обычно на вкладке Request нужно настроить preScript для осуществления URLEncoded:
if(data){
Object.entries(data).forEach(([key, value]) => {
if(value){
data[key] = encodeURI(value)
}
})
}
Ну и не всегда нужно делать URLDecode при обработке ответа. Тут уже смотреть по контексту команды. Если всё же нужно, ниже продублирован код:
function decodeData(item) {
if (Array.isArray(item)) {
// Если это массив, обрабатываем каждый элемент
item.forEach(decodeData);
} else if (typeof item === 'object' && item !== null) {
// Если это объект, проходим по его ключам
for (const key in item) {
if (Object.prototype.hasOwnProperty.call(item, key)) {
const value = item[key];
if (typeof value === 'string') {
// Если значение - строка, декодируем ее
item[key] = decodeURIComponent(value);
} else if (typeof value === 'object' && value !== null) {
// Если значение - объект или массив, рекурсивно вызываем функцию
decodeData(value);
}
}
}
}
}
// Запускаем декодирование для всего массива data
decodeData(data);