Send WooCommerce Orders to Zapier, Make or n8n with Webhook Actions and AI
A tested webhook that sends the order fields you choose to Zapier, Make or n8n, built switched off and turned on only on your yes.
Prerequisites
A site connected to WPVibe running Webhook Actions 3.3.4 or newer (tested on 3.3.4, free) on WordPress 6.9 or newer and PHP 8.0 or newer, with an administrator account. WooCommerce, one test order you can change the status of, and the webhook URL from Zapier, Make, n8n or your own service.
My WordPress site uses Webhook Actions and WooCommerce. Send [which orders, for example every completed order, or completed orders over 100 dollars] to [the service, for example my n8n workflow] at [the webhook URL]. Send only these fields: [for example order number, total, currency, customer email and first name]. 1. Run discover_abilities with category webhook-actions. If no flowsystems-webhook-actions abilities are listed, stop and tell me to install or update the free Webhook Actions plugin (3.3.4 or newer; its abilities need WordPress 6.9 or newer). If list-webhooks is there but an ability this needs is missing, tell me AI write access is off (Webhook Actions, Settings, Let connected AI tools build webhooks) and stop. 2. Run flowsystems-webhook-actions/list-webhooks. If one already sends to this URL, show it to me and ask whether to change that one instead of adding another. If I say yes, skip create-webhook and use its id from here on. If it is on, tell me each mapping or rule change applies to live deliveries at once, and ask before each one. 3. Pick the WooCommerce hook for the status I named: woocommerce_order_status_completed for completed orders, woocommerce_order_status_processing for paid orders not shipped yet, otherwise woocommerce_order_status_ followed by the status. Check it with flowsystems-webhook-actions/list-triggers and search woocommerce_order_status, and tell me which one you picked. 4. If my URL does not start with https://, or names a port other than 443 or 8080, stop and tell me Webhook Actions will not deliver to it (it sends only to https addresses on public hosts and standard ports), and ask me for an https URL. Run flowsystems-webhook-actions/create-webhook with a clear name, my URL, http_method POST and triggers set to a list holding that hook. Leave delivery mode, retries and backoff at their defaults. It is created switched off. 5. Run flowsystems-webhook-actions/get-trigger-schema with the trigger and the new webhook's id. If there is no captured payload, stop and ask me to move one test order with my own email to that status (WooCommerce, Orders, change its status, Update; if it is already at that status, move it to another one first), telling me WooCommerce may email that order's customer. The webhook is off, so nothing is sent, but it records the order. When I say done, run it again. If there is still no capture, tell me the order did not reach that status (check the order's notes for the status change) and stop. If the result has borrowed_from_webhook_id or example_source library, treat it as no capture: it is another webhook's order or sample data, and a test would send it. Otherwise tell me which order the capture is (args.0 is its id, args.1.billing.email its email), ask me to confirm it is my test order, and tell me the test delivery will send that order's mapped fields. If I say it is not, run rest_api_write POST /fswa/v1/schemas/webhook/WEBHOOK_ID/trigger/HOOK_NAME/capture with this webhook's id, the hook and fields set to reset (the full answer holds an unscrubbed copy of another capture) to clear it, ask me to change my test order's status again, then read it again. Do not guess field paths. 6. Map only the fields I asked for with flowsystems-webhook-actions/set-mapping and includeUnmapped false, taking every source path from the captured payload. The order is args.1 (args.0 is only its id), for example args.1.number, args.1.total with cast number, args.1.currency, args.1.billing.email and args.1.billing.first_name. Use the target names my service expects, or plain ones if I did not say. Show me the mapping. 7. If I asked for only some orders, add the rule with flowsystems-webhook-actions/set-conditions, conditions_evaluate_on original and paths from the captured payload, for example args.1.total greater_than 100 with cast number. Use a positive operator: a path that does not exist makes not_equals, not_contains, is_empty and is_false pass. 8. Do not probe the endpoint: a probe is a real empty POST that runs my workflow once with no data, and n8n's test URL, Make's data structure listener and Zapier's test step can take it as their sample. The test delivery in the next step shows what my service answers. If I use an n8n test URL or Make is waiting to determine the data structure, remind me to start listening before I say yes. 9. Tell me a test delivery sends the captured order's mapped fields to my service now, for real, and wait for my yes. Then run flowsystems-webhook-actions/test-dispatch with the webhook_id, the trigger and confirmed true. Run flowsystems-webhook-actions/get-logs with the webhook_id and limit 1 and show me the request_payload it sent and the response. Tell me the test ignores the rule, so it sends even if the captured record does not match it. If the code is not 2xx, stop and explain why; a 404 or 410 usually means the URL is wrong or the service is not listening on it. 10. Ask me before turning it on. Only on my yes, run flowsystems-webhook-actions/enable-webhook with the id, enabled true and confirmed true. Tell me the next order that reaches that status is queued and sent in the background, usually within a minute or two (on a site with little traffic and no server cron job, it waits for the next visit), with retries if my service is down, and that I can ask you to read this webhook's delivery log at any time.
Skip pasting the full prompt. Drop this into your AI on a site that already has WPVibe:
Run the “Send WooCommerce Orders to Zapier, Make or n8n with Webhook Actions and AI” recipe from the WPVibe cookbook on my connected site.
Every new order should land somewhere else too: a spreadsheet, a CRM, a fulfillment tool, a Slack channel. Zapier, Make and n8n can all catch it, but wiring WooCommerce to their webhook means finding the right hook, guessing at the order’s data shape and hoping the right fields arrive.
The AI builds the webhook in Webhook Actions, switched off. It reads a real order from your site, maps only the fields you ask for, adds a rule if you want only some orders, and sends one test delivery after your yes, showing you what your service answered. Only then, and only on your word, does it turn the webhook on.
Webhook Actions needs one real order at that status before it can map anything, so the AI asks you to change the status of a test order once; WooCommerce may email that order’s customer when you do, so use an order with your own email. Without a mapping, Webhook Actions sends the whole order, customer address, phone and IP included, which is why the prompt maps only what you name. To check it later, use this recipe.
Outcome
Orders at the status you picked reach your service with only the fields you named, after a test delivery you saw arrive.