tiqline is a process SLA monitoring tool: it turns events from Shopify and your own systems into one case per piece of work, gives every step a time limit and alerts you in Slack or by email when a step runs over.

Shopify order monitoring: find the orders that stall between payment and shipping

Most Shopify orders go through on their own. The expensive ones are the few that stop: paid but never handed to the warehouse, half shipped, or waiting on a 3PL that never confirmed. tiqline follows every order as its own case, gives each step a time limit and tells you in Slack, by email or through a webhook as soon as an order stays on a step for too long.

Where Shopify orders get stuck

Shopify describes the life of most orders in two stages: the payment is captured, then the order is fulfilled. Between those two stages sit the steps that belong to you: the order reaches your warehouse or 3PL, someone picks and packs it, a label is created and the parcel leaves the building. Any of these can stop quietly. A sync to the fulfilment partner fails, an item is out of stock, an order lands in a queue nobody owns, or only part of it ships. The order itself does not complain. The first signal is often a customer asking where the parcel is, days after the promise on your product page has passed.

How shops watch orders today: Shopify admin, exports and Flow

The Orders page in Shopify admin can filter by fulfillment status, payment status and date, so a person can find unfulfilled orders whenever they look. For a regular check, many teams export orders as a CSV file and sort them in Excel or Google Sheets. Shopify downloads an export of up to 50 orders directly and emails larger ones, with columns such as Created at, Paid at, Fulfilled at and Fulfillment Status. Shopify Flow, the free automation app on the Basic, Grow, Advanced and Plus plans, goes a step further. Its templates include a daily email of all unfulfilled orders older than two days and a workflow that waits and sends a message if an order is not shipped within two days, using Google Sheets and Slack. The Wait action holds a run for at most 90 days, and if you edit a workflow while runs are waiting, the resumed runs use the new version.

Zapier, n8n and AfterShip

Zapier has Shopify triggers such as New Paid Order and New Fulfilled Order, and a Delay step that holds a Zap for up to 30 days. If you change the Zap while a run is delayed, that run does not continue. In n8n you combine the Shopify Trigger node with a Wait node or a Schedule Trigger and keep the state of each order yourself, for example in a database table. Both work for one rule. Each new step, deadline or exception adds another branch you build and maintain. AfterShip starts later in the journey: it tracks a shipment once a tracking number exists, across more than 2,000 carriers, and sends webhooks on tracking updates. The steps before the label are outside its view.

How tiqline monitors a Shopify order, step by step

1. Connect the shop

tiqline receives Shopify webhooks and checks each one against its HMAC signature. It turns eight topics into events: orders/create becomes Order Created, orders/paid Order Paid, orders/fulfilled Order Fulfilled, orders/partially_fulfilled Order Partially Fulfilled, orders/cancelled Order Cancelled, fulfillments/create Fulfillment Created, fulfillments/update Fulfillment Updated and refunds/create Order Refunded. It keeps order facts such as the order number, payment and fulfilment status, total, currency, sales channel and the country code of the shipping address. It never copies the customer, email addresses, names, addresses, phone numbers or notes.

2. Describe the process once

A process says which event opens a case and which steps should follow. For an order that is usually Order Paid, then Fulfillment Created, then Order Fulfilled. Every order becomes one case. You edit the process as a draft, preview it on your real orders and publish it. tiqline builds the cases from the events it has already stored as well as from every new one, so the first view is not empty.

3. Give each step a time limit

The first step opens the case and has no limit. Every later step can have one, written as seconds, minutes, hours or days, such as 2h or 3d. The deadline is the moment the order reached the previous step plus the limit. When you change a limit, it applies at once, also to orders already on that step. An order that was stuck and now has a deadline in the future is running again.

4. Split by channel or country, and end cancelled orders

A branch reads a property of an event and sends the case down one of several paths, each with its own steps and limits. From Shopify you can branch on the sales channel or the shipping country, for example 24 hours for domestic orders and 48 hours for the rest. An end rule on Order Cancelled closes a case early, and an ended case never alerts.

5. Get one alert per problem, not one per order

When orders pass a deadline, tiqline opens an incident for that step and sends one message to Slack, by email to up to 20 people or to a signed webhook. The message names the process, the step and its limit, says how many cases are waiting and links to them. A required step that is skipped also alerts, 15 minutes after the later event arrived. When no stuck order is left, the incident is resolved.

6. Add steps from outside Shopify

Packing, a 3PL confirmation or a handover to the carrier rarely reach Shopify as webhooks. Your warehouse system, 3PL integration or a small script sends those events to the track API, in the Segment and RudderStack format, with the order ID. They land in the same case as the Shopify events.

Example: a paid order that never reached the warehouse

The shop, the order number and the times below are made up to show the flow. The process: Order Paid opens the case, Fulfillment Created has 24 hours, Order Fulfilled has 48 hours.

  1. Monday 09:12: order 1042 is paid

    Shopify sends orders/paid. tiqline opens a case for order 1042 and sets the deadline for Fulfillment Created to Tuesday 09:12.

  2. Tuesday 09:12: the deadline passes

    Stuck

    No fulfilment has been created. The case turns stuck. Six other orders from Monday morning wait on the same step, so tiqline opens one incident and posts one Slack message: Fulfillment Created, limit 24h, 7 cases waiting, with links to each.

  3. Tuesday 09:30: the team looks at the cases

    Every case shows Order Paid and nothing after it. All seven contain the same new product. The team checks the 3PL portal and finds that the product was never set up there, so the orders were never accepted.

  4. Tuesday 14:40: the orders move again

    The product is added at the 3PL and the orders are released. Shopify sends fulfillments/create for each of them, the cases move on to Order Fulfilled with a 48 hour limit, and the incident is resolved once no case is stuck.

What tiqline does not do

tiqline reads the eight Shopify topics above and nothing else. It does not receive returns/* or fulfillment_orders/* webhooks, so a 3PL accepting or rejecting a fulfilment request has to reach it through the track API. The Shopify data it keeps does not include the fulfilment location, so a split by warehouse needs an event from your own system that names the warehouse. Time limits run on the clock: 24 hours include nights and weekends, and there are no business-hour calendars. Each organisation has one Slack channel, one email list and one webhook for alerts. tiqline does not change orders, contact customers or explain why an order stopped. Deadlines that passed more than seven days before the events arrived are marked but do not alert. On the Free plan with 5,000 events a month, alerts pause when the quota is used up and events are still stored.

When Shopify Flow is enough, and when it is not

If you need one rule, such as a daily list of unfulfilled orders older than two days, the Flow template does that job inside Shopify. tiqline is built for the case where an order passes several steps, some of them outside Shopify, each with its own limit, and you want to see for every process how many cases kept every limit, how many are stuck right now and how long a case usually takes.

tiqline monitors process SLAs and is not one of the classic product-analytics tools.

Questions about Shopify order monitoring

Which Shopify webhooks does tiqline use?

orders/create, orders/paid, orders/fulfilled, orders/partially_fulfilled, orders/cancelled, fulfillments/create, fulfillments/update and refunds/create. Each becomes an event such as Order Paid or Fulfillment Created. Other topics are not read.

Does tiqline store customer data from Shopify?

No. It keeps order and fulfilment facts such as order number, status, total, currency, sales channel, carrier and the country code of the shipping address. Customer names, email addresses, postal addresses, phone numbers and notes are never copied. Data is stored in the EU, in Frankfurt.

How is this different from a Shopify Flow workflow?

A Flow workflow handles one run per trigger, and its Wait action holds that run for up to 90 days. tiqline keeps every order as a case across all its steps, takes steps from other systems as well, applies a changed limit to orders already waiting and shows per process how many cases are stuck.

Can I set different limits for different orders?

Yes. A branch reads a property such as the sales channel or the shipping country and sends each order down its own path with its own limits. For a split by warehouse, the warehouse has to arrive in an event from your system.

What happens when an order is cancelled?

With an end rule on Order Cancelled, the case ends early and never alerts, even if a step after it was overdue.

Where do the alerts go?

To a Slack incoming webhook, by email to up to 20 recipients, or to a webhook signed with Standard Webhooks that any https receiver can verify. Each channel can be switched off.

What does it cost to start?

The Free plan includes 5,000 events a month. Each Shopify webhook that tiqline reads counts as one event, and a repeated event is stored and counted once.

Start for free

The Free plan includes 5,000 events a month.

Branches by warehouse

tiqline

Slack or email

Example

4 orders have been in “Packed” for over 1 hour.

Orders: 4 cases stuck at step Packed (SLA 1h)

Open the case
Example, not a real message.

Orders

7 days

PaidStart12 waitingover the limit: 0
PackedTime limit 1 h4 waitingover the limit: 4stuck
Shipped24 h2 waitingover the limit: 0

trace_id

ord_1042

  1. PaidStart
  2. Packedstuck
  3. Shipped24 h

Alert

Packed

Warehouse NorthTime limit 4 hreached
Warehouse WestTime limit 8 hstuck