Built with Make
Booking reports and website for a tour operator
Make scenarios move tour bookings and expenses from Google Sheets into MongoDB; weekly and monthly PDF reports for each city go out by email. Plus WordPress pages for the tour sites.
Make suits flows with more shape than a straight line:
Plan around these before you commit:
A scenario starts with a trigger. Polling triggers, usually named "Watch", check a service on the scenario's schedule. Instant triggers receive data by webhook and start the scenario at once. Search modules fetch records, action modules get, create, update or delete them, and universal modules make a custom API call when no ready-made module exists. Data moves as bundles, and each module processes each bundle separately. An iterator turns an array into bundles, an array aggregator merges bundles into one, and a router sends bundles down routes that run one after another, with a fallback route last. Data stores keep data between scenarios and runs, shaped by a data structure. A scenario can run at intervals, daily, weekly, monthly, on specified dates or on demand. Each bundle a module processes is one operation, while a trigger counts once per run however many bundles it returns. For modules without AI, one operation uses one credit.
Not sure which tool fits? See how we choose between Zapier, Make, n8n and custom code.
Both connect apps without code. Make handles arrays, branching and stored data with iterators, aggregators, routers and data stores, and counts usage in operations, one for each bundle a module processes. Zapier is simpler to read for a straight sequence of steps and counts successful actions as tasks. We choose by the shape of the flow and its volume.
With "Store incomplete executions" turned on, Make keeps the failed run. Rate limit, connection and module timeout errors are retried automatically. Other errors wait until you fix the module and run it again from where it failed. The setting is off by default, and some errors, such as one on the first module, do not create an incomplete execution.
A webhook runs the scenario as soon as data arrives. A scheduled scenario polls, or processes queued webhook data, at set times. Many setups need both: a webhook for normal traffic and a scheduled scenario that finds anything the webhook missed.
When operations per run grow with data volume and become the main limit, when the logic needs automated tests and code review, or when runs come close to the duration limit. A common split keeps Make for app connections and puts the core logic in your own service.
There are three ways, on the same terms:
Whichever you choose, we sign an NDA before work starts, you own the code we write, and every change is reviewed in your repository.
Yes. For a dedicated team you meet the developers in an online call and interview them before they join your project.
Tell us what triggers it, which apps it touches and how many records each run handles. We will say how many operations it uses and where it can fail.
Tell us what you need built, fixed or improved. We come back with questions, a suggested approach and an estimate.