
Shopify Admin Order Risk Report
- 7 installs
- 173 repo stars
- Updated June 26, 2026
- 40rty-ai/shopify-admin-skills
shopify-admin-order-risk-report is a Claude Code skill that lists Shopify orders by fraud risk level with indicator details for building a manual review queue.
About
This skill queries recent Shopify orders and surfaces those flagged high or medium fraud risk, including Shopify's specific risk indicators like address mismatch and risky email domain. Ops or fraud reviewers use it to build a prioritized manual-review queue sorted by risk and order value. It is read-only and produces a dated CSV.
- Lists recent Shopify orders by fraud risk level with the specific risk indicators
- Builds a prioritized manual-review queue sorted by risk then order value
- Read-only; outputs a dated risk-report CSV
Shopify Admin Order Risk Report by the numbers
- 7 all-time installs (skills.sh)
- Ranked #1,587 of 2,715 Automation & Workflows skills by installs in the Skillselion catalog
- Data as of Aug 1, 2026 (Skillselion catalog sync)
shopify-admin-order-risk-report capabilities & compatibility
Free skill; requires an authenticated Shopify store session with read_orders scope.
- Capabilities
- fraud risk report · order risk ranking · review queue builder
- Works with
- github
- Use cases
- orchestration
- Runs
- Runs locally
- Pricing
- Bring your own API key
- Requires keys
- SHOPIFYSTOREADMINAUTHVIASHOPIFYCLI
What shopify-admin-order-risk-report says it does
Queries recent orders and surfaces those with high or medium fraud risk scores, including the specific risk indicators flagged by Shopify
Do not auto-cancel high-risk orders — use `high-risk-order-tagger` to flag them for manual hold first, then review before cancelling.
npx skills add https://github.com/40rty-ai/shopify-admin-skills --skill shopify-admin-order-risk-reportAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 7 |
|---|---|
| repo stars | ★ 173 |
| Last updated | June 26, 2026 |
| Repository | 40rty-ai/shopify-admin-skills ↗ |
What it does
Build a prioritized Shopify fraud-review queue from recent orders' risk levels and indicators.
Who is it for?
Ops teams running a daily fraud-review routine over recent orders, especially during sale periods.
Skip if: Automatically cancelling or blocking orders; risk scores are advisory only.
When should I use this skill?
You need a prioritized list of recent high or medium fraud-risk orders to review manually.
What you get
A ranked CSV of high and medium risk orders with their risk indicators is ready for manual review.
- CSV risk_report_<date>.csv with order_name, risk_level, total_price, customer, risk_indicators columns
By the numbers
- 11-column output CSV
- default 7-day lookback window
Files
Purpose
Queries recent orders and surfaces those with high or medium fraud risk scores, including the specific risk indicators flagged by Shopify (billing/shipping address mismatch, risky email domain, high-risk IP, etc.). Produces a prioritized review queue for manual fraud assessment. Read-only — no mutations.
Prerequisites
- Authenticated Shopify CLI session:
shopify store auth --store <domain> --scopes read_orders - API scopes:
read_orders
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| store | string | yes | — | Store domain (e.g., mystore.myshopify.com) |
| risk_level | string | no | high | Minimum risk level to include: high, medium, or all |
| days_back | integer | no | 7 | Lookback window for orders to review |
| min_order_value | float | no | 0 | Only include orders above this value (USD) |
| format | string | no | human | Output format: human or json |
Safety
ℹ️ Read-only skill — no mutations are executed. Safe to run at any time. Risk scores are generated by Shopify's fraud analysis and are advisory only — they do not block orders automatically unless you configure Shopify's fraud filters.
Workflow Steps
1. OPERATION: orders — query Inputs: query: "risk_level:<risk_level> created_at:>='<NOW - days_back days>'", first: 250, select riskLevel, riskFacts, totalPriceSet, customer, pagination cursor Expected output: Orders with risk data; paginate until hasNextPage: false
2. Sort by risk level (high first), then by order value descending
GraphQL Operations
# orders:query — validated against api_version 2025-01
query OrderRiskReport($query: String!, $after: String) {
orders(first: 250, after: $after, query: $query) {
edges {
node {
id
name
createdAt
displayFinancialStatus
displayFulfillmentStatus
totalPriceSet {
shopMoney {
amount
currencyCode
}
}
riskLevel
riskFacts {
message
sentiment
}
customer {
id
displayName
defaultEmailAddress {
emailAddress
}
numberOfOrders
}
shippingAddress {
countryCode
city
}
billingAddress {
countryCode
city
}
}
}
pageInfo {
hasNextPage
endCursor
}
}
}Session Tracking
Claude MUST emit the following output at each stage. This is mandatory.
On start, emit:
╔══════════════════════════════════════════════╗
║ SKILL: Order Risk Report ║
║ Store: <store domain> ║
║ Started: <YYYY-MM-DD HH:MM UTC> ║
╚══════════════════════════════════════════════╝After each step, emit:
[N/TOTAL] <QUERY|MUTATION> <OperationName>
→ Params: <brief summary of key inputs>
→ Result: <count or outcome>On completion, emit:
For format: human (default):
══════════════════════════════════════════════
ORDER RISK REPORT (<days_back> days)
Orders reviewed: <n>
High risk: <n>
Medium risk: <n>
Low risk: <n>
High Risk Orders:
#<name> $<amount> <customer>
Risks: <indicator>, <indicator>
Output: risk_report_<date>.csv
══════════════════════════════════════════════For format: json, emit:
{
"skill": "order-risk-report",
"store": "<domain>",
"period_days": 7,
"orders_reviewed": 0,
"high_risk_count": 0,
"medium_risk_count": 0,
"output_file": "risk_report_<date>.csv"
}Output Format
CSV file risk_report_<YYYY-MM-DD>.csv with columns: order_name, order_id, created_at, risk_level, total_price, currency, customer_name, customer_email, risk_indicators, financial_status, fulfillment_status
Error Handling
| Error | Cause | Recovery |
|---|---|---|
THROTTLED | API rate limit exceeded | Wait 2 seconds, retry up to 3 times |
| No high-risk orders | Clean period | Exit with summary: 0 flagged orders |
riskLevel null | Order too new for analysis | Exclude from report, note count |
Best Practices
- Do not auto-cancel high-risk orders — use
high-risk-order-taggerto flag them for manual hold first, then review before cancelling. - An order from a repeat customer (
numberOfOrders > 3) with a high risk score is usually a false positive — apply judgment before acting. min_order_valuehelps focus review effort on high-value fraud risk; $50+ is a reasonable floor for most stores.- Run daily as part of a morning ops routine, especially during high-volume sale periods when fraud attempts increase.
Related skills
FAQ
Does it block orders?
No, risk scores are advisory only and do not block orders automatically unless you configure Shopify's fraud filters.
What is the default lookback?
days_back defaults to 7 days of orders to review, with risk_level defaulting to high.