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 Squarespace to WhatsApp
Squarespace Integration Guide · E-commerce

Connect Squarespace to WhatsApp

Pull live order data from your Squarespace store into a WhatsApp chatbot. When a customer sends their order ID, your bot calls the Squarespace Commerce Orders API, fetches the current payment and fulfilment status, and replies without any manual effort.

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

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

Business or Commerce plan required

The Squarespace Commerce API is only available on Business and Commerce plans. If you do not see API Keys under Settings > Advanced, your plan does not include API access.

Step 1: Generate a Squarespace API key

Squarespace uses a site-level API key for Commerce API access. You generate it from within your site's dashboard settings.

1
In your Squarespace dashboard, go to Settings > Advanced > API Keys.
2
Click Generate API Key. Give it a name like "WA.Expert Bot".
3
Under permissions, enable Commerce (read access is sufficient for order lookup). Write access is not needed.
4
Click Save. Copy the key immediately. The format is sq-api-xxxxxxxxxxxxxxxxxxxx.
API key shown once only

Squarespace displays the key exactly once. If you miss it, delete the key and generate a new one from the same screen.

Official docs

Squarespace Commerce API authentication: developers.squarespace.com/commerce-apis/authentication-and-permissions

Step 2: Fill in the External API Request step

In your WA.Expert chatbot flow, collect the customer's Squarespace order ID and store it as {{order_id}}. Then add an External API Request step:

External API Request Step — WA.Expert
Select Method
GET
Request URL
https://api.squarespace.com/1.0/commerce/orders/{{{{order_id}}}}
Select Auth Type
No Auth (Bearer token in header below)
Header Parameters
AuthorizationBearer sq-api-xxxxxxxxxxxxxxxxxxxx
User-AgentWA.Expert WhatsApp Bot
Select Body Type
None (GET requests carry no body)
Choose Response Type
JSON

Field-by-field breakdown

FieldValueNotes
Select MethodGETReading an existing order.
Request URLhttps://api.squarespace.com/1.0/commerce/orders/{{{order_id}}}Fixed Squarespace API base URL. Note: the version is 1.0, not v1 or v2. {{{order_id}}} is the variable from the previous chatbot step.
Select Auth TypeNo AuthThe Bearer token goes in the Authorization header below.
AuthorizationBearer sq-api-xxx...Include the word 'Bearer' followed by a space, then your API key. Required on every request.
User-AgentWA.Expert WhatsApp BotRequired by Squarespace. Any short descriptive string works. Omitting it causes a 400 error.
Select Body TypeNoneGET requests carry no body.
Choose Response TypeJSONSquarespace returns structured JSON.
User-Agent is mandatory: most APIs do not require it, Squarespace does

Squarespace requires a User-Agent header on every request. Most APIs do not. If you see a 400 Bad Request without a clear reason, check that User-Agent is present. Paste any short string describing your integration.

Step 3: Map the response to WhatsApp variables

A successful Squarespace order response looks like this:

Squarespace Commerce API — GET /1.0/commerce/orders/{id} response (abbreviated)
{
  "id": "585d498fdee9f31a60284a37",
  "orderNumber": "1023",
  "fulfillmentStatus": "PENDING",
  "paymentState": "PAID",
  "createdOn": "2026-06-20T10:30:00.187Z",
  "customerEmail": "priya@example.com",
  "grandTotal": {
    "currency": "INR",
    "value": 1299.00
  },
  "billingAddress": {
    "firstName": "Priya",
    "lastName": "Sharma",
    "city": "Mumbai"
  },
  "lineItems": [
    {
      "productName": "Classic Cotton Kurta",
      "quantity": 2,
      "unitPricePaid": {
        "currency": "INR",
        "value": 649.50
      },
      "variantOptions": [
        { "optionName": "Size", "value": "M" }
      ]
    }
  ]
}
Amounts are standard decimals, no conversion needed

Unlike Webflow (which uses paise), Squarespace grandTotal.value is already a standard decimal (1299.00 = Rs. 1,299.00). Display it directly in your WhatsApp reply.

Map these response paths to variables in the External API Request step:

Variable nameResponse pathExample value
order_numberorderNumber1023
payment_statuspaymentStatePAID
fulfilment_statusfulfillmentStatusPENDING
order_totalgrandTotal.value1299.00
customer_namebillingAddress.firstNamePriya
customer_emailcustomerEmailpriya@example.com
item_namelineItems[0].productNameClassic Cotton Kurta
item_qtylineItems[0].quantity2

fulfillmentStatus: PENDING (not yet dispatched), FULFILLED, CANCELED. paymentState: PAID, AUTHORIZED, NOT_CHARGED, REFUNDED, PARTIALLY_PAID, FAILED.

Keep the WhatsApp reply in the free service window

If the customer messaged you first within the last 24 hours, your reply is a free service conversation. If initiating a proactive update, use an approved Utility template at Rs. 0.115 per message.

Worked example: order status chatbot

Chatbot flow — Squarespace order lookup
1. Bot: "Please send your Squarespace order ID.
   You will find it in your confirmation email. It is a long
   alphanumeric string like 585d498fdee9f31a60284a37."

2. Customer replies: 585d498fdee9f31a60284a37

3. Bot stores value as {{order_id}}

4. External API Request step fires:
   GET https://api.squarespace.com/1.0/commerce/orders/585d498fdee9f31a60284a37
   Authorization: Bearer sq-api-xxxxxxxxxxxxxxxxxxxx
   User-Agent: WA.Expert WhatsApp Bot

5. Response mapped:
   order_number      = "1023"
   payment_status    = "PAID"
   fulfilment_status = "PENDING"
   order_total       = "1299.00"
   customer_name     = "Priya"
   item_name         = "Classic Cotton Kurta"

6. Bot replies:
   "Hi Priya, here is your order update:
   Order #1023
   Payment: Paid
   Fulfilment: Preparing for dispatch
   Item: Classic Cotton Kurta x2
   Total: Rs. 1,299.00

   You will receive a shipping notification
   once your order is dispatched."

Troubleshooting

SymptomLikely causeFix
400 Bad Request with no clear reasonUser-Agent header missingAdd User-Agent header with any short string. Squarespace requires this on every request.
401 UnauthorizedWrong key or missing Bearer prefixCheck the Authorization header reads exactly 'Bearer YOUR_KEY'. The key format should start with sq-api-.
403 ForbiddenAPI key lacks Commerce permissionDelete the key, generate a new one with Commerce read permission enabled.
404 Not FoundOrder ID does not existConfirm the customer sent the correct hex order ID, not the order number (1023 vs 585d498f...). Add a fallback branch.
Plan error / no API Keys optionPersonal plan does not include API accessUpgrade to Business or Commerce plan to access API Keys under Settings > Advanced.
429 Too Many RequestsRate limit hitSquarespace does not publish exact rate limits. Add a short delay between bot retries and handle 429 gracefully.

Common questions

Where do I generate a Squarespace API key?
+
Go to Settings > Advanced > API Keys in your Squarespace dashboard. Click Generate API Key, enable Commerce permissions, and copy the key before leaving the page.
Which Squarespace plan do I need for API access?
+
Business or Commerce plan. The API Keys option does not appear under Settings > Advanced on Personal or Basic plans.
Why does Squarespace require a User-Agent header?
+
It is a required field for all Squarespace API requests, used for rate limiting and monitoring. Without it, the API returns 400. Paste any short descriptive string such as 'WA.Expert WhatsApp Bot'.
Are Squarespace order amounts in paise or rupees?
+
Standard decimals (1299.00 = Rs. 1,299.00). No conversion needed, unlike Webflow which uses paise.
What order statuses does Squarespace use?
+
Two separate fields. fulfillmentStatus: PENDING, FULFILLED, or CANCELED. paymentState: PAID, AUTHORIZED, NOT_CHARGED, REFUNDED, PARTIALLY_PAID, FAILED, REFUND_PENDING, REFUND_FAILED.
Does this incur extra WA.Expert charges?
+
The External API Request step counts as one automation action per lookup. On the Complete plan this is included. On Starter, extra action packs apply from Rs. 49 per 1,000 actions.

Build your Squarespace 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