Back to Order Processing & Fulfilment

Process Runbook / SOP

How the automation works day-to-day: what is automatic, what needs a human, how exceptions are handled, and who to contact.

4 pagesPDF · Operations
FS-DOC-03Operations

Process Runbook / SOP

Order Processing & Fulfilment

[YourCompany.com] · Fulfilment Department · Prepared by FullSpec · [Today's Date]

This runbook is the day-to-day operating guide for your fulfilment team once the Order Processing and Fulfilment automation is live. It tells you exactly what the system does on its own, what your team is still responsible for, how to handle exceptions, and who to call when something needs attention. FullSpec builds, tests, and maintains the automation end to end. Your team's role is to monitor the Slack exception channel, carry out the physical pick-and-pack in the warehouse, and act on any exception alerts the system raises.

01Process overview

The Order Processing and Fulfilment automation connects Shopify, Linnworks, ShipStation, Klaviyo, and Xero so that every paid order moves from payment confirmation to a labelled, despatched, and customer-notified shipment without anyone touching a spreadsheet. The moment Shopify registers a paid order, three automated agents take over: the Order Routing Agent checks stock and routes the order or raises an exception; the Label and Despatch Agent creates the shipping label and writes the tracking number back to Shopify and Xero; and the Customer Notification Agent fires a branded tracking email through Klaviyo. The only steps that remain with your team are the physical pick-and-pack in the warehouse and the manual review of any order flagged as out of stock.

Process name
Order Processing & Fulfilment
Trigger
A customer pays for an order and Shopify sets the order status to Paid, firing an instant webhook
Final output
A shipped order with a tracking number in Shopify, a tracking email sent to the customer via Klaviyo, and a shipping cost line posted to Xero
Agents running
Order Routing Agent, Label and Despatch Agent, Customer Notification Agent
Tools involved
Shopify, Linnworks, ShipStation, Klaviyo, Xero, Slack (exception alerts), Make (orchestration)
Weekly volume
Approximately 110 orders per day, continuous throughout the day
Human checkpoint
Physical pick-and-pack in the warehouse; manual review and decision on any out-of-stock exception raised in Slack
Process owner
[Your name] — update this field once confirmed
Process Runbook / SOPPage 1 of 4
FS-DOC-03Operations

02Step-by-step: what happens and who acts

What you actually need to do: The only step that requires action from your team during normal order flow is Step 5 — the physical pick-and-pack in the warehouse. Your warehouse operative collects the zone-sorted pick list generated automatically in Linnworks, picks the items from the racking, packs and verifies the box contents, applies the printed label, and stages the parcel for carrier collection. Every other step in this process is handled automatically by the FullSpec-built agents. If an exception alert appears in Slack, the Fulfilment Manager must also review and action that alert before the order can proceed.
Step
What happens
Who acts
Type
1
A customer pays for an order. Shopify immediately fires a webhook containing the order ID, all line items, quantities, and the shipping address. There is no batch delay. The Order Routing Agent receives this payload in real time.
System (Shopify + Make)
Automated
2
The Order Routing Agent queries Linnworks via API for every SKU on the order, comparing the ordered quantity against live available stock. This check completes in seconds and does not require any manual cross-referencing.
Order Routing Agent
Automated
3
If all items are in stock, the agent routes the order straight to label creation. If any item is out of stock, the agent posts a structured exception alert to the designated Slack channel, pausing that order until a decision is made. In-stock orders continue immediately.
Order Routing Agent
Automated
4
For in-stock orders, a zone-sorted pick list is automatically created inside Linnworks, ready for the warehouse operative to view on their device or at a print terminal. No coordinator is needed to format or print anything.
Order Routing Agent + Linnworks
Automated
5
The warehouse operative collects the pick list from Linnworks, walks the racking to gather each item, brings them to the packing bench, compares contents to the list, seals the box, applies the shipping label printed by ShipStation, and stages the parcel for carrier collection or depot drop.
Warehouse Operative
Human
6
The Label and Despatch Agent sends the order details to ShipStation. Using pre-configured carrier selection rules based on weight and destination zone, it generates the shipping label, retrieves the label PDF, and obtains the tracking number. The label is available for printing at the packing station.
Label and Despatch Agent
Automated
7
The automation writes the tracking number back to the Shopify order and sets its status to Fulfilled. The storefront updates in real time without the coordinator touching anything.
Label and Despatch Agent + Shopify
Automated
8
The Customer Notification Agent detects the Shopify fulfilment event and immediately triggers a branded tracking email through Klaviyo. The email includes the carrier name, the tracking link, and an estimated delivery window.
Customer Notification Agent
Automated
9
The shipping cost returned by ShipStation is automatically posted as a line item against the corresponding Xero sales order. No manual data entry is required from the accounts team for individual shipments.
Label and Despatch Agent + Xero
Automated
Process Runbook / SOPPage 2 of 4
FS-DOC-03Operations

03Handling exceptions

Situation
What the system does
What you do
One or more SKUs on an order are out of stock
The Order Routing Agent pauses the order and posts a structured alert to the Slack exception channel. The alert includes the order ID, the specific out-of-stock SKU or SKUs, the customer name, and the ordered quantity. The order does not progress to label creation until a decision is recorded.
The Fulfilment Manager reviews the Slack alert and decides to hold the order, substitute an alternative SKU, or cancel and refund the item. The decision must be communicated back through Slack or directly in Linnworks and Shopify so the order can be released or closed.
An order contains missing or incomplete data, such as no shipping address or a blank line item
The Order Routing Agent detects the missing field during its initial parse of the webhook payload. It posts an exception alert to Slack with the order ID and the specific field that is missing, and does not attempt a stock check or label creation for that order.
The Fulfilment Manager locates the order in Shopify, corrects or requests the missing information from the customer, and then manually triggers reprocessing once the record is complete. Contact FullSpec support if the agent is not catching these correctly.
A duplicate order appears, such as a customer being charged twice or a webhook firing more than once for the same order
Make includes a deduplication check on the Shopify order ID. If the same order ID is received more than once within a rolling window, the duplicate is discarded and a note is logged in the Make scenario history without creating a second label.
No immediate action is needed in most cases. If a customer contacts you about a duplicate charge, check Shopify and Xero to confirm only one label and one cost entry exist for that order. If a duplicate label was created before the dedup check could run, contact FullSpec support to void the duplicate in ShipStation.
A Slack exception alert is not acted on within a reasonable time and the order remains held
The system does not automatically escalate after a set period, but the order remains paused in the queue and will not be labelled or shipped without a decision.
Your team should review the Slack exception channel at least twice per shift. If an alert has been sitting without a response for more than two hours, the Fulfilment Manager is responsible for making a decision or delegating to another authorised team member. Unresolved exceptions should be included in your daily exception log.
A carrier service cannot be matched by ShipStation, for example due to weight outside configured bands or a restricted destination
The Label and Despatch Agent is unable to generate a label and posts an exception alert to Slack identifying the order and the reason the carrier rules could not be matched. The Shopify order is not marked as fulfilled.
The Fulfilment Manager reviews the order details and either updates the carrier selection rules in ShipStation if the scenario is recurring, or manually selects a carrier for that specific order in ShipStation and marks it fulfilled in Shopify. Notify FullSpec if carrier rule updates are needed so they can be reflected in the automation config.
Shopify, ShipStation, Linnworks, Klaviyo, or Xero is temporarily unavailable
Make is configured to retry failed API calls up to three times with an increasing delay between attempts. If all retries fail, the affected order or action is logged as an error in the Make scenario history and an alert is posted to Slack identifying which platform is unresponsive.
Check the platform's status page to confirm whether an outage is in progress. For short outages under 30 minutes, the retry logic will usually recover automatically once the platform is back. For extended outages, your team should manually process orders using the original workflow, specifically exporting from Shopify, checking Linnworks, creating labels in ShipStation, and updating Shopify by hand, until the automation recovers. Contact FullSpec support if the scenario does not self-recover after the platform comes back online.
Process Runbook / SOPPage 3 of 4
FS-DOC-03Operations

04Who to contact and when

Fill in once your team is confirmed. Add the name and preferred contact method for each role below so every team member knows exactly who to reach and how, without searching through email chains. The FullSpec rows are fixed and do not need to be updated.

Role
Name
How to reach them
Process owner (overall responsibility)
[Your name]
[Email or Slack handle]
Fulfilment Manager (exception decisions, out-of-stock holds)
Rachel Osei
[Email or Slack handle]
Warehouse team lead (pick-and-pack escalations)
[Your name]
[Email or Slack handle]
Accounts Assistant (Xero queries, cost discrepancies)
Priya Nair
[Email or Slack handle]
Automation Specialist (internal point of contact for system questions)
Tom Briggs
[Email or Slack handle]
FullSpec builder (technical changes, agent updates, carrier rule edits)
FullSpec team
support@gofullspec.com
FullSpec support (errors, outages, unexpected behaviour in the automation)
FullSpec support
support@gofullspec.com

05Ongoing maintenance

When
What to do
Who
Whenever a new SKU is added or an existing SKU is changed in Shopify or Linnworks
Confirm the new SKU is present and correctly formatted in both Shopify and Linnworks before the product goes on sale. A SKU that exists in Shopify but not in Linnworks will trigger a false out-of-stock exception on every order containing that product. Update both platforms simultaneously or notify FullSpec if the stock-check query needs adjustment.
Fulfilment Manager + FullSpec (if query update needed)
Whenever the Klaviyo tracking email template is edited, rebranded, or the carrier fields change
Notify FullSpec before making changes to the Klaviyo template that the automation uses. The Customer Notification Agent maps specific dynamic fields, including tracking number, carrier name, and delivery window, into the template. Renaming or removing those fields will break the email send. FullSpec will update the field mappings to match any template changes.
Fulfilment Manager notifies FullSpec
Monthly spot-check (first working day of each month)
Pull a sample of 10 to 20 orders from the previous month and verify that each one has a tracking number in Shopify, a corresponding tracking email recorded in Klaviyo, and a shipping cost line in Xero. Flag any gaps to FullSpec for investigation.
Fulfilment Manager or Process owner
Weekly error-log review (every Monday morning)
Open the Make scenario history for the Order Processing flow and review any failed or errored runs from the past seven days. Check whether retries resolved the issue automatically or whether any orders required manual intervention. Log recurring error patterns and raise them with FullSpec if the same error appears more than twice in a week.
Automation Specialist (Tom Briggs) or Fulfilment Manager
Whenever a team member joins, leaves, or changes role
Update the contact table in this runbook. If the person leaving held Slack notification permissions or was listed as an exception-alert recipient in the Make scenario, notify FullSpec so the alert routing can be updated to the correct person before they depart.
Process owner notifies FullSpec
Quarterly volume review (every three months)
Compare current daily order volumes against the figures used to configure the automation. If volumes have grown significantly above 110 orders per day or have shifted to a different daily pattern, review Make plan limits and ShipStation tier capacity with FullSpec. Carrier rule sets should also be reviewed quarterly as rate cards change.
Process owner with FullSpec support
The single most common maintenance issue for this process is a SKU mismatch between Shopify and Linnworks. This happens most often when a new product is added to Shopify before its Linnworks entry is created, or when a SKU is reformatted during a sale or bundle setup. The result is a flood of false out-of-stock alerts in Slack for every order containing that product. Before launching any new product, always confirm the SKU exists in Linnworks with the exact same format as it appears in Shopify. If you are unsure, contact FullSpec at support@gofullspec.com before the product goes live.
Process Runbook / SOPPage 4 of 4

More documents for this process

Every document generated for Order Processing & Fulfilment.

Launch Plan
Operations · Owner
View
ROI and Business Case
Finance · Owner
View
Developer Handover Pack
Technical · Developer
View
Integration and API Spec
Technical · Developer
View
Test and QA Plan
Quality · Developer
View