Розробка кастомних Zap-інтеграцій Zapier

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Розробка кастомних Zap-інтеграцій Zapier
Середня
~3-5 робочих днів
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Розроблення користувацьких Zap-інтеграцій Zapier

Коли вбудованих додатків Zapier недостатньо, розробляються користувацькі Zapier Apps (через Zapier CLI) або використовуються Webhooks + Code by Zapier для користувацької логіки.

Code by Zapier — JavaScript у Zap

Вбудований Code step дозволяє писати JavaScript прямо в Zap:

// Вхідні дані з попереднього кроку
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 RUB
  formattedDate: new Date(order.created_at).toLocaleDateString('uk-UA', {
    day: 'numeric', month: 'long', year: 'numeric'
  })
};

Користувацька програма Zapier (Zapier CLI)

Для публічної інтеграції або повторного використання — повнофункціональна Zapier App:

npm install -g zapier-platform-cli
zapier login
zapier init my-app --template=trigger
cd my-app
// 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 (приватна програма)
zapier push

# Просування в публічну версію
zapier promote 1.0.0

Аутентифікація в користувацькій програмі

// authentication.js — OAuth2
module.exports = {
  type: 'oauth2',
  oauth2Config: {
    authorizeUrl: {
      url: 'https://example.com/oauth/authorize',
      params: { client_id: '{{process.env.CLIENT_ID}}', scope: 'read write' }
    },
    getAccessToken: {
      url: 'https://example.com/oauth/token',
      body: {
        code: '{{bundle.inputData.code}}',
        client_id: '{{process.env.CLIENT_ID}}',
        client_secret: '{{process.env.CLIENT_SECRET}}',
      }
    },
    refreshAccessToken: {
      url: 'https://example.com/oauth/token',
      body: {
        refresh_token: '{{bundle.authData.refresh_token}}',
        grant_type: 'refresh_token',
      }
    },
  },
};

Строки виконання

Code by Zapier для користувацької трансформації — кілька годин. Повнофункціональна користувацька Zapier App з 2–3 триггерами та 3–5 дій — 1–2 тижні.