Webhook tool

Shopify AI voice agents that answer where's my order

The caller gives an order number and email, and the agent reads back fulfillment status and tracking from Shopify's Admin API through your service.

Order status agent

Answers where's my order calls.

Instructions

Ask for the order number and the email used at checkout, and spell the email back. Look up the order and say its status in plain words. If it has shipped, give the carrier and tracking number. If the lookup finds nothing, ask once more, then offer a transfer to support.

Handoff
Support team

Connected tools

  • Look up orderWebhook
  • Transfer to supportTransfer

What a Shopify AI voice agent can do

Open one to watch a call. The grey lines are the tools the agent calls mid-sentence.

The agent says whether the order is unfulfilled, partly shipped or fulfilled, from the status merchants see in the admin.

Tool definitions

Webhook tools go to POST /v1/agents/tools. Transfers are a system tool on the agent. Replace the placeholder values in capitals with your own.

Webhook

Look up order

Returns status and tracking for one order.

Show the JSON definition
look_up_order
{
  "type": "webhook",
  "name": "look_up_order",
  "description": "Looks up a Shopify order by order number and checkout email. Returns the fulfillment status, and the carrier and tracking number for shipped orders.",
  "pre_tool_speech": "auto",
  "execution_mode": "immediate",
  "response_timeout_secs": 20,
  "api_schema": {
    "url": "https://api.your-company.com/shopify/order-status",
    "method": "GET",
    "query_params_schema": {
      "properties": {
        "order_number": {
          "type": "string",
          "description": "The order number the caller gives, digits only, such as 1001."
        },
        "email": {
          "type": "string",
          "description": "The email used at checkout, spelled back to the caller."
        }
      },
      "required": [
        "order_number",
        "email"
      ]
    },
    "authentication": {
      "mode": "bearer",
      "token": {
        "type": "secret",
        "secret_value": "YOUR_SERVICE_TOKEN"
      }
    }
  }
}

Transfer

Transfer to support

Cold transfer to the support line.

Show the JSON definition
transfer_to_support
{
  "config": {
    "system_tools": {
      "transfer_to_number": {
        "description": null,
        "pre_tool_speech": "auto",
        "transfers": [
          {
            "destination": {
              "type": "phone",
              "phone_number": "+14155550133"
            },
            "condition": "The order cannot be found, or the caller wants a refund, a return or a change to the order."
          }
        ]
      }
    }
  }
}

Set it up

No native connector and no Shopify app listing. The tool calls a service of yours, which holds a Shopify access token and queries the Admin GraphQL API. Vendor details read in November 2026.

  1. Create an app with read_orders

    In the Shopify Dev Dashboard, create an app for your store with the read_orders scope, install it, and copy the client ID and secret into your service. Add read_all_orders if callers ask about orders older than 60 days.

  2. Run the lookup endpoint

    Your service sends the orders query to https://{shop}.myshopify.com/admin/api/2026-10/graphql.json with the X-Shopify-Access-Token header, filtering on the order name, and compares the order's email to the one the caller gave.

  3. Return a small answer

    Send back displayFulfillmentStatus and, for each fulfillment, trackingInfo's company and number. Leave out addresses and line items the agent does not need to say.

  4. Add the tool and test

    Point the tool at your service with a bearer secret, then call about a test order in each state.

Before you build

Why a service in the middle

Tokens from Shopify's client credentials grant expire after 24 hours. Your service fetches a new token before the old one lapses.

The grant needs one organization

The client credentials grant only works when the app and the store belong to the same Shopify organization.

The 60-day window

The read_orders scope covers orders from the last 60 days. Older orders need read_all_orders as well, which does not work on its own.

Keep refunds with people

This tool only reads. Refunds, cancellations and address changes go to your team through the transfer.

Enterprise-grade security

  • HIPAA compliant badge

    HIPAA compliant

  • SOC 2 Type 2 badge

    SOC 2 Type 2

  • GDPR badge

    GDPR

Shopify AI voice agent FAQs

Can an AI phone agent check Shopify order status?

Yes. The caller gives an order number and email, and a service of yours queries Shopify's Admin GraphQL API and returns the fulfillment status and tracking. The agent reads back whether the order is unfulfilled, partly shipped or fulfilled, with the carrier and tracking number.

Is there a Cartesia app in the Shopify App Store?

No. You create your own app in the Shopify Dev Dashboard with the read_orders scope, install it on your store, and give the client ID and secret to your service. The client credentials grant only works when the app and store belong to the same Shopify organization.

How does the agent check it's talking to the right customer?

Your service returns the order only when the email the caller gives matches the one on the order. An order number alone reveals nothing, and addresses and line items never reach the agent.

Can the agent find Shopify orders older than 60 days?

Yes, with read_all_orders added. The read_orders scope covers orders from the last 60 days, and read_all_orders extends it but doesn't work on its own. Without it, callers asking about older orders get no match, so have the agent transfer them to support.

Can the agent look up an order by the caller's phone number?

Yes, if you add a parameter set from system__caller_id and your service matches it against the order's phone field. That field can be empty, so keep email as the fallback.

What does a Shopify order-status agent cost to run?

Agents run at $0.03/min, plus LLM usage and telephony. Your Shopify plan stays with Shopify. Transfers only work on Twilio and SIP trunk calls, so put the number on Twilio or a SIP trunk if the agent hands callers to staff.

Get started today

Talk to an expert.

Connect with a member of our team and learn how Cartesia can help you build world-class voice experiences.

Contact Sales

Start building.

Access our models via API and bring a voice agent into production in minutes.

Try Cartesia