Розроблення користувацьких сценаріїв Make
Користувацькі сценарії Make виходять за межі простого тригер → дія: включають трансформацію даних, умовну логіку, виклики кількох API, ітерацію по масивам та обробку помилок.
Робота з даними через функції Make
Make має вбудовану функціональну мову для трансформацій:
# Рядки
{{upper(1.name)}} → "IVAN"
{{substring(1.email; 0; indexOf(1.email; "@"))}} → "ivan"
{{replace(1.phone; " "; "")}} → "+79001234567"
# Числа
{{round(1.price * 1.19; 2)}} → 1190.00 (з ПДВ 19%)
{{formatNumber(1.total; 2; "."; " ")}} → "1 234 567.89"
# Дати
{{formatDate(now; "DD.MM.YYYY HH:mm")}} → "28.03.2026 14:30"
{{addDays(1.created_at; 30)}} → дата + 30 днів
# Масиви
{{length(1.items)}} → 5
{{map(1.items; "product_id")}} → [1, 2, 3, 4, 5]
{{sum(map(1.items; "price"))}} → сума цін
Сценарій: синхронізація замовлень між системами
Завдання: синхронізувати нові замовлення з WooCommerce у 1С через REST API щогодини, з повідомленнями про помилки в Telegram.
[Schedule: щогодини]
│
[WooCommerce: Get Orders
status=processing
after={{addHours(now; -1)}}]
│
[Router]
├── [Фільтр: order_count > 0]
│ │
│ [Iterator: для кожного замовлення]
│ │
│ [HTTP POST: 1C API
│ /api/orders/create]
│ │
│ [Router: за статусом відповіді]
│ ├── [201: оновити WooCommerce
│ │ meta _synced_to_1c = true]
│ └── [Помилка: Telegram
│ orderId + повідомлення про помилку]
│
└── [Фільтр: order_count == 0]
│
[ігнорувати]
Користувацька програма (HTTP + OAuth2)
Для API без вбудованого модуля Make — використовуйте користувацький HTTP з аутентифікацією:
// Конфігурація OAuth2
{
"type": "oauth2",
"clientId": "{{connection.clientId}}",
"clientSecret": "{{connection.clientSecret}}",
"authorizeUrl": "https://api.example.com/oauth/authorize",
"accessTokenUrl": "https://api.example.com/oauth/token",
"scope": "read write",
"tokenPlacement": "header",
"tokenHeaderName": "Authorization",
"tokenHeaderPrefix": "Bearer "
}
Робота з JSON та XML
// Розбір JSON у сценарії Data Store
// Вхідний текст: '{"orders": [{"id": 1}, {"id": 2}]}'
// Використовуйте функцію parseJSON Make
{{parseJSON(1.response_body).orders}}
// Для XML — використовуйте модуль XML → JSON
// Потім працюйте з об'єктом
{{2.root.order[].id}}
Data Store (вбудоване сховище)
Make Data Store — проста база даних key-value для зберігання стану між запусками:
// Зберігайте timestamp останньої синхронізації
// При кожному запуску:
1. Прочитайте last_sync_at з Data Store
2. Зробіть запит з after=last_sync_at
3. Обробіть дані
4. Запишіть поточний час у Data Store
Обробка Rate Limits
[HTTP Request]
│
[Router: статус 429]
│
[Sleep: 60 секунд] ←── (вбудований модуль очікування)
│
[HTTP Request] ←── повторна спроба
Строки виконання
Користувацький сценарій середної складності (10–15 модулів) — 2–4 дні. Складний з Data Store, кількома API та обробкою помилок — 1 тиждень.







