# Review high risk Shopify orders before anything gets picked

> See where each checkout really came from next to the billing and shipping country, then release, tag, or cancel every flagged order by hand.

- Workflow type: app
- Services: Shopify, IPinfo, Google Sheets
- Categories: Operations, Finance
- Published: 2026-08-24

## What it does

- Pulls your unfulfilled orders into one review queue and floats the highest value country mismatches to the top, so the orders worth a human minute are the ones you see first.
- Puts the checks people do by hand on a single card: where the checkout came from, the billing and shipping country, the network that owns the address, and a flag when it looks like a hosting provider, VPN, proxy, or Tor connection.
- Lets a reviewer release the order with a tag, add a note for the team, or cancel and restock it, always by clicking. Nothing is ever cancelled automatically.
- Writes every decision to a Google Sheet so you can measure your false positive rate and the chargebacks you avoided, and so a cleared order never shows up in the queue again.
- Gives each card an Investigate this buyer button that sends a background assistant to check the buyer's past orders and the network behind the checkout, then writes a recommendation with its reasons onto the card.

## What you'll need

- A Shopify store you can sign in to, with permission to view orders and to tag or cancel them.
- Access to the checkout IP on your orders. Shopify treats the shopper's browser address as protected customer data, so orders without it simply show "no IP recorded" instead of breaking.
- An IPinfo account. A free token covers the country and network owner signals; the VPN, proxy, and hosting flags come with a paid plan.
- A Google account and a spreadsheet to hold the decision log.

## Prompt

Build me a review desk where our fulfillment team works high risk Shopify orders before anything gets picked. The guiding rule is review before you pick, not block automatically: a cancelled good order costs us a real customer, so the app surfaces evidence and ranks the queue, and every release, tag, and cancellation happens because a person clicked it. Nothing is ever cancelled automatically.

The main screen is a review queue. Load unfulfilled orders with the Shopify List Orders operation (unfulfilled and partially fulfilled, most recent pages first) and render one card per order. Each card shows the order number, the buyer name, the order value and currency, the billing country, the shipping country, and the checkout IP taken off the order record (the browser IP in the order's client details). Enrich the IPs a page at a time with the IPinfo Batch IP Lookup operation rather than one call per card, and use IPinfo Get Full IP Details when a single card is refreshed on its own. From that enrichment show the checkout city and country and the network owner behind the address (the ASN number and organization name, for example AS15169 Google LLC). Also ask the IPinfo Core / Plus IP Lookup operation for privacy signals and, when they come back, put a clear badge on the card when the address is a hosting provider, a VPN, a proxy, or a Tor exit node.

Rank the queue so the highest value country mismatches sit at the top. A mismatch means the checkout country differs from the billing country, the shipping country, or both. Combine that with order value, and use the hosting or VPN or proxy flag as a secondary boost. Put a one line reason under each card title explaining why it is ranked where it is, for example "checkout in Vietnam, shipping to Germany, hosting network, 840 USD". Let the reviewer switch sorting between risk rank, order value, and newest, and filter to only mismatches or only flagged networks.

Handle missing data gracefully rather than failing rows. The checkout IP is protected customer data in Shopify and is often absent, so when there is no IP on the order the card shows "no IP recorded" and stays in the queue to be reviewed on the billing and shipping details alone. IPinfo privacy and VPN detection is a paid plan feature, so when those fields are not present hide the badge entirely instead of showing a false negative, and fall back to the free country plus network owner signal. Non routable or bogon addresses should read "not a public address".

From a card the reviewer has three actions, each behind a click. Release: call the Shopify Update Order operation to add a clearing tag (default "review-cleared") and optionally append a short note. Tag and annotate: also Shopify Update Order, adding a hold tag plus a free text note the reviewer types, for orders that need a second pair of eyes or a customer contact before picking. Cancel and restock: call the Shopify Cancel Order operation with restocking turned on and a cancellation reason, behind a confirmation step that restates the order value and the buyer name. Clicking a card opens a detail panel built from the Shopify Get Order operation showing line items, payment and financial status, and the full billing and shipping addresses next to the checkout location.

Decisions must persist. Save each decision against the order id in the app's own storage, with the reviewer, the timestamp, the decision, and the reason, so a cleared or cancelled order never comes back into the queue. In parallel append a row to a Google Sheets decision log using the Append Values operation, with columns for timestamp, order number, order value, currency, reviewer, decision, checkout country, billing country, shipping country, network owner, privacy flags, and reason. Read that sheet back with the Google Sheets Get Values operation to power a Decided tab listing recent decisions, with a way to reopen an order that was cleared by mistake. The point of the log is that later we can measure our false positive rate and the chargebacks we saved.

Give each card an "Investigate this buyer" button that runs a background agent for that order. The agent pulls the customer's past orders with the Shopify Get Customer Orders operation, re-checks the checkout address with IPinfo Get Full IP Details, and pulls the owning network's record with the IPinfo Get ASN Details operation to see who runs it and whether it looks like a consumer internet provider or a hosting network. It then compares this order's shipping country and checkout country against the countries this buyer ordered from and shipped to before, notes whether this is a first order or a repeat, whether the shipping address is one they have used before, and how the value compares to their normal order. It writes a short recommendation (release, hold, or cancel) with the reasons that support it back onto the card, so the next person to look at the queue sees it inline. Show a running state on the button while the agent works and never let its recommendation act on its own.

Keep the copy calm and evidence led throughout. Labels like "checkout location", "network owner", and "needs a look" rather than "fraud" or "blocked", and a short note somewhere on the screen reminding the team that travellers, privacy VPNs, and gifts all look like mismatches.

## How to customize

- Change what counts as high risk: the order value that matters to you, whether a billing mismatch alone is enough, or whether a hosting network on its own should raise a flag.
- Change the tags and note wording written back to Shopify when someone releases, holds, or cancels an order, so your existing reports keep working.
- Point the decision log at a different spreadsheet or tab, and add columns like reviewer name or a reason code you want to report on later.

## FAQ

### Does this cancel orders by itself?

No. The app only ever shows you evidence and ranks the queue. Releasing, tagging, and cancelling all happen when a person clicks, and cancelling asks you to confirm first. A cancelled good order costs you a real customer, so the whole design leans toward review before you pick rather than block automatically.

### What happens to orders with no IP address on them?

They still appear in the queue with "no IP recorded" on the card, and you review them on the billing and shipping details alone. Shopify treats the shopper's browser address as protected customer data, so it is not always available, and a missing address never drops the order from the list.

### Do I need a paid IPinfo plan?

No. On a free token you still get the checkout country, city, and the network owner behind the address, which covers the country mismatch check. The VPN, proxy, Tor, and hosting provider flags are a paid feature, and the app simply hides those badges when your plan does not include them.

### Will an order I already cleared come back into the queue tomorrow?

No. Every decision is saved against the order, so cleared and cancelled orders stay out of the queue. You can still see them in the decision history and reopen one if it was cleared by mistake.

### Does a checkout from another country mean the order is fraud?

On its own, no. Travellers, people using a privacy VPN, gifts sent abroad, and expats all look like mismatches. That is exactly why this is a review queue rather than an auto blocker: the card gives your team the evidence, including who owns the network, and a person makes the call.

### What does the Investigate this buyer button actually do?

It kicks off a background assistant that pulls the buyer's past orders, looks up the checkout address and the network that owns it, compares this shipping country against where the buyer ordered from before, and writes a short recommendation with its reasons back onto the card. You can keep working the queue while it runs.

Use this prompt in General Input: https://www.generalinput.com/prompts/review-high-risk-shopify-orders-before-anything-gets-picked