Bespoke Playbook

One spine through the whole bespoke flow: understand each stage in a line, see it in real emails & documents, then the workflow spec and test matrix. Every claim cites a real case.

View

① Engage

Approval

Catch the enquiry → AI classifies & opens the case → draft an info-request to complete the brief → client replies → AI extracts the Trip Brief (loops if gaps). Settle flights: self-book vs arrange.

📖 Melody wants Korea on last year's voucher; her email only says 'Seoul, maybe Jeju'. AI classifies & opens the case; John's one info-request asks everything missing (pax / dates / Jeju? / a Bukchon hanok?) and Melody answers it all in one reply.
Inbound · EmailDay 0 · enquiry
melodypky@gmail.comenquiries@dynastytravel.com.sg
Korea travel — voucher redemption
Hi Dynasty Travel,

I received a travel voucher from your team last year and would like to use it for a trip to Korea. We are thinking of Seoul, and possibly adding Jeju if it works out.

Could you let me know what the voucher covers and what a suitable package would look like? Happy to share more details on dates and group size once I hear back.

Thank you,
Melody
Outbound · EmailDay 1 · info-request
john@dynastytravel.com.sgmelodypky@gmail.com
RE: Korea travel — voucher redemption
Dear Melody,

Thank you for getting in touch, and lovely to be planning your Korea trip!

Your voucher can be applied in full against a tailored itinerary. To shape something suitable, may I confirm a few details:

• How many travelling, and your preferred dates?
• Seoul only, or Seoul + Jeju?
• Any hotel preference — for example, a night in a traditional hanok in Bukchon, which many of our guests love?

Once I have these I'll put together a day-by-day plan with costs.

Warm regards,
John
Dynasty Travel
Inbound · EmailDay 3 · client reply
melodypky@gmail.comjohn@dynastytravel.com.sg
RE: Korea travel — voucher redemption
Hi John,

Thanks for the quick reply! Details below:

• 3 adults
• 17–21 October
• Seoul + Jeju please
• Yes, we'd love one night in a hanok in Bukchon

Looking forward to your suggestions.
Melody
What we watch
  • Travel signal + source/identity (voucher / referral / VIP)
  • Is W.H.A.T. complete: destination / dates / duration / pax / rooms
  • Flights must resolve to: self-book / arrange / TBD
  • Align budget via the PPPD band (don't force a number)
Workflow automation hook
  • Classify line + confidence (low → human triage)
  • De-dupe contact, detect repeat & voucher; score, open case, route
  • Compute gap → draft info-request (pending approval) → extract brief → re-ask if gaps
TriggerA new enquiry hits the intake queue.
AI / system actions
  1. Classify line + confidence (low → triage)
  2. De-dupe / create contact (detect repeat & voucher)
  3. Feasibility (budget vs PPPD, pax ≤15, dest not high-risk)
  4. Score, open case, route → compute gap → draft info-request (pending approval)
  5. Extract reply → TripBrief; settle flights; align budget
GateBESPOKE with W.H.A.T. complete + flight model set → advance to Source; else loop / triage.
Output / nextLead with a complete TripBrief, ready to generate the sourcing brief.
#ScenarioInput (real case)Expected actionExpected gateExpected outputScenario key
E1
Happy: enquiry → brief complete
happy
'voucher to Korea' → '3 adults / 17–21 Oct / +Jeju / hanok'
Melody · DT-2026-0011
Classify BESPOKE, open case, full brief, flights self-bookPass → SourceTripBrief completeTC-B01
E2
Edge: unclear intent
edge
'what do you offer?' — no dest/date
归档杂项来信
Low confidence → no auto BESPOKEFail → triageLands in /intake
E3
Edge: budget below floor
edge
'2 pax 10d S$4,000' ≈ S$200 pppd
Vimala Nair 预算不匹配
No hard reject; PPPD band, suggest scale-backLow feasibility → flagLow-priority case + budget task
E4
Edge: pax > 15
edge
'35-pax corporate, Chengdu'
China MICE · DT-2026-0027
Detect corporate → route MICENot BESPOKE → MICECase under MICE
E5
Edge: repeat VIP referral
edge
TC referral, prior Shikoku, repeat
David Sim · DT-2026-0014
Match Client, VIP priority, prefs pre-filledPass (high priority)Lead high-priority
E6
Edge: partial reply
edge
pax+dates, no rooms/flights
归档多轮 shaping
Update known, re-ask remainderStill missing → loopSecond info-request (gaps only)TC-B05
E7
Edge: destination change
edge
mid-shape 'Seoul → Osaka'
扰动用例
Update dest, re-route whitelist, recompute gapsChange must not dead-lockBrief updated, same caseTC-B01-X
Application integration executes the scenarios; Playwright covers key human journeys and the read-only Inspector shows runtime state.

② Source (DMC sub-process · core)

Approval

ERP turns the brief into a sourcing brief → RFQ 2 DMCs in parallel → collect NET quotes → QC → negotiate → file evidence → [v1] first to qualify (QC + margin) wins, no comparison.

📖 Once the brief is shaped, the ERP generates the sourcing brief (no internal email). The heavy lifting is the RFQ + negotiation — in Yousif Japan: Ritz Kyoto needs an in-person GM meeting to free a 2-BR suite; the US$38,800 experiences must be pinned as NET, +12% or +27%.
Auto-generatedSourcing brief (ERP auto-generated · no internal email)
▸ 由接洽阶段的 TripBrief + DMC 白名单自动派生;负责人只在 ERP 内点『发起询价』。
▸ Auto-derived from the Engage TripBrief + DMC whitelist; the planner just clicks 'Start sourcing'.

Case        : DT-2026-0011 · Melody · BESPOKE
From brief  : Seoul 3N + 1N hanok (Bukchon) · 17–21 Oct · 3 adults · 2 rooms
Flight leg  : domestic Seoul→Jeju 21 Oct (3 pax) · intl self-book
Transfers   : Incheon arrival + hotel→airport
Commercial  : voucher SGD 2,400 to apply · target balance < SGD 1,000
Route to    : Korea DMC whitelist → [primary, backup]   (并行 2 家)
Becomes     : the RFQ payload (next card) + a 'Source case' task — no internal email
RFQRFQ to the DMC (the fields we send)
Pax            : 3 adults  (quote per-2/4/6-pax when group size is soft)
Dates / nights : 17–21 Oct 2026 · 4 nights
Rooming        : 2 rooms; 1 night hanok (Bukchon)  ·  connecting if family
Must-sees      : traditional hanok stay; Seoul + Jeju
Transport      : Incheon arrival transfer + hotel→airport; domestic Seoul→Jeju (3 pax)
Budget tier    : standard bespoke  ·  ask for NET rates
Asks           : day-by-day, hotels+price, guide/driver+price, vehicle, inclusions, validity, payment terms

NET = the DMC's cost price to us (no commission baked in). We layer OUR markup
on top to quote the client. If they quote GROSS, the margin math breaks → bounce.
Per-2/4/6-pax = when group size is soft, ask for the per-person NET at each size.
Private fixed costs (guide, car, driver) are shared, so per-pax drops as the group grows.
Outbound · EmailReal RFQ exchange (Tanzania ZAFS)
john@dynastytravel.com.sgburhanuddin@zafstours.com
Re: Tanzania safari (RFQ refinement)
Thank you, this looks promising. Could you add a couple of authentic Zanzibar experiences — a cultural visit and traditional fishing? Please also quote on a 2, 4 and 6 pax basis so we can advise the client. We'd also prefer an open-jaw routing — into Kilimanjaro (JRO) and out of Zanzibar (ZNZ). Please confirm baggage limits too.
Inbound · EmailDMC reply (revised quote + terms)
burhanuddin@zafstours.comjohn@dynastytravel.com.sg
Re: Tanzania safari
All noted on the revised 10-day plan. We're happy with 50/50 payment terms and will set up a WhatsApp operations group once you confirm the final pax.

- Serengeti: Elewana night + camps (USD 2,268/pax, double-share)
- Kilimanjaro: summit logistics + guides
- Zanzibar: dhow fishing, local market, Serval Wildlife photo session
- Open-jaw: JRO in → ZNZ out · baggage limits confirmed
- Payment: 50/50 (deposit on confirmation, balance pre-travel)
NoteReal negotiation & margin transparency (Yousif experiences)
Concierge → planner (WhatsApp, verbatim):
"For all these Tokyo experiences will be USD 38,800."
Planner: "Pricing includes commission?"
Concierge: "No, we always quote you our cost. You layer commission on top."
Concierge: "We're lowering our fee to 12% for this first collaboration → 12% on top. If you add yours too we put 27%, which works out to USD 49,276."

Risk flag: "Nothing is booked and proprietors are squeezing us in. If we book we can't cancel / postpone / be late (cultural). If unsure, better not to book."
What we watch
  • Reply complete: day-by-day · hotels+rooms+connecting+price · guide+price · vehicle · experiences(prepay/cancel) · inclusions · net/gross · validity · terms
  • Can price break to per-pax / tiers (2/4/6 pax)
  • Cost must be NET; markup layering pinned (12% vs 27%)
  • Flag non-cancellable items & cultural penalties up front
Workflow automation hook
  • Auto-generate the sourcing brief from the TripBrief (no internal email)
  • Draft RFQ; send 2 in parallel; create a 'chase DMC' task (3-day SLA)
  • Parse reply attachment → SupplierCost(hasSourceDoc) + Attachment
  • Branch gate (library match + consultant expertise) → Dynasty-designed / DMC-designed
  • Completeness QC: auto-bounce gaps. Dynasty-designed = first-to-qualify; DMC-designed = compare proposals & pick
TriggerTripBrief complete → ERP auto-generates the sourcing brief.
AI / system actions
  1. Generate sourcing brief from brief + whitelist (not an email)
  2. Draft RFQ → send 2 in parallel (NET, per-2/4/6)
  3. Chase per SLA if silent (3 business days)
  4. File reply → SupplierCost(hasSourceDoc) + Attachment
  5. Completeness QC; bounce gaps
Gate[v1] whichever of the 2 first passes QC + margin is used (no comparison) → advance to Quote.
Output / nextSelected DMC + source-backed SupplierCost.
#ScenarioInput (real case)Expected actionExpected gateExpected outputScenario key
S1
Happy: complete reply qualifies
happy
ZAFS: day-by-day + NET US$2,268/pax + 50/50 + open-jaw
Tanzania ZAFS · DT-2026-0028
File, QC clear, margin OKFirst-to-qualify → useZAFS selected → QuoteTC-B01
S2
Edge: connecting not guaranteed
edge
'6 rooms but connecting not guaranteed'
Yousif · DT-2026-0012
QC flags → bounce 'need ≥2 connecting'QC fail → not usedBounce + stays in SourceTC-B07
S3
Edge: gross, not NET
edge
quote includes commission → 12% / 27%
Yousif 体验报价
QC flags non-NET → require NETQC fail → bouncePrice after NET confirmed
S4
Edge: lump-sum, no per-pax
edge
'land ~S$135,300', no per-pax
China land programme
Bounce: per-pax + 2/4/6 tiersQC fail → bounceContinue with tiers
S5
Edge: DMC silent
edge
3 business days, no reply
通用 SLA
Chase; at 5d lean on parallel/backupOther qualifying first is usedNo single-point stall
S6
Edge: peak pricing
edge
Bvlgari jumps overnight (sakura)
Yousif Bvlgari / Ritz
Alert + renegotiate (90-day hold) / 3 optionsOver-budget unresolved → blockContinue after hold/change
S7
Edge: both reply (first-to-qualify)
edge
A first, QC clear + margin OK; B later
v1 规则验证
Use A; no wait; no comparisonFirst-to-qualify = AA selected, B archivedTC-B03
Application integration executes the scenarios; Playwright covers key human journeys and the read-only Inspector shows runtime state.

③ Quote

Approval

Both branches converge → ① AI generates a proposal summary (source-backed cost + margin check, flights if arranged) → ② operator reviews & approves → ③ generate the client PDF & send.

📖 Melody's proposal lands: 4 nights with transfers + the Jeju flight, laid out day-by-day. Cost is rolled up from source-backed SupplierCost, margin layered, then a quick internal review before it goes out.
ItineraryItinerary (day-by-day · excerpt)
Day  Hotel                                   Meals  Summary
1    Ibis Ambassador Insadong                —      Arrival transfer; Insadong at leisure
4    Rakkojae Seoul Main Hanok (Sarangbang)  B      Traditional hanok; Bukchon village
5    —                                       B      Hotel→airport; domestic flight to Jeju (3 adults)
— — — (Yousif Japan, luxury 12-day excerpt) — — —
1    Bvlgari Tokyo (2-BR suite + 5 rooms)    —      Private transfer; family settle in
2    Bvlgari Tokyo                           B,L    Fish-market + private sushi class; HP after-hours dinner
9    Ritz-Carlton Kyoto (2-BR suite +5 rms)  B      Cherry-blossom Kyoto; bamboo craft
What we watch
  • Evidence gate: every cost line is source-backed (hasSourceDoc=true)
  • Margin OK; if arranging flights, proposal carries the flight quote
  • Proposal carries the PPPD / budget summary + T&Cs
Workflow automation hook
  • Roll up cost from SupplierCost (multi-currency) + margin-check alert
  • Generate itinerary + proposal → internal review (pending approval)
  • Send to the client on approval
TriggerA DMC is selected; enter pricing.
AI / system actions
  1. Roll up cost from SupplierCost (evidence gate)
  2. Layer margin + check/alert
  3. Generate itinerary + proposal (flights if arranged)
  4. Internal review → send to client
GateSource-backed cost + margin OK + approval → proposal sent → advance to Close.
Output / nextDay-by-day proposal + price sent to the client.
#ScenarioInput (real case)Expected actionExpected gateExpected outputScenario key
Q1
Happy: proposal sent
happy
cost roll-up + margin OK → day-by-day
Melody / Yousif
Roll up cost, proposal+itinerary, approveSourced + margin + approved → sendProposal v1 sentTC-B01
Q2
Edge: no source doc
edge
cost lacks a DMC quote
证据门规则
Block: no source doc → no pricingEvidence gate fail → blockedBack to Source for the doc
Q3
Edge: margin below threshold
edge
computed margin < threshold
薄利案例
Don't issue → renegotiate / escalateMargin fail → blockContinue after fix / human call
Q4
Edge: arranges flights
edge
arrange → flight quote + passports + KrisFlyer
通用代订流程
Proposal carries flight option+quote; collect dataAll three presentProposal with flights
Application integration executes the scenarios; Playwright covers key human journeys and the read-only Inspector shows runtime state.

④ Close (incl. deposit)

Approval

Client accepts → issue the deposit invoice → deposit in = won. Money moves → human approval throughout.

📖 After Melody accepts: S$3,150 full, S$2,400 voucher, S$750 balance, 2-day window. Before paying she asks 'is it actually booked?' — the standard book-after-payment moment. Complex cases issue a land deposit (S$71,000) first to lock vehicles/guide/hotels.
InvoiceDeposit / quote invoice (Melody · real)
Invoice No.  : PSDT-DT-261017-BT-FP-0007        Date: 27 May 2026
Trip         : Bespoke Korea (Seoul + Jeju) · 17–21 Oct 2026

Full trip cost (4 nights, transfers, domestic flight) ........  SGD 3,150
Travel Voucher Redemption ....................................  −SGD 2,400
                                                              ────────────
Balance due (by 29 May 2026) .................................  SGD   750

Remit to: Dynasty Travel International Pte Ltd · UOB 365-303835-4 · SWIFT UOVBSGSG
T&Cs: bookings confirmed once payment received, subject to availability at time of booking.
Cancellation: 31+ days 75% · 0–30 days 100%.  GST: out_of_scope.
Outbound · EmailComplex case: land deposit (Yousif)
accounts@dynastytravel.com.sgyousif.family@example.com
Deposit invoice — Japan land programme (23 Mar–3 Apr)
Dear Mr & Mrs Yousif,

Thank you for confirming the experiences. Please find attached the deposit invoice for the Japan land programme — covering private transport and local support throughout your 12 days across Tokyo, Toyama, Kanazawa, Kyoto and Osaka.

The land programme comes to USD 52,780. As requested, we have configured two Alphards so the whole family travels together. Hotel charges will be billed separately as each property is confirmed.

On receipt of the deposit we'll proceed to lock the vehicles, guide and experiences.

Warm regards,
John (Travel Curators)
What we watch
  • Voucher / credit deduction line shown correctly
  • Invoice number rule, currency, kind (deposit/full/balance), due window
  • The book-after-payment wording must be in the invoice email
  • Deposit = won; only confirm suppliers once verified
Workflow automation hook
  • Classify the client reply (accept / revise / pricing)
  • Generate the deposit invoice (per numbering rule) → attach to email
  • Verify payment; auto-escalate a chase if unpaid 7 days out
TriggerProposal sent; awaiting the client.
AI / system actions
  1. Classify the reply (accept / revise / pricing)
  2. Issue the deposit invoice (numbering · voucher · book-after-payment)
  3. Collect & verify the deposit (Payment.verified)
GateAccepted + invoice raised + deposit verified → won → advance to Operate (suppliers only after payment).
Output / nextDeposit received & verified, case marked won.
#ScenarioInput (real case)Expected actionExpected gateExpected outputScenario key
C1
Happy: accept → invoice → deposit
happy
accept; S$3,150 − S$2,400 = S$750
Melody · PSDT-DT-261017
Invoice (voucher line) + wording + verifyAccept + invoice + deposit → wonDeposit in → OperateTC-B01
C2
Edge: land deposit
edge
land deposit S$71,000 to lock vehicles/guide/hotels
Yousif · PSDT-TC-250310-LAND-DP-001
Issue deposit; balance 30d pre-tripDeposit approved → sendLock suppliers once clearedTC-B02
C3
Edge: multi-invoice add-on
edge
base S$18,000 + add-on S$1,365 same day
David Sim · PSDT000405(+ADD)
Issue add-on linked to the caseEach approved + paidBoth settled S$19,365TC-B04
C4
Edge: 'is it booked?'
edge
asks if booked before paying
Melody 真实往来
Reply book-after-payment + itineraryWording must be in the emailPays after clarity
C5
Edge: unpaid near departure
edge
overdue, 7 days pre-trip, unpaid
Melody 逾期尾款
Auto-escalate a chase to the PICUnpaid → no supplier confirmationHigh-priority chase + hold operate
Application integration executes the scenarios; Playwright covers key human journeys and the read-only Inspector shows runtime state.

⑤ Operate

Approval

Confirm suppliers & collect vouchers → take the balance → issue final docs → guide handoff pre-arrival → daily on-trip support → post-trip feedback + supplier scoring (learning loop).

📖 Pre-trip Chika sends the bloom forecast + meet point; on-trip she sends daily photo updates; David drops a Himeji magnet in the car and the guide returns it next day. Post-trip, experience scores feed the KB and a repeat is tentatively held.
Inbound · WhatsApp4 days pre-trip
chika.guide@host.jpjohn@travel-curators.com
Pre-trip brief
Cherry blossom forecast looks good for your dates. Weather ~18°C. I'll meet you at the South Exit on arrival. Itinerary + contacts shared.
Inbound · WhatsAppOn-trip · Day 1
chika.guide@host.jpjohn@travel-curators.com
Day 1 — live
Just landed, all met at Exit South. Today: canola flower fields, dolphin farm. Kids loved it. Photos sent to family. Check-in smooth.
[photo gallery: Uzu no Michi whirlpools, canola fields, dolphin farm]
18:46 — "I assume you're enjoying dinner! Here are some pictures I took!" [umbrella making with Craftsman Sumitomo, step-by-step]
What we watch
  • Balance cleared; re-check room numbers/connecting 3 days out; vouchers all in
  • Client sign-off on cancellation terms (flag non-cancellable up front)
  • Daily check-in + photo evidence; SOS response < 1 hour
  • Post-trip: satisfaction, supplier scoring, repeat-booking lead
Workflow automation hook
  • Balance reminder (30d out) + receipt verification
  • Supplier-confirmation tracking + pre-arrival guide card (name/contact/meet point)
  • File photos/vouchers; extract feedback → write scores back → spawn repeat follow-up
TriggerDeposit received; enter operate.
AI / system actions
  1. Confirm suppliers + vouchers; re-check rooming
  2. Balance reminder (30d) + verify
  3. Issue final itinerary; pre-arrival guide card
  4. Daily on-trip check-in + photo evidence
  5. Extract feedback → write scores back → spawn repeat
GateBalance cleared + suppliers confirmed + vouchers → deliver; payment items need approval.
Output / nextTrip delivered; feedback + scores flow back to the KB.
#ScenarioInput (real case)Expected actionExpected gateExpected outputScenario key
O1
Happy: confirm + handoff
happy
balance cleared, hotel/guide confirmed, Chika sends meet point
Yousif / David · operate
Verify balance, chase confirmations, itinerary, guide cardCleared + confirmed + vouchers → deliverPre-arrival doneTC-B02
O2
Edge: non-cancellable experience
edge
'once booked, no change; penalty'
Yousif 寿司/体验
List non-cancellable + penalties; get sign-offNo sign-off → don't confirmConfirm after sign-off
O3
Edge: rooming mismatch on arrival
edge
rooms not connecting, family split
Yousif rooming 复核
Verify 3d out; guide fixes on-siteMismatch → re-room / coverConnecting rooms secured
O4
Edge: post-trip learning loop
edge
sword/indigo scored highest; repeat held
David Sim · post-trip
Collect satisfaction, score to KB, spawn repeatFeedback filed = learning loopScores in KB + repeat caseTC-B04
Application integration executes the scenarios; Playwright covers key human journeys and the read-only Inspector shows runtime state.