Glossary
Every Stitchwork term, cookie, key prefix and status value, alphabetically.
Terms
- access state
- Whether a workspace may be used:
trial,active,suspendedorclosed. Set on your account and evaluated on every request. See access. - agent (MCP)
- A headless principal — a bot or script the workspace runs, holding its own MCP seat and
mcp_live_token. Unlike a team member's seat, its channel reach is set explicitly when it is created. - assistant
- Ask Stitchwork — the assistant on every page, running on Claude. It reads what the person asking can read, drafts messages a person sends, and proposes notes and follow-ups that wait for approval. Metered in credits. See The assistant.
- associate
- The person on the team who looks after a client. Follow-ups about that client — and the reminders for their dates — go to them first. A member can take an unassigned client or hand back their own; an owner or admin can assign anyone; somebody leaving the team hands their clients back. See the client book.
- affinity
- A per-customer, per-product counter of views, cart adds and quote appearances. It is what makes recommendations personal.
- attribution snapshot
- A frozen copy of a visitor's ad-touch trail —
{first_touch, last_touch, touch_count}— stamped onto a quote or an order at creation, so the conversion keeps its source even if identity is later reassigned. - credit (assistant)
- A penny's worth of assistant use at list price. A monthly allowance comes with the plan; more can be bought and never expires. See credits.
- credited orders
- Fractional order credit on the attribution report. Each sale contributes exactly 1.0, split across the touches that preceded it by the chosen model — so a row reading
0.60took most of the credit for one sale, or a share of several. Credited orders across all rows add back up to the number of attributed sales. - conversion window
- How far back before a sale a touch may sit and still get credit (
conversion_window_days, 1–365, default 90). Distinct from the report's date range, which picks which sales are counted. - half-life
- How fast
time_decaycredit falls off with distance from the sale (half_life_days, 1–90, default 7). A touch one half-life before the sale earns half the raw weight of one on the day. No other model reads it. - bestseller metric
- What the bestseller signal counts:
units(quantity sold, the default) orrevenue(line value). Changes which products win, not how strongly the signal applies. Takes effect at the next recompute. - bestseller window
- How far back sales count towards the bestseller signal. 365 days by default.
- category balance
- A 0–1 dial that interleaves recommendation output across categories. 0 is pure relevance; 1 is strict round-robin.
- channel
- A surface you sell through: website, store, kiosk, pop-up, marketplace, wholesale. Quotes and orders both belong to one.
- channel role
- Per-channel permission:
admin,managerorassociate. Independent of the workspace role. - client book
- The customer list read as whose clients they are — everyone's, my clients, or unassigned — with tags and the associate on every row. See the client book.
- configurable product
- A product with option axes, whose variants are generated from their cartesian product.
- conversion window
- How far before a conversion an ad touch can sit and still get credit. 90 days by default, 1–365 allowed.
- delivery
- One attempt-tracked row pairing a webhook event with a subscription. Statuses:
pending,succeeded,failed,dead. - event
- One recorded action by a visitor: a page view, product view, cart add, search, purchase, QR scan or campaign arrival.
- featured
- A manual per-product flag that lifts it in the ranking. Weighted at 2.0 by default and applied outside the personalisation blend, so it lifts for everyone.
- follow-up
- An obligation: a customer, a person who owes them something, a day it is owed by, the reason, and afterwards the outcome. One open per customer at a time, enforced in the database. See Follow-ups.
- holdout
- The share of visitors who match a nudge's rule and are shown nothing, so the message can be measured against them. 10% by default, 0–50% allowed. A held-back visitor gets exactly what a non-matching visitor gets.
- join code
- A single-use, five-minute code minted by a public quote page so a customer's phone can be linked to their customer record through your join endpoint.
- join endpoint
- A small route on your domain that completes the in-store handoff. It has to be your domain, because that is the only place your own first-party cookie can be read. Provided and set up with you during onboarding.
- lift
- The difference in conversion between a nudge's shown arm and its holdout — the only figure in that feature that is about the message rather than about who it was aimed at. Reported as
better,worse,inconclusive,no_difference,countingorunmeasured. - MCP
- The Model Context Protocol — how an AI client reads a workspace through
POST /mcp. Stitchwork negotiates every protocol revision from 2024-10-07 to 2026-07-28 and exposes thirty-one tools, of which three write and all of them only append. See AI agents. - MCP seat
- One person or agent granted MCP access, billed as a per-seat add-on. Granted only by an owner or admin in Settings → MCP — connecting an AI client cannot create one. Revoking kills every token under it on the next request.
- line item
- One row on a quote or an order. Snapshots its description, SKU and unit price, so later catalogue edits never rewrite a sent quote.
- nudge
- A short message shown across the top of the merchant's own site to a visitor whose browsing matched a rule. Rendered by the tracking tag, capped per visitor, and always measured against a holdout. See Nudges.
- option
- An axis of choice on a configurable product —
wood,size,colour. 1–40 lowercase letters, digits or underscores. - organisation
- One brand's workspace. The isolation boundary — everything else hangs off it.
- owner
- The user who created the workspace. Exactly one, and the only role that can edit the catalogue, run imports, delete records or set up payments.
- personalisation strength
- A 0–1 dial blending global ranking against the per-customer overlay. 0.5 by default.
- public token
- A 32-character unguessable string on every quote. It is the authentication for
/q/{token}. - quote
- A proposal: channel, customer, lines, totals, and a link only the customer has.
- recompute
- Rebuilding the stored global ranking signals. Triggered by hand, or automatically after an order import.
- reason to get in touch
- A follow-up the nightly sweep raises on its own: a date coming up, a delivery to check on, a missed appointment, a quote about to lapse. Each moment raises one, once, on the associate's list; each kind can be switched off in Settings › Retention. See Follow-ups.
- data isolation
- Your workspace's records are separated at the database itself, not only by a filter in application code. See Data isolation.
- dates that matter
- A client's birthday, anniversary or another date ("Moving in"), with or without the year. The nightly sweep raises a follow-up ahead of each — a week by default. See reasons to get in touch.
- signal
- One input to the ranking score. Seven global (bestseller, popular, carted, newness, featured, price target, on sale) and three personal (view, cart, quote).
- simple product
- One thing, one price. Gets exactly one auto-created variant, so every product has at least one.
- SKU
- The join key between your systems and Stitchwork. Matched against product SKUs first, then variant SKUs; a variant SKU always rolls up to its parent as well.
- slug
- A URL-safe workspace identifier, used in the tracking tag URL. Never changes when you rename the workspace.
- stitching
- Linking an anonymous visitor to a named customer, which retroactively attributes their entire browsing history.
- settled (follow-up)
- Work that retired itself: the customer bought before anybody contacted them, so Stitchwork closed the follow-up. Counted apart from a dismissal — nobody judged it — and it names no closer, so it can never earn sales credit. See when the customer answers it themselves.
- sales credit
- The split of one sale across the people who earned it: opener 40%, closer 40%, anyone in between shares 20%. Earned by raising a quote, holding an appointment or closing a follow-up — never by activity alone. See Sales credit.
- saved reply
- A message the shop writes every week — after a visit, "it has arrived" — kept once by an owner or admin and picked from the composer on any customer, with
{first_name},{name},{my_name}and{shop}filled in. The person sending still reads it first. See Messaging. - subscription
- A webhook destination: one URL, one event filter, one signing secret. Not to be confused with the self-serve plan, which is a subscription in the billing sense — see choosing a plan.
- STOP
- The reply that stops texts to a customer — on every record carrying that number — until they reply START. See Messaging.
- tax inclusive
- Quote mode where line prices already contain tax. The total equals the discounted subtotal; the tax figure is informational.
- touch
- One recorded ad arrival — UTM parameters or a click id — against a visitor.
- variant
- A specific purchasable combination of a product's options, with its own SKU, price and status. What quote and order lines point at.
- visitor
- One anonymous browser, identified by the
__sw_vcookie. Becomes a known person when linked to a customer. - what we know
- The facts a team keeps about a client — a ring size, a preferred finish, the room a piece is for — one value per label, with who last changed it. Read by the assistant before it drafts anything. See the client book.
- Who to tell
- The tab on a product that lists who should hear about it: customers who quoted, carted or looked at it, then those who keep browsing its category, never anyone who has bought it. The same list as the
find_customers_for_producttool. See Catalogue. - workspace role
owner,adminormember. Separate from channel roles.
Key and id prefixes
| Prefix | What it is | Where it goes |
|---|---|---|
pk_live_ | Public tracking key | Browser. Authorization: Public …, or ?key= on public read endpoints. |
sk_live_ | Secret tracking key | Your server only. Authorization: Bearer …. |
mcp_live_ | MCP agent token | A headless AI agent calling POST /mcp. Per-seat, read-only, shown once. |
mcp_at_ | OAuth access token | Issued to a connected MCP client (e.g. Claude). Hour-long, refreshed silently. |
mcp_rt_ | OAuth refresh token | Rotates on every use; reuse of a rotated one revokes the whole chain. |
mcp_ac_ | OAuth authorization code | Sixty seconds, single use — the handoff between consent and a token. |
mcp_client_ | OAuth client id | An application registered with the built-in authorization server. |
whsec_ | Webhook signing secret | Your webhook receiver. Shown once at creation and once per rotation. |
evt_ | Webhook event id | The envelope's id and the Stitchwork-Event-Id header. Dedupe on this. |
Q-YYYY-NNNNNN | Quote number | Human-facing. Unique per workspace per year. |
acct_ | Stripe Connect account | The merchant's own Stripe Express account. |
Cookies
| Name | Set by | Lifetime | Purpose |
|---|---|---|---|
__sw_v | The tag | 2 years, sliding | Visitor identity on your domain. Written only after consent. |
__sw_channel | The tag | 30 min, sliding | Physical-channel attribution after a QR scan. |
__sw_attr | The tag | 30 min, sliding | Deduplicates campaign touches. |
| Session cookie | The app | 14 days | Staff authentication on the Stitchwork app itself. HttpOnly, SameSite=Lax. |
URL markers
| Parameter | Meaning | Stripped? |
|---|---|---|
_sw_ch | Channel id this scan belongs to. | Yes |
_sw_scan | Marks the arrival as a QR scan. | Yes |
_sw_qr | Which specific QR code was scanned. | Yes |
utm_*, gclid, fbclid, msclkid | Campaign attribution. | No — your own analytics need them |
joined, reason | Result of a QR join, on the return to the quote page. | No |
Status values
| Where | Values |
|---|---|
| Workspace access | trial, active, suspended, closed |
| Workspace role | owner, admin, member |
| Channel role | admin, manager, associate |
| Channel type | web, store, marketplace, kiosk, pop_up, wholesale |
| Channel ownership | owned, franchise, authorised, wholesale, marketplace |
| Channel status | active, paused, closed |
| Product type | simple, variant, configurable |
| Product / variant status | draft, active, discontinued |
| Quote status | draft, sent, accepted, declined, expired, cancelled, paid |
| Quote discount type | amount, percent |
| Quote origin | app, external |
| Order status | draft, pending, abandoned, paid, partially_refunded, refunded, cancelled, fulfilled — what each one means |
| Order origin | app, import, quote_conversion, external |
| QR kind | product, channel_entry, custom |
| Event type | page_view, click, search, add_to_cart, view_product, purchase, qr_scan, campaign_touch, scroll_depth, custom |
| Consent mode | auto, require, off |
| Follow-up status | open, done, dismissed, settled — discarding removes the row instead |
| Nudge status | draft, live, paused |
| Nudge CTA | none, button, email, phone |
| Nudge frequency | once_per_visitor, once_per_session, every_n_days |
| Nudge arm | shown, holdout |
| Nudge verdict | better, worse, inconclusive, no_difference, counting, unmeasured |
| Attribution model | time_decay, linear, position_based, last_touch, first_touch |
| Attribution grouping | source, source_medium, campaign |
| Webhook delivery | pending, succeeded, failed, dead |
Headers
| Header | Direction | Purpose |
|---|---|---|
Authorization: Public pk_live_… | To Stitchwork | Storefront / browser calls. |
Authorization: Bearer sk_live_… | To Stitchwork | Server-to-server calls. |
Authorization: Bearer mcp_live_… | To Stitchwork | An AI agent on POST /mcp. |
Stitchwork-Signature | From Stitchwork | t=<unix>,v1=<hex hmac-sha256>. |
Stitchwork-Event-Id | From Stitchwork | Dedupe key for webhook deliveries. |
Stitchwork-Event | From Stitchwork | Event type, for routing before parsing. |
Stitchwork-Attempt | From Stitchwork | 1-based attempt number. |