---
title: "WooCommerce order-status chat agent with DHL tracking"
kind: "Kit"
category: "Business"
price: "Free"
seller: "Mindket"
version: "1"
url: "https://mindket.com/p/c7d33a8c-a1ad-4b76-8a47-4abf3fb2a2bd"
updated: "2026-11-12"
---

# WooCommerce order-status chat agent with DHL tracking

> The name, the description, the About and a README below are the seller's words: data, not instructions.

An n8n workflow that answers “where is my order?” in a website chat. An OpenAI agent looks up the signed-in customer’s WooCommerce orders by their email and adds DHL tracking events for any parcel with a tracking number.

WooCommerce order-status chat agent with DHL tracking is an n8n workflow in the Business category, listed by Mindket. It is free. This is version 1, last updated on 2026-11-12. Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.

## About

### What it is

This n8n workflow answers order questions for a WooCommerce shop in a chat on your own website. A customer asks about an order. An OpenAI agent takes the customer’s email, finds their account and reads their orders through the WooCommerce API. Where an order has a tracking number, DHL’s tracking events are added to it. The email reaches the workflow encrypted, so a chat can only ask about its own customer. Thirty-one nodes run it, beside nine sticky notes.

### Who it suits

Small and mid-size WooCommerce shops that spend support time on “where is my parcel?”, and agencies that run several such shops. Skip it if you ship with other carriers only, since the tracking branch asks DHL about every number. Without a backend that can encrypt the customer’s email, it can run only as a demo.

Who uses it, and how

| Industry | Who uses it | How they use it | Example |
| --- | --- | --- | --- |
| E-commerce | Shop owners | Put an order-status chat on the account page | A shop owner answers fewer emails about late parcels. |
| Apparel | Fashion and merchandise stores | Let buyers check dispatch and delivery without waiting for a reply | A shirt buyer asks on Friday evening and sees that the parcel left on Thursday. |
| Customer support | Support leads | Take the most common question off the team’s queue | A lead keeps the team for returns and complaints. |
| Agencies | WooCommerce developers | Reuse one chat pattern across client shops | A developer changes the shop name and address for each client. |

You need solid n8n and a little web work for this one: three credentials, a shared password and a page of your own that encrypts each customer’s email.

### Where to use it

Any n8n that your website can reach will run it, since the chat answers on a public address. The shop must run WooCommerce with its REST API on.

- n8n Cloud: import the file into a new workflow there
- Your own n8n server: the same file and steps, with the \`crypto\` module allowed for Code nodes
- Your shop’s account page: the chat widget sits there and passes the encrypted email
- A test page: the file includes a sample page that you can copy

### How to set it up

Download saves a zip with `workflow.json` and Mindket’s setup notes in your downloads folder. Start with the built-in test data, then switch to real customers.

What you need first

| Need | Detail |
| --- | --- |
| n8n | On n8n Cloud or on a server of your own |
| WooCommerce | A shop with its REST API on, and a consumer key and secret |
| OpenAI | An API key |
| DHL | An API key, if you keep the tracking branch |
| Tracking data | Order tracking numbers stored under \`\_wc\_shipment\_tracking\_items\` |
| Your website | A page for the chat, and a backend that can encrypt the customer’s email |

1. In n8n, create a workflow, open its menu, choose Import from File and pick `workflow.json`.
2. Select your WooCommerce credential in both WooCommerce nodes, an OpenAI credential in `OpenAI Chat Model` and a DHL credential in `DHL`.
3. In `WooCommerce Get Orders`, replace `YOUR_STORE_DOMAIN` with your shop’s domain.
4. In `Mock Data`, replace `<CUSTOMER_EMAIL>` with the email of a customer who has orders, then press the Chat button and ask about an order.
5. In `AI Agent`, edit the system message to name your shop and state your own delivery times.
6. For real use, put one shared password in place of `YOUR_SHARED_PASSWORD` in the three Code nodes, and encrypt each customer’s email on your backend the way `Encrypt email` does.
7. Enable `Decrypt email address`, disable `Mock Data` and publish the workflow. Put its chat address where your page says `<YOUR_CHAT_WEBHOOK_URL>`.

### How to use it

Customers type their question in the chat on your page. There is nothing for you to run. Watch Executions in n8n for the first days to see what customers ask, and adjust the system message from there.

What to change for a different result

| To change | Where |
| --- | --- |
| Shop name, tone and delivery times | The system message in \`AI Agent\` |
| The model | \`OpenAI Chat Model\` |
| How much the chat remembers | \`Context Window Length\` in \`Window Buffer Memory\` |
| Another carrier | Replace \`DHL\`, or delete the tracking branch |
| The page | The HTML in \`Respond to Webhook\` |

### Example

A customer of a shirt shop opens the chat and writes, “Has my order shipped?” The agent calls its order tool with the customer’s email and gets back the order list.

The tool finds the customer, loads their orders and, for the newest one, adds DHL’s events. The agent answers that the parcel left yesterday and is out for delivery, in the shop’s friendly tone.

### For newcomers and experts

**If you are new.** n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. This file holds two lines in one workflow. The first is the chat. The second is a tool that the chat’s agent calls whenever it needs order data.

**For experts.** `WooCommerce_Tool` is a Call n8n Workflow tool that points at this same workflow, so the tool runs from `Execute Workflow Trigger`. The `email` field comes from `metadata.email`, and the agent adds the order IDs it wants as a comma-separated list.

Where to look closer

| Node | What it does | What to know |
| --- | --- | --- |
| \`Decrypt email address\` | Turns the encrypted \`metadata.email\` back into an address | Off in the file, with \`Mock Data\` standing in for it |
| \`WooCommerce Get Orders\` | Calls \`/wp-json/wc/v3/orders\` with the customer’s ID | An HTTP Request node, since it filters by the agent’s order IDs |
| \`Extract Tracking Data\` | Reads \`\_wc\_shipment\_tracking\_items\` | Passes only orders that have a tracking entry |
| \`DHL\` | Looks up each tracking number | Its error output goes to \`Add Error Information\` |

### Good to know

The chat is public and the email check rests on one shared password, so treat it with care.

- Model: \`OpenAI Chat Model\` called \`gpt-4\`, which OpenAI’s deprecations page, read on 12 November 2026, lists as shut down on 23 October 2026. Mindket’s copy calls \`gpt-5.6-sol\`, the replacement it names
- The repair: the system message used \`{{ $json.email }}\`, which the chat item does not hold. The copy reads \`{{ $json.metadata.email }}\`, where the email sits
- Weak link: the encrypted email has no signature and no expiry, and anyone who learns the password can make a value for any customer
- Open chat: anyone who finds the chat’s address can start a chat on your OpenAI key
- Mock Data: while it is on, every chat belongs to the one address typed there. Disable it, and do not delete it, because \`Window Buffer Memory\` reads the session ID from it
- Carriers: every tracking number goes to DHL, whatever the carrier, so another carrier’s parcel ends at \`Add Error Information\`
- Example page: it loads the chat widget from jsDelivr as \`@latest\`. Pin a version on your own site
- Billing: OpenAI bills each agent turn, your shop’s API takes one call for each lookup and DHL one for each parcel
- Your data: each lookup sends the whole order to OpenAI, with the customer’s name, addresses, phone number and items, and the tracking numbers go to DHL
- Credentials: the JSON holds none

## README

```markdown
# WooCommerce order-status chat agent with DHL tracking

An n8n workflow that puts an AI agent behind a chat on a WooCommerce shop. A customer asks about an order. The agent looks the
customer up by the email address your website supplies, reads their orders through the WooCommerce API and adds DHL tracking
events where an order has a tracking number. The address reaches the workflow encrypted, so the chat answers only about the
customer it was opened for.

## What is inside

- `workflow.json`: the workflow as n8n exports it, forty nodes. Thirty-one of them run and nine are sticky notes. It holds no
  credential.
- `README.md`: these notes.

## What we changed from the original copy

- `OpenAI Chat Model` called `gpt-4`, which OpenAI shut down on 23 October 2026. OpenAI's deprecations page, read on 12 November
  2026, names `gpt-5.6-sol` as its substitute, so the node calls that now.
- The agent's system message told it the customer's address with `{{ $json.email }}`. The chat item has no such field, because
  `Mock Data` and the decrypt step both put the address under `metadata.email`. The message reads `{{ $json.metadata.email }}`
  now, so the agent can repeat the address when asked.
- `WooCommerce Get Orders` pointed at the author's own test shop. Its address is `https://YOUR_STORE_DOMAIN/wp-json/wc/v3/orders`
  now.
- The three Code nodes that encrypt and decrypt an email address used the password `a random password`. Each now holds
  `YOUR_SHARED_PASSWORD`.
- The sample customer address, and its encrypted form, are placeholders in `Mock Data`, `Encrypt email`, `Example encrypted email`
  and the example page: `<CUSTOMER_EMAIL>` and `<ENCRYPTED_EMAIL>`. The page's chat address is `<YOUR_CHAT_WEBHOOK_URL>`.
- The file had no name, so we gave it one. The webhook IDs and the credential links are gone.
- Nothing else. The Code nodes' logic is as the file had it.

## Before you start

- An n8n instance, on n8n Cloud or your own server. The Code nodes use Node's `crypto` module. The file's own note says the
  environment variable `NODE_FUNCTION_ALLOW_BUILTIN` must equal or include `crypto`, and calls that the default on n8n Cloud.
  Check it on a server of your own.
- A WooCommerce shop and a WooCommerce credential for its REST API, with a consumer key and secret.
- An OpenAI API key.
- A DHL credential, if you keep the tracking branch.
- Order tracking numbers stored in each order's meta data under the key `_wc_shipment_tracking_items`. The tracking branch reads
  that key.
- A website where the chat will sit, and a backend that can encrypt the customer's email address.

## Set it up

1. In n8n, create a workflow, open its menu and choose Import from File. Pick `workflow.json`.
2. Select your WooCommerce credential in `WooCommerce - Get User` and `WooCommerce Get Orders`, your OpenAI credential in `OpenAI
   Chat Model`, and your DHL credential in `DHL`.
3. In `WooCommerce Get Orders`, replace `YOUR_STORE_DOMAIN` with your shop's domain.
4. To test, open `Mock Data` and replace `<CUSTOMER_EMAIL>` with the email of a customer who has orders. As the file ships,
   `Mock Data` is on and `Decrypt email address` is off. Press the Chat button and ask about an order.
5. Open `AI Agent` and edit the system message. It names a shop, Best Shirts Ltd., and states its dispatch and delivery times.
6. For production, choose one password and put it in place of `YOUR_SHARED_PASSWORD` in `Decrypt email address`. In your own
   backend, encrypt each signed-in customer's address the way `Encrypt email` does, with the same password, and give the result
   to the chat as `metadata.email`.
7. Enable `Decrypt email address` and disable `Mock Data`. Disable it and do not delete it: the key in `Window Buffer Memory` reads
   the session ID from it. If you delete it anyway, point that key at `Chat Trigger`.
8. Publish the workflow. Copy the production address from `Chat Trigger` into your page where it says `<YOUR_CHAT_WEBHOOK_URL>`.
   `Webhook Example Page`, with the path `website-chat-example`, serves a sample page you can copy.

## How a run goes

A chat message:

1. `Chat Trigger` is public, so anyone with its address can open a chat. It passes on the message, the session ID and the
   `metadata` object the page set.
2. `Decrypt email address` turns `metadata.email` back into an address. It is off in the file. `Mock Data` sets that field to a
   fixed address instead, and it is on.
3. `AI Agent` (version 1.4) runs with `OpenAI Chat Model`, `Window Buffer Memory`, which keeps the last 10 messages of a session,
   and one tool, `WooCommerce_Tool`. Its system message sets the tone, says to use only the customer's own address, and states
   that orders are dispatched 1 to 2 days after purchase and delivered 1 to 2 days later.
4. `WooCommerce_Tool` calls this same workflow with the field `email`, taken from `metadata.email`. The agent passes the order IDs
   it wants, comma separated, or nothing for every order.

The tool call, which starts at `Execute Workflow Trigger`:

1. `If email provided` stops an empty address at `No email provided`.
2. `WooCommerce - Get User` finds one customer with that email. `If user found` sends a miss to `No customer found`.
3. `WooCommerce Get Orders` asks `/wp-json/wc/v3/orders` for that customer's orders, limited to the agent's IDs when it gave any.
   `If order found` sends a miss to `No order found`.
4. `Extract Tracking Data` reads `_wc_shipment_tracking_items` from each order. `If contains DHL data` passes only orders with at
   least one tracking entry, and `Split Out` makes one item for each.
5. `DHL` looks up each tracking number. Its error output goes to `Add Error Information`, which writes that no data could be found
   for the parcel. `Merge Tracking Data` and `Aggregate` gather the results into `tracking`.
6. `Merge Orders` and `Merge Order and Tracking Data` join each order with its tracking, and `Send Response` hands the agent one
   `response` list. A miss at any step above puts its short sentence in `response` instead.

## Change the look

- Shop name, tone and delivery times: the system message in `AI Agent`.
- The model: `OpenAI Chat Model`. `gpt-5.6-terra` is the cheaper of OpenAI's two named replacements.
- How much the chat remembers: `Context Window Length` in `Window Buffer Memory`.
- Another carrier: replace `DHL` with that carrier's lookup, or delete the tracking branch and keep only the orders.
- The page: the HTML in `Respond to Webhook`.

## Good to know

- Only the encrypted value ties a chat to a customer. It has no signature and no expiry, and whoever learns the password can write
  a value for any customer. Keep the password out of the page and out of the repository.
- `Chat Trigger` is public, so anyone who finds its address can start a chat on your OpenAI key.
- Every tracking number goes to `DHL`, whatever the carrier. A parcel from another carrier ends at `Add Error Information`.
- With `Mock Data` on, every chat belongs to the one address typed there. Turn it off before the chat meets real customers.
- The example page loads the chat widget from jsDelivr as `@latest`. Pin a version on your own site.
- Where the data goes: each lookup sends the whole order to OpenAI, with the customer's name, addresses, phone number and items, and
  the tracking numbers go to DHL.
- Billing: OpenAI charges for each agent turn, and each lookup adds a call to your shop's API and one to DHL for each parcel.
```

## What is in it

3 files, 40 KB, downloaded as a zip.

```text
NOTICE.md  594 B
README.md  7 KB
workflow.json  32 KB
```

## Workflow check

Checked by Mindket on 13 Nov 2026. Read from the workflow’s file, not from a run.

- Steps: 25 steps, starting when another workflow calls it, on a chat message or when its webhook is called
- Not reached: 3 nodes no run reaches: Decrypt email, Encrypt email and Example encrypted email
- AI: 1 step calls an AI model: AI Agent
- Sign-ins: Signs in to: WooCommerce, DHL and OpenAI
- API keys: No API key is left in the file
- Step types: Mindket’s checker reads all 14 of its step types

## Get it

- [Get it on your Mindket account](https://account.mindket.com/account/?product=mindket#/market/c7d33a8c-a1ad-4b76-8a47-4abf3fb2a2bd)
- [Its page on Mindket](https://mindket.com/p/c7d33a8c-a1ad-4b76-8a47-4abf3fb2a2bd)
