Фільтруйте, скорочуйте й перетворюйте запит,
не пишучи коду.
Конвеєр — це короткий список кроків: відкинути запит, якщо він не збігається, вилучити чи додати поля, побудувати нове тіло за шаблоном, задати заголовки. Зберіть його в консолі або через API, протестуйте, зберігайте версії, запускайте через API або посилайтеся на нього за ідентифікатором із продукту, що надсилає запити.
Зберіть, протестуйте, а тоді запускайте там, де потрібно.
Конвеєр — це JSON-документ, який під час збереження перевіряється повністю. Жоден крок не виконує вашого коду, тож жоден не може зациклитися, чекати чи звертатися назовні.
Зберіть конвеєр
Додайте кроки у формі в консолі, вставте їх як JSON або почніть із шаблону: повідомлення Slack, Discord і Teams, Keep only these fields, Drop personal data. Документ, який ніколи не зміг би виконатися, відхиляється під час збереження із зазначенням кроку, шляху й причини.
Протестуйте
Запустіть те, що в редакторі, на вставленому запиті й подивіться, які тіло й заголовки було б надіслано, який крок відкинув запит або чому запуск провалився. Тест нічого не зберігає й нічого не рахує.
Зберігайте версії
Збереження нового вмісту додає версію, а версія ніколи не змінюється. Той самий вміст нової версії не додає, а відновлення старої версії — це повторне збереження її вмісту.
Запускайте
Викличте API із запитом і прочитайте, що зробив конвеєр, або посилайтеся на конвеєр за ідентифікатором із Webhooks, який виконує його у власному процесі перед кожною доставкою.
Transforms сам нічого не надсилає й нічого не зберігає з того, на чому виконує конвеєр. Це не ретранслятор: Webhooks доставляє події, Request Bins пересилає запити, а Transforms виконує конвеєр і відповідає, що той зробив.
Шість кроків, що виконуються в порядку запису.
Їх вистачає для завдань, заради яких зазвичай і створюють трансформації. Конвеєр не має циклів, годинника й мережі, тож той самий конвеєр на тому самому запиті завжди робить те саме.
Filter
Залишайте запит, лише якщо він збігається, або відкидайте, якщо збігається. Перевіряйте поля, вкладені обʼєкти й масиви операторами на кшталт $gte, $in і $contains, а поєднуйте їх через $and, $or і $not.
Remove fields
Вилучайте поля з тіла за шляхом. * відповідає одному рівню, а ** — будь-якій глибині, тож **.email вилучає кожне поле email, хоч би де воно було.
Set fields
Додавайте чи перезаписуйте поля значеннями, написаними невеликою мовою шаблонів: {{ data.id }} вставляє значення як текст, а {"$ref": "data.amount"} вставляє його разом із типом.
Reshape the body
Замінюйте тіло тим, яке пишете самі, із фільтрами на кшталт money(), date(), truncate() і join(). Саме так шаблон створює повідомлення Slack, Discord чи Teams.
Headers
Задавайте заголовки зі значеннями за шаблоном, вилучайте й перейменовуйте їх. Облікові дані сюди не йдуть, бо прочитаний конвеєр показав би їх: для них є наступний крок.
Credential
Вкажіть, що до запиту додається bearer-токен, Basic-автентифікація чи API-ключ, і назвіть слот, з якого береться значення. Кроки облікових даних виконуються останніми, тож жоден інший крок не може їх прочитати.
Шаблони
Повідомлення Slack, Discord і Teams, які текст події не може відформатувати чи передчасно завершити, а також Keep only these fields і Drop personal data. Збереження шаблону створює вашу власну копію.
Фіксовані межі
20 кроків, тіло на 256 KiB і 100,000 прочитаних чи скопійованих значень за запуск, на кожному плані. Понад межу запуск провалюється зі зрозумілою причиною. Він ніколи не зависає.
Надішліть йому запит. Прочитайте, що зробив конвеєр.
Цей конвеєр залишає оплачені рахунки на суму від $1,000, вилучає email клієнта й будь-який номер телефону, а також додає два поля й заголовок. Запуск відповідає результатом і нічого з нього не зберігає.
Конвеєр
{
"version": 1,
"steps": [
{ "filter": { "type": "invoice.paid", "data": { "amount": { "$gte": 100000 } } } },
{ "drop": ["data.customer.email", "**.phone"] },
{ "set": {
"event_type": "{{ type }}",
"amount_display": "{{ data.amount | money(data.currency) }}"
} },
{ "headers": { "set": { "X-Event-Type": "{{ type }}" } } }
]
}Запуск
# Запустіть збережений конвеєр на одному запиті
curl -X POST "https://transforms.nimbusnexus.net/v1/pipelines/$PIPELINE_ID/run" \
-H "Authorization: Bearer $TRANSFORMS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"body":{"type":"invoice.paid","data":{"id":"in_42","amount":150000,"currency":"usd","customer":{"name":"Ana Silva","email":"[email protected]","phone":"+1 202 555 0142"}}}}'Відповідь
{
"status": "ok",
"version": 3,
"body": {
"type": "invoice.paid",
"data": {
"id": "in_42",
"amount": 150000,
"currency": "usd",
"customer": { "name": "Ana Silva" }
},
"event_type": "invoice.paid",
"amount_display": "1,500.00 USD"
},
"body_changed": true,
"headers": { "X-Event-Type": "invoice.paid" },
"query": {},
"step": null,
"note": null,
"reason": null,
"error": null,
"duration_ms": 0.4
}Transforms не зберігає облікових даних. Їх зберігає продукт, що надсилає запити.
Конвеєр може вказати, що до запиту додаються облікові дані, а прочитаний конвеєр не показує значення, бо його там немає. Щоб надіслати їх, запускайте конвеєр за посиланням із продукту, що надсилає запити.
Слот, а не значення
Крок облікових даних вказує їхній тип і місце в запиті та називає слот. Документ містить цю назву й нічого більше, тож прочитаний конвеєр ніколи не покаже облікових даних.
Заповнюється там, де надсилається
Продукт, який запускає конвеєр за посиланням, зіставляє слот із секретом у власному сховищі, під власним ключем, і надсилає його на власні URL. Поза цим продуктом слот нічого не означає.
Тут показуються прихованими
Test і API запуску показують, що додав би крок, як Authorization: Bearer ••••. Жоден із них не може надіслати облікові дані, бо в Transforms їх немає.
Спершу видно, де він виконується
Прочитаний конвеєр містить перелік продуктів, які запускають його за посиланням, і версію, яку виконує кожен. Нова версія з кроком облікових даних або видалення конвеєра спершу мають назвати кожен із них.
Завдання, для яких він потрібен, і жодне не потребує скрипту.
API партнера очікує bearer-токен або API-ключ. Крок облікових даних це вказує, а продукт, що надсилає запити, підставляє їх зі своїх секретів.
CRM хоче три поля з власними назвами. Крок зміни формату будує саме таке тіло з події й зберігає тип кожного значення.
Підписка зіставляється лише за типом події. Фільтр читає ще й payload, тож «оплачені рахунки на суму від $1,000» — це один крок.
Кожен шаблон — це крок зміни формату й заголовок. Він працює з будь-якою подією, і ніщо в події не може відформатувати повідомлення, когось згадати чи передчасно завершити блок коду.
Приберіть персональні дані на будь-якій глибині, перш ніж їх побачить сервіс аналітики, а заодно додайте тип події в заголовок.
Посилайтеся на конвеєр за ідентифікатором із Webhooks. Ендпоінти виконують його поточну версію у власному процесі Webhooks, а кожна нова версія доходить до них без змін у жодному ендпоінті.
Конвеєри на кожному плані, включно з Free.
Кожен план має всі шість кроків, шаблони, Test, API запуску й запуск за посиланням. Платний план дає більше конвеєрів і слотів облікових даних, зберігає більше версій і виконує більше запусків на хвилину.
Free
Достатньо, щоб зібрати, протестувати й запустити перші конвеєри.
$0
- 5 конвеєрів
- 5 слотів облікових даних
- 10 збережених версій на конвеєр
- 60 запусків на хвилину
Starter
Для продукту, який виконує конвеєри в продакшні.
$9/ місяць
$86.40 / рік — економія 20%
- 25 конвеєрів
- 25 слотів облікових даних
- 25 збережених версій на конвеєр
- 600 запусків на хвилину
Pro
Більше конвеєрів, більше версій, місце для цілої команди.
$29/ місяць
$278.40 / рік — економія 20%
- 100 конвеєрів
- 100 слотів облікових даних
- 50 збережених версій на конвеєр
- 3,000 запусків на хвилину
Custom
Зобовʼязання щодо обсягів, індивідуальні ліміти й відповідні умови.
Договірна ціна
- 1,000 конвеєрів
- 1,000 слотів облікових даних
- 100 збережених версій на конвеєр
- 12,000 запусків на хвилину
- Потрібен командний акаунт
Запуски рахуються, але не тарифікуються, а консоль і GET /v1/usage показують їхню кількість за місяць. Запуск понад ліміт плану відповідає 429 із зазначенням, скільки чекати, а Test має спільний із запусками ліміт. Запуск у продукті, що посилається на конвеєр, зараховується до використання цього продукту. Версія, яку продукт закріпив, зберігається понад передбачену планом кількість, як і пʼять старіших версій, які продукт запускав протягом останніх 30 днів пізніше за інші.
- Усі шість кроків
- Шаблони для Slack, Discord і Teams
- Keep only these fields, Drop personal data
- Тест перед збереженням
- Версії, які ніколи не змінюються
- API запуску
- Запуск за посиланням із Webhooks
- Ізоляція в межах робочого простору
Перш ніж зібрати свій перший конвеєр.
Пов’язане
Куди далі
Зберіть конвеєр і подивіться, що він робить із запитом.
Free включає 5 конвеєрів і 60 запусків на хвилину, з усіма кроками й усіма шаблонами. Спершу спробуйте конвеєр у Playground, без акаунта.