Відзначимо: коли вбудованих додатків Zapier перестає вистачати, бізнес впирається в рутину. CRM не синхронізується з кастомною ERP, замовлення з інтернет-магазину не надходять до складської системи, а менеджери вручну переносять дані між таблицями — це забирає до 20 годин на тиждень. Ми розробляємо кастомні Zap-інтеграції під ключ: від простих скриптів у Code by Zapier до повноцінних додатків, що публікуються в маркетплейсі. Досвід — понад 5 років в автоматизації, десятки впроваджень. Наші рішення скорочують ручну роботу на 95% і обробляють до 10 000 запитів на день.
Чому стандартних інтеграцій недостатньо?
Стандартні додатки закривають 80% типових задач. Решта 20% — кастомні формати даних, нестандартні API, складні умови. Наприклад, інтернет-магазин передає замовлення з полями product_code, price_cents і знижками у вигляді масиву. Вбудованими засобами це не обробити — потрібна ручна трансформація через Code by Zapier. Ще одна проблема: штатні інтеграції не вміють коректно обробляти OAuth2 з refresh-токенами, що призводить до частих збоїв. За даними Zapier, 30% користувачів стикаються з помилками авторизації при використанні готових рішень.
Які дані можна трансформувати в Code by Zapier?
Code by Zapier виконує JavaScript прямо в Zap. Вхідні дані передаються через inputData, результат — через output. Типові задачі: перерахунок валют, об'єднання полів, фільтрація масиву, розрахунок підсумків. Ось приклад обробки замовлення:
// Вхідні дані з попереднього кроку
const orderData = inputData.orderPayload; // JSON-рядок
const order = JSON.parse(orderData);
// Трансформація
const lineItems = order.items.map(item => ({
sku: item.product_code,
name: item.product_name,
qty: item.quantity,
price: (item.price_cents / 100).toFixed(2),
total: ((item.price_cents * item.quantity) / 100).toFixed(2)
}));
const totalDiscount = order.discounts.reduce((sum, d) => sum + d.amount_cents, 0);
// Повертаємо дані для наступних кроків
output = {
lineItemsJson: JSON.stringify(lineItems),
lineItemsCount: lineItems.length,
subtotal: (order.subtotal_cents / 100).toFixed(2),
discount: (totalDiscount / 100).toFixed(2),
total: (order.total_cents / 100).toFixed(2),
isHighValue: order.total_cents > 1000000, // > 10 000 ₽
formattedDate: new Date(order.created_at).toLocaleDateString('uk-UA', {
day: 'numeric', month: 'long', year: 'numeric'
})
};
Цей підхід у 5 разів швидший за обробку даних через зовнішні сервіси, оскільки все виконується всередині платформи без зайвих HTTP-запитів.
Як створити Custom Zapier App з нуля?
Для публічної інтеграції або повторного використання — повноцінний Zapier App на Zapier CLI. Встановлюємо інструмент та ініціалізуємо проект:
npm install -g zapier-platform-cli
zapier login
zapier init my-app --template=trigger
cd my-app
Тригери та дії
Тригер з підпискою на webhook:
// triggers/newOrder.js
const subscribeHook = async (z, bundle) => {
const data = {
url: bundle.targetUrl,
event: 'order.created'
};
const response = await z.request({
url: `${process.env.BASE_URL}/webhooks`,
method: 'POST',
body: data,
});
return response.data;
};
const unsubscribeHook = async (z, bundle) => {
const webhookId = bundle.subscribeData.id;
return z.request({
url: `${process.env.BASE_URL}/webhooks/${webhookId}`,
method: 'DELETE',
});
};
const getOrder = async (z, bundle) => {
const response = await z.request({
url: `${process.env.BASE_URL}/orders/${bundle.cleanedRequest.id}`,
});
return [response.data];
};
module.exports = {
key: 'new_order',
noun: 'Order',
display: {
label: 'New Order',
description: 'Triggers when a new order is created.',
},
operation: {
type: 'hook',
performSubscribe: subscribeHook,
performUnsubscribe: unsubscribeHook,
perform: getOrder,
sample: { id: 1, total: 5000, status: 'paid' },
},
};
Дія створення контакту:
// creates/createContact.js
const createContact = async (z, bundle) => {
const response = await z.request({
url: `${process.env.BASE_URL}/contacts`,
method: 'POST',
body: {
email: bundle.inputData.email,
name: bundle.inputData.name,
phone: bundle.inputData.phone,
},
});
return response.data;
};
module.exports = {
key: 'create_contact',
noun: 'Contact',
display: {
label: 'Create Contact',
description: 'Creates a new contact.',
},
operation: {
inputFields: [
{ key: 'email', required: true, type: 'string' },
{ key: 'name', required: true, type: 'string' },
{ key: 'phone', required: false, type: 'string' },
],
perform: createContact,
sample: { id: 1, email: '[email protected]' },
},
};
Тестування та деплой
# Тест окремого тригера
zapier test
# Деплой у Zapier (private app)
zapier push
# Promote в public
zapier promote 1.0.0
Згідно з документацією Zapier, Custom App дозволяє реалізувати довільну логіку без обмежень вбудованих рішень.
Що входить у розробку кастомної інтеграції?
| Компонент | Code by Zapier | Custom Zapier App |
|---|---|---|
| Складність | Години | 1–2 тижні |
| Код | JavaScript | TypeScript/JavaScript |
| Тестування | Вручну в Zap | Автоматизоване zapier test |
| Публікація | Не потрібна | zapier push / zapier promote |
| Підтримка OAuth | Ні | Так |
Deliverables:
- Репозиторій з кодом на GitHub
- Документація з налаштування та використання
- Доступи до тестового середовища
- Навчання команди (1–2 години)
- Гарантія на інтеграцію — 30 днів після здачі
Типові помилки при розробці Custom App
-
Невірний
bundle.targetUrl— тригер не отримує webhook. Перевірте, що URL доступний ззовні. -
Відсутність обробки помилок — Zap падає з silent fail. Використовуйте
try/catchта логування. - Жорстко закодовані credentials — використовуйте
process.envабоbundle.authData.
Терміни та вартість
- Проста трансформація в Code by Zapier — від декількох годин.
- Custom App з 2–3 тригерами та 3–5 actions — від 1 до 2 тижнів.
- Складна інтеграція з нестандартним API — до 4 тижнів.
Вартість розраховується індивідуально. Напишіть нам — оцінимо проект за 1 робочий день. Замовте розробку та отримайте безкоштовну консультацію з архітектури інтеграції.
Порівняння підходів
| Критерій | Code by Zapier | Custom Zapier App |
|---|---|---|
| Час розробки | Від 2 годин | Від 5 днів |
| Можливість повторного використання | Ні | Так (публікація) |
| Продуктивність | Середня | Висока (у 5 разів швидше) |
| Підтримка командою | Не потрібна | Навчання 1-2 години |
Кому підійде розробка кастомних Zapier-інтеграцій?
Кастомні Zap-інтеграції актуальні для компаній, які автоматизують бізнес-процеси та вже використовують Zapier, але зіткнулися з обмеженнями стандартних рішень. Типові клієнти: інтернет-магазини, яким потрібна синхронізація замовлень з ERP; SaaS-продукти, що публікують власний коннектор у Zapier Marketplace; B2B-компанії, що автоматизують звітність та передачу даних між системами.
Ми працюємо з проектами будь-якого масштабу: від невеликих скриптів у Code by Zapier до повноцінних приватних додатків з OAuth2 та webhook-тригерами. Орієнтовна вартість залежить від складності API, кількості тригерів та вимог до авторизації. Після впровадження команда економить у середньому від 10 до 20 годин ручної роботи на тиждень. Зв'яжіться з нами — оцінимо ваш проект за 1 робочий день і запропонуємо оптимальний шлях автоматизації.







