Clients often ask whether they should use a no-code tool like n8n or Make, or have something built in Python. The honest answer: it depends on the workflow, and many good setups use both.
The short version
| Make / Zapier | n8n | Custom Python | |
|---|---|---|---|
| Best for | Simple app-to-app flows | Multi-step flows, self-hosting | Heavy data, complex logic |
| Speed to first version | Hours | Hours to days | Days |
| Handles large files | Poorly | Moderately | Well |
| Runs on your servers | No | Yes | Yes |
| Cost at high volume | Grows per task | Mostly fixed | Mostly fixed |
| Who can edit it | Ops team | Ops team with some help | Developers |
When no-code wins
If the job is "when X happens in one app, do Y in another", for example a new form entry creating a CRM contact and a Slack message, Make or Zapier is usually the right call. It's quick, your team can change it themselves, and volumes are low enough that per-task pricing doesn't hurt.
When n8n wins
n8n sits in the middle. It handles longer, branching workflows, can run on your own server (useful when data can't leave your environment), and its cost doesn't climb with every task. We use it a lot for integrations between CRMs, WhatsApp and internal tools.
When custom Python wins
Reach for code when the work involves large spreadsheets, reconciliations with fuzzy matching, OCR, machine learning, or logic that would turn into a tangle of boxes in a visual tool. Python also makes testing and version control straightforward, which matters for anything touching money.
Questions to ask before you choose
- How many runs per month, and how big is each input?
- Does the data have to stay on your own servers?
- Who will change this workflow in six months?
- What happens if it fails silently? (If the answer is "something expensive", you want proper tests and alerts.)
There's no prize for using the most advanced tool. The right choice is the simplest one that will still be running reliably a year from now.