WooCommerce Email to Webhook Integration

Route inbound emails directly into WooCommerce as structured JSON. WooCommerce is the open-source e-commerce plugin for WordPress, powering millions of online stores with flexible product, order, and customer management. JsonHook bridges the gap between your inbox and WooCommerce — no custom server required.

Table of Contents
  1. Why Connect WooCommerce to Inbound Email
  2. Setting Up WooCommerce with JsonHook
  3. Example Workflow: When a phone order is taken and a confirmation email is sent internally, create a WooCommerce order automatically
  4. Payload Mapping for WooCommerce
  5. Best Practices for WooCommerce Email Integration

Why Connect WooCommerce to Inbound Email

E-commerce operations generate a constant stream of email notifications — orders, refunds, supplier messages, and customer inquiries. WooCommerce needs to respond to these events quickly. JsonHook captures those emails the moment they arrive, parses them into clean JSON, and forwards them to WooCommerce so your fulfillment and support workflows can fire automatically.

Connecting your inbound email to WooCommerce through JsonHook unlocks a range of high-value automation scenarios:

  • Automatically fulfill orders when supplier confirmation emails arrive
  • Trigger refund workflows when a customer sends a cancellation email
  • Update inventory records when stock notification emails are received
  • Notify your warehouse team the moment a rush order email arrives
  • Log all customer support emails as tickets linked to their order history

WooCommerce supports WooCommerce REST API or custom WordPress webhook endpoint, which makes it a natural target for JsonHook's outbound POST requests. Every email that hits your JsonHook address is parsed within milliseconds and delivered to WooCommerce as a clean JSON object — no polling, no manual export, no middleware server to maintain.

Setting Up WooCommerce with JsonHook

The following steps walk you through connecting JsonHook to WooCommerce. The entire setup typically takes under ten minutes.

  1. Step 1: In your WordPress admin, generate WooCommerce REST API keys under WooCommerceSettingsAdvancedREST API. Note the Consumer Key and Secret.
  2. Step 2: In Make or n8n, create a workflow triggered by a JsonHook webhook URL. Add an HTTP Request action to the WooCommerce REST API endpoint (e.g., https://yourstore.com/wp-json/wc/v3/orders) with Basic Auth using the API keys.
  3. Step 3: In JsonHook, create an inbound address and point it at the automation webhook URL.
  4. Step 4: Map JsonHook fields to WooCommerce API parameters — for example, extract the customer email from from.address and the order notes from text.

Once the connection is active, every email sent to your JsonHook address will be automatically parsed and forwarded to WooCommerce. You can test the integration by sending a plain-text email to your JsonHook address and verifying that the payload appears in WooCommerce within a few seconds.

JsonHook supports WooCommerce REST API or custom WordPress webhook endpoint on the WooCommerce side, so no additional configuration is needed in WooCommerce beyond the steps above. If WooCommerce requires header-based authentication for incoming webhooks, add the required headers in the JsonHook endpoint configuration under Advanced Settings.

Automate WooCommerce with Email Webhooks

Free tier: 100 emails/month. Set up in minutes.

Get Free API Key

Example Workflow: When a phone order is taken and a confirmation email is sent internally, create a WooCommerce order automatically

This walkthrough demonstrates one concrete way to use JsonHook with WooCommerce. The scenario: When a phone order is taken and a confirmation email is sent internally, create a WooCommerce order automatically.

When an email matching this scenario arrives, JsonHook parses the raw SMTP message and constructs the following JSON payload before POSTing it to your WooCommerce endpoint:

{
  "messageId": "",
  "from": {
    "name": "Jane Smith",
    "address": "[email protected]"
  },
  "to": [
    { "address": "[email protected]" }
  ],
  "subject": "When a phone order is taken and a confirmation email is sent internally, create a WooCommerce order automatically",
  "text": "Hi, I need help with my account. Please contact me at your earliest convenience.",
  "html": "

Hi, I need help with my account...

", "date": "2026-03-15T10:32:00.000Z", "attachments": [], "headers": { "x-priority": "1" } }

WooCommerce Order: from.addressbilling.email, from.name → split into billing.first_name / billing.last_name, subject → order customer_note, text → additional meta_data note. Use a parsing step to extract line items from structured email bodies.

Once WooCommerce receives this payload, it can execute any downstream action — whether that is posting a notification, creating a record, updating a field, or triggering an entire multi-step workflow. The key advantage is that the data arrives as structured JSON, so WooCommerce never needs to parse raw email text or deal with MIME encoding.

Payload Mapping for WooCommerce

JsonHook delivers a consistent JSON schema for every parsed email. The table below shows which JsonHook fields map to the equivalent fields in WooCommerce. Use this as a reference when configuring your WooCommerce WooCommerce REST API or custom WordPress webhook endpoint.

JsonHook Field Description WooCommerce Field
from.addressSender email addressSender / Contact email
from.nameSender display nameSender / Contact name
subjectEmail subject lineTitle / Subject / Name
textPlain-text email bodyDescription / Body / Message
htmlHTML email bodyRich text field / Notes
dateTimestamp of receipt (ISO 8601)Created date / Received at
attachments[n].filenameAttachment filenameFile name / Attachment label
attachments[n].contentAttachment content (base64)File content / Binary field
headers.*Raw email headersMetadata / Custom properties
messageIdUnique message identifierExternal ID / Deduplication key

Not every field will be present in every email. Always check for null or missing values before mapping to required fields in WooCommerce. For text-only emails, html will be empty; for HTML-only emails, text may be empty or auto-generated from the HTML. The attachments array will be an empty array when no files are attached.

Best Practices for WooCommerce Email Integration

Following these best practices will make your WooCommerce email integration more reliable, easier to debug, and simpler to scale as your email volume grows.

  • Use dedicated addresses per workflow. Create a separate JsonHook inbound address for each distinct WooCommerce workflow you want to trigger. This makes routing explicit and avoids a single endpoint becoming a bottleneck for all email types.
  • Validate the payload before acting. In WooCommerce, add a conditional check at the start of your workflow to confirm that required fields like from.address and subject are present and non-empty before executing downstream actions.
  • Test with real emails first. Use JsonHook's delivery log to inspect the raw JSON payload before wiring up WooCommerce. Confirm that all the fields you plan to map are actually populated by your email source.
  • Handle errors gracefully. Configure WooCommerce to catch webhook delivery failures and send an alert. JsonHook will retry failed deliveries, but your WooCommerce endpoint should return a 2xx status promptly to acknowledge receipt.
  • Keep secrets out of email content. Avoid routing emails that contain passwords, API keys, or PII through workflows unless you have appropriate data-handling controls configured in WooCommerce. Use JsonHook's HTTPS delivery to protect data in transit.

Frequently Asked Questions

Can I send emails to WooCommerce via webhook?
Yes. JsonHook provides a unique inbound email address for each webhook endpoint you configure. When an email is delivered to that address, JsonHook parses the message — extracting the sender, subject, body text, HTML body, and any attachments — and immediately POSTs the result as a structured JSON payload to your WooCommerce WooCommerce REST API or custom WordPress webhook endpoint. From there, WooCommerce can trigger any downstream action you have configured.
Do I need to code to connect JsonHook to WooCommerce?
Minimal technical knowledge is needed. WooCommerce accepts webhook payloads through its WooCommerce REST API or custom WordPress webhook endpoint. You paste the URL, configure the field mappings in the UI, and JsonHook takes care of the rest. No custom code is necessary for standard email-to-webhook routing.
How do I filter which emails go to WooCommerce?
JsonHook uses address-based routing. Create a dedicated inbound address such as [email protected] and point it exclusively at your WooCommerce webhook URL. You can also create multiple addresses for different email categories — one for support, one for sales leads, one for order notifications — each routed to a different WooCommerce workflow or channel. If WooCommerce supports conditional logic, you can add further filtering on the subject, from, or any custom field in the parsed JSON payload.
Can I trigger WooCommerce order status updates from supplier emails?
Yes. When a supplier sends a shipping confirmation email, parse the tracking number from the text field using a regex step in your automation tool, then call the WooCommerce REST API to update the order status to Completed and add the tracking number as order meta data.
Do I need a plugin to receive webhooks in WooCommerce?
For incoming webhook payloads, the simplest approach is to process the data in your automation tool (Make, n8n) and then call the WooCommerce REST API. If you prefer to receive the JsonHook POST directly in WordPress, you can register a custom REST API endpoint in a small plugin or in your theme's functions.php.