Naming Conventions for Workflows: Boring But Decisive
Most automation systems don't collapse because the logic was wrong. They collapse because nobody can find anything. A workflow called Untitled workflow 7 runs payroll. A node labeled HTTP Request1 decides whether a customer gets refunded. The person who built it left six months ago. Now you're staring at 87 workflows trying to figure out which one to touch.
Naming conventions are the least exciting hour you'll spend on your automation stack and one of the highest-return. Get them right early and a new hire can navigate your system in a day. Get them wrong and every change becomes archaeology.
Start with a workflow prefix system
Every workflow name should start with a prefix that tells you, at a glance, what it does and where it lives. Pick a small, fixed vocabulary and enforce it. Here's a structure that works in n8n, Make, Zapier, or any orchestrator:
[DOMAIN] - [TRIGGER TYPE] - [VERB NOUN]
Domain is the business area: SALES, OPS, FIN, HR, MKT, SUPPORT. Trigger type tells you how the workflow starts: CRON for scheduled, WEBHOOK for incoming calls, EVENT for system events, MANUAL for human-triggered, SUB for sub-workflows called by others.
So you end up with names like:
SALES - WEBHOOK - Create Lead From FormFIN - CRON - Reconcile Stripe DailyOPS - SUB - Send Slack AlertHR - MANUAL - Onboard New Hire
CRON workflows are the ones to check. When a webhook URL needs rotating, all your WEBHOOK workflows are grouped.
The prefix system feels rigid the first week. By month three you stop noticing it and start relying on it.
Use verb-noun for the action itself
After the prefix, describe what the workflow does, not what it is. Verb first, noun second. Create Invoice, not Invoice Creation. Sync Contacts, not Contact Sync. Notify Manager, not Manager Notification.
This matters because verb-noun reads like a sentence and forces clarity. If you can't write a clean verb-noun for a workflow, the workflow is probably doing too many things and should be split.
Keep verbs consistent. Pick one and stick with it:
- Use
Create, notMake,Generate,Build, orAdd - Use
Sync, notUpdate,Refresh, orPull - Use
Notify, notAlert,Message, orPing
Name nodes with the same discipline
This is where most systems fall apart. The workflow has a clean name, then you open it and find Set, Set1, IF, IF2, HTTP Request, Code, Code1. Nobody knows what any of them do without clicking through.
Follow the same verb-noun rule for nodes:
Get Customer From StripeCheck If Refund AllowedFormat Slack MessagePost To #refunds Channel
Is Order Over $500?, Has Customer Paid?. Then the branches read naturally.
For sub-workflow calls, use the sub-workflow's actual name: Run: OPS - SUB - Send Slack Alert. Now a node in the parent tells you exactly what gets triggered.
Status tags, not version numbers
Do not put version numbers in workflow names. Lead Capture v2, Lead Capture v2 FINAL, Lead Capture v3 USE THIS ONE is a horror story you've probably already lived. Version control belongs in your platform's built-in history, or in Git if you're exporting JSON.
What you do need is lifecycle status. Use prefixed tags:
[DRAFT]- being built, do not enable[TEST]- active but routing to test endpoints[DEPRECATED]- still running, scheduled for removal[BROKEN]- turned off pending fix
[DRAFT] SALES - WEBHOOK - Score Lead. When it ships, you drop the tag. When you're replacing it, you mark the old one [DEPRECATED] and give yourself a calendar reminder to delete it in 30 days.
This way the active production set is everything without a status tag. Easy to filter, easy to audit.
What not to do
A short list of patterns that always cause pain:
Cryptic abbreviations. SLS-WH-CRT-LD-FRM saves you nine characters and costs you every new hire two hours. Words are free. Use them.
Personal names. John's workflow tells you nothing once John is gone. Same for Maria - test. Name by function, not by author.
Dates in names. Customer Sync 2024-11. Either the workflow is current or it isn't. If it's archived, move it to an archive folder. If it's active, the date is misleading the moment you forget to update it.
Emojis as primary identifiers. A fire emoji might feel useful for marking critical workflows. It breaks search, breaks sorting, and looks unprofessional in audit logs. Use a tag like [CRITICAL] instead.
Mixing languages or cases. Pick Title Case or lowercase, English or your local language, and commit. Crear factura next to Send Invoice next to update_customer is unreadable.
Naming by integration. Stripe Workflow tells you nothing about what it does. Many workflows touch Stripe. Name by outcome: FIN - CRON - Reconcile Stripe Daily.
Document the convention and enforce it
Write the rules down in one page. Include the prefix list, the verb vocabulary, the status tags, examples of good and bad names. Put it in your team wiki and link to it from your onboarding doc.
Then actually enforce it. The most common failure mode is having a convention nobody uses. Three things help:
Untitled workflow 14, send it back.[DRAFT] DOMAIN - TRIGGER - Verb Noun and fill in the blanks. Don't start from blank.The two-year test
Here's the only test that matters: in two years, when you've forgotten how any of this works and you have 150 workflows, can you find the one that emails customers their renewal notice in under 30 seconds? If yes, your naming works. If no, you're going to spend a weekend cleaning up.
Most businesses we work with arrive with the second version. Untangling it isn't hard, but it takes time, and that time is paid for either way — either upfront with conventions or later in confused engineers and broken automations.
If you've already got an automation stack that's grown into a maze, we can help map it and put a maintainable structure in place.
Need help implementing this?
We build these systems for small businesses and hand you the keys. Book a free discovery call — no sales pressure.
Book a Discovery Call