SalonX
SalonX Thailand · Business Unit

Launch Control Tower

The whole launch in one view. Click any block to open its tasks.

53
days to
code-complete
91
days to
launch
Gate1 AugProduct build commit — go/no-go
Gate29 AugCode-complete (3 P0s)
Launch6 OctPublic GTM (assumed)
1 blocked · 3 in progress · 50 planned · 54 tasks
◆ 4 roles unassigned · 8 decisions pending

Launch timeline

← time → · click any block to open its tasks
Status:
BlockedIn progressPlannedDone ◆ GATE▸ CRIT PATH
Highlight owner:JiaKritLukzoMY EngTH Sales · TBDCX · TBDThai reviewer · TBD ✕ clear
WorkstreamNow–AugJul 7 – Aug 29◆ 1 Aug · 29 Aug gatesEarly SepSep 1 – Sep 7Mid SepSep 8 – Sep 14Late SepSep 15 – Sep 28Launch wk (Oct)Sep 29 – Oct 6★ 6 Oct launchPost-launchOct 7 onward
Product12 tasks
Secure gate → build 3 P0s
10 tasks ▸
Thai QA · code-complete check
1 task ▸
Freeze the launch build
1 task ▸
PDPA consent · triage defects
detail ▸
Pilots validated on build
detail ▸
Feed learnings · hold spa P2
detail ▸
Testing · Pilot10 tasks
Pilot scorecard + recruit list
2 tasks ▸
Demo script + pilot offer
3 tasks ▸
Internal dummy dry-run
2 tasks ▸
Close 3-5 pilots · feedback loop
2 tasks ▸
Testimonials + graduation gate
detail ▸
Convert pilots to references
1 task ▸
Pricing & Team10 tasks
Ratify pricing + name 3 roles
3 tasks ▸
Draft sales + CS workflow
detail ▸
Separate SF pipeline live
3 tasks ▸
Onboarding kit + Thai KB
3 tasks ▸
Dry-run pricing on pilots
1 task ▸
Run pricing + workflow live
detail ▸
Base12 tasks
Thai voice fingerprint + domain
3 tasks ▸
Build Thai site + hero creative
2 tasks ▸
Social · LINE OA · ad accounts
4 tasks ▸
Verify tracking before spend
3 tasks ▸
Freeze content · confirm tracking
detail ▸
Maintain KB · social · tracking
detail ▸
Go-to-Market10 tasks
Ratify budget · start monitor
2 tasks ▸
Hold — gated on the build
held
Build campaigns (paused)
3 tasks ▸
Message campaign + soft launch
4 tasks ▸
Public launch push 🚀
1 task ▸
Weekly scorecard · Day-90 kill
detail ▸

Launch at a glance

click a timeline block for detail

Two gates decide everything

1 Aug — product build committed, or launch slips to Q4.
29 Aug — the 3 P0s code-complete. Everything downstream waits on this.

Start now

  1. PRD-0 Product-readiness go/no-go gate
  2. PRD-1 Ratify salon-first MVP scope + formally drop spa-only rooms/beds/body-chart builds
  3. PRT-1 / GTM-1 Ratify pricing
  4. PRT-3 Assign the 3 unblocking roles
  5. BASE-1 Build the SalonX TH Thai voice fingerprint + naturalness reviewer
Critical path 16 steps

Any slip here slips the launch date. The first five are gate-independent — start this week.

1PRD-0 Product-readiness go/no-go gate — Jia secures dated Q3 build commit + named owner displacing the JP needle-mover list; drop-dead 1 Aug (Now–Aug)
2PRD-1 Ratify salon-first MVP scope + formally drop spa-only rooms/beds/body-chart builds (Now–Aug)
3PRT-1 / GTM-1 Ratify pricing (two-tier ~฿15K ARPU) + budget + SQL/Won grading line with management (Now–Aug)
4PRT-3 Assign the 3 unblocking roles — dedicated SalonX TH sales owner, CX/onboarding, native Thai reviewer (Now–Aug)
5BASE-1 Build the SalonX TH Thai voice fingerprint + naturalness reviewer — gates ALL copy (Now–Aug)
6PRD-2/3/4 Build the 3 P0s — packages prepaid ledger, Thai e-Tax invoice, loyalty/สะสมแต้ม (Now–Aug)
7PRD-10 Product code-complete for TH salon MVP — hard launch dependency, ~Aug 29 (Now–Aug)
8BASE-3/4 Domain + Cloudflare staging → salon-first Thai Framer site live (Now–Aug → Early Sep)
9TEST-3 Internal dummy dry-run of the full TH flow on the code-complete build (Mid Sep)
10PRT-4 Stand up the separate SalonX TH Salesforce pipeline + lead-source (Mid Sep)
11BASE-9 / GTM-2 Full tracking stack live and VERIFIED before any spend (Late Sep)
12TEST-6 Close + onboard 3-5 salon design partners live on the TH build (Late Sep)
13GTM-5 Meta Message-first campaign live — Message → respond.io → LINE OA → demo (Late Sep)
14TEST-7 Weekly pilot feedback→product triage, drive open P0 blockers to zero (Late Sep)
15TEST-9 Soft-launch graduation review — go/no-go to public against the scorecard (Launch wk / early Oct)
16GTM-8 Public launch push — ~Oct 6 (assumption), gated on Aug-29 code-complete + passed soft-launch gate
Team & RACI 3 owners + MY Eng · 4 roles open

Jia is the single point of failure on the product gate; Krit is accountable on ~30 milestones and absorbs every unfilled role.

Jia

MY product team — owns product localization + build coordination with MY Eng
PRODUCT workstream lead: PRD-0 go/no-go gate (securing dated Q3 build commit that displaces the JP needle-mover list — CRITICAL, in writing, drop-dead 1 Aug), PRD-1 salon-first MVP scope ratification + formal drop of spa-only builds (in_progress), PRD-5/6 TH-context flag decisions (ค่ามือ commission depth, dynamic PromptPay per-bill QR, queue/คิว, deposit/มัดจำ, tips, package expiry+cross-branch), PRD-8 EN/JP→TH string localization, PRD-9 in-product PDPA consent, PRD-11 pilot-merchant testing coordination. Support-side owner on all MY Eng builds (PRD-2/3/4/7/10) and on TEST-3 internal dry-run.
⚠ HIGH — single point of failure on the whole PRODUCT critical path. PRD-0 gate is a political/negotiation task (displace JP list) that only Jia can run and everything downstream (all 3 P0 builds, Aug-29 code-complete, Oct launch) is blocked on it. Jia is also the named owner OR support on ~18 of the ~22 product/testing milestones. If the Q3 commit doesn't land by 1 Aug, launch slips to Q4.

Krit

TH marketing lead — GTM, base prep, pricing/targets, tracking, overall program PM
GTM workstream (all 10 milestones: GTM-1 budget/CPL-CAC/SQL-Won ratification in_progress, GTM-2 tracking-before-spend gate, GTM-5 Meta Message-first campaign, GTM-6 cohort funnel, GTM-7 soft launch, GTM-8 public launch, GTM-9 kill-criteria scorecard, GTM-10 LMWN/Sherwe competitor monitor). BASE workstream lead (BASE-1 SalonX TH voice fingerprint + naturalness reviewer, BASE-3 domain+Cloudflare, BASE-7 new SalonX TH LINE OA for sales, BASE-8 ad accounts, BASE-9 full tracking stack VERIFIED gate, BASE-10 dedicated SF pipeline, BASE-11 blog/KB/PDPA/AEO). PRICING lead (PRT-1 pricing tier + geo scope ratification in_progress, PRT-2 budget/target/kill-bar, PRT-3 assign the 3 unblocking roles, PRT-9 RACI sign-off). TESTING: TEST-1 pilot success framework, TEST-2 recruit list from BQ salon base, TEST-5 pilot offer, TEST-8 testimonials, TEST-9 soft-launch graduation review, TEST-10 pilot-to-reference + spa Phase-2 read. Overall program PM.
⚠ HIGH / OVERLOADED — named accountable owner on ~30 milestones across 4 of 5 workstreams, more than anyone. Biggest concrete risk: BASE-2 flags that if the native Thai reviewer defaults to Krit, copy review eats his build capacity and PDPA/tax-invoice copy slips. Also holds the tracking-before-spend gate (BASE-9/GTM-2) AND is the fallback for TH Sales and CX work until those roles are filled — so every unfilled TBD role compounds onto Krit.

Lukzo

Owns website + social media (brand/site/hero creative + organic social)
BASE-4 SalonX TH Framer website build (salon/beauty-led, Thai — reuse SalonX JP Framer specs + brand + JSON-LD; copy gated by BASE-1), BASE-5 brand assets + hero creative + Thai demo videos + per-sub-industry testimonial slots, BASE-6 social accounts (FB/IG/TikTok) + organic content plan, BASE-12 media/resource library. Support on BASE-1 voice fingerprint, BASE-3 hosting, BASE-7 LINE OA, BASE-11 blog/KB, and GTM-5/GTM-8 creative for campaigns; TEST-8 testimonial asset production.
⚠ MEDIUM — capacity risk explicitly flagged: Lukzo owns senior creative judgment (hero creative, site) but BASE-5 notes Fiat is needed for production VOLUME (Thai demo videos, per-sub-industry testimonial slots) and Fiat is already committed to JP-social continuity. Website + brand + social + full media library concentrated on one person; production-volume overflow has no assigned owner (see extra-design-capacity unassigned role).

MY Eng

MY engineering — builds the actual TH product features
The three P0 builds on the critical path: PRD-2 packages/courses prepaid-balance ledger (คอร์ส/แพ็กเกจ — #1 TH gap, 35-50% of buyers), PRD-3 Thai e-Tax invoice + branch number + 13-digit tax ID (legal/mall-compliance blocker; reuse thai-invoice skill), PRD-4 loyalty/points stamp-card (สะสมแต้ม — omitted from Jia En's readiness doc). Also PRD-7 package-balance + customer-master migration import (Sherwe/Ease formats), PRD-10 code-complete for TH salon MVP (~Aug 29 hard launch dependency). Support on PRD-5 (extend JP payroll base for ค่ามือ commission), TEST-3 internal dry-run, TEST-7 defect fixes.
⚠ HIGH / GATED — not blocked on capability but on PRD-0: the 18-Jun roadmap schedules ZERO TH P0s (all JP needle-movers, 'reduced-capacity reality'). Until Jia lands the dated Q3 commit + a named build owner that displaces the JP list, MY Eng cannot start. All three P0 builds + migration + code-complete compress into Now→Aug-29 the moment the gate passes — a tight window with no slack, and PRD-3 e-Tax scope (paper ใบกำกับภาษี vs full ETDA submission) is still an open scoping decision.

◆ Unassigned roles — each blocks a lane

NEEDS OWNERDedicated SalonX TH sales owner (NOT the StoreHub TH sales team — brands/teams stay separate)
No one owns closing pilots or running the launch pipeline. This is the single most-referenced TBD role — it is the accountable owner on TEST-4 (demo script + objection playbook), TEST-6 (close 3-5 design partners + onboard), PRT-4 (stand up separate SalonX TH Salesforce pipeline), PRT-5 (sales process/stages/SLA), PRT-10 (dry-run pricing+workflow on pilots), GTM-3 (lead routing to the dedicated owner). Until named, all this work either stalls or defaults onto Krit, who is already overloaded. Must be explicitly separate from the StoreHub TH team so no lead/ticket crosses brands and the launch stays gradeable against its own target. PRT-3 is the milestone that assigns it; Bangkok GTM team band ฿0.72-1.38M/yr already verified.
Blocks: TEST-4, TEST-6, PRT-4, PRT-5, PRT-10, GTM-3, GTM-4 support, GTM-5 support — the entire pilot-close → pipeline → sales-process lane and the separate-brand SF routing. Without it there is no owner to sign the 3-5 design partners that are the true product de-risk before spend, and no dedicated pipeline to attribute leads.
NEEDS OWNERCS / onboarding owner (CX)
No one owns getting merchants live and supported. Accountable owner on PRT-6 (CS support flows + P1/P2/P3 ticket priority, respond.io routing), PRT-7 (onboarding kit: salon setup checklist, data-migration guide, staff training), PRT-8 support, and TEST-7 (structured weekly pilot feedback loop → product). Also support on PRD-6/7/11 (TH-context flag validation, migration, pilot testing), TEST-2/6/8, BASE-5/7, GTM-7. Pilot onboarding = data/package-balance migration + staff training + LINE OA/respond.io wiring; without an owner, soft launch becomes white-glove manual entry by Krit/Jia at SOM scale (PRD-7 notes no bulk import exists today).
Blocks: PRT-6, PRT-7, TEST-7, PRT-8; and the onboarding/feedback-loop halves of TEST-6, PRD-11, GTM-7. Blocks the weekly pilot→product triage that keeps the Aug-29 build from over-scoping, and blocks the go-live path for the 3-5 pilot salons.
NEEDS OWNERNative Thai copy reviewer
No one gates Thai-language quality, tax-invoice wording, or PDPA notices. Accountable owner on BASE-2 (its own gate milestone) and PRT-8 (Thai KB/help-center seeding); required support/QA pass on BASE-1 (voice fingerprint), BASE-4/5/11 (site, creative, blog/KB copy), PRD-3 (Thai tax invoice), PRD-8 (product-string localization QA), PRD-9 (PDPA consent), TEST-3/4 (dummy test + demo script). BASE-2 explicitly flags: if review defaults to Krit it eats his build capacity and PDPA/tax-invoice copy risks slipping. The exit criteria allow an explicit decision that 'Krit + naturalness-reviewer agent covers it' — but that decision must be made, not left implicit.
Blocks: BASE-1 quality gate, BASE-2, PRT-8, and the copy-QA on every TH-facing surface (site, ads, blog, KB, product strings, tax invoice, PDPA notice, demo script). Because BASE-1 gates ALL copy, an un-named reviewer bottlenecks the entire base-prep and GTM content chain onto Krit.
NEEDS OWNERExtra design production capacity (Fiat noted for JP-social continuity)
Lukzo owns senior creative judgment but has no production-volume support that is actually free. BASE-5 flags Fiat as the production-volume resource, but Fiat is already committed to JP-social continuity — so the volume work (multiple Thai demo videos, per-sub-industry testimonial creatives, social content cadence across new FB/IG/TikTok) has no clean owner. Not a hard critical-path gate, but it is the difference between hero creative shipping on time and the full asset library / testimonial slots / organic social calendar slipping.
Blocks: Production-volume slices of BASE-5 (Thai demo videos, testimonial slot fills), BASE-6 (organic content calendar across 3 new social accounts), and GTM-8 (public-launch creative + 2-3 case studies). Overflows onto Lukzo and risks JP-social continuity if Fiat is pulled in.
Decisions pending 8 for management

The calls that unblock the critical path — top three all due Now–Aug.

DecisionOwnerNeeded by
PRD-0 product go/no-go gate — secure a WRITTEN Q3 build commit scheduling packages + Thai e-Tax invoice + loyalty for TH with dated milestones landing on/before ~Aug 29, plus a named build owner, that explicitly DISPLACES the JP needle-mover list (18-Jun roadmap schedules zero TH P0s). Pass = full launch build; fail/unconfirmed = Q3 foundation-only, launch slips to Q4.Jia (secures it) → product/eng leadership (grants it)Drop-dead decision date 1 Aug 2026 (proposed). Gates the entire critical path.
Ratify final pricing tier + geo scope: sign off Structure-C two-tier (฿12K starter / ฿18K std, ~฿15K ARPU) over single-12K/18K, and decide BKK-only vs BKK+Tier-1 (T1 adds ~+30% SAM / ~+31 SOM). Model is built and in_progress; needs the management go decision published to the SF pipeline + sales deck.Krit (owns) → management (signs)Now–Aug (PRT-1 / GTM-1) — before campaign structure and pilot offer can be finalized.
Assign the 3 unblocking roles in writing with start dates: dedicated SalonX TH sales owner (explicitly separate from the StoreHub TH team), CS/onboarding owner, and native Thai copy reviewer (or an explicit decision that Krit + the naturalness-reviewer agent covers review).Krit (proposes) → management (approves headcount/assignment)Now–Aug (PRT-3) — each unfilled role blocks a downstream lane and currently defaults onto Krit.
Lock the launch scorecard: paid budget by channel (Meta Message-first ฿650 CPL plan, band ฿450-950), the monthly lead/SQL/Won target that grades the launch (conservative Phase-1 bar ~25 Won Y1), CAC guardrails vs LTV ฿33-38K / ARPU ฿14.1K (zero-CAC-first, since media-only CAC ~฿18.6K exceeds ceiling), and Day-90 kill criteria (lead→SQL <15% @ ฿1K CPL). Define the SalonX-TH OKR line.Krit (owns) → management (agrees the OKR + budget)Now–Aug (PRT-2 / GTM-1 / GTM-9) — before any spend commits.
e-Tax invoice scope: confirm PRD-3 target = paper ใบกำกับภาษีเต็มรูปแบบ vs full ETDA e-Tax electronic submission. Determines PRD-3 build size and must be documented before Aug-29 code-complete.Jia (scopes) with MY Eng, support native Thai reviewerNow–Aug (PRD-3) — inside the P0 build window; blocks final code-complete sizing.
TH-context flag build/defer calls: (a) ค่ามือ commission depth — min-wage guarantee / seniority tiers / split model, extend the JP payroll base or defer; (b) dynamic per-bill PromptPay QR (amount-embedded) in or out for launch, with static-QR workaround as documented fallback if out; (c) the confirm-first set — walk-in queue/คิว, deposit/มัดจำ, package expiry auto-reminder + cross-branch redemption, tips/ทิป — each build-or-defer.Jia (decides) with MY Eng, support CXNow–Aug (PRD-5 / PRD-6) — anything marked 'build' must make the Aug-29 code-complete list.
Domain + hosting: salonx.co.th vs a subpath, and provision Cloudflare Pages (reuse the salonx-th-analysis.pages.dev CF pattern + noindex-until-launch headers; remember deploy ≠ git push).Krit (with Lukzo)Now–Aug (BASE-3) — gates the Framer site build (BASE-4).
Soft-launch → public graduation go/no-go: formal review against the TEST-1 pilot scorecard (N pilots live + stable, retention signal, zero P0 blockers, case studies in hand). Pass = greenlight public GTM (~early-mid Oct, an assumption). Fail = hold at soft-launch / foundation-only and activate the Q4 fallback. Also logs the separate spa Phase-2 flip decision against its trigger checklist.Krit (owns) with Jia, TH Sales, CXLate Sep (TEST-9 / GTM-7) — gates the public-launch push.
Risk register 6 live risks
Aug-29 code-complete scope silently balloons post-lock: the red-team gaps above (WHT/withholding docs, package refund/OCPB logic, Thai thermal-printer rendering, mall GP export, dynamic PromptPay rails) are all things pilot salons hit in production but that are NOT on the current P0 list (PRD-2/3/4). Each is a plausible late add that either slips the Aug-29 gate or ships broken into TEST-6.
high
Mitigate: Before the 1-Aug drop-dead gate (PRD-0), run one explicit TH-compliance-edge scoping pass with a Thai accountant/salon-operator to classify each item as launch-blocking / pilot-tolerable / Phase-2, and freeze that list INTO the Aug-29 exit_criteria. Anything not classified by 1 Aug defaults to Phase-2, not a silent scope add. · Owner: Jia
The primary TH acquisition channel has an unowned lead-time dependency: GTM-5 (Meta Message-first, the whole paid model) routes into the new SalonX TH LINE OA (BASE-7), whose business verification + Messaging API plan has a real approval queue nobody has dated. If verification slips past late-Sep, the Message campaign has nowhere to route and the launch is ungradeable on its main channel — repeating the exact 'ran blind' failure BASE-9/GTM-2 exist to prevent.
high
Mitigate: Start LINE OA business verification NOW (Now-Aug), decoupled from creative, and treat 'OA verified + Messaging API plan live + respond.io routing a test lead end-to-end' as a hard gate on GTM-5 spend. Add it to the tracking-verified checklist (BASE-9) so no Message ad runs until the LINE leg is confirmed. · Owner: Krit
PDPA exposure is under-scoped as a consent banner: TH customer PII processed from and stored on MY/regional infra likely needs a lawful cross-border-transfer basis and possibly a TH-appointed representative/DPO — none of which the thai-pdpa consent task (PRD-9/BASE-11) covers. A gap here is a regulator/enforcement risk on a beauty product handling name/phone/visit-history of Thai consumers at scale.
med
Mitigate: Get a Thai-qualified privacy review (not just the thai-pdpa skill) on controller status, DPO threshold, and the cross-border transfer clause before any customer data is captured at launch; document the lawful basis in the same doc as the consent notice so both layers ship together. Flag: needs the native Thai reviewer PLUS legal, a role beyond the current TBD copy reviewer. · Owner: Jia
Seasonal mis-grading of the launch: a late-Sep pilot → early-Oct public launch reads conversion during one seasonal slice, and the Day-90 kill window (lead→SQL <15% @ ฿1K CPL) lands across TH year-end high season, so the go/no-go (TEST-9) and spa-flip triggers can fire on seasonality rather than product-market fit.
med
Mitigate: Annotate the pilot scorecard (TEST-1) and Day-90 kill review with the TH salon seasonal baseline (year-end + Songkran peaks, low troughs) so a conversion read is graded against season, not in a vacuum; consider extending the read window past a single peak before an irreversible kill/scale decision. · Owner: Krit
Premium-tier adoption blocker for mall/franchise salons: the ฿18K-tier buyer PRT-1 is pricing toward disproportionately sits in Thai malls, which require a landlord GP sales-report export and mall-approved receipting that the current PRODUCT scope doesn't build and TEST recruiting doesn't tag. The launch could validate cheaply on standalone salons and then fail to convert its best-paying segment.
med
Mitigate: Tag mall-tenant vs standalone in the TEST-2 recruit list, put at least one mall-tenant salon in the 3-5 pilot cohort to surface the GP-report requirement early, and get a build/defer decision on the mall sales-report export before Aug-29 rather than discovering it in a lost premium deal. · Owner: Krit
Thai-language after-hours support is undefined while TH salons peak exactly when a MY back office is closed (evenings, Sat/Sun). A chair-side P1 outage with no Thai-language coverage window becomes immediate churn and a pilot-killing incident (TEST-7), and the cost of that coverage isn't in the launch budget (PRT-2).
med
Mitigate: Define the Thai support coverage window (hours + language + after-hours escalation) inside PRT-6 and put its headcount cost into PRT-2's budget before spend; validate the P1 path end-to-end against a pilot salon during TEST-6 onboarding, in a real Sat/evening slot. · Owner: CX (TBD)
🇹🇭 TH-context gaps the MY team would miss 10 additions

The highest-leverage part of the board — Thailand obligations that look done on a MY checklist but break at a real salon counter (withholding tax, OCPB package-refund law, Thai thermal-printer rendering, parallel-run migration, Songkran seasonality, PromptPay settlement, after-hours support, LINE verification, PDPA cross-border, mall GP reporting). Each needs a build/defer call before the 29 Aug scope lock.

PRODUCTWHT (ภาษีหัก ณ ที่จ่าย) + freelance/rental-chair stylist tax handling — the receipt/e-Tax build (PRD-3) only covers the merchant-issued sales invoice, not the withholding-tax side that hits salons whose stylists are contractors or rent chairs. TH salons commonly run ค่าเช่าเก้าอี้ (chair-rental) and freelance stylists (จ่ายค่ามือ to non-employees), which triggers 3% WHT and a หนังสือรับรองการหักภาษี ณ ที่จ่าย. ค่ามือ commission (PRD-5) is scoped as payroll depth but not as a tax-document generator.
Why a MY team misses it: A MY team frames tax as VAT-on-sale only. In TH, the commission/rental model many salons use creates a withholding-tax obligation the POS is expected to help document. If SalonX can't produce or track WHT alongside commission, it looks half-localized to exactly the commission-sensitive buyer it is positioning to (staff/anti-fraud/ค่ามือ entry). It also silently expands PRD-3 and PRD-5 scope after Aug-29 lock.
Owner: JiaWindow: Now–Aug
PRODUCTPackage/deposit refund + OCPB prepaid-consumer-protection rules baked into the packages ledger (PRD-2) and deposit flag (PRD-6). TH OCPB (สคบ.) governs prepaid-course refunds and มัดจำ forfeiture; the positioning explicitly sells 'packages-as-OCPB-trust'. The ledger must support partial refund of unused sessions, expiry-vs-refund logic, and a มัดจำ that is legally a deposit (returnable) vs a booking fee (forfeitable) — these are different under TH consumer law.
Why a MY team misses it: The whole package narrative is 'OCPB trust', yet the exit_criteria for PRD-2 only test sell/decrement/expiry — never refund of an unused balance, which is the exact consumer-protection surface OCPB cares about and the #1 reason TH consumers distrust package-selling salons (the 'close & run' story in the analysis). Shipping a ledger that can't refund undercuts the launch's own trust positioning and creates a compliance edge a MY team wouldn't flag.
Owner: JiaWindow: Now–Aug
PRODUCTThai receipt PRINTER + hardware localization: 58mm/80mm thermal printer support with Thai font rendering, cash-drawer kick, and the specific EDC/receipt hardware TH salons already own. PRD covers the invoice TEMPLATE (data + fields) but not that it renders correctly on the physical Thai thermal printers and that Thai glyphs don't truncate/box on-device (BASE-1 QA covers screens, not printed output).
Why a MY team misses it: A MY-based product/eng team validates the tax invoice as a screen/PDF and assumes the JP/MY printer stack carries over. TH thermal printers, Thai character sets on ESC/POS, and the branch-number/13-digit-ID layout on a narrow 58mm roll are a distinct QA surface. A tax invoice that is legally correct in the database but prints garbled Thai or overflows the roll fails the mall/compliance check at the counter — and pilot salons will hit it on day one of TEST-6.
Owner: MY EngWindow: Early Sep
TESTINGParallel-run / dual-running period against the incumbent POS during pilot onboarding (TEST-6). The migration import (PRD-7) is treated as a one-shot cutover, but TH salons on Sherwe/Ease with live prepaid package balances cannot risk a hard switch mid-month — they need to run SalonX alongside the old system for 2-4 weeks to reconcile package balances and daily cash before trusting it.
Why a MY team misses it: A one-shot migration assumption is a classic MY/greenfield frame. For a package-heavy TH salon, a bad balance import means a customer shows up with paid-for sessions the new system doesn't know about — an immediate trust and refund incident. Without a defined parallel-run protocol, TEST-6 onboarding either stalls (merchant won't cut over) or produces exactly the P0-severity data incidents TEST-7 is supposed to prevent. This is a cross-dependency: it gates whether PRD-7's import is actually trusted in production.
Owner: CX (TBD)Window: Mid Sep
TESTINGSongkran / seasonal-timing stress and the Q4 salon calendar in the pilot success framework (TEST-1) and go/no-go (TEST-9). A late-Sep pilot into an early-Oct launch reads conversion during a specific slice of the TH calendar; salon demand and package-buying spike around year-end/New Year and Songkran (April), so a soft-launch conversion signal captured in Oct is seasonally unrepresentative and the Day-90 kill window lands mid-high-season.
Why a MY team misses it: A MY team grading a launch on a rolling 90-day CPL/conversion read won't weight the Thai seasonal calendar. The kill-criteria (lead→SQL <15% @ ฿1K CPL by Day-90) could false-positive or false-negative purely on where Oct-Jan sits in salon seasonality. The go/no-go and spa-flip triggers should annotate the seasonal baseline or the conservative Y1 bar risks being mis-graded.
Owner: KritWindow: Now–Aug
PRICING_TEAMPayment-rails / PromptPay merchant onboarding economics and the settlement + MDR question — who provisions the merchant's PromptPay QR, whether it's the merchant's own bank QR (static, PRD-5 fallback) or an acquired dynamic QR, and what MDR/settlement terms apply. PRT pricing (PRT-1) ratifies the SaaS tier but is silent on payment monetization/attach, while the analysis flags Opn/Xendit rev-share as an open BD item. There's no owner for the merchant PromptPay/EDC onboarding step in the onboarding kit (PRT-7 lists 'PromptPay QR' as a setup line with no rails decision behind it).
Why a MY team misses it: A MY team treats payments as owned by a separate PayHub org and out of marketing scope, so it drops off the TH launch entirely. But in TH, PromptPay/QR is 40%+ of salon payment and the onboarding kit assumes a QR exists to configure. If it's merchant-own static QR, reconciliation error is the norm (why PRD-5 wants dynamic per-bill QR); if it's acquired, someone must own KYC/settlement and a rev-share decision that touches CAC economics (PRT-2). Leaving it undecided means CX onboarding (PRT-7) has no runbook for the single most-used payment method.
Owner: KritWindow: Now–Aug
PRICING_TEAMThai-language phone/LINE support staffing hours + coverage model, distinct from the CS FLOW doc (PRT-6). PRT-6 defines ticket priority and respond.io routing but not staffing: who answers a P1 'POS down at the chair mid-service' call in Thai, during Thai salon operating hours (salons run evenings + weekends, peak Sat/Sun), and whether the single CX (TBD) owner covers that window or it falls back to MY eng in English.
Why a MY team misses it: A MY team designs support around MY business hours and an English/BM escalation path. TH salons operate exactly when a MY back office is closed (evenings, Sat/Sun), and a chair-side outage is revenue-critical in the moment. Without a named Thai-language coverage window and after-hours path, the SLA table in PRT-6 is aspirational — and P1 outages during the pilot (TEST-7) will surface as churn-risk, not tickets. This is also a headcount/cost line that belongs in PRT-2's budget, not just PRT-6's process.
Owner: CX (TBD)Window: Late Sep
BASELINE OA verified-account (green badge) + Messaging API plan cost/quota and business-verification lead time for the new SalonX TH sales OA (BASE-7). Verifying a LINE OA and getting the premium/verified badge requires document submission and a review period, and the Messaging API push volume sits on a paid LINE plan — the analysis already found LINE reminder economics (Basic ฿15,360/yr) can exceed ARR. BASE-7's exit_criteria assume the OA is simply 'verified' with no lead-time or plan-cost line.
Why a MY team misses it: A MY team reuses the JP LINE OA blueprint and assumes verification is instant. TH LINE OA business verification has a real approval queue and document requirement, and if it slips, the primary TH entry channel (respond.io routing, Meta Message → LINE) isn't live for GTM-5's Message-first campaign. It's a hidden critical-path dependency: GTM-5 (primary channel) silently depends on a LINE verification SLA nobody owns a date for. The plan cost also feeds PRT-2/GTM-1 budget.
Owner: KritWindow: Mid Sep
BASEPDPA data-controller registration + cross-border transfer basis for storing TH customer data on infrastructure operated from MY, plus a DPO/appointed-contact decision. BASE-11 and PRD-9 cover the consent NOTICE and banner (thai-pdpa), but not (a) whether SalonX/StoreHub as data controller needs a TH-appointed representative/DPO, and (b) the lawful cross-border-transfer basis when TH salon-customer PII lives on a MY/regional stack.
Why a MY team misses it: thai-pdpa consent language is the visible layer a MY team will complete; the invisible layer — controller registration, DPO appointment thresholds, and the cross-border transfer clause when the data physically leaves TH — is exactly what a MY-hosted product overlooks. Under PDPA, processing TH personal data from outside TH and transferring it abroad needs a stated legal basis; a consent banner alone doesn't cover controller obligations. This is a launch-blocking compliance gap dressed up as 'done' by the consent-notice task.
Owner: JiaWindow: Early Sep
Go to MarketMall / franchise / landlord GP (gross-profit sales reporting) + POS-integration requirements for salons inside Thai shopping malls (Central, The Mall, community malls). Mall-tenant salons must report daily sales to the landlord in a prescribed format and often need a mall-approved e-Tax/receipt setup; the tax-invoice build (PRD-3) covers the legal receipt but not the mall GP-report export, and GTM/TEST recruit lists don't distinguish mall-tenant vs standalone salons.
Why a MY team misses it: A MY team knows mall-GP reporting from retail but won't map it onto a TH salon POS launch. A meaningful share of the higher-ARPU salon ICP (exactly the ฿18K-tier buyer PRT-1 wants) sits in malls, and those merchants can't adopt a POS that doesn't produce the landlord sales report — it's a hard adoption blocker for the premium segment and a differentiator vs cheaper standalone-only incumbents. It should be a qualification tag in TEST-2 and a scoped export decision in PRODUCT, or the launch quietly excludes its best-paying tier.
Owner: KritWindow: Now–Aug
All milestones — table view 54 tasks
Product
IDTaskOwnerStatusWindowExit criteria
PRD-0 Product-readiness go/no-go gate — dated Q3 build commit + named owner
18-Jun roadmap schedules ZERO TH P0s (all JP needle-movers, 'reduced-capacity reality'). Jia must get packages+e-Tax+loyalty committed with dated Q3 milestones + a build owner that explicitly displaces the JP list, in writing. Pass = full launch build; fail/unconfirmed = Q3 foundation-only, launch slips to Q4.
JiaBlockedNow–AugDone = Written commit from product/eng leadership scheduling packages + Thai e-Tax invoice + loyalty for TH with dated milestones landing on/before ~Aug 29, and a named build owner; drop-dead decision date 1 Aug.
PRD-1 Ratify salon-first MVP scope + formally DROP spa-only builds
Lock the salon P0 set = packages + Thai tax + loyalty (3 builds). Explicitly cut the spa-only builds: treatment-room/bed scheduling, body-chart karte, nomination-off mode. Keep nominated stylist/ช่างประจำ (a TH salon fit). Spa = Phase-2 pilot gated on a live conversion read.
JiaIn progressNow–AugDone = Signed-off TH MVP spec listing the 3 salon P0s as in-scope and rooms/body-chart/nomination-off as explicitly out-of-scope for launch; matches §9 reconciliation.
PRD-2 Build P0: Packages / courses prepaid-balance ledger (คอร์ส/แพ็กเกจ)
#1 TH gap and highest-value ICP behavior (35-50% of buyers). Bundle/set menus today are NOT a prepaid session ledger. Must track prepaid balance, redemption per visit, and expiry. Ease/Sherwe/Qashier/GoWabi all ship this; coupon engine (Aug) does not cover it.
MY EngPlannedNow–AugDone = Merchant can sell a multi-session package, the balance decrements on redemption, and remaining sessions + expiry are visible at checkout in a test salon account.
PRD-3 Build P0: Thai tax invoice (ETDA e-Tax scope) + branch number + 13-digit tax ID
Legal/mall-compliance blocker; even ฿490/mo players (POSPOS, SilomPOS, Ease, Real4POS, GoWabi) ship e-Tax. Confirm scope = paper ใบกำกับภาษีเต็มรูปแบบ vs full ETDA e-Tax submission. Receipt module is already strong (recipient + free-text fields shipped for JP) so TH template is a bounded add; reuse thai-invoice skill.
MY EngPlannedNow–AugDone = Test sale produces a full-format Thai tax invoice showing seller 13-digit tax ID, branch number, 7% VAT line, and recipient fields; e-Tax paper-vs-ETDA scope decision documented.
PRD-4 Build P0: Loyalty / points stamp-card (สะสมแต้ม)
TH table-stake (Ease/Sherwe/POSPOS/SilomPOS all ship it); currently KIV in Milestone-4 backlog. Jia En's readiness doc OMITS this — discounts + marketing automation do NOT cover a points/stamp ledger. Must be a real earn/redeem ledger, not a promo.
MY EngPlannedNow–AugDone = Test customer earns points/stamps on a transaction and redeems them on a later visit in a salon account; balance persists across visits.
PRD-5 TH-context flags — confirm/scope the salon-critical set (ค่ามือ commission depth, dynamic PromptPay per-bill QR)
From SALONX_TH_PRODUCT_FEATURE_GAPS.html grounded-in-competitor-data flags. ค่ามือ commission needs depth: min-wage guarantee, seniority tiers, split. PromptPay today = merchant's own STATIC QR workaround; per-bill dynamic QR (amount-embedded) is the TH norm and reduces reconciliation error. Payroll base exists in JP — extend for TH commission norms.
JiaPlannedNow–AugDone = Written decision on each: ค่ามือ tier/guarantee/split model scoped and built or deferred; dynamic per-bill PromptPay QR scoped as in/out for launch (static-QR fallback confirmed acceptable if out).
PRD-6 TH-context flags — decide the 'confirm-first' salon set (walk-in queue/คิว, deposit/มัดจำ, package expiry+cross-branch, tips/ทิป)
Yellow-flag items to confirm against real salon workflow: walk-in queue/คิว (chair salons are walk-in heavy), deposit/มัดจำ on booking, package expiry auto-reminder + cross-branch redemption (ties to PRD-2), tips/ทิป line. Each is build-or-defer, not automatically P0.
JiaPlannedNow–AugDone = Each of the 4 flags has a documented build/defer decision with rationale tied to salon (not spa) workflow; anything marked build is on the Aug 29 code-complete list.
PRD-7 Package-balance + customer-master migration import (Thai incumbent formats)
No bulk import exists today (records one-at-a-time; a JP deal churned on manual-import promise). Customer-master import targets Jul with a multi-format mapping layer. For TH, request/support Sherwe + Ease export formats so pilot salons can migrate existing package balances and customer lists. Absent this, soft launch = white-glove manual entry at SOM scale.
MY EngPlannedNow–AugDone = A sample Sherwe/Ease export maps cleanly into SalonX customer + package-balance import in a test tenant; documented manual-entry fallback for formats not yet supported.
PRD-8 EN/JP → TH product-string localization + native Thai QA pass
'Prepare app translation tools': EN/JP → TH product-string workflow (owner = Product). Bounded work (currency-neutral money engine, 7% flat VAT already noted). Gates on-brand screenshots + the in-product experience for site/ads/onboarding. Needs a native Thai reviewer QA pass — flag: reviewer role is TBD.
JiaPlannedNow–AugDone = All TH-facing product strings translated and passed by a native Thai reviewer with zero blocking errors; salon-flow screenshots render correctly in Thai (fonts, truncation) for GTM asset capture.
PRD-9 In-product PDPA / consent (Thai privacy notice + LINE + web-form consent)
TH PDPA (พ.ร.บ. คุ้มครองข้อมูลส่วนบุคคล พ.ศ. 2562) consent surfaces inside the product for customer data capture via LINE and web booking form. Reuse the thai-pdpa skill for the notice + consent-banner language. Required before any lead/booking data collection at launch.
JiaPlannedEarly SepDone = PDPA-compliant Thai consent notice live at customer data-capture points (LINE + web form), lawful basis stated, reviewed by native Thai reviewer.
PRD-10 Product code-complete for TH salon MVP (hard launch dependency)
All salon P0s (PRD-2/3/4) + confirmed TH-context builds (PRD-5/6) + migration (PRD-7) merged and in a testable TH build. Fastest realistic code-complete = end of August 2026 (~Aug 29). This is the hard dependency gating the ~Oct 6 public GTM launch (launch date is an assumption).
MY EngPlannedNow–AugDone = Salon P0 feature set (packages ledger, Thai e-Tax invoice, loyalty) + committed TH-context builds pass internal QA in a TH tenant by ~Aug 29; spa-only builds confirmed excluded.
PRD-11 Pilot merchant testing on the TH build (3-5 salons, feedback loop)
Validate the code-complete build with 3-5 real salons before public launch: packages sold/redeemed, Thai tax invoice accepted, loyalty used, commission run, migration completed. Feeds soft-launch go/no-go. CX-owned onboarding, product fixes fed back to Eng. Feeds the launch conversion read that also gates the spa Phase-2 flip.
JiaPlannedMid SepDone = 3-5 pilot salons live on the TH build with all 3 P0s exercised in production and no P0-severity defects open; feedback log triaged into a fix list before public launch.
Testing · Pilot
IDTaskOwnerStatusWindowExit criteria
TEST-1 Define pilot success framework + exit criteria (soft→public gate)
Write the go/no-go metric set BEFORE recruiting: N pilots live on packages/prepaid ledger, retention signal, Day-90 kill triggers from onepager (lead→SQL <15% @ ฿1K CPL). Grades vs conservative Phase-1 bar (~25 Won Y1). Feeds LAUNCH_PLAN Phase 6 exit-criteria gap.
KritPlannedNow–AugDone = One-page pilot scorecard signed off: 3-5 named metrics, numeric thresholds for soft→public graduation, and the spa-flip trigger set (spa lead→won ≥4-5%) logged as separate Phase-2 gate.
TEST-2 Assemble pilot recruit list from StoreHub TH salon base + fresh inbound
Build the 3-5 design-partner target list: mine the 37 active salon-service accounts + 27 Starter-Yearly salon wins in BQ, plus LINE Inquiry leads (best converter, 4 won). Salon/beauty only — spa excluded per resolved segment. Prioritize package-selling salons + multi-branch (17% of base) to stress-test the P0 build.
KritPlannedNow–AugDone = Ranked list of ≥12 named salon merchants with contact + fit notes (package-seller / multi-branch / commission-heavy), enough to close 3-5 after outreach.
TEST-3 Internal dummy testing — team dry-run on the TH build
Team runs the code-complete build (~Aug 29) end-to-end on TH-specific flows BEFORE any merchant sees it: packages/prepaid ledger, ค่ามือ commission split, dynamic PromptPay per-bill QR, Thai tax receipt + branch number, loyalty/สะสมแต้ม, queue/คิว, deposit/มัดจำ. Logs P0/P1 defects back to product.
JiaPlannedEarly SepDone = Full TH-flow test pass completed with a triaged defect list; all 3 P0 gate items (packages ledger, Thai tax receipt, branch-number-on-receipt) verified working on a real dummy salon dataset.
TEST-4 Build demo script + objection-handling playbook (salon-specific)
TH demo script leading with staff/anti-fraud/ค่ามือ + packages-as-OCPB-trust positioning (NOT 'booking software'), yearly framing 'จ่ายปีละครั้ง'. Objection bank from JP POC ('retention, no NEW customers' 8/35, transferable vs GoWabi) + incumbent floor (POSPOS ~550, Ease ~1,690, Sherwe LITE). All copy gated by TH voice fingerprint / naturalness reviewer.
TH Sales · TBDPlannedEarly SepDone = Demo script + top-10 objection responses written in native Thai, reviewer-passed, dry-run once internally against the working build.
TEST-5 Construct pilot offer (design-partner pricing + testimonial trade)
Define the pilot deal: discounted/founder pricing off the ratified two-tier ~฿15K ARPU model in exchange for testimonial + case-study rights + feedback commitment. Must clear incumbent floor and not anchor public pricing low. Needs PRICING_TEAM sign-off on the pilot-vs-public spread.
KritPlannedEarly SepDone = Written pilot offer sheet (price, term, what merchant gives back, what they get) approved against the ratified pricing model; testimonial/case-study consent clause drafted (PDPA-aware).
TEST-6 Close 3-5 salon design partners + onboard onto pilot
Pitch the recruit list (TEST-2) with the demo (TEST-4) and offer (TEST-5); sign 3-5 salons. Onboard: data/package-balance migration import, staff training, LINE OA + respond.io routing wired. This is the real merchant beta on live TH data — the true product de-risk before spend.
TH Sales · TBDPlannedMid SepDone = ≥3 salon merchants signed to the pilot and live in production, each processing real transactions incl. at least one package sale and one commission-tracked checkout.
TEST-7 Run structured feedback loop → product (weekly triage)
Weekly pilot-merchant feedback captured and triaged to Jia/MY Eng: TH-context gaps (package expiry auto-notify + cross-branch, e-Tax ETDA vs paper scope, tips/ทิป, deposit/มัดจำ). Separate launch-blocking defects from Phase-2 nice-to-haves so the build doesn't over-scope before Oct.
CX · TBDPlannedMid SepDone = Live feedback log with weekly cadence; each item tagged blocker vs post-launch; zero open P0 blockers from pilot merchants heading into the graduation review.
TEST-8 Capture testimonials + per-sub-industry case studies for GTM
Harvest quotes, before/after metrics (fraud reduction, package revenue, staff commission clarity), and 1-2 filmable case studies from pilot salons. Feeds GTM content (site testimonials, ad social-proof, blog) — the per-sub-industry testimonial asset the LAUNCH_PLAN 4.1.3 calls for. Use pSEO testimonial template.
KritPlannedLate SepDone = ≥2 signed-off salon testimonials with consent + ≥1 quantified case study delivered to GTM/Lukzo in usable form (quote + metric + optional footage) before public-launch content lock.
TEST-9 Soft-launch graduation review (go/no-go to public)
Formal review against TEST-1 exit criteria: are N pilots live + stable, retention signal present, zero P0 blockers, case studies in hand? Pass = greenlight public GTM (assumed ~early-mid Oct). Fail = hold at soft-launch / foundation-only, slip public to Q4 per plan's fallback.
KritPlannedLate SepDone = Documented go/no-go decision with each TEST-1 threshold marked pass/fail; if go, GTM/PRICING notified to trigger public-launch workstream; if no-go, Q4 fallback plan activated.
TEST-10 Post-launch pilot-to-reference conversion + spa Phase-2 read
Convert pilot salons to full-price references; monitor whether a spa design-partner pilot should open (only on the logged spa-flip triggers: package+rooms build, spa WTP > salon ฿14.1K, LMWN beauty-discovery going live on Sherwe). Salon skips rooms/beds; spa pilot requires that extra build.
KritPlannedPost-launchDone = Pilot salons moved to standard pricing or documented churn reasons; spa-pilot decision recorded (open vs hold) against the trigger checklist with data, not assumption.
Pricing & Team
IDTaskOwnerStatusWindowExit criteria
PRT-1 Ratify final pricing tier + geo scope with management
Sign off Structure-C two-tier (฿12K starter / ฿18K std, ~฿15K ARPU) over single-12K/18K; confirm clears incumbent floor (POSPOS ~550/mo, Ease ~1,690/mo) and lands ฿12K on Sherwe LITE / ฿18K on Sherwe STANDARD. Decide BKK-only vs BKK+Tier-1 (T1 adds ~+30% SAM/~+31 SOM per DBD kw_loc). Model built; needs the go decision.
KritIn progressNow–AugDone = Management-signed pricing sheet: tier prices, ARPU, package/prepaid add-on stance, and BKK-only-vs-Tier-1 all locked in writing; one price ladder published to the SF pipeline + sales deck.
PRT-2 Set the launch budget, SQL/Won target & CPL-CAC grading bar
Lock paid budget by channel (Meta Message-first ~฿650 CPL plan, band ฿450-950), the SQL/Won target that grades the launch (conservative Phase-1 bar ~25 Won Y1 / ~150 leads/mo @ 3.5% blended), and CAC guardrails vs LTV ฿33-38K / ARPU ฿14.1K (media-only CAC ~฿18.6K already exceeds ceiling → zero-CAC-first). Define the SalonX-TH OKR line with management.
KritPlannedNow–AugDone = Approved budget-by-channel + monthly lead/SQL/Won target + Day-90 kill criteria (lead→SQL <15% @ ฿1K CPL) documented and agreed as the launch scorecard.
PRT-3 Assign the 3 unblocking roles: SalonX TH sales owner, CX/onboarding owner, Thai reviewer
Name a DEDICATED SalonX TH sales owner (NOT the StoreHub TH sales team — brands/teams stay separate), a CX/onboarding owner, and a native Thai copy reviewer. Bangkok GTM team band ฿0.72-1.38M/yr verified. All three roles are TBD today and each blocks a downstream lane.
KritPlannedNow–AugDone = Three named owners confirmed in writing with start dates; RACI updated; sales owner explicitly separate from StoreHub TH team.
PRT-4 Stand up the separate SalonX TH Salesforce pipeline + lead-source
Create a dedicated SF pipeline + lead-source distinct from StoreHub TH inbound, so every lead (web form + new SalonX LINE OA + Meta/IG/TikTok + respond.io) routes to the SalonX TH owner, never the StoreHub TH team. Prevents brand/pipeline contamination and keeps the launch gradeable against its own target.
TH Sales · TBDPlannedMid SepDone = New SF pipeline + lead-source live; a test lead from each channel lands in the SalonX TH pipeline (not StoreHub TH) and is attributable in reporting.
PRT-5 Define the SalonX TH sales process, stages & objection handling
Build the stage map (Lead → Demo booked → Demo done → Proposal/pricing → Won) with SLA per stage, salon-led ICP qualification, and a TH objection sheet (positioning = staff/anti-fraud/ค่ามือ + packages-as-OCPB-trust + 'GoWabi gives no NEW customers' angle). Reuse JP pitch-deck/demo-script scaffold.
TH Sales · TBDPlannedMid SepDone = Documented stages + entry/exit criteria + SLAs configured in SF, plus a TH demo script and objection-handling doc the owner can run.
PRT-6 Build CS support flows + ticket prioritization
Define the support model for salon merchants: intake channels (LINE OA + respond.io routing), P1/P2/P3 ticket priority (P1 = POS/payment down at chair-side), escalation to MY eng for product bugs, and response SLAs. Reuse StoreHub TH respond.io economics.
CX · TBDPlannedLate SepDone = Support-flow doc + ticket priority matrix + SLA table live; respond.io routing tested end-to-end from a merchant message to a resolved ticket.
PRT-7 Build the merchant onboarding kit: setup checklist, data-migration guide, staff training
Salon-specific setup checklist (menu/services, ค่ามือ commission config, PromptPay QR, Thai tax-receipt + branch number, loyalty/สะสมแต้ม), a data-migration guide (customer-master + package-balance import — flag: no bulk import today, ~Jul customer-master import), and a staff-training playbook. Salon skips room/bed setup.
CX · TBDPlannedLate SepDone = Three artifacts complete (checklist + migration guide + training deck) in Thai, dry-run onboarding one pilot salon end-to-end with no product blocker.
PRT-8 Seed the Thai KB / help-center reusing pSEO/blog mechanics
Stand up a Thai help center + common-mistakes doc using the StoreHub blog/Framer push pipeline and Thai naturalness reviewer. Cover the TH-specific how-tos (packages/prepaid ledger, PromptPay QR, tax receipt, ค่ามือ, loyalty, PDPA consent via thai-pdpa). Gated on the Thai reviewer and voice fingerprint.
Thai reviewer · TBDPlannedLate SepDone = Help-center live with the top ~15-20 salon setup/how-to articles published in native Thai, each reviewer-approved, linked from onboarding + LINE OA.
PRT-9 RACI sign-off across the pricing + team workflow
Lock the RACI for pricing, SF pipeline, sales process, CS, onboarding and KB (owners from PRT-3), with the StoreHub-TH-vs-SalonX-TH separation made explicit so no lead or ticket crosses teams. Management approves before spend/launch.
KritPlannedMid SepDone = Signed RACI table covering every task in this workstream with a single accountable owner each; brand/team-separation rule stated and acknowledged.
PRT-10 Dry-run pricing + full workflow on 3-5 soft-launch pilots
Run the ratified pricing, SF pipeline, sales stages, CS flow, onboarding kit and KB against the first 3-5 salon pilots; capture where a stage, ticket path, migration step or price objection breaks before public GTM (~early-mid Oct, assumption).
TH Sales · TBDPlannedLaunch wk (Oct)Done = 3-5 pilot merchants closed at ratified pricing and onboarded through the full flow; issues logged and workflow patched; go/no-go read for public launch documented.
Base
IDTaskOwnerStatusWindowExit criteria
BASE-1 SalonX TH Thai voice fingerprint + naturalness reviewer agent (gates ALL copy)
Net-new fingerprint seeded from JP voice-system scaffold + StoreHub TH thai naturalness reviewer, kept strictly separate from StoreHub TH retail voice. Positioning entry = staff/anti-fraud/ค่ามือ + packages-as-OCPB-trust, not 'booking software'. Salon/beauty ICP, TH premium buyer psych.
KritPlannedNow–AugDone = SALONX_TH voice fingerprint MD committed + naturalness-reviewer agent runs and gates a test copy sample; both wired so no site/social/ad/blog copy ships un-reviewed
BASE-2 Assign native Thai copy reviewer (flag TBD role)
If review defaults to Krit it eats build capacity and PDPA/tax-invoice copy risks slipping. This is a cross-cutting RACI gap flagged in the plan; blocks BASE-1 quality + KB/blog + PDPA notice.
Thai reviewer · TBDPlannedNow–AugDone = Named Thai reviewer confirmed in writing with review SLA; or explicit decision that Krit + naturalness-reviewer agent covers it
BASE-3 Domain + Cloudflare hosting decision and setup (salonx.co.th? vs subpath)
Decide salonx.co.th vs subpath; provision Cloudflare Pages hosting/deploy (reuse the salonx-th-analysis.pages.dev CF pattern + noindex-until-launch headers). Deploy != git push (War Room lesson).
KritPlannedNow–AugDone = Domain registered/decided, DNS on Cloudflare, staging deploy live behind noindex, deploy command documented
BASE-4 SalonX TH Framer website build (salon/beauty-led, Thai)
Reuse SalonX JP Framer specs + /page-spec + SalonX brand + Framer MCP/JSON-LD. Salon-first messaging (skip spa room/bed framing); surface packages/prepaid, ค่ามือ commission, loyalty/สะสมแต้ม, PromptPay. Copy gated by BASE-1.
LukzoPlannedEarly SepDone = Core pages (home, pricing, features, demo/lead form) live on domain, all copy passed naturalness reviewer, lead form + LINE CTA wired, JSON-LD present
BASE-5 Brand assets + hero creative + Thai demo videos + per-sub-industry testimonial slots
SalonX brand adapted TH; Lukzo owns hero creative (senior judgment), Fiat = production volume (flag capacity risk vs JP social continuity). Thai demo videos per salon workflow; reserved testimonial slots per sub-industry filled from pilot merchants (CX-sourced).
LukzoPlannedEarly SepDone = Hero creative + 1+ Thai demo video published, brand token set finalized, testimonial slot template live with ≥1 real pilot testimonial (or placeholder flagged)
BASE-6 Social accounts (FB / IG / TikTok) created + organic content plan
New SalonX TH FB/IG/TikTok accounts (separate from StoreHub TH and JP). Organic content plan owned by Lukzo; reuse jp-social / th-social pipeline mechanics. TikTok scope confirmed (test).
LukzoPlannedMid SepDone = FB Page + IG business + TikTok accounts live and branded; 4-week organic calendar drafted and voice-reviewed; accounts linked to Meta Business
BASE-7 New SalonX TH LINE OA for SALES/lead-gen + respond.io routing
NEW OA wired as lead + book-a-demo channel (different from JP support-only OA). Reuse JP LINE OA blueprint + rich-menu template + StoreHub TH respond.io Message economics (~RM50-70 CPL model). LINE = primary TH entry channel.
KritPlannedMid SepDone = SalonX TH LINE OA verified, rich menu published, respond.io routes inbound to the SalonX TH pipeline, test lead completes end-to-end
BASE-8 Google Ads + Meta Business + TikTok Ads accounts provisioned
Stand up ad accounts under a clean SalonX TH structure (personal-email/business-manager per account policy). Prereq for any spend; kept separate from StoreHub TH ad accounts.
KritPlannedMid SepDone = Google Ads, Meta Business Manager, TikTok Ads Manager accounts created, billing attached, page/pixel assets assigned
BASE-9 Full tracking stack set up and VERIFIED before any spend
GA4 + GSC + Microsoft Clarity + Meta Pixel/CAPI + TikTok pixel + LINE click tracking + CRM routing. Fixes the exact mistake that made StoreHub TH + JP ungradeable. No ad runs blind.
KritPlannedLate SepDone = Every source firing verified in its native debugger (GA4 realtime, Pixel/CAPI Test Events, TikTok pixel, Clarity session, GSC verified, LINE click param, lead lands in CRM) on a real test session
BASE-10 Dedicated SalonX TH Salesforce pipeline + lead-source + CRM routing
Separate SF pipeline routing every lead (web form + LINE + ads) to a dedicated SalonX TH owner, NOT the StoreHub TH team — brands/teams stay separate. Feeds BASE-9 verification and cohort funnel reporting.
KritPlannedLate SepDone = SalonX TH pipeline + lead_source values live in SF, routing rules assign to SalonX TH owner, a test lead from each channel lands correctly attributed
BASE-11 Seed blog / KB + SEO/AEO layer + in-product PDPA/consent
Thai help center + common-mistakes KB via pSEO/blog pipeline mechanics; thin comparison/LLM-answer SEO/AEO layer (reuse JP AEO 84% AIO fire-rate; B2B demand is ad-created not searched, so problem-language not volume). Thai PDPA privacy notice + LINE/web consent via thai-pdpa skill.
KritPlannedLate SepDone = 5+ seed KB/blog pages live + indexed, PDPA notice + consent on web form and LINE OA, JSON-LD/AEO markup present, 'salonx' brand-search tracking baselined
BASE-12 Media / resource library set up
Central asset home for brand, hero creative, demo videos, testimonials, pixel/tracking IDs and account credentials so the launch team works from one source (reuse consolidated image-store / Drive asset-home pattern).
LukzoPlannedMid SepDone = Shared library folder live with brand assets, creative, videos, and a tracking-ID/account index; access granted to launch team
Go-to-Market
IDTaskOwnerStatusWindowExit criteria
GTM-1 Ratify GTM budget, per-channel split, CPL/CAC target and SQL/Won grading line with management
Lock the ฿650 CPL plan (band ฿450-950), ฿150K tranche ≈ 230 leads, zero-CAC-first sequencing, and the LTV-bound rule (paid-alone fails 3:1 at any salon CPL) into a signed budget + target. Sets what grades the launch.
KritIn progressNow–AugDone = Management-signed one-pager: channel budget split, CPL target ฿650, monthly lead/SQL/Won target into the dedicated pipeline, and written kill criteria (Day-90).
GTM-2 Full tracking stack live and verified BEFORE any spend
GA4 + GSC + Microsoft Clarity + Meta Pixel/CAPI + TikTok pixel + LINE click tracking + CRM lead-source, all firing. This is the exact gap that made StoreHub TH + JP ungradeable, do not launch blind.
KritPlannedMid SepDone = Test conversion fires end-to-end on every channel (Pixel/CAPI event received, GA4 event, LINE click logged, lands in SF with correct lead_source); verified in each platform's test tool.
GTM-3 Dedicated SalonX TH Salesforce pipeline + lead routing (separate from StoreHub TH)
New SF pipeline + lead_source taxonomy routing every lead (site form + new LINE OA + Meta/Google/TikTok) to a dedicated SalonX TH owner via respond.io. Brands/teams stay separate, never the StoreHub TH team.
TH Sales · TBDPlannedMid SepDone = Every channel's test lead arrives in the SalonX TH pipeline with correct source, routed to the dedicated owner; StoreHub TH pipeline receives zero SalonX leads.
GTM-4 Campaign account + structure + naming/audience/budget conventions built (unpublished)
New Meta/IG business + ad account, Google Ads, LINE ads, TikTok accounts on personal-email signups; account/campaign/adset naming, saved audiences, budget schedule, and welcome-token/ref UTM conventions defined. Interest targeting can't isolate ~40K salon operators (49.3M broad → 14.2M even tight) → build broad, let creative self-select.
KritPlannedMid SepDone = All four ad accounts provisioned; naming/UTM/ref convention doc written; Meta Message campaign + adsets built in draft (paused), pending creative and product go-live.
GTM-5 Meta Message-first campaign live (primary channel)
Reuse StoreHub TH proven respond.io Message model (measured ฿253/conversation broad; salon niche multiplier 1.3-2.5 ÷ 55-65% conv→lead = ฿450-950 band). Message ad → respond.io → new LINE OA → free demo. Google Search + LINE ads = phase 2, TikTok = a small test cell only.
KritPlannedLate SepDone = Campaign spending against real creative, conversations routing into respond.io + the dedicated pipeline, first leads attributed; CPL reading against the ฿650 plan within first 2 weeks.
GTM-6 Cohort funnel model + weekly funnel read
Stand up the cohort funnel (impression → conversation → lead → SQL → Won) modeled ~3.5% all-in service conversion, ~150-230 leads/mo. Weekly read once tracking is live, right-censoring the last 2-3 weeks as immature.
KritPlannedLate SepDone = Live funnel dashboard reading real cohort data weekly; each stage's conversion vs the model visible; CPL, CAC vs LTV ceiling, and lead→SQL rate tracked against kill thresholds.
GTM-7 Soft launch to limited pilot merchants with close feedback loop
Coordinated soft launch to a limited salon cohort, measured against the conservative Phase-1 bar (~25 Won Y1). Gate to public: N pilots live + a real retention/conversion signal, not a date.
KritPlannedLate SepDone = Defined N pilot salons live on SalonX TH with tracked funnel; soft→public go/no-go decision made against the N-pilots + retention-signal rule.
GTM-8 Public launch push — PR / community / partner + pilot case studies
Public marketing push assuming early-to-mid Oct 2026 (ASSUMPTION, gated on Aug-29 product code-complete + a passed soft-launch gate). Positioning = staff/anti-fraud/ค่ามือ + packages-as-OCPB-trust + จ่ายปีละครั้ง, NOT 'booking software'. Ship 2-3 salon pilot case studies as proof.
KritPlannedLaunch wk (Oct)Done = Public launch executed: PR/community/partner outreach sent, all paid channels scaled from the validated Message cell, ≥2 pilot case studies published, salonx brand-search KPI tracked.
GTM-9 Success / exit / kill-criteria scorecard wired to the funnel
From the analysis one-pager: CPL ฿650 plan, LTV-bound economics (E[life] ~2.6yr, LTV ฿33-38K, ARPU ฿14.1K), zero-CAC-first, Day-90 kill (lead→SQL <15% @ ฿1K CPL). Also the spa-flip triggers. Grades the launch and forces a decision.
KritPlannedLate SepDone = Live scorecard shows CPL, CAC-vs-LTV-ceiling, lead→SQL, cohort Won vs the ~25 Y1 bar, with red/green kill and spa-flip thresholds; a Day-90 go/no-go review is scheduled.
GTM-10 Ongoing competitor monitor — LMWN/Sherwe beauty-discovery signal
Reuse StoreHub TH competitor infra + Apify for a SalonX-TH-scoped monitor on the LMWN / LINE MAN Wongnai beauty-discovery moat (Sherwe 'LMWN' page staged but not live = tripwire; sherwe brand search +175-200% YoY = clock proxy). #1 moat-hardening risk; also watch GoWabi, ThaiHand, Fresha TH price cuts.
KritPlannedNow–AugDone = Recurring monitor running (Sherwe LMWN-page live-check, sherwe/gowabi brand-search delta, competitor ad + price sweeps); alerts on the Sherwe LMWN go-live and any incumbent price/bundle cut.