Skip to content

Instantly share code, notes, and snippets.

@esz135888
Created May 23, 2026 21:54
Show Gist options
  • Select an option

  • Save esz135888/a79a147e1808b911a01238f377877752 to your computer and use it in GitHub Desktop.

Select an option

Save esz135888/a79a147e1808b911a01238f377877752 to your computer and use it in GitHub Desktop.
Customer visit script production pack - job dccc00ed

E2E Acceptance Tests

A. Script Adoption

  1. Given product owner uses the 15-minute script in a customer visit,
  2. When visit notes are entered,
  3. Then PLS captures pain moment, decision owner, success metric, blocker, and next step.

Expected evidence: one customer_visit_sessions row and at least five visit_discovery_answers.

B. No Empty Proposal

  1. Given required fields are missing,
  2. When proposal brief generation is requested,
  3. Then the system returns missing fields and marks brief as draft-only.

Expected evidence: no external proposal is produced without pain, metric, owner, and case boundary.

C. Differentiator Validation

  1. Given customer asks "你們跟別人差在哪?",
  2. Then the answer must cite workflow/data/permission/AI worker/acceptance evidence, not direct competitor attack.

Expected evidence: call notes include customer response and whether the claim was accepted.

D. Case Permission

  1. Given a case is used in the script,
  2. Then case_boundary must be internal_only, external_allowed, or needs_approval.

Expected evidence: CEO decision window approval for external cases.

E. Next-Step Conversion

  1. Given a visit completes,
  2. Then one next step must exist: sample data request, workflow workshop, pilot proposal, or disqualification.

Expected evidence: owner/due/expected signal exists in PLS.

Current Verification

  • Primary artifact URL returns HTTP 200.
  • Gist includes script console, production brief, data model, acceptance tests, decision record, learning memory, sources, and artifact URL/PR note.
  • PLS upload-files reports all files uploaded.

Artifact URL / PR Status

Primary artifact URL: https://gist.github.com/esz135888/a79a147e1808b911a01238f377877752

No GitHub PR or deployment was created in this job.

Reason: this job is a production script/toolbox deliverable. PLS context does not provide a repo URL, local repo path, branch, deployment target, or API credentials.

Next valid step: collect two customer visit sessions and five pain-scene records, or provide a repo/API target for repo_change implementation.

<!doctype html>
<html lang="zh-Hant">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>客戶拜訪腳本控制台</title>
<style>
:root { --ink:#172033; --muted:#667085; --line:#d5dce7; --bg:#f6f8fb; --panel:#fff; --blue:#175cd3; --ok:#087443; --warn:#a15c07; --bad:#b42318; }
* { box-sizing:border-box; }
body { margin:0; font:14px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; background:var(--bg); color:var(--ink); }
header { background:var(--panel); border-bottom:1px solid var(--line); padding:28px 32px 18px; }
h1 { margin:0 0 6px; font-size:26px; letter-spacing:0; }
h2 { margin:0 0 12px; font-size:17px; }
main { max-width:1220px; margin:0 auto; padding:22px 18px 42px; display:grid; gap:16px; }
section { background:var(--panel); border:1px solid var(--line); border-radius:8px; padding:18px; }
.grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.card { border:1px solid var(--line); border-radius:8px; padding:14px; background:#fbfcff; min-height:104px; }
.label { color:var(--muted); font-size:12px; text-transform:uppercase; }
.value { font-size:22px; font-weight:700; margin-top:4px; }
.blue { color:var(--blue); } .ok { color:var(--ok); } .warn { color:var(--warn); } .bad { color:var(--bad); }
table { width:100%; border-collapse:collapse; }
th,td { text-align:left; vertical-align:top; border-bottom:1px solid var(--line); padding:10px 8px; }
th { color:var(--muted); font-size:12px; }
.script { display:grid; gap:10px; }
.block { border-left:4px solid var(--blue); padding:10px 12px; background:#f8fbff; }
code { background:#eef2f7; border-radius:4px; padding:1px 5px; }
.small { color:var(--muted); font-size:12px; }
@media (max-width:900px){ .grid{grid-template-columns:1fr;} header{padding:22px 18px;} }
</style>
</head>
<body>
<header>
<h1>第一版客戶拜訪腳本:把「感受不到優勢」轉成可驗收需求</h1>
<div class="small">Job dccc00ed-ed8b-454f-b1fd-045d8a467e89 · owner 墨宇產品負責人 · supervisor 墨宇 CEO 決策窗口 · due 2026-05-24</div>
</header>
<main>
<section>
<h2>使用目標</h2>
<div class="grid">
<div class="card"><div class="label">拜訪目的</div><div class="value blue">找決策缺口</div><div class="small">不是介紹功能,而是找客戶在哪一刻不相信。</div></div>
<div class="card"><div class="label">核心證據</div><div class="value ok">場景 + 成果</div><div class="small">用客戶場景、痛點、成果證據取代競品比較。</div></div>
<div class="card"><div class="label">下一步</div><div class="value warn">Demo / Proposal</div><div class="small">每場拜訪要產生一個可追蹤 next signal。</div></div>
<div class="card"><div class="label">驗收</div><div class="value bad">不空聊</div><div class="small">沒有痛點、權限、預算、時程,就不進提案。</div></div>
</div>
</section>
<section>
<h2>15 分鐘拜訪腳本</h2>
<div class="script">
<div class="block"><b>0-2 分鐘:定位</b><br>「今天不先講一堆功能。我想先確認你們現在最想改善的流程,找出哪個環節如果被 AI 接起來,會最快看到人力、轉換或風險改善。」</div>
<div class="block"><b>2-5 分鐘:現況</b><br>「最近一次你們覺得流程卡住,是在哪個時間點?誰在等誰?如果沒有改善,接下來 30 天會造成什麼成本或客訴?」</div>
<div class="block"><b>5-8 分鐘:優勢切入</b><br>「我們強的不是單一工具,而是把資料、流程、權限、AI worker、驗收指標串成可持續交付的產線。你們不用一次換系統,可以先從一個高痛點流程做 7 天驗證。」</div>
<div class="block"><b>8-11 分鐘:證據問題</b><br>「如果 7 天內要證明有效,你會看哪三個數字?少幾小時?多幾筆成交?少幾件風險?誰能確認這些數字是真的?」</div>
<div class="block"><b>11-14 分鐘:下一步</b><br>「我建議我們不要先做完整大案,先選一個流程做 proof package:資料欄位、owner、權限、驗收、回滾都寫清楚。你們可以接受 7 天後用數字決定要不要擴大嗎?」</div>
<div class="block"><b>14-15 分鐘:收斂</b><br>「我會整理今天的痛點、決策人、驗收數字和下一步。如果你同意,下一步不是再開會,是給我們一份樣本資料或安排一位流程 owner 做 30 分鐘工作坊。」</div>
</div>
</section>
<section>
<h2>疑慮處理</h2>
<table>
<tr><th>客戶疑慮</th><th>回應腳本</th><th>要拿到的訊號</th></tr>
<tr><td>你們跟別人差在哪?</td><td>「我們不主打某個 AI tool,而是把 AI 放進可驗收的工作流程,包含資料、權限、owner、指標與回滾。」</td><td>客戶承認目前缺的是流程落地。</td></tr>
<tr><td>我們資料很亂</td><td>「那正適合先做資料盤點,不需要一次乾淨;先選一個表、一個流程、一個 owner。」</td><td>取得樣本資料與 owner。</td></tr>
<tr><td>怕導入後沒人用</td><td>「所以第一週只做最痛的工作,不做大平台。驗收是使用率、節省時間、錯誤率。」</td><td>取得使用者與驗收指標。</td></tr>
<tr><td>預算還沒定</td><td>「先不談大預算,先做 proof package;若 7 天看不到指標,就不擴。」</td><td>取得 pilot 預算或內部審批路徑。</td></tr>
</table>
</section>
</main>
</body>
</html>

Data Model / API / Sync / Permission Spec

Tables

customer_visit_sessions

column type note
id uuid visit id
customer_name text internal only; anonymize for shared artifacts
customer_segment text industry/size/use case
visit_owner_profile_id uuid product/sales owner
visit_date date meeting date
source_material_ref text imported customer data/deck/notes
status text planned/completed/followup/won/lost

visit_discovery_answers

column type note
id uuid answer id
visit_id uuid FK
question_key text pain, owner, metric, budget, timing, blocker
answer_text text answer
confidence numeric 0-1
evidence_ref text note/call/deck ref

proposal_briefs

column type note
id uuid brief id
visit_id uuid source visit
pain_summary text customer pain
recommended_pilot text 7-day proof package
success_metrics jsonb time/cost/revenue/risk metrics
case_boundary text internal_only/external_allowed/needs_approval
next_action_owner uuid owner
next_action_due date due date

API / Sync

  • POST /api/customer-visits
    • creates visit session from imported customer data.
  • POST /api/customer-visits/:id/discovery
    • appends answers during/after visit.
  • POST /api/customer-visits/:id/proposal-brief
    • generates proposal brief if required fields are complete.
  • GET /api/customer-visits/:id/scorecard
    • returns readiness score and missing fields.

Required Fields For Proposal Brief

  • Customer segment.
  • Pain moment.
  • Current workaround.
  • Decision owner.
  • Success metric.
  • Sample data / case permission status.
  • Next step and due date.

Permissions

  • Product owner: edit differentiator narrative and recommended pilot.
  • Customer success: add pain scenes and visit evidence.
  • CEO decision window: approve external case usage and final proposal boundary.
  • Engineering: read only until repo/API implementation is approved.
  • PLS worker: create drafts, score completeness, create follow-up actions.

Audit / Privacy

  • External artifacts must anonymize customer names unless case permission is approved.
  • Every case quote needs case_boundary and approval owner.
  • Proposal brief generation must log source material refs and missing fields.
  • If required fields are missing, output draft-only and do not push to customer.

Decision Record

Decision

Adopt a 15-minute diagnostic customer visit script as the first production artifact for the customer strategy deck/proposal pipeline.

Problem

The project is blocked because customer-facing material does not yet reliably convert imported context into adoptable outcomes. The context shows repeated tasks to identify where customers do not feel the advantage and to articulate "我們比別人強在哪裡"; the overdue deliverable is the first customer visit script.

Options Considered

  1. Write a broad sales deck.
    • Rejected: case permission and differentiator evidence are not ready.
  2. Produce generic sales talk tracks.
    • Rejected: does not solve the "customers cannot feel advantage" problem.
  3. Build a diagnostic script and proposal data model.
    • Recommended: sales/customer success can use it immediately, and PLS can capture structured evidence for the next proposal.

Recommendation

Use the script for 5 customer visits within 7 days. Product owner owns differentiator language; customer success owns pain-scene collection; CEO decision window approves case boundaries.

Adoption Status

Proposed. Acceptance requires two completed visit sessions and five pain-scene records, or explicit rejection from the product owner.

Landing Path

Owner: 墨宇產品負責人. Supervisor: 墨宇 CEO 決策窗口. Support: 墨宇客戶成功窗口. Due: 2026-05-24 for script adoption; 2026-05-30 for 5 pain scenes.

Feedback If Not Adopted

Return which customer segment, product capability, or case permission is missing; otherwise the script remains the default first version.

{
"job_id": "dccc00ed-ed8b-454f-b1fd-045d8a467e89",
"project": "AI 自建專案:客戶策略簡報與提案產線",
"learned_at": "2026-05-24T05:55:00+08:00",
"market_context": [
{
"source": "Gartner Sales Enablement research",
"lesson": "Sales enablement is shifting toward data-driven, cross-functional content and AI-supported buyer journeys; scripts must connect marketing, product, service, and sales evidence."
},
{
"source": "HubSpot discovery call guidance",
"lesson": "Effective discovery calls should be structured around buyer goals and challenges, with scripts used as support rather than read verbatim."
},
{
"source": "McKinsey B2B personalization guidance",
"lesson": "B2B sales value increasingly depends on tailored value propositions and customer-specific journeys, so the script must collect segment and pain data for proposal generation."
}
],
"pls_next_checks": [
"Every customer visit script should produce structured visit data, not just notes.",
"Do not generate external proposal if case permission is unknown.",
"Track the moment customers stop feeling the advantage; use that as the next script improvement input."
],
"assumptions_overturned": [
"The main deliverable is not a deck first; it is a diagnostic script that creates evidence for decks.",
"Differentiation should not rely on attacking competitors; it should show workflow, data, permission, AI worker, and acceptance evidence.",
"Customer success feedback is required before the proposal pipeline can scale."
],
"next_iteration_condition": "Collect at least two completed visit sessions and five pain-scene records, then generate proposal brief v1."
}

Production Brief:客戶拜訪腳本與提案產線第一版

場景

PLS context 顯示「產出第一版客戶拜訪腳本」已 overdue;同時有兩個 P0 依賴:墨宇產品負責人要梳理「我們比別人強在哪裡」,墨宇客戶成功窗口要整理「客戶感受不到優勢」的具體場景。這代表拜訪腳本不能只是開場話術,而要把客戶質疑、內部優勢、案例授權與下一步提案轉成可驗收產線。

30 天路徑

  • D1:用 customer-visit-script-console.html 啟用第一版 15 分鐘拜訪腳本;每次拜訪必填痛點、決策人、驗收指標、下一步。
  • D7:收集 5 場拜訪回饋,整理「客戶何時感受不到優勢」top 5,更新腳本與案例證據。
  • D14:輸出內部/外部兩版 Sales Kit,接案例授權邊界,避免未授權案例外流。
  • D30:形成客戶策略簡報與提案產線:客戶資料 → 拜訪腳本 → 痛點 scorecard → 客製提案 → 成交/流失復盤。

目的到目的 E2E

原始目的:把匯入資料轉成客戶能採用的拜訪腳本與提案節奏。 產出物:可開啟腳本控制台、資料模型、驗收測試、decision record、採用訊息。 人採用:產品負責人用它講清差異化;客戶成功窗口用它回收客戶痛點;CEO 決策窗口用它審核提案是否可推。 指標改善:提高拜訪後 next step 率、降低「客戶感受不到優勢」比例、縮短從首次拜訪到提案的時間。

價值/錢路徑

  • 提高轉換:每場拜訪都要取得 next signal,避免空聊。
  • 節省成本:業務不再各自寫話術,產品/客成共用一套腳本。
  • 降低風險:未授權案例不進外部版;敏感客戶資料只進內部版。
  • 提高客單:用流程 owner、驗收指標與 7 天 proof package 推動小單變擴大案。
  • 釋放人力:PLS 可把拜訪紀錄自動轉成提案 brief 與下一步 action。

提升人的能力

這套腳本讓業務更會診斷客戶,而不是背功能;讓產品更會把優勢變成證據;讓客成更會回收質疑場景;讓 CEO 可以判斷哪些提案值得投入。

Solution Stack

  • 脈絡框架:客戶場景 → 痛點時刻 → 差異化證據 → 驗收指標 → next step。
  • 作業流程:拜訪前填客戶資料,拜訪中用腳本,拜訪後產生 scorecard 與提案 brief。
  • 資料/DB 模型:見 data-model.md
  • 可操作工具:customer-visit-script-console.html
  • 驗收指標:見 acceptance-tests.md
  • 採用與下一輪升級:5 場拜訪後更新 v2 腳本,並接 Sales Kit 內外部權限。

People Sync / LINE 草稿

墨宇產品負責人:第一版拜訪腳本已可用。請先用它完成 2 場客戶拜訪,回填客戶在哪一段開始質疑、哪個證據最有力、是否取得下一步。

墨宇客戶成功窗口:請依腳本回收近期「感受不到優勢」場景,至少 5 筆,欄位包含客戶類型、質疑時刻、原回答、有效/無效證據、下次改法。

墨宇 CEO 決策窗口:請審核 7 天 proof package 是否符合對外承諾,不符合就退回補證據,不要讓未授權案例進外部版。

不足資料

  • 尚未取得真實客戶拜訪紀錄。
  • 尚未取得已授權案例清單。
  • 尚未取得產品差異化共識文件。

下一輪

下一輪應回收 5 場拜訪紀錄,把腳本升級成可半自動產生提案 brief 的表格/API。

Market Context Sources

Current practice check date: 2026-05-24 Asia/Taipei.

  1. Gartner, "What Is Sales Enablement? The CSO's Ultimate Guide", accessed 2026-05-24. URL: https://www.gartner.com/en/sales/role/sales-enablement Use: supports data-driven enablement, buyer engagement, and cross-functional content.

  2. Gartner press release, "AI-Driven Sales Enablement Will Deliver 40% Faster Sales Stage Velocity", published 2026-04-01, accessed 2026-05-24. URL: https://www.gartner.com/en/newsroom/press-releases/2026-04-01-gartner-predicts-ai-driven-sales-enablement-will-deliver-40-percent-faster-sales-stage-velocity-than-traditional-enablement-methods-by-20291 Use: current signal that AI-enabled sales support should improve stage velocity when tied to enablement content.

  3. HubSpot, "28 Questions to Ask on a Discovery Call During the Sales Process", accessed 2026-05-24. URL: https://blog.hubspot.com/sales/discovery-call-questions Use: supports structured discovery questions around prospect goals and challenges.

  4. HubSpot, "How & why to use sales scripts", accessed 2026-05-24. URL: https://blog.hubspot.com/sales/sales-scripts-examples Use: scripts should help structure calls, not replace natural conversation.

  5. McKinsey, "How leaders can leverage AI for B2B sales", accessed 2026-05-24. URL: https://www.mckinsey.com/mx/our-insights/five-ways-b2b-sales-leaders-can-win-with-tech-and-ai Use: supports personalized value propositions, account planning, and sales uplift through AI-supported sales workflows.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment