B Blengi docs

Run your workspace

Orders without a plugin

Orders without a plugin

Let the AI employee see a verified customer's orders, whatever your shop runs on: connect your shop system's API once, or send the orders yourself through the order webhook (from Zapier, Make, n8n or your own code) or a CSV file.

This is part of customer memory: it only works while customer memory is on for your workspace, and only for a verified customer, someone who confirmed their e-mail address with a code in the chat or whom your site signed in. A visitor who merely types an order number, a postcode or an address never sees an order.

Which way to choose

  • Your shop runs on WooCommerce, Shopify, Lightspeed, Magento, PrestaShop or Shopware: connect its API under Settings › Integrations › Orders without a plugin. The AI employee looks up the customer's last orders by their e-mail address when their chat starts.
  • Another system (CCV Shop, Mijnwebwinkel, a custom shop): send each order to the order webhook when it is placed and whenever its status changes, through an automation tool or your own code.
  • A one-off or a nightly export: import a CSV file with the same fields.

You can combine them: a connected shop is asked first, and when it does not answer, the orders you sent are used.

Connecting a shop system

Under Settings › Integrations › Orders without a plugin, click Connect next to your shop system and paste what it asks for. Keys are stored encrypted and never shown again; the shop's address must start with https://.

Shop systemWhere to make the keyRights it needs
WooCommerce (REST API)WooCommerce › Settings › Advanced › REST API › Add keyRead
ShopifySettings › Apps and sales channels › Develop apps (the Shopify orders card)read_orders, read_customers; read_all_orders for orders older than 60 days
Lightspeed eComSettings › Developers › API keys; cluster EU1 or US1 and the shop languageRead customers and orders
Magento 2 / Adobe CommerceSystem › Integrations › Add New Integration, then activate itSales › Operations › Orders
PrestaShopAdvanced Parameters › Webservice › Add new keyGET on customers, orders, order_states, currencies
Shopware 6Settings › System › Integrations › Add integrationRead orders

To check a connection, open a verified customer on the Customers page: their last orders appear there when the shop answers.

The order webhook

Under Settings › Integrations › Orders without a plugin, click Make a key. The card shows the webhook address, which ends in your workspace's id, and the key.

POST https://your-domain/api/v1/orders/<workspace id>
Authorization: Bearer whk_…
Content-Type: application/json

{
  "order_number": "1001",
  "email": "anna@example.com",
  "status": "shipped",
  "placed_at": "2026-11-01T10:00:00+01:00",
  "total": "59.90",
  "currency": "EUR",
  "items": [
    { "name": "Boston Thermo", "quantity": 2, "variant": "43-46", "sku": "BT-43" }
  ],
  "tracking_url": "https://tracking.example.com/1001",
  "url": "https://www.your-shop.com/account/orders/1001",
  "return_open": false
}
FieldRequiredWhat it is
order_numberyesThe number the customer knows. Sending the same number again updates that order, so send it on every status change.
emailyesThe customer's e-mail address. Only a keyed fingerprint of it is stored, never the address itself.
statusyesIn your own words: "paid", "shipped", "verzonden". The AI employee repeats it.
placed_atnoA date, ISO 8601 preferred.
total, currencynoAn amount like 59.90 or 59,90 and a three-letter code like EUR.
itemsnoA list of {name, quantity, variant, sku}, or a text like 2 x Boston Thermo; Walking. At most 50 lines.
tracking_url, urlnoThe track-and-trace link and the customer's order page.
return_opennotrue while a return is in progress.

Common other names are understood too, so a shop's own export usually works as it is: number or order_id for the number, customer_email for the address, created_at for the date, total_price for the total, line_items for the items.

Send up to 100 orders at once as {"orders": [ … ]}. Instead of the Bearer key, your own code may sign the raw body: X-AI-Assistant-Signature: sha256=<HMAC-SHA256 of the body with the key>.

Answers

  • 200 with {"created": 1, "updated": 0, "errors": []}; in a batch, errors names each order that was not stored by its position (index) and field.
  • 401 for a wrong key, a webhook that is off, or an unknown address — the same answer for all three.
  • 403 while customer memory is off for the workspace: nothing is stored.
  • 422 when no order could be stored, with the reason per field.

Zapier

  1. Trigger: your shop's app, event New Order (add a second Zap with Updated Order if your app has it, so status changes come in too).
  2. Action: Webhooks by Zapier › POST.
  3. URL: the webhook address from the card. Payload type: JSON.
  4. Data: order_number, email, status and the other fields, each mapped to the order's value.
  5. Headers: Authorization = Bearer whk_… (your key).
  6. Test the step: Zapier shows "created": 1.

Make

  1. Trigger: your shop's module, Watch Orders.
  2. Add HTTP › Make a request: method POST, the webhook address as URL.
  3. Headers: Authorization = Bearer whk_….
  4. Body type: Raw, content type JSON (application/json), and the order as JSON with the fields above, mapped from the trigger.
  5. Run once: the response body shows "created": 1.

n8n

  1. Trigger: your shop's node (or a Schedule plus a node that reads new orders).
  2. Add an HTTP Request node: method POST, the webhook address as URL.
  3. Authentication: Generic Credential Type › Header Auth, name Authorization, value Bearer whk_….
  4. Send Body: JSON, with the fields above mapped from the trigger.
  5. Execute the node: the output shows "created": 1.

CSV import

Under Settings › Integrations › Orders without a plugin › Import a CSV file. The first row names the columns: order_number, email and status are required, placed_at, total, currency, items, tracking_url, url and return_open are optional, and the Dutch names bestelnummer, e-mailadres, datum and totaal work too. Columns may be separated by commas or semicolons (Excel's Dutch export). An order number that is already there is updated; at most 5,000 rows per file. After the import the card lists any row that was skipped, with its line number and the reason.

Without any of these

When no order of the customer is available, the AI employee says plainly that it cannot see orders in the chat and points the customer to your customer service, with the contact details from your knowledge. It never guesses a status, a delivery date or a tracking link, and an order number or postcode typed in the chat never counts as proof of who someone is.

Privacy

  • Orders you send are stored with a keyed fingerprint of the e-mail address, never the address itself, and never a delivery address or payment details.
  • They are only read for a verified customer, and only shown to that customer.
  • When a customer asks to be forgotten, their orders go too. Delete all on the card removes every order you sent; deleting the workspace removes them as well.
  • A connected shop's orders are not stored at all: the AI employee keeps a copy for ten minutes while the chat is open.