Should you build your own workflow automation?
A form comes in, a deal closes, an alert fires, and the follow-up in your other apps happens without anyone retyping it.
Your result: See why ↓
The short answer
Build one or two yourself if someone on the team can read logs. Once you have more than a handful, or people who don't code need to change them, use an open-source platform or pay for one. An automation is a short script. Forty automations are a maintenance job, especially after a vendor renames a field.
What you're deciding
Most teams have a few chores that are really just data moving between apps. A form comes in and someone retypes it into the CRM. An alert fires and someone pastes it into a chat channel. Workflow automation tools like Zapier do that handoff for you. Something happens in one app, and it kicks off a chain of steps in others. More and more of those steps now ask an AI model to sort, summarize or draft something along the way.
A single automation is about the smallest useful thing you can ask a coding agent for. It's usually a short script that waits for one app to call it, then calls two others. Everything around the script is the hard part. Login tokens expire. An API goes down and the script has to retry. A run fails quietly and nobody notices. A vendor renames a field and you have to work out which of your forty automations just broke. That upkeep, plus a library of ready-made connectors, is what the platforms sell.
If you're searching for an open source Zapier alternative, read the license before you install. Several of the most popular self-hosted options, n8n included, aren't open source in the usual sense. You can run them for your own team, but not sell them or build them into a product. That rarely matters for internal use. It matters a lot if you plan to offer the tool to customers.
What owning an automation takes
Each automation is small, but the whole category is about connections. Every workflow touches at least two outside services, each with its own login, limits and release schedule. When one breaks, the damage is quiet. Leads stop reaching the CRM, or alerts stop reaching chat, and nobody notices for a week. So watching them and keeping the connectors working costs more than the first build. A coding agent can write one or two narrow automations you own outright. Once you have more than a few, or people who don't code need to edit them, a platform usually pays for itself in run history, retries and connectors someone else maintains.
Your version may be smaller or bigger than this, which is what the quiz at the bottom asks about.
Borrow: open-source options
| Project | License | Run it | Best fit |
|---|---|---|---|
| n8n | Sustainable Use License (fair-code, source-available, not OSI open source); files marked .ee are under the n8n Enterprise License | Free self-hosted Community Edition for internal use; cloud and paid self-hosted plans billed by monthly workflow executions, with enterprise licensing via sales | A visual builder with JavaScript and Python code steps and built-in AI agent features, suited to teams that want to self-host for internal use and are comfortable with a license that restricts reselling or embedding. |
| Activepieces | MIT for the core; ee directories under the commercial Activepieces Enterprise License | Free self-hosted Community Edition; cloud plans billed in credits per run, with AI steps costing extra credits; enterprise governance features on paid tiers | A no-code builder with a permissive MIT core, a good match when non-developers will build the flows and you want a clear OSI license for the parts you run. |
| Node-RED | Apache License 2.0 | Free and fully open source; no first-party hosted plan, though the project lists third-party hosting options | A flow-based, event-driven tool with a long track record, best for technical teams wiring together devices, APIs and internal services rather than mainstream SaaS apps. |
| Windmill | AGPLv3 by default, Apache 2.0 for client libraries; enterprise-flagged code is proprietary, and official binaries include proprietary features | Free self-hosted Community Edition with usage limits; Enterprise Edition billed per developer seat and compute units, on cloud or self-hosted | A developer-first platform where each step is a script in a real language, a good fit when your automations are closer to internal tools and data jobs than app-to-app glue. |
Open source gives you the code, not the operations. Someone still installs it, updates it, backs it up and supports your team, or you pay a host to.
Which one to start with
Pick by who will build the flows. Activepieces has an MIT-licensed core and a no-code builder, so it suits teams where non-developers will build. Node-RED is fully Apache 2.0 and suits technical teams wiring together devices, APIs and internal services. Windmill is AGPLv3 and built around scripts. n8n is popular for self-hosting, but its Sustainable Use License isn't open source in the usual sense: you can view, change and self-host it for internal use, and you can't sell it or host it as a service. Self-hosted community editions don't charge per task, which wins at high volumes. In exchange you take on the server, upgrades, backups and someone on the hook when a run fails. For a team with modest volume and nobody to run a server, a paid plan is usually cheaper overall.
Buy: paid services
| Service | Pricing model | Best fit |
|---|---|---|
| Zapier | Free tier, then plans priced by monthly task volume; a task is a successful action step, with triggers and built-in utilities not counted | A large catalog of app connectors and little to learn, suited to teams where anyone should be able to set up a simple automation on their own. |
| Make | Free tier, then plans priced by monthly credits, with most actions using one credit and some AI features using more | A visual canvas that handles branching, loops and data reshaping well, suited to operations teams building multi-step scenarios that would get awkward in a linear builder. |
| Microsoft Power Automate | Per-user plans for cloud and desktop flows, plus per-bot plans for unattended desktop automation; free trial available | For teams whose work already lives in Microsoft 365, Teams and SharePoint. Includes desktop automation for older apps without APIs. |
We list pricing models, not prices, because prices change. Nobody pays to be listed here. Check each vendor's current plans before you compare.
Build it yourself
Build when the job is narrow and stable: one trigger, two or three systems, and an owner who can read logs. In an afternoon, a coding agent can write a small service that takes a submission from your form tool, cleans up the fields, asks a model to tag the request and creates a record in your CRM. You get exact control over the logic, no per-task billing, and data that never passes through a third party. Keep each workflow in its own small repo, deploy it somewhere with logs and alerts, and write down who owns it. If you catch yourself building a visual editor, a connector library or a run-history screen, stop. That's the platform, and the borrowed options already do it well.
What a demo won't show you
- Expiring logins. Many APIs hand out access tokens that expire within hours. Your code has to store refresh tokens safely, renew them before they lapse, and tell someone when a user revokes access.
- Retries without duplicates. When a step fails halfway, a naive retry creates a second CRM record or sends the same email twice. Each action needs a check that it hasn't already happened.
- Rate limits. Bulk imports and busy days hit API limits fast. You need to read the limit headers, slow down, and queue work instead of dropping it.
- Unreliable webhooks. Incoming events can arrive twice, out of order, or not at all. Verify them, store them before processing, and poll as a fallback for providers that don't retry.
- Silent failure. An automation that stopped running looks exactly like one with nothing to do. You need run logs, failure alerts and a daily check so someone notices within hours, not weeks.
- Changing shapes. Vendors rename fields and AI models change their phrasing. Check inputs and model outputs against what you expect and fail loudly instead of writing bad data downstream.
A build brief for an AI coding agent
Paste this into Claude Code or any coding agent. Swap in your own systems wherever it names ours or shows a placeholder, and keep it to this scope.
Job: when someone submits our contact form, create or update a contact in our CRM and post a short summary in our team chat channel. Inputs: the form tool's webhook payload (name, email, company, message). Outputs: one CRM contact with a 'source: website form' tag, and one chat message with name, company and a one-line AI summary of the message. Must-haves: verify the webhook signature; look up the contact by email before creating, so there are never duplicates; retry failed API calls up to 3 times with backoff. Must-haves: log every run with timestamp, status and error, and send me an alert if any run fails or if no runs happen for 48 hours. Out of scope: a user interface, editing past records, any other form, and email sending. Data and privacy: store API keys in environment variables only, never in code. Do not log the full message body. Send only the message text to the AI model, never the email address. AI step: if the model call fails or returns something unexpected, post the message without a summary instead of failing the whole run. Test: use one real past submission (I will paste it) against test or sandbox accounts first, then show me the resulting CRM record and chat message. Fallback: if the CRM is down after retries, save the payload to a dead-letter file and include it in the alert so I can re-run it by hand. Deliver: the code, a README explaining how to deploy it and how to re-run a failed event, and a list of the API permissions it needs.
Common traps
- Picking a self-hosted tool without reading its license. Fair-code and source-available licenses usually allow internal use but can forbid building the tool into a product or hosting it for paying customers.
- Estimating cost by the number of workflows. Pricing counts tasks, credits or runs, each in its own way, and a busy loop or an AI step can multiply usage.
- Running automations under one person's login. When they leave or change their password, every connection tied to them breaks at once.
- Treating silence as success. Without failure alerts and an owner per workflow, a broken automation can drop leads or tickets for weeks before anyone looks.
- Letting an AI step write straight into a system of record. Put a check, a confidence threshold or a human review between the model's output and your CRM, finance or HR data.
Run the check for your team
Nine quick taps, since the job's already filled in. You get a build, borrow or buy answer for your automation, and the options above that fit it.
Answer all 9 to see your result. 9 to go.
free claude skill
Run this check inside Claude
A free Claude skill that asks the same ten questions, plots your answer on the same map, looks up real open-source and paid options for your job, and writes a decision brief you can forward. It can also sort your team's whole stack.
Something went wrong. Please try again.
By subscribing, you agree to receive recurring marketing communications from Tenex at the email you provide. Unsubscribe anytime. See our Terms and Privacy Policy.
free claude skill
You're in. Your download should start now.
If it didn't, download build-vs-buy-check.zip.
To install: upload the .zip in Claude's Skills settings, or unzip it into
~/.claude/skills/ for Claude Code. Then say "should we build or buy" and name the tool.
Related guides
Helpdesk and support inbox
Every support request gets an owner and a place in the queue, instead of sitting in a shared inbox.
Project and issue tracking
Where the team's tasks and requests live, who owns each one, and what's stuck.
The build vs buy quiz
For any other tool your team is weighing, plus how to make the call.