Business process automation replaces the copy-paste that sits between your tools: the lead that should already be in the CRM, the paid order that should already be an invoice, the approval that waits in one inbox until someone is back from holiday. The point is a reliable path from a trigger to a finished outcome, with a person involved only where judgement is actually required.
Contents
At CodeWiz we design and build those paths. n8n, Make and Zapier are the right tool when a visual workflow, a clear trigger and a handful of SaaS apps are enough. Ordinary application code is the right tool when the rules are strict, the volume is high or the data has to stay inside systems you already run. We connect CRMs, shops, accounting and ERPs, and we build the small internal screens a team needs once a canvas of boxes and arrows is no longer enough.
This is for operations leads who can draw the process on a whiteboard and are tired of being the integration themselves, for finance teams retyping invoices, and for companies whose customer record lives in three places that disagree. A language model can be one step inside a flow — reading a PDF, for example — but the flow, the approvals and the bookkeeping are the service described here. Retrieval and local models are a separate piece of engineering.

Business Process Automation with n8n, Make and Zapier
A workflow tool listens for an event and runs a sequence of steps: a form submission creates a CRM contact, a new shop order notifies the warehouse, a failed payment opens a task. The three products people ask about cover that job in different ways, and the right one depends on where the data may live, who will edit the flow and how often it runs.
| Option | Where it runs | Best for | Watch out for |
|---|---|---|---|
| n8n | Your server, or n8n Cloud | Branching logic, custom code, data that should stay on your infrastructure | You operate the instance: backups, updates, access control |
| Make | Make’s cloud | Visual multi-step scenarios across many SaaS apps | Priced on operations; scenarios live in Make |
| Zapier | Zapier’s cloud | Simple trigger-to-action flows that non-developers own | Task pricing grows quickly; limited when logic gets strict |
| Custom code | Your app and servers | High volume, transactions, rules that must be tested in CI | More development up front, full control afterwards |
We self-host n8n when invoices, customer records or employee data should not sit in another tenant. Editors get their own logins, secrets stay in the instance’s credential store rather than in the workflow JSON, and the server is backed up with the rest of your infrastructure. The n8n documentation is the reference we build against for nodes, credentials and the public API. Make or Zapier still win when the process is small, the apps are already connected there, and nobody on your side wants a server.
Custom code enters when volume is high, a change must commit or roll back as one transaction, or the rules already live next to your Laravel or Node.js app. The visual tool can stay as the trigger, and the heavy step becomes a call to your own API.
CRM Integrations That Stop the Re-Typing
A CRM integration makes one customer record the place everyone looks. The same person might arrive as a form fill, a shop account, a support email and a salesperson’s spreadsheet row. Without a deliberate mapping, you get four contacts, two owners and a follow-up that goes to the wrong address.

What we wire up
- Create-or-update by a stable key, usually email or phone, so a second touch updates the contact instead of duplicating it.
- Field mapping that is written down: which source wins when the shop says one company name and the form says another.
- Ownership and pipeline rules: a new lead from the website lands in the right stage, with the right person notified, and is not silently assigned to a former employee.
- Activities worth keeping — a booked call, a paid order, a closed ticket — written back so the timeline is not only manual notes.
- A quarantine for bad records: missing consent, disposable addresses, or a company name that is obviously a test.
We work with the CRM you already pay for, whether that is HubSpot, Pipedrive, Salesforce or a database your team built. Orders are a frequent source, and they are only useful if they actually arrive. Our write-up on capturing every order without data loss is the shop-side half of that promise; the CRM and ERP half is making sure the captured order is posted exactly once.
ERP and Accounting Integrations
ERP and accounting integrations move operational facts into the books: orders, stock movements, purchase invoices, payouts and credit notes. The systems differ — Odoo, SAP, Microsoft Dynamics, QuickBooks, or a regional package such as Pantheon or Minimax — but the failure modes are the same. A retry creates a second invoice. A tax code is guessed. A payment is marked paid in the shop and open in accounting.
How we keep the books trustworthy
- An idempotency key per business document, so a repeated webhook updates the existing record.
- Tax, currency and fiscal fields taken from your rules, not inferred by a workflow because a field happened to be empty.
- Stock movements posted in the same terms the warehouse uses, with a clear source for each change.
- A daily reconciliation: counts and totals in the shop or CRM against counts and totals in accounting, with the differences listed rather than hoped away.
- An export or file drop where a package has no usable API, versioned and checksummed so a partial upload is obvious.
Payments deserve the same care as invoices. A captured charge, a refund and a payout are three different events, and only one of them is “the customer paid.” We treat the gateway as a source of those events; the practical side of taking the money is covered in our article on payment gateway integration. The automation picks them up and posts the accounting entries your accountant expects to see.
Custom Internal Tools and Dashboards
Some processes do not belong on a workflow canvas. An approval that depends on role, amount and department; a screen where someone corrects ten extracted invoices before lunch; a view of every run that failed overnight. Those are internal tools. We build them as small web applications — typically Laravel or Node.js in front of the same database the workflows use — with logins, permissions and an audit trail.
The first dashboard is operational: queued jobs, failed steps, invoices waiting for a person, and the last successful sync per system. Someone should be able to answer “is it broken?” without opening four admin panels, and the log should already hold the input, the step and the error.
Document and Invoice Processing
Document and invoice processing is the automation people feel first, because the manual version is so obvious: a PDF in an inbox, a person retyping the supplier, number, date, net, tax and total, then posting it. We split that into steps a computer can retry and a person can check.

- Collect the file from a mailbox, an upload or a supplier portal export.
- Extract the fields. A model is often the right reader for varied layouts; the way we build and evaluate that step is described in our article on RAG, prompt engineering and business automation. The workflow around it stays ordinary and testable.
- Validate: the lines add up to the total, the tax is plausible, the supplier exists, the IBAN matches the one you have on file.
- Reject duplicates. The same invoice forwarded twice must not become two liabilities.
- Post the clean ones. Queue the rest for a person, with the original PDF beside the extracted fields.
The duplicate check is the part that protects you when email systems retry. A short version of the rule looks like this:
def import_invoice(db, doc):
key = f"{doc['supplier_vat']}:{doc['number']}"
existing = db.find_invoice(key)
if existing:
return existing
errors = validate(doc) # totals, tax, dates, known supplier
if errors:
return db.queue_review(key, doc, errors)
return db.insert_invoice(key, doc)People still decide the awkward cases: a credit note that does not match an invoice, a scan no model can read, a supplier you have never seen. The win is that they only see those cases. If a workflow also needs figures from the public web — a price list, a public registry — we treat that as a separate, rule-bound collection job, described in our article on turning web data into something the business can use, and we only connect it when the source allows automated access.
Automations That Fail Visibly
A workflow that fails silently is worse than the manual process it replaced, because everyone assumes the CRM is up to date. We design for visible failure from the start.
- Retries with backoff for timeouts and rate limits, and a dead-letter queue once retries are exhausted.
- Idempotent writes, so a retry cannot double-post an invoice, a stock movement or a welcome email.
- Alerts to a channel a person actually watches, with a link to the failed item, not a daily digest nobody opens.
- Timeouts and concurrency limits, so a stuck vendor API cannot pile up thousands of parallel runs.
- A run history kept long enough to answer “what happened to Tuesday’s orders?”
Common Automation Mistakes We Fix
- One giant scenario that nobody dares to edit, with no names on the branches and no test inputs.
- Credentials pasted into node fields and exported into a JSON file that ends up in email.
- No idempotency, so every vendor retry creates another contact, order or invoice.
- A “success” path that swallows errors and leaves the source system and the destination out of sync.
- Automating a broken process as-is, including the steps that only exist because two spreadsheets disagree.
- No owner after launch, so the first API change in six months stops finance for a week.
What Drives the Cost of Business Process Automation
Scope varies with the number of systems and the state of their APIs, so we estimate after a short mapping session. These are the drivers:
- How many processes, and how many exceptions each one has.
- Whether the systems expose an API, a file export or only a user interface.
- Data quality: duplicates, missing keys and fields that mean different things in each tool.
- The need for human approval screens, roles and an audit log.
- Where it runs: a cloud automation account, a self-hosted n8n, or code inside your application.
- Handover only, or a retainer that keeps flows updated when vendors change their APIs.
How We Work
- Discovery: we walk the process with the people who do it, including the exceptions, and list every system, field and handoff.
- Plan: we choose the tool, the trigger, the idempotency keys, what is automated and what stays a human decision.
- Build: we implement the flows or the internal tool, with credentials stored properly and sample records for the awkward cases.
- Test: we run real examples end to end, including retries, duplicates and a vendor error, and check the result in the destination system.
- Launch: we switch on one process at a time, compare totals for a defined period, and keep the old path available until the numbers match.
- Support: we document how to edit a flow safely and can stay on to patch integrations when an API changes.
Why CodeWiz
- Full-stack, not only connectors: we build the Laravel, Node.js, WordPress and shop systems these workflows talk to, so the API on the other side can be fixed too.
- Open-source first: your own database and application code, with self-hosted n8n when the data should stay on your server, rather than a growing per-task bill.
- Tailored, not a platform sale: if a single Zapier zap is the whole requirement, that is what we will recommend.
- Fair pricing: premium development without premium prices, from a Banja Luka team working remotely with clients locally and internationally.
- Technology in service of the process: we would rather delete a step than automate it. More about the studio is on the about CodeWiz page.
Frequently Asked Questions
How much does business process automation cost?
A single, well-defined flow between two systems with decent APIs is a small project. A set of processes across CRM, shop and accounting, with approval screens and reconciliation, is a larger one. We map the process first and quote before building. Running costs — a cloud automation plan, or a small server for n8n — are separate from the build and we will tell you which applies.
Should we use n8n, Make or Zapier?
Use Zapier or Make when the flow is simple, the apps are supported and a non-developer should be able to follow it. Use self-hosted n8n when the logic branches, you want custom code, or the data should stay on your server. Use your own code when volume, transactions or testability outgrow a visual tool. We often combine them: a visual trigger in front of an API you own.
What if one of the systems has no API?
We look for a supported export, a webhook hidden in the settings, or a file the system already produces for an accountant. Where the only interface is a screen meant for people, we say so. Automating a user interface is brittle, and for many processes a structured file once a day is the more honest design. We do not build workarounds that violate a vendor’s terms.
How long does a typical automation project take?
One process with two systems and clean data can often be in production within a couple of weeks, including a parallel run against the manual method. Several processes, poor data or a new internal tool take longer, because the exceptions — not the happy path — are what consume the time.
Who maintains it when a vendor changes their API?
You can. We hand over the workflows, the credentials map and a short runbook, written so an operations person can see what a flow does and a developer can change it. If you would rather not watch vendor changelogs, we can keep that on a support arrangement and patch the integration when it breaks.
Can automation include an AI step?
Yes, as one step with a defined input and a validated output: classify a mail, read fields from an invoice, draft a reply for someone to send. The surrounding flow stays deterministic. If the real need is a customer-facing assistant or a retrieval system over your documents, that is a different service and we will scope it separately.
Ready to Take the Manual Steps Out?
Describe the process your team repeats every day, and the tools it currently jumps between. We will tell you what should be automated, what should stay human, and which tool fits. Contact us to start that conversation, or browse the rest of our development services.