AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Shopify Admin Return Processing Sla

skill-40rty-ai-shopify-admin-skills-shopify-admin-return-processing-sla · by 40RTY-ai

Read-only: measures average time from return request to refund completion, surfacing SLA breaches.

No reviews yet
0 installs
34 views
0.0% view→install

Install

$ agentstack add skill-40rty-ai-shopify-admin-skills-shopify-admin-return-processing-sla

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures
View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-40rty-ai-shopify-admin-skills-shopify-admin-return-processing-sla)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Shopify Admin Return Processing Sla? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Purpose

Calculates the time from return request creation to refund issuance for all completed returns in a period. Surfaces the average processing time, identifies orders that breached a configurable SLA threshold, and lists the longest-pending open returns. Read-only — no mutations.

Prerequisites

  • Authenticated Shopify CLI session: shopify store auth --store --scopes read_orders,read_returns
  • API scopes: read_orders, read_returns

Parameters

| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | store | string | yes | — | Store domain (e.g., mystore.myshopify.com) | | daysback | integer | no | 30 | Lookback window for return requests | | sladays | integer | no | 5 | Maximum acceptable days from request to refund | | format | string | no | human | Output format: human or json |

Safety

> ℹ️ Read-only skill — no mutations are executed. Safe to run at any time.

Workflow Steps

  1. OPERATION: returns — query

Inputs: query: "created_at:>=''", first: 250, pagination cursor Expected output: Returns with createdAt, status, refunds { createdAt }, order { name }

  1. For each completed return: calculate processing_days = refund.createdAt - return.createdAt
  1. Identify SLA breaches: processing_days > sla_days
  1. OPERATION: orders — query

Inputs: Filter for orders with return_status:open to find pending returns exceeding SLA Expected output: Open return orders with request dates

GraphQL Operations

# returns:query — validated against api_version 2025-01
query ReturnProcessingTimes($query: String!, $after: String) {
  returns(first: 250, after: $after, query: $query) {
    edges {
      node {
        id
        status
        createdAt
        order {
          id
          name
        }
        refunds(first: 3) {
          id
          createdAt
          totalRefundedSet {
            shopMoney {
              amount
              currencyCode
            }
          }
        }
        returnLineItems(first: 10) {
          edges {
            node {
              quantity
              returnReason
            }
          }
        }
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
# orders:query — validated against api_version 2025-01
query OrdersWithOpenReturns($query: String!, $after: String) {
  orders(first: 250, after: $after, query: $query) {
    edges {
      node {
        id
        name
        createdAt
        returnStatus
        returns(first: 5) {
          edges {
            node {
              id
              status
              createdAt
            }
          }
        }
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}

Session Tracking

Claude MUST emit the following output at each stage. This is mandatory.

On start, emit:

╔══════════════════════════════════════════════╗
║  SKILL: Return Processing SLA                ║
║  Store:                        ║
║  Started:              ║
╚══════════════════════════════════════════════╝

After each step, emit:

[N/TOTAL]   
          → Params: 
          → Result: 

On completion, emit:

For format: human (default):

══════════════════════════════════════════════
RETURN PROCESSING SLA  ( days, SLA:  days)
  Returns analyzed:          
  Avg processing time:        days
  Within SLA (d):    (%)
  SLA breaches:                (%)
  Open returns pending:      

  Longest open returns (no refund yet):
    Order   — requested  days ago
  Output: return_sla_.csv
══════════════════════════════════════════════

For format: json, emit:

{
  "skill": "return-processing-sla",
  "store": "",
  "period_days": 30,
  "sla_days": 5,
  "returns_analyzed": 0,
  "avg_processing_days": 0,
  "within_sla_count": 0,
  "sla_breach_count": 0,
  "open_pending_count": 0,
  "output_file": "return_sla_.csv"
}

Output Format

CSV file return_sla_.csv with columns: return_id, order_name, return_requested_at, refunded_at, processing_days, sla_breach, return_status

Error Handling

| Error | Cause | Recovery | |-------|-------|----------| | THROTTLED | API rate limit exceeded | Wait 2 seconds, retry up to 3 times | | No refund on completed return | Exchange-only resolution | Exclude from time calculation, note as exchange | | No returns in window | No return activity | Exit with summary: 0 returns |

Best Practices

  • Set sla_days to match your published returns policy (e.g., "refunds processed within 5 business days").
  • Use the open returns list to proactively contact customers whose returns have been waiting more than sla_days — reducing WISMO-style "where's my refund" tickets.
  • Run weekly as a returns ops health check; pair with return-reason-analysis to correlate slow processing with specific return reason types.
  • Note that processing_days measures calendar days; adjust your SLA threshold accordingly if your team only processes returns on business days.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.