1 Install
- Download the plugin zip from your client area.
- In WordPress, go to Plugins → Add New Plugin → Upload Plugin, choose the zip and click Install Now, then Activate.
WooCommerce must be active. Upcase works with both WooCommerce order storage modes, HPOS and legacy.
Updating later? Updates appear under Plugins like any other while your licence is active. To install a zip by hand, upload it the same way and choose Replace current with uploaded. Your settings are kept.
2 Activate your licence
Go to WooCommerce → Upcase → Connection. Paste the key from your client area into Licence key and click Activate.
Staging and local sites unlock everything without using your licence. That covers addresses starting staging. or dev., ending .local or .test, common staging hosts, and any site with WP_ENVIRONMENT_TYPE set to staging, development or local. Staging sites don't download updates; copy those from your live site.
3 Connect ClickUp
- Connect ClickUp (recommended): approve access in ClickUp and you're sent straight back.
- Or use a personal token: in ClickUp, click your avatar → Settings → Apps → API Token. It starts
pk_. Cases will show as created by that person.
To keep the token out of the database, add it to wp-config.php instead:
define( 'UPCASE_CLICKUP_TOKEN', 'pk_your_token_here' );
If you only have one ClickUp workspace, it's picked for you and your lists are fetched.
4 Where cases go
- Default list: where a case goes if nobody picks a category. A triage or general help list works well. Each person can also star their own favourite list on the case form.
- Default assignee: optional.
- List missing? ClickUp doesn't show lists inside nested folders to other apps. Paste the list's link into Add list on the Connection tab.
5 Categories
On the Categories tab, click Add category. Each category has:
- an emoji, name and colour, used on the order screen;
- the ClickUp lists it covers. A task belongs to the category of the list it sits in;
- an optional ClickUp template, used for new cases. Its checklists, subtasks and layout are kept, and the order details are added under the template's description;
- Show on the case form, to hide a category's button without deleting it.
Drag cards to reorder them. A list can only belong to one category. Tasks in lists no category claims show as "Other".
6 Using it
On any order, the ClickUp cases box shows the customer and every case linked to the order or to the customer.
- + Open a case: what it's about, details, who to assign, where to file it, and any files. Paste a screenshot straight into the form: on a Mac press ⌘⌃⇧4 then ⌘V; on Windows press Win⇧S then CtrlV.
- Reship: opens the Reship form (see Reshipments).
- Link a task: paste a ClickUp task link, task ID or custom ID such as
SUP-142. - Unlink removes the link only. The task stays in ClickUp.
Cases are created in the background, usually within seconds. If ClickUp is busy, Upcase waits and tries again. If something's wrong, such as a deleted list, the case shows the reason and a Retry button.
Each case shows its task's status as ClickUp: status. A reship also says what it sends and, below that, its replacement order with that order's own WooCommerce status.
7 Live updates and order notes
Status and assignee changes and new comments in ClickUp appear on orders within seconds, through a ClickUp webhook that's set up for you. This needs your site to be reachable over public HTTPS; otherwise statuses refresh every hour. Check it on the Advanced tab.
Advanced → Order notes chooses which of these become private order notes: cases opened or linked, status changes, reassignments (…is now assigned to Sam (was Alex)) and comments (💬 Sam commented on ClickUp case…). Upcase's own comments are never copied back.
8 Custom fields
Cases are linked to orders inside WordPress, so custom fields aren't required. If your lists have them, Upcase fills them for you.
Automatically
Any field whose name matches an order detail is filled from the order: Email address, Phone number, Customer name, Order Number, Order Details (the items), Order total, Delivery address, Tracking number, Carrier, Dispatch date, Payment reference, Refund amount and Refund notes (from the order's latest refund), and more. Names are matched ignoring case and punctuation. Phone numbers get their country code from the billing country. You can switch this off on the Advanced tab.
Per category
On the Categories tab, Set assignee and ClickUp fields… opens that category's own template for new cases:
- Assign new cases to: chosen for you on the case form, for example reshipments to whoever packs parcels.
- Fields: type your own words and click order details to mix them in, such as
{items}orReshipped {today}. Dropdowns, labels and checkboxes take a fixed choice. - Each field says what it fills itself with when left empty, and warns you when your value replaces that.
- Fields ClickUp doesn't accept values for, such as buttons, formulas and progress, are listed at the bottom.
Tracking comes from WooCommerce Shipment Tracking or Advanced Shipment Tracking. Developers can supply it from other plugins with the upcase_order_tracking filter, and add their own order details with upcase_order_variables.
Using ClickUp custom task types? Make sure each field is switched on for the task type, or ClickUp drops the value. The settings window flags these, and anything ClickUp refuses is listed in the order note.
9 Reshipments Pro
A reshipment category is one with a Create a replacement order status action (below). It gets the Reship form on the order panel, and a review step before anything is packed.
The Reship form
- What needs sending again: the whole order or part of it, each line limited to what can still be sent (ordered, less refunds and earlier replacements).
- Add something complimentary: any product from a search, plus one-click buttons for the category's common complimentary items. They're sent free and marked Complimentary.
- Why: a reason (from your list's Reason dropdown if it has one), what happened, with photos, and Quiet reship.
- Postage: you pay, or the customer pays the category's fee.
Ask for approval opens the case for the category's person. Until ClickUp approves it, Edit changes it and the task's fields follow.
Status actions
On the Categories tab, under When the task changes in ClickUp, click + Add a status action, pick the ClickUp status, and choose what happens:
- Create a replacement order: the chosen items at £0, same customer and address, plus a postage line when the customer pays. It's created as Awaiting review, and the task gets a comment and its Replacement order field.
- Complete the order, adding the task's tracking number: completes the replacement with the task's Tracking number and Carrier. Until the replacement is Processing and any postage is paid, it's refused with a comment tagging whoever moved the task. The lost parcel's tracking number is never reused.
Each action runs once per case, however often the task moves. Both orders get notes saying who did what.
Review and approve
An Awaiting review order takes no stock and sends no emails, and can still be edited. When it's right, click Approve reship (in the ClickUp cases box, the order actions, or as a bulk action on the orders list):
- You pay the postage: it moves to Processing and WooCommerce's usual emails go.
- The customer pays: it waits in Pending payment and the customer is emailed a payment link. Once they pay, it moves to Processing and the task is told.
Quiet reships send the customer no emails at all and don't appear in their account.
Tracking and reminders
A reship task's Tracking number is kept for the new parcel; the lost one goes in Previous tracking number. Tracking added to the replacement in WooCommerce fills the task's fields, and the task can move on by itself: set when it's ready to pack and when tracking is added statuses on the category.
Advanced → Reships waiting for tracking nudges a reship that's ready to pack but has no tracking after a number of working days: a comment tagging its person (or an assigned comment), a later due date and a higher priority. It repeats as often as you choose, and stops once tracking is added.
Actions run as soon as Upcase hears about the status change: within seconds with the webhook, or at the hourly refresh without it. Try it first with a test order placed with your own email address and a test ClickUp list.
10 Automatic rules Pro
The Automatic rules tab opens cases by themselves when something happens to an order: a refund (with its amount and reason), a failed payment, a cancellation, an order on hold or still processing for more than a few days, an order placed with a customer note, or one over an amount you choose. Each rule has its category, person and case name, which can include order details such as {order_number}. A rule opens at most one case per order, or one per refund.
11 The orders list
The Cases column shows each order's cases: a red flag while any is open, an amber clock when one is done in ClickUp but not closed (such as shipped), and a green tick once all are dealt with. A task in a Closed status always counts as dealt with; choose others per category under Dealt with when the task reaches.
12 Advanced
- Open ClickUp links in the desktop app: case links open ClickUp's app, with a small "web" link beside them.
- Diagnostics (under Troubleshooting): logs every ClickUp call, webhook and background job with its timing, to WooCommerce → Status → Logs (
upcase-diagnostics). Turn it on to track down a slow site, and off again afterwards.
13 Recommended ClickUp set-up
Upcase works with any ClickUp lists. If you're starting from scratch, this set-up is a good base: a Customer support space with a Support requests folder and three lists. It's modelled on a busy shop's real support space. Keep the field names below, because that's how Upcase fills them by itself (case and punctuation don't matter). Add or rename anything else freely.
ClickUp's API can't create custom fields or statuses, so you build these in ClickUp (a shareable template is coming soon). Then click Refresh lists from ClickUp on the Connection tab and add a category per list.
ClickUp groups statuses as Not started, Active, Done and Closed. The Cases column on your orders list counts a Closed status as dealt with. A Done one, such as shipped, shows as "waiting to close" unless the category counts it under Dealt with when the task reaches.
General enquiries
Statuses: to do, in progress, on hold, escalated, complete (Closed).
| Field | Type | Filled with |
|---|---|---|
| Email address | From the order | |
| Phone number | Phone | From the order, with the country code |
| Customer name | Text | From the order |
| Order Number | Text | From the order |
| Order Details | Text area | The items, one per line |
| Enquiry type | Dropdown | By you, or a category preset |
Refunds
Statuses: gathering info, evidence added, all info received, approved, refunded (Closed). Pair it with the automatic rule A refund is issued, so every refund made in WooCommerce gets a case.
| Field | Type | Filled with |
|---|---|---|
| Email address, Phone number, Customer name, Order Number, Order Details | as above | From the order |
| Refund amount | Money | The WooCommerce refund |
| Refund notes | Text area | The refund's reason |
| Refund reason | Dropdown | By you, or a category preset |
| Payment transaction ID | Text | The order's payment reference |
| Supporting evidence | Files | Photos go on the task as attachments |
Reshipments
Statuses: gathering info, evidence added, all info received, approved, awaiting dispatch, shipped (Done), completed (Closed). On the Reshipment category, set approved to Create a replacement order and shipped to Complete the order, and move tasks to awaiting dispatch when the replacement is ready to pack and to shipped when tracking is added in WooCommerce.
| Field | Type | Filled with |
|---|---|---|
| Email address, Phone number, Customer name, Order Number | as above | From the order |
| Delivery address | Text area | From the order |
| Items to reship | Text area | What the Reship form chose |
| Reshipment reason | Dropdown | The Reship form offers its options and fills the one chosen |
| Previous tracking number | Text | The lost parcel's tracking |
| Tracking number | Text | The new parcel's, once added in WooCommerce |
| Carrier | Dropdown or Text | Filled when it matches the order's carrier |
| Replacement order | Text | The replacement order's number |
| Supporting evidence | Files | Photos from the Reship form |
? Troubleshooting
"ClickUp rejected the token"
Reconnect on the Connection tab. If you use a personal token, check it hasn't been regenerated in ClickUp.
Cases take a while, or stay on "Creating in ClickUp…"
Background jobs run on WP-Cron, which only runs when someone visits your site. On a quiet store, ask your host to run a real cron job every minute that visits https://yourshop.co.uk/wp-cron.php. To see what's waiting, go to WooCommerce → Status → Scheduled Actions and search for upcase.
Statuses don't update
Check the webhook line on the Advanced tab. If your site isn't reachable over public HTTPS, statuses refresh every hour instead. Tick Re-create the webhook when saving and save to set it up again.
The site feels slow
Turn on Diagnostics on the Advanced tab for a while, then look in the upcase-diagnostics log for calls marked as made while someone waited for a page.
Where are the logs?
Go to WooCommerce → Status → Logs and choose the source upcase. Include anything relevant when you open a ticket.