n8n, Make, Zapier or your own Python script? How to choose a way to automate

In short

Ready-made tools are enough when you connect popular apps with a simple flow: Zapier is the simplest, Make gives more control over the logic, and n8n can run on your own server. Your own Python script pays off when the rules are unusual, the system has no ready-made connection, the data must stay in the company or there are a great many runs. A script has no per-run fees, but someone has to write and maintain it.

Key points
  • Zapier, Make and n8n connect apps from ready-made blocks. Your own script does the same in code, without blocks and without limits.
  • Zapier counts tasks, Make operations, n8n in the cloud executions. A script on your own server counts nothing: you pay for writing it and for changes.
  • If the data must stay in the company, that leaves n8n on your own server or your own code.
  • A simple connection between popular apps: a ready-made tool. Unusual rules, older systems, lots of data: a script.

The comparison in brief

To be upfront: I write automations in Python and I don't use n8n, Make or Zapier. What I say about those tools comes from their documentation and pricing pages (links at the bottom of the page), and the comparison with code comes from my own work. If a ready-made tool will do the job for you, I'll tell you so.

ZapierMaken8nPython script
Where it runsThe provider's cloudThe provider's cloudThe provider's cloud or your own serverYour server or computer, or the cloud
What you pay forTasks (each step executed)Operations (each module in a scenario)In the cloud, executions; on your own server, the serverWriting it and changes; the runs themselves cost nothing
Ready-made integrationsThe mostManyFewer, but there is an HTTP node for any APINo ready-made blocks, but it connects to anything with an API, a file or a database
Complex logicBasicExtensive, visualExtensive, plus your own codeAnything
Who changes the flowAnyone after a short introductionSomeone who learns the toolA technical personA developer
Data stays in the companyNoNoYes, when self-hostedYes
Tip

The pricing of these tools changes often, so I don't give amounts. Compare on your own example: count how many steps your flow has and how many times a month it runs.

What an automation in Python looks like

It's usually a short program that does one thing: it fetches data (from email, a form, a file, a database or an API), processes it by your rules and saves it or sends it on. It runs by itself on a schedule, for example every 15 minutes, or when something happens.

Sketch: form enquiries every 15 minutes
# simplified sketch: new enquiries go to the spreadsheet and to the right person
for enquiry in new_enquiries(since=last_run()):
    append_to_sheet(enquiry)
    send_email(to=owner_of(enquiry.topic),
               subject=f"New enquiry: {enquiry.company}",
               body=enquiry.description)
save_run()
  • It runs on your server or computer, so the data doesn't pass through anyone else's servers.
  • It keeps a log and sends an error alert: if something fails, you know straight away, not a week later.
  • The code sits in a repository with a history of changes, so you can see who changed a rule and when.
  • It also connects to things ready-made tools have no blocks for: a program's database, files on a network drive, accounts in Active Directory.

The downsides, honestly: someone has to write and maintain the script, and changing a rule means changing code, not dragging a block. That's why at handover you get a description of what the script does, where it runs and how to start it.

How to work out the cost on your own example

Take one specific flow, for example: a new enquiry from the form, saving it to a spreadsheet, a chat notification and an email to the client. That's four steps.

  • In Zapier each step executed after the trigger is a task, so 200 enquiries a month means several hundred tasks.
  • In Make each module that runs is an operation, so it comes out in a similar order of magnitude.
  • In n8n cloud, 200 enquiries are 200 executions regardless of the number of steps, and on your own server you only pay for the server.
  • A Python script costs the same for 200 and for 20,000 enquiries: you pay for writing it, for changes and for the server, which you often already have.

With multi-step flows and many runs, the cost differences become clear. With a few dozen runs a month, what counts is mainly convenience and who will be changing the flow.

When to choose which

Zapier

You have a few simple connections between popular apps, nobody in the company wants to learn a tool, and the data may pass through the provider's servers in the USA.

Make

The flows have conditions, branches, loops over lists and data processing. You want to see the whole scenario on one screen.

n8n

The data must stay in the company, or there are many flows and runs, and there's a technical person in the company who will look after the server and updates.

Python script

The process matters to the business, has unusual rules or touches a system without a ready-made connection (an older program, a database, files on a drive). You need tests and a history of changes, or a ready-made tool would need too many workarounds.

Tip

A ready-made tool and a script don't rule each other out. Often the simplest option is to keep the simple connections in Zapier or Make and write in code only the one step the tool can't handle.

What to watch out for

  • The access keys to your programs are stored in the tool or in the script's configuration: turn on two-factor sign-in and grant only the permissions needed.
  • Set up error notifications. A flow that stopped working on Friday can lose a whole weekend of orders.
  • Write down what each flow does and who is responsible for it. A year later nobody remembers where the emails at three in the morning come from.
  • Check the n8n licence before commercial use: it's a fair-code licence with conditions worth reading.
Caution

Don't paste client data into test flows in the cloud just to see whether it works. Use made-up data for testing.

Terms from this guide

API

The way programs talk to each other: one program sends a request in an agreed format, the other replies with data. APIs let you connect systems without retyping data by hand.

Webhook

A notification one system sends to another the moment something happens, for example “a new order has arrived”. Instead of asking every now and then whether anything changed, the system is told straight away.

System integration

Connecting the programs a company already uses so that they pass data to each other by themselves.

n8n

A tool for building automations from ready-made blocks that can run in the cloud or on your own server.

Questions and answers

Why do you write automations in Python rather than in n8n?

Because the tasks I come across usually have unusual rules or involve systems with no ready-made blocks: internal databases, Active Directory, programs without a public API. In code I have full control over that, plus tests and a history of changes. When a ready-made tool is enough, I'll recommend it.

Is n8n free?

The community edition can run on your own server without licence fees per execution, but you pay for the server and its upkeep. It's worth checking the licence terms for commercial use in the n8n documentation.

Can an automation be moved from Zapier to a script?

Yes, but not automatically: the flow has to be rebuilt in code. That usually goes quickly because the logic has already been thought through and it's clear what should happen.

Which is more secure?

Security depends more on configuration than on the tool: key permissions, two-factor sign-in and updates. Your own server, with n8n or with a script, gives you control over the data, but also makes updates your job.

Sources and documentation

The service related to this guide

Business process automation

Describe the problem

Question 1 of 5

What would you most like to improve?

Pick the closest one. It doesn't have to fit perfectly.

First summary

This is a first suggestion based on a few answers, not a diagnosis. Nothing is saved until you send the message.