Webhook recipe · Shopify

Shopify → Chromoly: orders meet operations.

Shopify handles the storefront; the chaos lives behind it - stock counts in a spreadsheet, fulfilment on a whiteboard, "did anyone handle that weird order?" in Slack. This recipe pipes every order into the operational system: inventory decrements, checklists open, exceptions flag.

What people build with it

The recipe

In Chromoly, add a webhook trigger: "when an order arrives, log inventory movements and open a fulfilment checklist". Copy the URL.

In Shopify admin: Settings → Notifications → Webhooks → Create webhook. Event: Order creation, format JSON, paste the URL.

Place a test order. Map the payload once - line items to SKUs, quantities to movements, customer to your records.

Add the mirror triggers (Order cancellation, Refund create) so stock and tasks reverse cleanly. Preview, deploy.

Webhook triggers and their signing secrets are covered in the integrations documentation. Every received request - including rejected ones - appears in the workflow's run history, so the connection is debuggable from day one.

What the payload looks like

{
  "id": 5481230012,
  "order_number": 1047,
  "line_items": [
    { "sku": "MUG-BLK-11", "quantity": 2 },
    { "sku": "TEE-NVY-M",  "quantity": 1 }
  ],
  "shipping_address": { "city": "Göteborg", "country_code": "SE" }
}

SKUs match your inventory items; quantities become movements; the rest is context for the fulfilment record.

Questions

Where do I create the webhook in Shopify?

Settings → Notifications → Webhooks in the Shopify admin - no app required. Pick the event, paste the Chromoly URL, choose JSON.

Can this run my whole fulfilment?

It runs the internal side - pick lists, checklists, inventory movements, exception flags. Shipping labels stay in your existing tools; Chromoly coordinates around them.

What about refunds and cancellations?

Shopify sends webhooks for those too - add them as mirror triggers so stock adjusts back and open tasks close.

Build the system this feeds

Describe it in plain language - the webhook trigger is part of the description. Preview free before anything deploys.

Start free