Platform
Chatbot Builder Bulk Messaging Team Inbox Mini CRM API & Webhooks AI Integration WhatsApp Flows
Industries
E-commerce & D2C Real Estate Education Healthcare Finance & BFSI Logistics Hospitality Retail
Integrations
Learn
Learning Hub Help & Docs Connect Guides Automation Codex Blog Message Templates
Pricing Get Started →
HomeConnect › Connect Shopify to WhatsApp
Shopify Integration Guide · E-commerce

Connect Shopify to WhatsApp

Pull live order data from Shopify into a WhatsApp chatbot. When a customer sends their order number, your bot fetches the current status, total, and fulfilment details directly from the Shopify Admin API and replies in seconds, with no human involved.

Published 22 June 2026  ·  8 min read  ·  E-commerce

Before following this guide, read the External API Request step foundation guide first. It explains every field in the step interface so this guide can focus on Shopify-specific values.

Step 1: Create a Shopify Custom App and get your access token

Shopify removed legacy private apps on 1 January 2026. The current path for internal integrations is a Custom App, created inside your store admin.

1
In Shopify Admin, go to Settings > Apps and sales channels > Develop apps.
2
Click Create an app. Give it a name like "WA.Expert Integration".
3
Under Configuration, click Admin API integration. Add the scope read_orders. Save.
4
Click Install app. On the next screen, click Reveal token once. Copy and store it securely. It starts with shpat_.
Token shown once only

Shopify displays the Admin API access token exactly once. If you miss it, you must uninstall and reinstall the app to generate a new one. Store it in a password manager or your WA.Expert settings immediately.

Official docs

Shopify Custom Apps: help.shopify.com/en/manual/apps/app-types/custom-apps

Step 2: Fill in the External API Request step

In your WA.Expert chatbot flow, ask the customer for their order ID (e.g. "Please send your order number"). Store that in a variable, for example {{order_id}}. Then add an External API Request step with these values:

External API Request Step — WA.Expert
Select Method
GET
Request URL
https://{{your-store}}.myshopify.com/admin/api/2026-01/orders/{{{{order_id}}}}.json
Select Auth Type
No Auth (token goes in Header Parameters below)
Header Parameters
X-Shopify-Access-Tokenshpat_xxxxxxxxxxxxxxxxxxxx
Content-Typeapplication/json
Select Body Type
None (GET requests carry no body)
Choose Response Type
JSON

Field-by-field breakdown

FieldValueNotes
Select MethodGETYou are reading an existing order, not creating one.
Request URLhttps://{store}.myshopify.com/admin/api/2026-01/orders/{{{order_id}}}.jsonReplace {store} with your myshopify subdomain. {{{order_id}}} is the variable from the previous chatbot step.
Select Auth TypeNo AuthAuth is handled by the header below, not by OAuth.
X-Shopify-Access-Tokenshpat_xxx...The token from Step 1. Paste it directly. Treat it like a password.
Content-Typeapplication/jsonRequired even on GET requests to Shopify.
Select Body TypeNoneGET requests have no body.
Choose Response TypeJSONShopify returns structured JSON.
Important: order ID vs order number

The URL takes a numeric order ID (e.g. 4345499451455), not the order number customers see (e.g. #1023). If your chatbot collects the human-readable order number, you need to first search: GET /orders.json?name=%231023 then extract the id from the result before doing the single-order lookup.

Step 3: Map the response to WhatsApp variables

A successful Shopify order response looks like this:

Shopify Admin API — GET /orders/{id}.json response (abbreviated)
{
  "order": {
    "id": 4345499451455,
    "name": "#1023",
    "financial_status": "paid",
    "fulfillment_status": "fulfilled",
    "total_price": "1299.00",
    "currency": "INR",
    "created_at": "2026-06-20T10:30:00+05:30",
    "shipping_address": {
      "first_name": "Priya",
      "city": "Mumbai"
    },
    "line_items": [
      {
        "title": "Classic Cotton Kurta",
        "quantity": 2
      }
    ]
  }
}

In the External API Request step, map these response paths to variables:

Variable nameResponse pathExample value
order_reforder.name#1023
order_statusorder.financial_statuspaid
fulfilment_statusorder.fulfillment_statusfulfilled
order_totalorder.total_price1299.00
customer_nameorder.shipping_address.first_namePriya
item_nameorder.line_items[0].titleClassic Cotton Kurta

fulfillment_status returns null if not yet dispatched, 'partial' if some items shipped, 'fulfilled' if all shipped.

Keep your WhatsApp reply free of charge

If the customer messaged you first within the last 24 hours, your reply is a free service conversation. Send the order status in that same window. If you are initiating the message (e.g. proactive dispatch alert), you need an approved Utility template, which incurs a per-message charge at Meta's rate of Rs. 0.115.

Worked example: order status chatbot

A customer sends "Where is my order?" to your WhatsApp number. Here is the full flow:

Chatbot flow — Shopify order lookup
1. Bot: "Please send your Shopify order ID. You'll find it in your confirmation email (it's a long number, e.g. 4345499451455)."

2. Customer replies: 4345499451455

3. Bot stores value as {{order_id}}

4. External API Request step fires:
   GET https://your-store.myshopify.com/admin/api/2026-01/orders/4345499451455.json
   Header: X-Shopify-Access-Token: shpat_...

5. Response mapped:
   order_ref       = "#1023"
   order_status    = "paid"
   fulfilment_status = "fulfilled"
   order_total     = "1299.00"
   customer_name   = "Priya"

6. Bot replies:
   "Hi Priya, here is your order summary:
   Order: #1023
   Status: Paid and Fulfilled
   Total: Rs. 1,299.00
   
   All items have been dispatched. Reply TRACK for shipping details."

Troubleshooting

SymptomLikely causeFix
401 UnauthorizedWrong or missing tokenCheck X-Shopify-Access-Token header is present and the token starts with shpat_. Reinstall the app if the token was regenerated.
403 ForbiddenInsufficient scopeThe custom app does not have read_orders scope. Go to Settings > Apps > Develop apps, edit the app, add read_orders, reinstall.
404 Not FoundOrder ID does not existConfirm the customer sent a numeric order ID, not the # number. Add a fallback branch in your chatbot for empty responses.
Empty line_items arrayOrder has no line items (rare)Handle gracefully: check if line_items exists before mapping item_name.
fulfillment_status is nullOrder placed but not yet shippedMap null to a human-readable label: if null, show 'Processing'.
API version errorOld version in URLUse 2026-01 or the latest stable version. Check shopify.dev/changelog for version support dates.

Common questions

Do I need a developer to connect Shopify to WhatsApp?
+
No. WA.Expert's chatbot builder is no-code. You copy your Shopify Admin API access token (from Settings > Apps > Develop apps) into the External API Request step. No coding required.
Is the Shopify REST Admin API still usable in 2026?
+
Yes. The REST Admin API was labelled legacy in October 2024, but it continues to work for existing custom apps and internal integrations. Shopify has not set a removal date. For new public apps, Shopify requires GraphQL; for a private custom app connecting to WA.Expert, REST works fine.
What Shopify permission scope do I need?
+
read_orders is sufficient for order lookup. If you also want to look up customer details or product info, add read_customers and read_products respectively when configuring your custom app.
Can a customer look up any order or only their own?
+
The API endpoint accepts an order ID as a URL parameter. Your chatbot should collect the order ID from the customer, then call the API. The response returns that specific order's data regardless of who placed it, so add your own verification step: for example, confirm the phone number matches the order's shipping address phone before showing details.
Will this incur extra charges on WA.Expert?
+
The External API Request step counts as one automation action. On the Complete plan this is included. On Starter, extra action packs apply from Rs. 49 per 1,000 actions. The Shopify API itself is free for custom apps with no per-call charges.
What if the order ID the customer gives is wrong?
+
Shopify returns a 404 status and an empty body when the order is not found. Add a conditional branch in your chatbot flow: if the response is empty, reply with a 'No order found' message and ask the customer to double-check their order number.

Build your Shopify order bot today

Free trial, no credit card required. And if you ever get stuck, we are the only platform in India that answers you live on WhatsApp.

Start Free Trial → Book a Demo
1