Start here
Your 7-day trial
A new workspace starts on a seven-day free trial with every feature switched on. No card, no plan picker, no feature gates. Here is exactly how access works and a plan that fits in the week.
What's included
Everything. There is no reduced trial tier: the ranking engine, webhooks, imports, Stripe Connect, the public API and unlimited team members are all live from the moment you name your workspace. The only limits are the ones that apply to every account — the event ingest rate cap and the 20 MB import ceiling.
Stitchwork accounts are sold by hand. There is no plan catalogue, no public price and nothing to buy in the app. When the trial ends, commercial terms are agreed with us and recorded against your workspace — you will not be asked to enter a card to keep working.
How access is enforced
Your workspace carries a single access state. It is the only thing the gate reads, and nothing derived — no webhook, no background job — ever writes it.
| State | Meaning | Access |
|---|---|---|
trial |
The default for a brand-new workspace. A free trial is running. | Full, while the trial end date is in the future. |
active |
Terms agreed. No trial dependency. | Full, indefinitely. |
suspended |
Locked by an operator — non-payment, a dispute, a request from you. | Locked. Beats a live trial deliberately: a lock has to be the last word. |
closed |
The account has ended. | Locked. |
Access is evaluated on every request. There is no scheduled job, so an expired trial locks the workspace the next time somebody loads a page — not overnight, and not a day late.
What a locked workspace looks like
| Surface | Behaviour |
|---|---|
| App pages | Redirected to /locked, which explains the situation and shows the support address. |
| JSON API | 402 Payment Required with {"error":"This workspace is locked…"}. Distinct from the 403 that means "you're not the owner". |
| Public quote pages | Keep working. A customer halfway through paying a quote is never interrupted by your billing state. |
| Tracking ingest | Keeps working. Events, the tag script and the public recommendation endpoints are ungated by construction. |
| External ingest | Keeps working. POST /quotes/external and POST /orders/external never resolve a workspace through the gate. |
A lock is a gate, not a wipe. Products, customers, quotes, orders, events and webhook subscriptions are all exactly where you left them when access is restored.
Getting unlocked or extended
Ask. Trials can be extended, and a workspace can be moved to active at any
point. Operators do this from the back office; there is also an out-of-band ops endpoint
for it (Ops endpoints) which is disabled unless
the instance sets an admin key.
A week that works
You do not need all seven days, but this is the order that avoids dead ends — each day makes the next one produce visible results.
-
Day 1 — Catalogue in
Sign up, name the workspace, import products. Get
web_urlandcategorypopulated even if nothing else is. Add a channel for each physical location.Done when Products shows your real SKUs with prices and categories.
-
Day 2 — History in
Import a year or two of orders. This is the single highest-leverage thing in the week: it fills the bestseller signal, seeds the customer list, and makes every ranking output immediately credible instead of empty.
Done when Rankings shows a non-zero bestseller input count and the unmatched-SKU list is short.
-
Day 3 — Tag live
Generate keys, install the script tag, wire
view_productandadd_to_cartinto your own site code. Confirm the consent mode matches your legal position.Done when Rankings shows product views accumulating and a customer timeline has web rows on it.
-
Day 4 — Tune and show
Open Rankings, look at the top 50 with their per-signal contributions, and move the sliders until the order matches what a good salesperson would say. Then drop
<sw-recs>somewhere real, or re-rank one category page.Done when A visitor on your site sees an order you would defend.
-
Day 5 — Sell something
Invite one salesperson, scope them to a channel, and have them build a real quote for a real customer. Send it. Watch it arrive on the customer's phone.
Done when A quote has reached
sentand the customer has opened it. -
Day 6 — Close the loop
Print QR codes for the store, add the join endpoint to your site, and — if you take card payments on quotes — connect Stripe. Subscribe a webhook to whatever system needs to know about orders.
Done when A store visit appears on a customer timeline next to their browsing.
-
Day 7 — Decide
You now have real data, a real quote and a real personalised surface. Talk to us about terms, or don't — nothing you built goes anywhere.
Things you can safely put off
Trials get derailed by optional work. None of these block anything else, so leave them until you have decided to stay:
- Stripe Connect. Quotes work fine without it — the customer accepts, and you invoice however you already do.
- The "buy now" URL template. Only needed if you want the public quote page to hand off to your own checkout.
- Per-channel staff rosters. The owner and workspace admins can already reach everything.
- Attribution settings. The 90-day window and time-decay default are sensible; touches are captured either way.
- Category balance and price-target ranking. Both are off by default and both are refinements, not fixes.
Clearing out test data
You will make a mess in week one — that is what a trial is for. Deletes are real, not cosmetic, so the mess actually goes:
| To remove | Do this | Notes |
|---|---|---|
| A test quote | DELETE /api/v1/quotes/{id} |
Takes its lines and timeline with it. An order converted from it survives. |
| A test order | DELETE /api/v1/orders/{id} |
The sale stops counting towards revenue and the bestseller signal. |
| A test customer | DELETE /api/v1/customers/{id}?cascade=1 |
Refuses with 409 and exact counts first, unless you pass cascade. |
| A test product | DELETE /api/v1/products/{id} |
Marks it discontinued rather than deleting — history stays intact. |
Deleting a quote or a customer does not sever the connection between a browser and a person. A deleted customer's visitor is detached, not destroyed — the cookie, its events and its campaign touches survive as anonymous browsing, ready to be identified again by a later quote.
All four are owner-only. See Roles and permissions.