Integration tests verify that data passes correctly across agent boundaries. All three agents run in sequence in sandbox mode. The Slack test channel, Linnworks sandbox, ShipStation sandbox, Klaviyo test mode, and Xero sandbox must all be active before these cases run.
ID
Scenario
Input
Expected output
Pass criteria
T16
Full in-stock flow: Order Routing to Label and Despatch handoff
Shopify test order; all SKUs in stock in Linnworks sandbox
Order Routing Agent confirms stock and passes routed order record to Label and Despatch Agent; label created without manual trigger
Label and Despatch Agent execution begins automatically following Order Routing Agent completion; no gap or manual step in Make scenario log
T17
Full in-stock flow: Label and Despatch to Customer Notification handoff
Stock-confirmed order; label created in ShipStation sandbox; Shopify order marked Fulfilled
Customer Notification Agent triggers on Shopify fulfilment event; Klaviyo test send fires with correct tracking number
Klaviyo activity log shows send event within 30 seconds of Shopify fulfilment update; tracking number in email matches ShipStation output
T18
Full three-agent chain: end-to-end sandbox run
Shopify test order from webhook through to Xero cost entry
All three agents execute in correct sequence; Linnworks pick list, ShipStation label, Shopify fulfilment, Klaviyo test send, and Xero line item all created
All five downstream records exist in their respective sandbox environments; total elapsed time from webhook to Klaviyo send is under 90 seconds
T19
Out-of-stock order: Label and Despatch Agent never triggered
Shopify test order; Linnworks returns zero stock for one SKU
Order Routing Agent posts Slack alert; Label and Despatch Agent does not execute; no label created
ShipStation sandbox shows no new label; Make execution log shows fulfilment branch not entered; Slack alert received
T20
High-volume burst: 15 orders fired in rapid succession
15 Shopify test webhook events fired within 60 seconds
All 15 orders processed without data collision; each produces its own label, fulfilment update, and Klaviyo test send
15 distinct label records in ShipStation sandbox; 15 Shopify test orders marked Fulfilled with unique tracking numbers; no orders merged or skipped
T21
Xero cost entry matches ShipStation label cost exactly
Standard test order with a known shipping cost returned by ShipStation sandbox ($7.50)
Xero sandbox receives line item for $7.50 against the correct sales order reference
Xero sandbox line item amount is $7.50; sales order reference matches the Shopify order number; no rounding or currency error
T22
Make scenario mid-run failure recovery
Full order flow initiated; Make module for Shopify fulfilment write-back set to fail on first attempt
Make retries the failed module; on success, downstream agents continue from that point without re-running completed steps
Make log shows retry for Shopify write-back only; prior steps (label creation) not duplicated; Klaviyo send and Xero entry complete normally after recovery
T23
Slack exception alert contains all required fields
Out-of-stock test order with 2 flagged SKUs
Slack alert in test channel includes: order ID, customer name, flagged SKU codes, quantities ordered, and a link to the Shopify order
All five data fields present in the Slack message; Shopify order URL resolves correctly; no truncated or missing values
T24
Linnworks pick list zone-sorting applied correctly
Test order with 4 SKUs mapped to 3 different warehouse zones in Linnworks sandbox
Pick list in Linnworks groups SKUs by zone in ascending zone order
Linnworks sandbox pick list shows zone grouping; SKUs within each zone listed together; no mixed-zone rows
The following edge cases test the automation's resilience to abnormal inputs and external failures. These cases run in the same sandbox environment as the integration tests above.
ID
Scenario
Input
Expected output
Pass criteria
E01
Duplicate Shopify webhook: same order ID received twice within 60 seconds
Two identical Shopify paid-order webhook payloads with the same order_id fired 10 seconds apart
Idempotency check detects duplicate; second webhook discarded; only one label created
ShipStation sandbox shows exactly one label for the order ID; Make log shows duplicate-detection step on second run; no double-charge in Xero sandbox
E02
Order line item has no SKU value (null or blank)
Shopify test order where one line item has an empty sku field
Order Routing Agent catches missing SKU; exception raised; Slack alert posted; fulfilment path not entered
Slack alert references the line item by product title and flags missing SKU; no Linnworks query attempted for the blank SKU; Make log shows validation-failure step
E03
Linnworks API unavailable for more than 5 minutes
Shopify test order received; Linnworks sandbox endpoint set to return 503 for 6 minutes
Order held in Make queue; retries at 1-minute intervals; after 5 failed attempts, Slack alert posted flagging Linnworks unavailability with order ID
Make log shows 5 retry attempts at 60-second intervals; Slack alert received after fifth failure; order not silently dropped
E04
ShipStation returns a label for the wrong carrier service
Test order where ShipStation sandbox returns a label with a carrier_code not matching the pre-configured rule for the order's weight and zone
Label and Despatch Agent detects carrier_code mismatch; label voided in ShipStation sandbox; Slack alert posted for manual carrier selection
ShipStation sandbox shows voided label; Slack alert contains order ID and the mismatched carrier code; no Shopify fulfilment write-back triggered
E05
Customer email address missing from Shopify order
Shopify fulfilment event with contact_email field null
Customer Notification Agent suppresses Klaviyo send; Slack alert posted with order ID flagging missing email address
No Klaviyo activity log entry for the order; Slack alert received referencing the order ID; Make log shows email-validation failure step
E06
Fulfilment manager does not respond to out-of-stock Slack alert within 4 hours
Out-of-stock exception Slack alert posted; no human response or order action taken within 4-hour window
Make scenario sends a follow-up Slack reminder to the fulfilment manager channel after 4 hours; order remains on hold
Slack test channel receives follow-up reminder at the 4-hour mark; reminder references original order ID; order status unchanged in Shopify sandbox
E07
Xero sales order reference not found for the Shopify order number
ShipStation returns valid label and cost; Xero sandbox has no matching sales order for the Shopify order number
Xero write step fails gracefully; Slack alert posted with order ID and shipping cost for manual Xero entry; all other agent steps complete normally
Shopify order is Fulfilled with tracking number; Klaviyo test send fires; Slack alert contains the exact shipping cost and order reference; Xero sandbox has no orphan entry