Skip to content

Usage

When an event happens (an order is placed, a status changes, a shipment is created, stock runs low…), Automation Hub stores one delivery per matching endpoint and sends it as a JSON POST after the page. The receiver answers with a 2xx status; anything else is retried or marked as failed. Shoppers see nothing; the order is saved before anything is sent.

Request body:

{
"id": "6f1c2d3e-4a5b-4c6d-8e7f-90a1b2c3d4e5",
"event": "order.created",
"created_at": "2026-11-04T10:15:00+00:00",
"test": false,
"store": { "name": "My Store", "url": "https://www.example.com" },
"data": { "order_id": 1042, "status": "P", "total": 103.0, "customer": { "email": "[email protected]" }, "items": [] }
}

An order counts as created when it leaves the “incomplete” state, so orders paid on an external payment page are sent once, after the payment. order.status_changed carries previous_status.

New order to a Google Sheets row (no automation tool)

Section titled “New order to a Google Sheets row (no automation tool)”
  1. Open the spreadsheet, Extensions > Apps Script, paste the script from the Recipes tab and set TOKEN to a long random text.
  2. Deploy > New deployment > Web app: execute as Me, access Anyone.
  3. Copy the web app URL and add ?token= plus your token.
  4. In Automation Hub press Create endpoint on the Google Sheets recipe, paste the URL and press Save and send test.

The script adds a header row on the first call, adds new fields as new columns and skips replayed deliveries by event id. Google answers with a redirect; Automation Hub follows it.

Download the workflow in the Recipes tab, import it, choose your Google credential and spreadsheet in Append row and a Header Auth credential in the Webhook node. Put the same header in the endpoint’s custom headers and the production webhook URL in the endpoint.

Create a scenario with Webhooks > Custom webhook (Make) or a Zap with Webhooks by Zapier > Catch Hook (paid Zapier plans), paste the address into a new endpoint and press Save and send test so the tool learns the fields.

X-Kavio-Signature is sha256= + HMAC-SHA256 of X-Kavio-Timestamp + . + the raw body, with the endpoint secret. Reject requests older than 5 minutes. X-Kavio-Event-Id is the same on retries and replays: use it to skip duplicates. Code for PHP and Node.js is in the Recipes tab.

Open Deliveries, filter by Failed or Retrying and expand a row to see the answer. Fix the receiver, press Resume on a paused endpoint, then Retry failed.