Event

trigger.woocommerce_event
TriggerBusiness appsconnection requiredruns in-engine

Registers one WooCommerce webhook per topic in the tenant's own store at publish and starts one run per delivery, verified against the signature.

Start a run when a WooCommerce store event arrives (order, product, customer or coupon).

Connection

Required
Yes — the node will not save without one
Auth type
Username & password
Providers
WooCommerce
Secret shape
{"consumer_key", "consumer_secret"}
Config it needs
store_url
Resolved by
config.connection_id, else node.connection_id
Note
The key pair needs Read/Write permission — a read-only key can list orders and still fail to create a webhook. The store_url must be https (WooCommerce only accepts the key pair as HTTP Basic over TLS) and MANTLE_APP_PUBLIC_BASE_URL must be set to a URL the store can reach, because it is what the store is told to POST to.

Configuration

1 field, none required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.

FieldTypeRequiredDefaultConstraintsExample
topics
Which store events to subscribe to. One WooCommerce webhook is registered per topic and deleted again when the workflow is unpublished or disabled. A plugin's own action.woocommerce_* or action.wc_* topic is accepted too, not only the ones listed.
arrayNo["order.created"]1–16 characters; array of string—

Example configuration

Every value below is the contract’s own example or default — nothing invented.

{
  "topics": [
    "order.created"
  ]
}

Output

One shape.

woocommerce event

A flat envelope taken from WooCommerce's X-WC-Webhook-* headers, with the store's resource body under `payload`.

Extra keys beyond the ones listed can appear.

FieldTypeExample
topic
The WooCommerce topic, e.g. order.created. Branch on this when the trigger subscribes to more than one.
stringorder.created
resource
The half of the topic before the dot — order, product, customer or coupon.
stringorder
event
The half of the topic after the dot — created, updated, deleted, restored or published.
stringcreated
source
The store that sent the delivery, as its WordPress home URL.
stringhttps://shop.example.com
webhook_id
The store-side webhook this delivery came from (X-WC-Webhook-ID).
string12
delivery_id
WooCommerce's own delivery hash, and this trigger's idempotency key.
string8f2a1b0c9d4e5f60718293a4b5c6d7e8
id
The resource id lifted out of the payload (the order, product, customer or coupon), as a string. On a *.deleted topic the payload is only this id.
string727
payload
WooCommerce's own resource body, verbatim — an Order for order.*, a Product for product.*, and so on. Its keys depend on the topic, which is why this shape is open.
object—
{
  "delivery_id": "8f2a1b0c9d4e5f60718293a4b5c6d7e8",
  "event": "created",
  "id": "727",
  "payload": {
    "billing": {
      "email": "buyer@example.com",
      "first_name": "Ada"
    },
    "currency": "USD",
    "date_created": "2026-09-08T11:22:33",
    "id": 727,
    "number": "727",
    "status": "processing",
    "total": "42.00"
  },
  "resource": "order",
  "source": "https://shop.example.com",
  "topic": "order.created",
  "webhook_id": "12"
}

Notes

  • One run per delivery, idempotent on X-WC-Webhook-Delivery-ID.
  • Deliveries are verified against a signing secret minted at publish and kept in the SecretBroker; an unsigned or mis-signed POST is refused 401.
  • The webhooks are deleted in the store when the workflow is unpublished, disabled or archived, so a shop never keeps delivering to a dead workflow.
  • WooCommerce disables a webhook after five consecutive failed deliveries. Publishing again reconciles it back to active.

Related WooCommerce nodes

See Event run in a workflow.

In a technical demo we add the WooCommerce connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.