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 Order Processing and Fulfilment automation. It tells your team exactly what the system does on its own, where a human must act, how to handle anything that goes wrong, and who to call when you need help. FullSpec builds and maintains the automation end to end. Your team's role is limited to a single physical step and responding to exception alerts when the system flags them.

01Process overview

The Order Processing and Fulfilment automation runs from the moment a customer pays on your Shopify store through to a shipping confirmation landing in their inbox. Two agents handle the entire digital chain: the Order Intake Agent checks stock and routes the order, and the Fulfilment Dispatch Agent creates the invoice in Xero, books the courier in StarShipIt, updates Shopify with the tracking number, emails the customer, and posts a dispatch note to Slack. Your warehouse team's only job is to physically pick, pack, and apply the printed label before handing the parcel to the courier. Nothing else requires manual input under normal operating conditions.

Process name
Order Processing & Fulfilment
Trigger
A paid order is created in Shopify
Final output
A fulfilled Shopify order with tracking, a sent customer confirmation email, a created Xero invoice, and a Slack dispatch notification posted to the fulfilment channel
Agents running
Order Intake Agent (stock check and routing); Fulfilment Dispatch Agent (invoicing, courier booking, tracking update, customer email, Slack alert)
Tools involved
Shopify, Cin7, Xero, StarShipIt, Gmail, Slack
Weekly volume
Approximately 70 orders per week (280 orders/month)
Human checkpoint
Pick and pack the order in the warehouse, then apply the printed shipping label and hand the parcel to the courier
Process owner
[Your name] — Operations Manager

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

What you actually need to do: There is only one step that requires a person. When a new order comes in, your warehouse team picks the items from the shelf, packs the parcel, and applies the shipping label that the system has already printed. Everything before and after that step is handled automatically. If a Slack alert arrives flagging a stock issue, your team reviews that specific order and responds. That is the full extent of manual involvement under normal conditions.
Step
What happens
Who acts
Type
1
A paid order is created in Shopify. The Shopify webhook fires instantly and passes the full order payload, including line items, quantities, and the delivery address, to the Order Intake Agent.
Automation
Automated
2
The Order Intake Agent queries Cin7 for current on-hand stock against every SKU in the order. If all stock is confirmed, the order moves forward automatically. If any SKU is short, the agent sends a Slack alert to the fulfilment channel and holds the order for review.
Automation
Automated
3
If a Slack stock-short alert arrives, your fulfilment coordinator reads the alert, checks the physical stock situation, and decides whether to substitute, backorder, or cancel the affected line before releasing the order.
Fulfilment Coordinator
Human
4
The Fulfilment Dispatch Agent creates a matching sales invoice in Xero using the order details pulled directly from Shopify. Line items, customer details, and totals are mapped without any manual re-entry.
Automation
Automated
5
The Fulfilment Dispatch Agent pushes the order to StarShipIt, which applies your pre-configured courier service rules based on parcel weight and destination, generates the shipping label, and returns a tracking number to the agent.
Automation
Automated
6
The warehouse team picks items from the shelf using the packing slip, packs the goods, and places the slip inside the parcel. They then apply the printed shipping label to the outside of the parcel.
Warehouse Team
Human
7
The Fulfilment Dispatch Agent updates the Shopify order record with the fulfilment status and the tracking number returned from StarShipIt, creating the official fulfilment record in Shopify.
Automation
Automated
8
The Fulfilment Dispatch Agent sends a personalised shipping confirmation email to the customer via Gmail. The email contains the tracking number, courier name, and a link to track the parcel, drawn from the approved template.
Automation
Automated
9
The Fulfilment Dispatch Agent posts a dispatch summary to the fulfilment Slack channel, confirming the order number, customer name, courier, and tracking reference so the support team is immediately informed.
Automation
Automated
10
The warehouse team hands the labelled parcel to the courier driver or drops it at the depot for collection. This physical handover completes the fulfilment cycle.
Warehouse Team
Human
Process Runbook / SOPPage 1 of 3
FS-DOC-03Operations

03Handling exceptions

Situation
What the system does
What you do
Stock is short for one or more SKUs in the order
The Order Intake Agent detects the shortfall during the Cin7 stock check and immediately sends a Slack alert to the fulfilment channel, naming the order number, the affected SKUs, and the quantities short. The order is held and does not proceed to invoicing or courier booking.
Your fulfilment coordinator reviews the alert, checks the physical shelf count, and decides the next action: substitute an equivalent product, contact the customer to offer a backorder, or cancel and refund the affected line. Once resolved, release the order manually from the held queue or update Cin7 stock and allow the agent to retry.
Duplicate order detected (same customer, same items, within 10 minutes)
The Order Intake Agent compares incoming order identifiers against recent processed orders. If a likely duplicate is identified based on matching customer email and SKU set within the lookback window, it sends a Slack alert flagging the potential duplicate before proceeding. The order is not automatically suppressed.
Your coordinator confirms whether the second order is a genuine duplicate or a legitimate reorder. If it is a duplicate, cancel or refund the extra order directly in Shopify. If it is legitimate, mark the alert as resolved in Slack so the agent processes it normally.
StarShipIt cannot match a courier service to the order (address or weight outside configured rules)
The Fulfilment Dispatch Agent receives an error response from StarShipIt when no service rule matches the order's destination or parcel weight. It logs the failure, sends a Slack alert with the order number and the error reason, and pauses the dispatch step. The Xero invoice has already been created at this point.
Your coordinator logs into StarShipIt directly, manually selects the appropriate courier service for that order, and generates the label. Once the label is produced and the tracking number is retrieved, update the Shopify order manually with the tracking number and mark it fulfilled. Notify the FullSpec team if this happens repeatedly so the courier rule configuration can be updated.
A human does not act on a stock-short Slack alert within a defined period
The system sends one initial Slack alert when the stock shortfall is detected. There is no automatic escalation timer built into the base flow. The order remains held until a team member responds.
Your operations manager should set an internal expectation that stock-short alerts are reviewed within two business hours of receipt. If your team is not responding to alerts consistently, contact FullSpec to discuss adding an escalation reminder or an email fallback to the process owner.
Gmail sending fails and the customer confirmation email is not delivered
The Fulfilment Dispatch Agent detects the sending failure from the Gmail API response. It logs the error and posts a Slack alert to the fulfilment channel identifying the order number and the customer email address that was not reached. The rest of the fulfilment steps, including Shopify tracking update and Slack dispatch notification, have already completed.
Your coordinator manually sends the confirmation email to the customer directly from Gmail, copying in the tracking number and courier name. If Gmail sending failures occur on multiple orders, check whether your Gmail sending limits have been reached or whether the connected Gmail account credentials need to be refreshed. Contact support@gofullspec.com if the issue persists.
Cin7 or StarShipIt is unavailable due to an outage or API downtime
The automation platform detects the failed API response and retries the affected step up to three times with short delays between attempts. If all retries fail, the agent logs the failure and sends a Slack alert naming the affected tool, the order number, and the step that could not complete. The order is paused at that step.
Check the status pages for Cin7 (status.cin7.com) and StarShipIt (status.starshipit.com) to confirm whether an outage is in progress. If the outage is brief, the held orders will typically retry and clear automatically once connectivity is restored. For extended outages, fall back to your manual process for orders already in the held queue, and inform the FullSpec team so monitoring can be reviewed.

04Who to contact and when

Fill in the rows below once your team is confirmed. The FullSpec rows are fixed. Share this completed table with everyone involved in fulfilment so there is no confusion about who handles what when something goes wrong.

Role
Name
How to reach them
Process owner / Operations Manager
[Your name]
[Your phone or email]
Fulfilment Coordinator (daily operations and exception response)
[Rep name]
[Rep email or Slack handle]
Warehouse Team Lead (pick, pack, and dispatch queries)
[Rep name]
[Rep email or Slack handle]
Xero / Accounts contact (invoice queries or Xero access issues)
[Rep name]
[Rep email]
StarShipIt account contact (courier rule changes, account limits)
[Rep name]
[Rep email or StarShipIt support link]
FullSpec builder (automation changes, logic updates, new courier rules)
FullSpec team
support@gofullspec.com — include your process name and a description of the change needed
FullSpec support (failed runs, error alerts, urgent outages)
FullSpec support
support@gofullspec.com — mark the subject line URGENT for same-business-day response
Process Runbook / SOPPage 2 of 3
FS-DOC-03Operations

05Ongoing maintenance

The automation runs without ongoing input from your team once it is live. The tasks below are the only regular maintenance actions required to keep it running accurately as your business changes.

When
What to do
Who
Whenever Cin7 stock data is updated or a new product is added
Confirm that new SKUs are correctly set up in Cin7 with accurate on-hand quantities and that the SKU identifiers match exactly what appears in Shopify. Mismatched SKUs cause the stock check to fail silently and hold orders unnecessarily. Notify FullSpec if new product types require changes to the routing logic.
Fulfilment Coordinator
Whenever the customer email template or shipping notification content changes
Send the updated copy, branding, or template structure to FullSpec at support@gofullspec.com. Do not edit the Gmail template directly if it is managed inside the automation layer, as changes made outside the automation will be overwritten on the next deploy.
Process Owner, then FullSpec
Monthly spot-check (first week of each month)
Manually review five to ten orders from the previous month. Confirm that the Xero invoice matches the Shopify order total, that the StarShipIt tracking number in Shopify is correct, and that the customer received the confirmation email. Log any discrepancies and report them to FullSpec.
Fulfilment Coordinator
Weekly error-log review (every Monday morning)
Check the dedicated Slack channel for any unresolved error alerts from the previous week. Look for repeated failures on the same step, orders that remain in a held state, or any pattern of retries. Escalate anything unresolved to support@gofullspec.com.
Fulfilment Coordinator or Operations Manager
Whenever a team member changes (new hire, departure, or role change)
Update the contact table in Section 04 of this runbook. If the departing person held API credentials or had connected accounts (Gmail, Slack), notify FullSpec immediately so credentials can be transferred to the replacement account before the automation loses access.
Operations Manager, then FullSpec
Quarterly volume review (every three months)
Review actual order volumes against the 280 orders per month baseline used to scope this automation. If volumes have grown significantly, assess whether the current courier rules, Cin7 rate limits, or Gmail sending quotas need to be adjusted. Share updated numbers with FullSpec so the configuration can be reviewed before limits are reached.
Operations Manager with FullSpec
Whenever courier services, rates, or destination rules change in StarShipIt
Contact FullSpec to update the courier service selection logic inside the Fulfilment Dispatch Agent. Do not update rules in StarShipIt alone without informing FullSpec, as the agent's rule-matching logic must stay aligned with what StarShipIt returns.
Operations Manager, then FullSpec
The most common maintenance issue for this process is Cin7 stock data falling out of sync with physical inventory. When on-hand quantities in Cin7 are inaccurate, the Order Intake Agent either holds valid orders unnecessarily or passes orders that cannot be fulfilled, both of which create re-work and customer complaints. Run a physical stock count against your Cin7 records at least once per month and correct discrepancies before they affect live orders.
Process Runbook / SOPPage 3 of 3

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