Отметим: когда встроенных приложений 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, // > $90–130
formattedDate: new Date(order.created_at).toLocaleDateString('ru-RU', {
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-триггерами. Стоимость простого Code by Zapier — от $140–200, разработка Custom App с несколькими триггерами и действиями — от $450–650. Итоговая стоимость зависит от сложности API, числа триггеров и требований к авторизации. После внедрения команда экономит в среднем от 10 до 20 часов ручной работы в неделю. Свяжитесь с нами — оценим ваш проект за 1 рабочий день и предложим оптимальный путь автоматизации.







