Six blocks, built against one real workflow. The last one decides how far anyone should trust the other five.
A usable SOP format comes down to six blocks in this order:
The first five are well-covered ground. This piece builds each one against a single workflow you can go and check yourself: fulfilling an order manually from the Shopify admin. It is a fair test case because the procedure is short and every step sits inside a vendor's interface, which is the situation most ecommerce SOPs are actually in.
Block six carries more weight than blocks two through five combined. A step list nobody has re-checked against the current screen is a confident set of instructions that may be wrong, and confidence is the part that makes it dangerous.
Regulated industries run headers with document title, unique identifier, department, owner, version, approval status, effective date and page control. A four-person DTC team does not need that and will not maintain it. Trimmed to what actually gets kept up to date:
| Field | Example | Why it earns its place |
|---|---|---|
| Title | Fulfil a single order from the Shopify admin | Names the task, not the topic |
| ID | OPS-FUL-01 | Lets anyone tell the current doc from a copy of it |
| Owner | A named role, not a department | An unowned document is nobody's job to fix |
| Version | 1.0 | Tells a reader whether they have the current one |
| Last verified | Date, verifier, and the screen it was checked against | The only field that says whether the rest is still true |
The ID matters more than it looks. A stable identifier in a predictable shape, a category abbreviation and a number, is what lets someone tell a current procedure from a superseded copy that got emailed around in March. Drop scope, definitions and approval signatures unless something forces you to keep them. Cut the owner field and the document stops being maintained by anybody.
Where these documents live once you have more than a handful, and how to keep the collection navigable.
A trigger is one named event, not a scope statement. "This SOP covers order fulfilment" tells nobody when to open it. "An order appears in the Unfulfilled section of Shopify admin > Orders" does.
For this workflow the trigger carries a real prerequisite. Shopify stores use manual fulfilment by default, and fulfilling manually requires automatic fulfilment to be off. That setting lives under Settings > General > Order processing. So the block reads:
Trigger: an order shows as Unfulfilled in Shopify admin > Orders. Prerequisite: automatic fulfilment is deactivated under Settings > General > Order processing. If it is active, this procedure does not apply.
Writing the prerequisite into the trigger prevents the most common failure with a borrowed SOP: someone runs it on a store configured differently, the screens do not match, and they conclude the document is wrong rather than inapplicable.
Try it on one of your own procedures.
Record a process once, AI writes the structured SOP. 3 free SOPs, no credit card.
One action per step. Imperative verb first, object named, measurable criteria wherever judgement is involved. Avoid words that sound like instruction but carry no obligation: periodic, typical, appropriate. "Handle appropriately" is not a step, it is a hope.
The core sequence, from Shopify's own documentation on fulfilling orders individually:
Step five is the one worth spelling out, because it is the step where the interface does something on your behalf and the operator has to decide whether to accept it. Steps like that are where errors enter a procedure that otherwise reads as mechanical.
On screenshots: add one only where it clarifies orientation, selection, placement, or a quality checkpoint. A screenshot added for decoration costs maintenance without improving execution, and every image you paste in is a thing that has to be replaced when the tool changes. Unreadable screenshots are worse than none, because they imply a check nobody can actually perform.
Where an image genuinely beats a paragraph, and how to stop the visuals becoming the part that rots first.
Write conditionals as if/then forks, indented under the step where the fork occurs. Prose caveats get skimmed. A fork does not.
This workflow has four real conditionals, all documented by Shopify:
That last one is where the exception block starts. An escalation path names a specific role rather than a department: no branch fits, or the customer was notified incorrectly, so hold the order, add a comment in the Timeline so the team can see the state, and hand it to the role named in the header.
Keep the step list to what is needed to complete the task. Notes, warnings and background belong in their own block. Branches belong next to the step they affect; rare exceptions belong at the end.
This is the field that decides whether the other five blocks describe reality, and it is the one almost every template treats as decoration.
"Last verified: 12 March" says a file was opened. "Last verified: 12 March by the fulfilment lead, against the Shopify admin Orders view, all seven steps re-run on order #10428" says somebody did the work. Three parts: the date, the verifier, and the state of the interface it was checked against.
The interface part matters most here, because the steps live inside somebody else's product. When the button in step three moves, your document does not know. Nobody sends a release note to your SOP folder. You find out when a new hire gets stuck, or when a customer gets the wrong notification.
Approval is not the finish line either. A procedure that has been approved but not assigned, not understood, or not reachable from the place the work happens is not finished in any sense that matters operationally.
A verifier who signs the line without re-running the steps. A false verification date makes a wrong document look trustworthy. Require the verifier to name the specific order, ticket or record they tested against. If they cannot name one, they did not verify.
Why replacing the old version destroys the information you need later, and what to keep instead.
How often to refresh it is a question about your tools rather than your calendar. Regulated documents run review cycles of one to three years. A procedure sitting on top of a vendor's admin needs re-checking whenever that interface changes, whenever somebody new runs it, and whenever it produces a mistake. Anyone who hits a step that no longer matches should be able to raise it with the owner without asking permission.
The mechanics of a correct document quietly becoming a wrong one, which is the problem this whole format is built to expose.
Disclosure, since it is our product: ReccordSOP is built around this specific gap. You record the task again and it compares the new recording against the published SOP, so you see which steps moved rather than replacing the document wholesale. It does not watch your Shopify admin and notice on its own, and nothing on the market does. Somebody still has to record the task. What it removes is the cost of the comparison, not the need for one.
Fill the six blocks in order, in one sitting, for one workflow where getting it wrong costs real money. Fulfilment, refunds, or high-risk order review. Not the easiest one.
Then do the part most teams skip. Hand the document to somebody who has not done the task and watch them perform it in silence. Every point where they hesitate, look somewhere else, or ask a question is a defect in the document rather than in them. Revise at each of those points.
Then have that person sign the last-verified line, with their name and the record they tested against. They are the best possible verifier, because they had no prior knowledge to fill the gaps with.
Whether the click-by-click detail belongs in this document or a separate one, and why the two go stale at different speeds.
A step list is a claim about how a screen looked on the day someone wrote it. The format above is just the machinery for keeping that claim honest.
An SOP format is the fixed structure a procedure follows so the essential information appears in a predictable place: what starts it, who owns it, the steps in order, the decisions, the exceptions, and when it was last checked. The point is not that every document looks identical. It is that a reader knows where to look, and an auditor can trace who approved what and when.
Six earn their place for most teams: a header with title, ID, owner, version and last-verified date; a trigger naming the event that starts the run; numbered steps with one action each; if/then branches under the steps they affect; an exception path naming an escalation role; and the last-verified line. Regulated work adds scope, definitions, approval signatures and revision history. A four-person ecommerce team does not need those and will not maintain them.
Long enough to complete the task correctly and no longer. If a procedure is sprawling, split it into a parent process plus focused work instructions rather than writing one long document, because readers need different levels of detail at different moments. A procedure someone runs mid-task competes with the task itself for attention.
No. Add one only where it clarifies orientation, selection, placement or a quality checkpoint. Decorative screenshots cost maintenance without improving execution, and unreadable ones are worse than none because they imply a check nobody can perform. Capture tools make producing screenshots cheap, which makes deleting the ones that add nothing your job rather than the tool's.
Whenever the underlying tool changes, rather than on a fixed schedule. A one to three year review cycle suits regulated documents that describe stable physical processes. A procedure built on top of a vendor's admin screen needs re-checking whenever that screen changes, whenever a new person runs it, and whenever it produces an error. The trigger is a change, not a date.
3 free SOPs to start. No credit card required. See if drift detection keeps your docs honest.
Start for freeI built ReccordSOP after watching too many DTC ops teams lose months to undocumented workflows. These SOPs are battle-tested with Shopify operators running $1M to $50M brands.
Last reviewed September 8, 2026
One describes a process across people. The other describes a task inside one screen. The distinction only earns its keep when you notice they go stale for completely different reasons.
More pictures is not the rule. The rule is matching the format to what the step is actually asking someone to do.
A version history tells you what existed. A step-level diff tells your team what changed and whether it affects the work.
We use essential cookies for sign-in and a small amount of analytics to improve the product. Privacy policy.