Custom Make Scenarios: When Standard Modules Fall Short
The standard Make module is easy to set up in minutes, but when you need to process an array of hundreds of orders, call multiple APIs in a specific sequence, handle errors, and preserve state between runs—a single trigger and action won't suffice. For instance, one of our clients spent 2 hours daily manually exporting orders from WooCommerce to 1C. After implementing a custom scenario, the time dropped to 10 minutes, and errors virtually disappeared. This resulted in significant savings by reallocating resources. If you need a similar result, contact us—we will develop a scenario tailored to your business logic.
Problems We Solve with Custom Scenarios
Custom scenarios go beyond simple trigger → action: they include data transformation, conditional logic, multiple API calls, array iteration, and error handling. Here are typical complex tasks:
-
Array operations: For example, summing the cost of all items in an order and applying a discount. Built-in functions like
map,sum, andfilterhandle this. - Error handling: If an API returns 500, the scenario should retry after one minute. We configure a router based on response statuses and send a Telegram notification.
- Non-module API calls: For a custom API, we set up an HTTP module with OAuth2, Basic Auth, or API key.
Error handling is built as follows: the router checks the HTTP response status. If it's 429 (Too Many Requests), the scenario waits 60 seconds and retries. If it's 5xx, it logs the error to Data Store and sends a Telegram notification. This prevents data loss and simplifies monitoring.
Why Standard Make Modules Fall Short for Complex Logic
Standard modules are designed for simple chains: get data → process → send. When you need to combine data from multiple sources, apply complex filters, or perform transactional operations with rollback on error, custom logic is necessary. Custom scenarios enable arbitrary business logic: branching, loops, waits, and external service calls with authorization.
How to Automate WooCommerce to 1C Order Synchronization
Task: synchronize new orders from WooCommerce to 1C via REST API every hour, with error notifications in Telegram. The scenario includes:
[Schedule: every hour] | [WooCommerce: Get Orders status=processing after={{addHours(now; -1)}}] | [Router] ├── [Filter: order_count > 0] │ | │ [Iterator: for each order] │ | │ [HTTP POST: 1C API │ /api/orders/create] │ | │ [Router: by response status] │ ├── [201: update WooCommerce │ | meta _synced_to_1c = true] │ └── [Error: Telegram │ orderId + error message] │ └── [Filter: order_count == 0] | [ignore] This custom Make scenario processes orders three times faster than manual export and reduces errors by 90%. Time savings allow reallocating resources to more critical tasks. Order development of such a scenario—we will configure the integration for your systems.
Transforming Data with Make Functions
Make has a built-in functional language for transformations. Here are the key tools:
# Strings {{upper(1.name)}} → "IVAN" {{substring(1.email; 0; indexOf(1.email; "@"))}} → "ivan" {{replace(1.phone; " "; "")}} → "+79001234567" # Numbers {{round(1.price * 1.19; 2)}} → 1190.00 (with 19% VAT) {{formatNumber(1.total; 2; "."; " ")}} → "1 234 567.89" # Dates {{formatDate(now; "DD.MM.YYYY HH:mm")}} → "28.03.2026 14:30" {{addDays(1.created_at; 30)}} → date + 30 days # Arrays {{length(1.items)}} → 5 {{map(1.items; "product_id")}} → [1, 2, 3, 4, 5] {{sum(map(1.items; "price"))}} → sum of prices What If an API Doesn't Have a Ready Module?
For APIs without a built-in module, we use a custom HTTP request with authorization. Example OAuth 2.0 configuration per the OAuth 2.0 specification:
{ "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 " } Working with JSON and XML
// Parse JSON in scenario's Data Store // Incoming text: '{"orders": [{"id": 1}, {"id": 2}]}' // Use Make's parseJSON function {{parseJSON(1.response_body).orders}} // For XML — use XML → JSON module // Then work as with an object {{2.root.order[].id}} Handling Rate Limits in Make
If an API returns 429 Too Many Requests, the scenario waits and retries:
[HTTP Request] | [Router: status 429] | [Sleep: 60 seconds] ←── (built-in wait module) | [HTTP Request] ←── retry What's Included in Our Work
We provide the full cycle: requirements analysis, scenario design, implementation with modular testing, documentation, team training, and one month of post-release support. Step-by-step process:
- Requirements analysis: we study your business logic and integrations.
- Scenario design: we create a schema with routers and error handling.
- Implementation and testing: we write the scenario and test with sample data.
- Documentation and training: we prepare instructions and train your staff.
- Support: one month of free maintenance.
| Criteria | Standard Module | Custom Scenario |
|---|---|---|
| Flexibility | Limited by module type | Full control |
| Error handling | Basic (retry) | Conditional logic, notifications |
| Array processing | Only if module supports | Any transformations |
| API without module | No | Via Custom App |
| Stage | Duration |
|---|---|
| Requirements analysis | 1–2 days |
| Scenario design | 1–2 days |
| Implementation and testing | 2–5 days |
| Documentation and training | 1 day |
| Post-release support | 1 month |
Timelines and Pricing
An average custom scenario (10–15 modules) takes 2–4 days. A complex one with Data Store, multiple APIs, and error handling takes one week. Pricing is determined individually—we evaluate the project after a briefing. Our engineers have many years of automation experience in Make. We guarantee stable scenario operation and provide support. If you need a reliable custom scenario, contact us. Get a consultation and precise estimate.







