ClientsFlow · Studio ↔ Pipeline Integration · EBO
A booked deal flows into Studio (sell with it) and back out (deliver with it) — without leaving the pipeline dashboard · Scenarios S1–S12 · 2026-06-25 · Decisions Q1–Q9 signed · owner comments applied
reschedule touchpoint, source=manual).| # | You do | You should see | Element that changes copy · look · where |
What changes underneath | Must NOT happen | 🕓 Touchpoint history | 💡 UX critique + suggestion |
|---|---|---|---|---|---|---|---|
| 1 | Enrichment runs on a new lead and finds + saves the prospect's website | The card shows the website (favicon/domain) and NO red ❗ — Studio readiness is implicitly met | Copy: domain shown on card (e.g. "beridoor.hu") · Look: normal card, optional 🌐 favicon · Where: card meta row | deal.website_url persisted; Studio-readiness = true |
Lead must NOT exist long-term with an empty website silently; readiness must NOT be assumed without a saved URL | SYSTEM ENTRY Type: Adatdúsítás · icon: 🔎 · label: "Weboldal megtalálva" · description: "{domain} mentve" · timestamp: now · initiated_by: system (muted grey) |
Critique: The website URL is the single most load-bearing input for the whole Studio flow, yet it sits as plain text with no indication of how confident enrichment is in it. Suggestion: Show the URL as a clickable chip with a tiny confidence dot (green = scraped a real homepage, amber = guessed from email domain). Lets the rep sanity-check before a design is auto-built on a wrong URL. |
| 2 | Enrichment finds NO usable website at all | A prominent red ❗ badge on the card face — the only thing that will later block the Studio auto-kick | Copy: tooltip "Nincs weboldal — add meg a Studio dizájnhoz" · Look: RED ❗ badge, pinned top-right of card · Where: card corner ribbon | deal.website_url empty → readiness = false; ❗ flag raised |
The ❗ must NOT be hidden in a panel; a no-URL deal must NOT pass as Studio-ready | SYSTEM ENTRY Type: Hiányzó adat · icon: ❗ · label: "Nincs weboldal" · description: "Az adatdúsítás nem talált weboldalt — kézi megadás szükséges a Studio dizájnhoz" · timestamp: now · initiated_by: system |
Critique: A bare ❗ tells the rep something is wrong but not what to do about it — the fix (paste a URL) isn't reachable from the badge. Suggestion: Make the ❗ badge itself click-to-act: clicking it opens a tiny inline "Weboldal megadása" field right on the card. One click from problem to fix, no panel diving. |
| # | You do | You should see | Element that changes copy · look · where |
What changes underneath | Must NOT happen | 🕓 Touchpoint history | 💡 UX critique + suggestion |
|---|---|---|---|---|---|---|---|
| 1 | The sales call is booked (lead self-books or operator logs a booking) on a URL-present deal | A Studio project is auto-created, bound to this deal; the status chip appears reading "Studio: dizájn készül" | Copy: status chip "🎨 Dizájn készül" · Look: indigo chip on the card · Where: card status-chip slot | Studio POST /api/projects with {source_url, client_name, crm_ref=deal_id}; project id stored on the deal |
Must NOT create a second project for the same deal (idempotent); must NOT block the booking if Studio is slow/down (fail-open) | NEW ENTRY Type: Studio · icon: 🎨 · label: "Studio projekt létrehozva" · description: "Dizájn projekt összekötve ezzel a leaddel" · timestamp: now · initiated_by: system |
Critique: The project is created silently — the rep may not realise a Studio design is now spinning up and tied to this lead. Suggestion: Fire a one-time bottom-left toast on the board: "🎨 Studio dizájn elindult — {company}". Non-blocking, disappears in 4s, links to the project. |
| 2 | (Automatic) the Lab is kicked to generate the Phase-① draft | Studio begins generating a home-page design + SEO audit + suggested new site structure from the saved URL | Copy: chip stays "🎨 Dizájn készül" with a subtle progress shimmer · Look: animated chip · Where: card status chip | Lab run started in Studio (scrape → SEO audit → structure → homepage generate); Gemini/DataForSEO spend incurred on this paying-intent lead | Must NOT auto-send anything to the prospect; Lab kick is internal-only; no new Modal cron added | NEW ENTRY Type: Studio · icon: ⚙️ · label: "Dizájn generálás elindítva" · description: "Homepage dizájn + SEO audit + javasolt oldalstruktúra generálása folyamatban" · timestamp: now · initiated_by: system |
Critique: Generation can take minutes; a single "készül" chip gives no sense of stage (scraping vs. SEO vs. generating) or ETA, so the rep can't tell if it'll be ready before the call. Suggestion: Let the chip carry a sub-label that mirrors the Lab node ("SEO audit…", "Homepage generálás…") and a rough ETA. Pulled from Studio's existing run state — no new data needed. |
| 3 | (Automatic) generation finishes | The chip flips to "Studio: kész — megnézhető" and the design becomes openable from the card | Copy: chip "✅ Dizájn kész" · Look: sage/green chip + "Megnyitás Studióban" action · Where: card status chip + action row | Studio run state → ready; status synced back to the pipeline (reflection, not copy) | Must NOT mark ready before the homepage actually rendered; must NOT lose the SEO audit / structure artifacts | NEW ENTRY Type: Studio · icon: ✅ · label: "Dizájn elkészült" · description: "Homepage dizájn, SEO audit és oldalstruktúra elérhető a Studióban" · timestamp: now · initiated_by: system |
Critique: "Kész" doesn't tell the rep WHAT is ready (just homepage? audit too?) right before they need it in a call. Suggestion: Expand the ready chip on hover into a 3-item checklist ("✓ Homepage ✓ SEO audit ✓ Struktúra javaslat") so the rep knows exactly what they can show. |
| # | You do | You should see | Element that changes copy · look · where |
What changes underneath | Must NOT happen | 🕓 Touchpoint history | 💡 UX critique + suggestion |
|---|---|---|---|---|---|---|---|
| 1 | The sales call is booked while the card still shows the red ❗ | NO Studio project is created, NO Lab kick; instead the card prompts: "Add meg a weboldalt a Studio dizájnhoz" | Copy: prompt "Weboldal szükséges a dizájnhoz" · Look: ❗ stays, plus an inline "Weboldal megadása" field · Where: card body | Studio create/kick suppressed; deal flagged studio_deferred=true |
Must NOT auto-create a blank project; must NOT silently skip with no prompt; must NOT fake-run a design on a missing URL | SYSTEM ENTRY Type: Studio · icon: ⏸️ · label: "Studio dizájn elhalasztva" · description: "Foglalás megtörtént, de nincs weboldal — a dizájn generálás vár a weboldal megadására" · timestamp: now · initiated_by: system |
Critique: The deferral is correct, but the rep might not connect "I have a booked call tomorrow" with "no design will be ready because of a missing URL" — the cost of the ❗ is now time-critical. Suggestion: Escalate the ❗ to an amber "⏰ Dizájn nem készül el a hívásig — add meg a weboldalt" banner once a call is booked, so the urgency is explicit relative to the appointment date. |
| 2 | Mátyás pastes a valid website URL into the inline field and saves | The ❗ clears and the normal S2 flow resumes automatically: project created + Lab kicked | Copy: ❗ gone; chip flips to "🎨 Dizájn készül" · Look: red badge replaced by indigo chip · Where: card | website_url saved; studio_deferred cleared; same create+kick as S2 fires |
Must NOT require re-booking; must NOT need the operator to manually create the project — the save alone resumes it | NEW ENTRY Type: Studio · icon: 🎨 · label: "Studio projekt létrehozva" · description: "Weboldal megadva — dizájn generálás elindítva" · timestamp: now · initiated_by: operator |
Critique: After the rep pastes a URL there's a leap of faith that the deferred flow actually picked it up. Suggestion: Confirm the resume explicitly: "✓ Weboldal mentve — dizájn generálás elindult" toast, so the rep sees the deferred state convert to an active run. |
| # | You do | You should see | Element that changes copy · look · where |
What changes underneath | Must NOT happen | 🕓 Touchpoint history | 💡 UX critique + suggestion |
|---|---|---|---|---|---|---|---|
| 1 | Mátyás clicks "Megnyitás Studióban" / "Open in Studio" on the card | Studio opens directly on this deal's project — homepage design, SEO audit, and suggested structure all there | Copy: "Open in Studio" → opens project · Look: Studio project page in a new tab · Where: card action row | Deep-link via stored project id; no re-auth dance for the rep | Must NOT open a blank Studio home; must NOT 404 if the project exists | No new touchpoint for viewing. The "Dizájn elkészült" entry from S2 remains the record. (Viewing is not a deal-state change, so it is intentionally not logged.) | DROPPED (S41) per owner UX suggestion (in-pipeline preview iframe drawer) dropped on owner instruction — not in scope. |
| 2 | Mátyás presents the homepage + SEO audit during the sales call | A polished homepage design and a concrete SEO/structure story to impress the prospect | Copy: SEO audit + structure suggestions · Look: Studio present view · Where: Studio (rep-controlled) | No state change in the pipeline; Phase-① is a sales aid, not a client send | Nothing is sent to the prospect automatically; the design is shown, not emailed, at this stage | No touchpoint — presenting in a call is not a tracked pipeline event unless the rep logs the call (handled by the existing Log Call flow). | DROPPED (S42) per owner UX suggestion ("Dizájnt bemutattam a híváson" toggle) dropped on owner instruction — not in scope. |
| # | You do | You should see | Element that changes copy · look · where |
What changes underneath | Must NOT happen | 🕓 Touchpoint history | 💡 UX critique + suggestion |
|---|---|---|---|---|---|---|---|
| 1 | Mátyás glances at the card at any point in the Studio journey | Exactly ONE Studio status chip reflecting the current state — never a cluster of Studio widgets | Copy: one of: "🎨 Dizájn készül" / "📤 Elküldve" / "💬 Ügyfél véleményez" / "✅ Jóváhagyva" · Look: single chip, colour per state · Where: card status-chip slot | Chip text derived from the synced Studio state (read-only reflection) | Must NOT show two conflicting chips; chip must NOT be editable on the pipeline side (Studio owns the state) | The chip mirrors history but is not itself a touchpoint. Each underlying transition (created / sent / commenting / approved) already logged its own entry in S2/S7/S8/S9. | Critique: Four states in one chip means the colour alone must carry meaning; colour-blind reps or a crowded board could misread "sent" vs "approved". Suggestion: Pair each state with a distinct icon AND colour (🎨 indigo / 📤 blue / 💬 amber / ✅ green) and keep the text label — never colour-only. Matches the touchpoint colour-coding so the board and history stay visually consistent. |
| 2 | Studio state changes on the Studio side (e.g. rep sends, client comments) | The pipeline chip updates to match within a short delay — no manual refresh needed for the chip to be roughly current | Copy: chip text follows the Studio state · Look: chip recolours · Where: card | Studio → pipeline status sync (event/outbox or pull on board load); reflection only | Must NOT require a Studio-side cron; must NOT let the chip go permanently stale | No extra touchpoint for a chip refresh itself; the meaningful transitions are logged where they happen. | Critique: If the sync is pull-on-load, a rep staring at the board won't see a client comment land until they refresh — the chip can silently lag reality. Suggestion: Show a tiny "frissítve {n} perce" timestamp on hover, and refresh the chip on board focus, so the rep knows how trustworthy the chip currently is. |
| # | You do | You should see | Element that changes copy · look · where |
What changes underneath | Must NOT happen | 🕓 Touchpoint history | 💡 UX critique + suggestion |
|---|---|---|---|---|---|---|---|
| 1 | (Automatic) the sales-call transcript becomes available after the call | The transcript is saved into the CRM (this deal) AND pushed into the Studio project's intake; a summary is generated alongside the full transcript | Copy: CRM-side "Hívás jegyzőkönyv" + "Összefoglaló"; Studio intake resource "Sales hívás jegyzőkönyv" · Look: classified resource card in Studio + saved transcript on the deal · Where: CRM deal (history + Details) AND Studio project intake panel | Transcript + summary persisted on the deal (CRM); Pipeline → Studio POST /api/projects/{id}/resources {text, kind_hint:"transcript"}; classify chain runs in Studio |
Must NOT require the rep to copy-paste the transcript; must NOT push the warmup/no-show noise — only the real call transcript; must NOT push to Studio WITHOUT also saving it into the CRM | NEW ENTRY Type: Studio · icon: 📝 · label: "Hívás jegyzőkönyv mentve + átküldve" · description: "Sales-hívás jegyzőkönyv a CRM-be mentve és a Studio intake-be került (Phase ② finomításhoz)" · timestamp: now · initiated_by: system · Toggles in this entry: ▸ "Teljes jegyzőkönyv" (collapsible full transcript) · ▸ "Összefoglaló" (collapsible summary) |
Owner requirement (S61): the call transcript MUST be saved into the CRM. BOTH the full transcript AND the summary are stored inside collapsible toggles (▸ expand/collapse), and they appear in BOTH the touchpoint-history panel AND the 'Details' panel — see row 2. |
| 2 | Mátyás opens the deal's touchpoint-history panel and/or the 'Details' panel | In BOTH panels: two collapsible toggles — ▸ Teljes jegyzőkönyv (full transcript) and ▸ Összefoglaló (summary) — collapsed by default, expand on click | Copy: toggle labels "Teljes jegyzőkönyv" / "Összefoglaló" · Look: disclosure-triangle toggles, body hidden until expanded · Where: (a) the call's entry in the touchpoint-history panel AND (b) the 'Details' panel of the deal | Both panels read the SAME stored CRM transcript + summary (single source on the deal); no duplication of the underlying data | Must NOT show the long transcript inline un-collapsed (it would flood the timeline); must NOT put the toggles in only one of the two panels; must NOT diverge the two copies — both render the same saved transcript/summary | The history entry from row 1 IS where the history-panel toggles live (full transcript + summary). The 'Details' panel mirrors the same two toggles. No additional touchpoint is created for opening a toggle. | Owner requirement (S61): both the full transcript AND the summary live inside toggles in BOTH the touchpoint-history panel AND the 'Details' panel — collapsible so the timeline/Details stay scannable while the full text is always one click away. |
| # | You do | You should see | Element that changes copy · look · where |
What changes underneath | Must NOT happen | 🕓 Touchpoint history | 💡 UX critique + suggestion |
|---|---|---|---|---|---|---|---|
| 1 | Mátyás clicks "Küldés ügyfélnek" / "Send to client" — present on BOTH the pipeline card AND inside Studio | A modal opens, pre-filled with an AI-drafted message + the client review link — NOT an immediate send | Copy: AI-drafted Hungarian message + review URL · Look: editable modal, "Küldés" button at the bottom · Where: modal over the card / over Studio | Studio GET /api/projects/{id}/links mints the review link; AI draft generated; nothing sent yet |
Must NOT auto-send on button click; the modal MUST appear first; AUTOSEND never flipped | No touchpoint yet — opening the modal is not a send. The touchpoint is created only on the explicit "Küldés" in step 2. | Critique: Two entry points (card + Studio) risk drift — the rep might send twice from two surfaces, or the two modals could differ in copy quality. Suggestion: Both buttons must open the SAME modal/component with the same AI draft; once sent, both surfaces immediately reflect "📤 Elküldve" to prevent a double send. |
| 2 | Mátyás edits the draft if needed and clicks "Küldés" | The message + review link is sent to the client; the chip flips to "📤 Elküldve"; Studio publishes the version + locks the client view | Copy: chip "📤 Elküldve ügyfélnek" · Look: blue chip; modal closes with a success toast · Where: card status chip | Send fires via the human-reviewed copy; Studio "Ügyfélnek küldés" publish runs (working → published, client view unlocks) | Nothing sent without the explicit "Küldés" click; must NOT send a stale/empty draft; must NOT double-fire from the other surface | NEW ENTRY Type: Studio · icon: 📤 · label: "Elküldve ügyfélnek" · description: "Dizájn review link elküldve az ügyfélnek (jóváhagyott szöveggel)" · timestamp: now · initiated_by: operator |
Critique: The send couples two big actions (email + Studio publish/lock) behind one button; if one half fails the rep may not know which. Suggestion: Show a 2-line success state: "✓ Üzenet elküldve · ✓ Studio publikálva / ügyfél nézet feloldva". If either half fails, surface a precise "⚠️ Email ment, de a Studio publikálás nem" so the rep can recover the right half. |
| # | You do | You should see | Element that changes copy · look · where |
What changes underneath | Must NOT happen | 🕓 Touchpoint history | 💡 UX critique + suggestion |
|---|---|---|---|---|---|---|---|
| 1 | The client opens the review link and leaves comments in Studio | On the pipeline, the chip flips to "💬 Ügyfél véleményez" — the comments themselves live only in Studio | Copy: chip "💬 Ügyfél véleményez" · Look: amber chip · Where: card status chip | Studio comment activity → status sync → pipeline chip; pipeline does NOT store the comments | Must NOT reproduce Studio's comment overlay in the pipeline; must NOT lose the "commenting" signal | NEW ENTRY Type: Studio · icon: 💬 · label: "Ügyfél megjegyzést írt" · description: "Az ügyfél véleményezi a dizájnt a Studióban" · timestamp: now · initiated_by: client |
Critique: "Ügyfél véleményez" doesn't convey volume or sentiment — 1 minor comment looks the same as 20 blocking ones, so the rep can't prioritise. Suggestion: Let the chip carry a count badge ("💬 3") sourced from Studio's open-comment count, and on hover show the newest comment snippet. Still a reflection, not a duplicated UI. |
| 2 | Mátyás opens Studio to resolve comments + run section edits | The full comment/revision loop in Studio (unchanged); the pipeline keeps showing "💬 Ügyfél véleményez" until approval | Copy: Studio reviewer UI · Look: Studio (not pipeline) · Where: Studio project | Studio section-scoped edits; client view locks "🔧 Feldolgozás alatt" during edits (existing Studio behavior) | Must NOT advance the pipeline stage on its own while commenting/refining | No pipeline touchpoint for each in-Studio edit — those belong to Studio's own history. The pipeline logs only the milestone transitions (sent / approved). | Critique: The rep round-trips between two tools during the revision loop; the pipeline gives no nudge when the loop is taking too long (stalled deals). Suggestion: If a deal sits in "💬 Ügyfél véleményez" beyond N days, surface a gentle "⏳ {n} napja véleményezés alatt" hint on the card so stalled reviews get a follow-up nudge. |
| # | You do | You should see | Element that changes copy · look · where |
What changes underneath | Must NOT happen | 🕓 Touchpoint history | 💡 UX critique + suggestion |
|---|---|---|---|---|---|---|---|
| 1 | The client approves the design in Studio | The deal card gains a glowing / pulsing GREEN overlay signalling "design approved" — impossible to miss on the board | Copy: overlay label "✅ Dizájn jóváhagyva" · Look: pulsing green glow around the whole card · Where: card on the board | Studio "approved" state → pipeline; overlay rendered; chip "✅ Jóváhagyva" | Must NOT auto-advance the pipeline stage; the glow is a prompt for a human decision, not an action | NEW ENTRY Type: Studio · icon: ✅ · label: "Ügyfél jóváhagyta a dizájnt" · description: "Az ügyfél jóváhagyta a dizájnt a Studióban — készen áll a következő lépésre" · timestamp: now · initiated_by: client |
Critique: A pulsing glow is great for grabbing attention but can become noise if several cards glow at once, and pure animation can be missed by reduced-motion users. Suggestion: Respect prefers-reduced-motion (swap the pulse for a solid green ring + "✅ Jóváhagyva" badge), and cap simultaneous pulses so the board doesn't turn into a disco. |
| 2 | Mátyás hovers the glowing card | Two buttons appear: "Move to next pipeline stage" and "Move to next pipeline stage + open in Studio" | Copy: "Következő szakaszba" · "Következő szakaszba + Studio megnyitása" · Look: two buttons on hover over the green overlay · Where: card hover state | Neither button has fired yet; advancement waits for the explicit click | Buttons must NOT be hidden so deep they're undiscoverable; hover must reveal BOTH | No touchpoint on hover. The advancement touchpoint is created only on the click (step 3). | Critique: Hover-only actions are invisible on touch devices and easy to miss; a rep may not realise the glow is actionable. Suggestion: Also expose the two actions in the card's normal action row (not hover-only) when approved, and keep the hover affordance as a fast path. Add a tooltip on first appearance explaining the two-option choice. |
| 3 | Mátyás clicks one of the two buttons | The deal advances to the next pipeline stage (and, for option 2, Studio opens too); the green overlay clears | Copy: card now in the next stage column · Look: glow removed, normal card · Where: board | Stage advanced by the human click; Studio advance (presented→won) reflected if applicable |
Stage must NOT have moved before the click; option 2 must NOT advance twice or open the wrong project | NEW ENTRY Type: Státusz változás · icon: 🔀 · label: "Áthelyezve: {előző} → {következő}" · description: "Dizájn jóváhagyás után, kézi továbbléptetés" · timestamp: now · initiated_by: operator |
DROPPED (S93) per owner UX suggestion (persist non-glowing "✅ Jóváhagyva" chip after advancement) dropped on owner instruction — not in scope. |
| # | You do | You should see | Element that changes copy · look · where |
What changes underneath | Must NOT happen | 🕓 Touchpoint history | 💡 UX critique + suggestion |
|---|---|---|---|---|---|---|---|
| 1 | Mátyás marks the deal as Lost | The linked Studio project is automatically archived; the chip clears / shows "🗄️ Studio archiválva" | Copy: chip "🗄️ Studio archiválva" · Look: muted grey chip · Where: card status chip | Pipeline → Studio archive call on the linked project (non-destructive) | Must NOT hard-delete the Studio project or its versions; must NOT leave an orphan active project | SYSTEM ENTRY Type: Studio · icon: 🗄️ · label: "Studio projekt archiválva" · description: "A lead elveszett — a kapcsolódó Studio dizájn projekt archiválva (nem törölve)" · timestamp: now · initiated_by: system |
DROPPED (S101) per owner UX suggestion (hover "Visszaállítás" un-archive action) dropped on owner instruction — not in scope. |
| # | You do | You should see | Element that changes copy · look · where |
What changes underneath | Must NOT happen | 🕓 Touchpoint history | 💡 UX critique + suggestion |
|---|---|---|---|---|---|---|---|
| 1 | The deal is won; delivery continues IN the same pipeline view — no separate handoff stage is created | The won deal's card keeps its approved-design link; delivery happens through the Studio review tool (no new "Dev handoff" column/task spawns) | Copy: "Megnyitás Studióban — jóváhagyott dizájn" stays on the card · Look: the SAME pipeline card, advanced to the won/delivery stage · Where: the single unified pipeline board | No studio_handoff stage or separate handoff task; the approved Studio project id stays bound to the deal; delivery is driven from Studio |
Must NOT create a separate dev-handoff pipeline state or a parallel task list; must NOT split delivery out of the pipeline view; must NOT link to an unapproved/older version | NEW ENTRY Type: Studio · icon: 🎯 · label: "Megnyerve — szállítás a Studióban" · description: "A deal megnyerve; a szállítás a ClientsFlow Studio review eszközben folytatódik (nincs külön handoff szakasz)" · timestamp: now · initiated_by: system |
Owner model (S11): the dev process is the Studio review tool — there is no separate handoff stage; pipeline management is unified into one view. |
| 2 | From Studio, the project is published live | The approved design is published to the web via the Cloudflare API (already built); the live URL is reflected back on the deal | Copy: chip/marker "🌐 Publikálva" + live URL · Look: published-state marker on the card · Where: card status + Details panel | Studio → Cloudflare publish (existing capability); resulting live URL stored on the deal and reflected in the pipeline | Must NOT require a manual out-of-band deploy; must NOT publish an unapproved version; must NOT lose the live URL on the deal record | NEW ENTRY Type: Studio · icon: 🌐 · label: "Publikálva (Cloudflare)" · description: "A jóváhagyott dizájn élesítve a Cloudflare API-n keresztül — {live_url}" · timestamp: now · initiated_by: operator |
Owner model (S11): publishing happens from Studio via the already-built Cloudflare API — the pipeline only reflects the published state + live URL, it does not re-implement publishing. |
| 3 | (Later) Dani is brought in to help with delivery | Dani opens the same pipeline view — no special handoff surface; he simply watches the pipeline stage he is responsible for | Copy: same board, same cards · Look: identical unified pipeline view · Where: the single shared pipeline board | Dani has access to the same pipeline (no separate handoff app/view); his focus is a known pipeline stage, not a bespoke handoff task | Must NOT build a second, Dani-only view or a parallel handoff board; must NOT fragment the pipeline into separate sales/delivery tools | No new touchpoint for Dani viewing the board. The won/published entries above remain the delivery record. | Owner model (S11): Dani shares the same single pipeline view and just knows which stage to watch — unified pipeline management, one source of truth. |
reschedule touchpoint (source=manual) (owner task / guardrail)| # | You do | You should see | Element that changes copy · look · where |
What changes underneath | Must NOT happen | 🕓 Touchpoint history | 💡 UX critique + suggestion |
|---|---|---|---|---|---|---|---|
| 1 | Mátyás drags / edits a booked meeting to a new date-time directly in Google Calendar | The deal's touchpoint history gains a reschedule entry recording the old → new time; the card reflects the updated meeting time | Copy: "Időpont áthelyezve: {régi} → {új}" · Look: 🔁 reschedule entry in the history panel; updated meeting time on the card · Where: deal touchpoint-history panel + card meeting-time field | Google Calendar change detected (existing gcal_watch); a reschedule touchpoint written with source=manual, old_time + new_time captured; deal's stored meeting time updated |
Must NOT silently change the meeting time with no history entry; must NOT label a manual move as a lead self-reschedule; must NOT create a duplicate booking touchpoint instead of a reschedule | NEW ENTRY Type: reschedule · icon: 🔁 · label: "Időpont áthelyezve (kézi)" · description: "A találkozó kézzel áthelyezve a Google Naptárban: {régi időpont} → {új időpont}" · timestamp: now · initiated_by/source: manual |
Owner requirement (added): a manual Google-Calendar reschedule MUST be logged as a reschedule touchpoint with source=manual in the touchpoint history — so the timeline never loses a manually-moved meeting and follow-up logic sees the real (new) time. |
source=manual). In-Studio micro-events (each section edit, each comment) belong to Studio's OWN history — the pipeline logs only the milestones, so the card's timeline stays scannable. System/auto entries render muted grey. Long bodies (e.g. the S6 call transcript + summary) live inside collapsible toggles on the history entry AND in the deal's 'Details' panel.