AI Support Reply Drafts for WooCommerce documentation
A guide to AI Support Reply Drafts for WooCommerce: connecting your AI account, your shop texts, drafting a reply, the placeholders and the post-check, sending to the customer, tracking numbers, templates and history, privacy and limits.
Documents version 1.0.0Updated Oct 29, 2026
Start here
What you get
| Feature | What it does |
|---|---|
| Draft on the order screen | HPOS and the legacy order storage. Topic, language (the customer's, English, Arabic or your admin language), tone and an optional template as preferred wording. |
| Facts only | Order number, status, dates, item names and quantities, shipping method, tracking number and link, whether a refund is recorded, and your shop texts. Nothing else is given to the AI. |
| [CHECK: ...] placeholders | A fact the reply needs but the order does not have (no tracking number, no policy text) becomes a placeholder. The send button refuses a text that still has one. |
| Post-check | Amounts, percentages, dates, weekdays, delivery times, other order numbers and promises (refund, discount, coupon, compensation, replacement, free...) not found in the facts are listed beside the draft. Links written by the AI are removed. |
| Tracking numbers | Verified keys: WooCommerce Shipment Tracking (official documentation), Advanced Shipment Tracking by zorem and Orders Tracking for WooCommerce by VillaTheme (wordpress.org source). AfterShip and YITH keys are also read but NOT verified; any plugin can be supplied through the filter tqsd_tracking_items. |
| Privacy | Address, phone, e-mail and payment details are never sent. The first name, the tracking number and the tracking link stay on your site: the AI writes placeholders and the plugin fills them in. E-mail addresses, phone numbers, IBANs and card numbers in the pasted message are masked. |
| Explicit sending | Only roles you allow, only on a click, with a confirmation that shows the exact text and the customer's e-mail. WooCommerce's own customer note sends the e-mail. A confirmation works once. |
| History | Per order and for the shop: who drafted, when, the topic, the checks, and whether the draft was copied, added as a private note, sent or discarded. Kept 90 days by default. |
| Templates | Shop-wide snippets with placeholders, offered per topic and insertable in any draft. |
| Limits | Drafts per person per hour and AI requests per day for the shop, counted atomically (parallel requests cannot pass them). |
Requirements
| Item | Details |
|---|---|
| WordPress | 6.0 or newer |
| PHP | 7.4 or newer |
| WooCommerce | 8.0 or newer (HPOS and block checkout compatible) |
| An AI provider | An account and an API key with an OpenAI-compatible service (OpenAI, OpenRouter, Azure, a local server such as Ollama...) or with Anthropic. You pay your provider for what you use; the plugin has no usage fees. |
| License | GPL-2.0-or-later |
Install
- Unzip the package you downloaded. Inside is
ai-support-reply-drafts-for-woocommerce.zip(do not unzip this one). - In WordPress open Plugins → Add New Plugin → Upload Plugin, choose
ai-support-reply-drafts-for-woocommerce.zipand press Install Now. - Press Activate Plugin. WooCommerce must be active.
- Open Settings → AI Support Replies → AI connection, choose your provider, paste your API key and press Test the connection.
Connect your AI
| Field | Meaning |
|---|---|
| Provider | OpenAI-compatible (OpenAI, OpenRouter, Azure, Groq, Ollama, LM Studio...) or Anthropic. |
| API address | Leave empty for the official address. For another service enter it, for example http://localhost:11434/v1. |
| API key | Stored in your database (never shown again). You can define it in wp-config.php instead and the field disappears. |
| Model | The model name at your provider. A small, cheap model is enough for most tasks. |
| Maximum answer length | Caps the tokens of one answer, so a request cannot cost more than you expect. |
| Daily limit | The number of requests the plugin may make per day (0 = no limit). When it is reached the plugin stops asking until tomorrow. |
| Privacy | Hides e-mail addresses, phone numbers and card-like numbers before the text is sent. |
Your shop texts
| Option | Meaning |
|---|---|
| Who can draft replies | Roles that see the box (they also need the WooCommerce right to edit orders). Administrators and shop managers by default. |
| Sending to the customer | Shows the send button. Turn it off and staff can only copy or add private notes. |
| Who can send to the customer | Roles that may send; separate from drafting. |
| Signature | Added by the plugin under every draft; not sent to the AI. |
| Default tone / language | Friendly, formal, short or calm; the customer's language by default. |
| First name | Off by default: the first name is filled in on your site. |
| Longest customer message | Longer messages are cut before sending (3000 characters). |
| Drafts per person per hour | 20 by default. |
| Keep the draft history | 90 days by default. |
| Customer message | Off by default: the masked message is not kept in the history. |
Drafting a reply
- Open the order. In the AI reply draft box paste the customer's message, or press Use the note the customer wrote at checkout.
- Choose the topic. A template for that topic is chosen as preferred wording; you can change it.
- Press Draft a reply. The draft appears in an editable field with the list of checks under it.
- Fill in every [CHECK: ...] placeholder, look at the flags and edit the text.
- Copy it into your e-mail or chat, add it as a private note, or send it as an order note to the customer.
| Flag | Meaning |
|---|---|
| Amount not in the facts | An amount or a percentage the order and your texts do not contain. |
| Date not in the facts | A date, a weekday or "tomorrow" that is not an order date. |
| Time not in your shop texts | A delivery or return time your texts do not give. |
| Possible promise | Refund, discount, coupon, compensation, replacement or free, when your texts do not mention it; an approved or promised refund always. |
| Link written by the AI | Removed and replaced by a placeholder. The only link a draft can contain is the tracking link of the order. |
| Other order number | A number with # that is not this order. |
| To fill in | A [CHECK: ...] placeholder. |
Sending to the customer
Tracking numbers from other plugins
| Plugin | Where the plugin reads it |
|---|---|
| WooCommerce Shipment Tracking | Order meta _wc_shipment_tracking_items (provider, custom link with %1$s for the number). |
| Advanced Shipment Tracking (zorem) | The same order meta _wc_shipment_tracking_items; the link is built by the plugin when it is active. |
| AfterShip Tracking (not verified) | Order meta _aftership_tracking_items (number and courier; no link is stored). Not verified against the AfterShip source. |
| Orders Tracking for WooCommerce (VillaTheme) | Order item meta _vi_wot_order_item_tracking_data, the latest entry. |
| YITH WooCommerce Order & Shipment Tracking (not verified) | Order meta ywot_tracking_code, ywot_carrier_name, ywot_carrier_url. Not verified against the YITH source. |
tqsd_tracking_items. Premium and future versions may store data differently.Templates and history
Privacy and security
| Risk | What the plugin does |
|---|---|
| The customer message gives orders to the AI | It is sent as data between random markers; the instructions say it is untrusted and that only the facts count. The staff sees a warning. |
| The AI promises something | The instructions forbid promises; the post-check flags amounts, dates, times and promise words not in the facts; a person reads it. |
| The AI writes a link | Links, bare web addresses with common endings and e-mail addresses are removed and flagged; only the tracking link of the order is put in, by the plugin. |
| The AI answers something else | The answer must be JSON with a reply; extra fields are ignored. The draft is plain text, escaped on screen. |
| Unwanted sending | Never automatic, never in bulk; a separate right to send; a two-step confirmation that works once; WooCommerce's customer note. |
| Costs | Limits per person per hour and per shop per day, counted under a database lock. |
Arabic and right to left
Limits
| Limit | Detail |
|---|---|
| Accuracy | The AI can misread a message or write something wrong. The flags help, but they are patterns, not understanding: read every draft. |
| Facts | The plugin knows what is on the order. It does not ask your carrier where a parcel is, and it does not read your e-mail. |
| Not a helpdesk | No inbox, no automatic replies, no bulk replies. It drafts one reply for one order when a person asks. |
| Languages | Any language the model writes; English and Arabic are tested. |
| Not legal advice | It does not check consumer law; your texts decide what is promised. |
For developers
// Make a draft from PHP (the same checks as the button: limits, masking, post-check); nothing is sent
$r = TQSD_Drafter::draft( $order_id, array( 'message' => $text, 'intent' => 'where', 'lang' => 'auto' ) );
// $r['draft'], $r['flags'] (amount, date, duration, promise, link, order, placeholder), $r['placeholders']
// The facts of an order, exactly as they are given to the AI
$facts = TQSD_Facts::build( $order_id ); // rows, prompt, tokens (kept on the site), sources, missing
// Tracking numbers of another shipment plugin
add_filter( 'tqsd_tracking_items', function ( $items, $order ) {
$n = $order->get_meta( '_my_tracking_number' );
if ( $n ) {
$items[] = array( 'number' => $n, 'carrier' => 'My Courier', 'link' => 'https://track.example/' . rawurlencode( $n ) );
}
return $items;
}, 10, 2 );
// Who may draft and who may send (on top of the roles in the settings)
add_filter( 'tqsd_can_send', function ( $ok, $user, $order_id ) { return $ok && user_can( $user, 'manage_woocommerce' ); }, 10, 3 );
// Add a shop rule to the instructions (the customer message stays data)
add_filter( 'tqsd_system_prompt', function ( $p ) { return $p . "\nNever mention our second warehouse."; } );
// The key can live in wp-config.php
define( 'TQSD_AI_KEY', 'sk-...' );Troubleshooting
| Problem | What to do |
|---|---|
| No box on the order screen | Your role is not in Who can draft replies, or you cannot edit orders. Check Screen Options at the top of the order screen. |
| No send button | Your role is not in Who can send to the customer, or sending is switched off. |
| "Fill in or remove every [CHECK: …] placeholder" | Edit the draft; the send step refuses placeholders. |
| Daily limit reached | Raise it in the AI connection tab, or wait until tomorrow. |
| No tracking number | Your shipment plugin stores it somewhere else; use the tqsd_tracking_items filter. |
| AI errors | Test the connection; check the key and the model. |
Updating and removing
Install the new zip over the old one in Plugins → Add New Plugin → Upload Plugin (WordPress offers to replace the current version), or replace the folder ai-support-reply-drafts-for-woocommerce by FTP. Your settings, templates and history are kept. Deleting the plugin removes its settings, templates, history table and counters. Notes already added to orders stay on the orders. To remove the plugin, deactivate and delete it: its settings are removed with it.
Support
Installation help and bug fixes are included for 6 months, with lifetime updates. Contact us through the marketplace page where you bought the plugin or write to support@taqnix.com with your WordPress version, the plugin version and a screenshot.