--- id: "deaf859e-f976-461c-a99c-8b0176e3b734" name: "SO-1024 flow E2E demo runbook" micro_summary: "Reusable SO-1024 proof runbook; UAT deployment and end-to-end validation are complete, with CLI and browser checks retained for repeat demos." status: "in_progress" see_also: [{"target": "bbcb2adc-4150-44f2-8128-3546a92bafaa", "reason": "UI half — the runbook uses this shadow-DOM form-fill skill to create each Case (direct-URL record type + Case Origin picklist)."}] scope: "Re-runnable playbook for proving the Case_Assign_Owner_Queue_by_Record_Type flow through independent sf CLI checks plus browser-visible evidence. UAT deployment and end-to-end validation are complete; retain this runbook for repeat demonstrations or future org retargeting." warnings: "UAT RE-RUN checklist: (1) re-query recordTypeIds (they drift on refresh) and set BASE to the UAT org URL + --target-org bto-onc-uat; (2) the demoable set differs per org — UAT LACKS the Clinical Reporting queue (would film as no-reassignment) and HAS EMR_Support; re-run the SOQL reality check; (3) cleanup is REQUIRED in UAT — create the test Cases, verify owners by SOQL, then `sf data delete record` them (do NOT leave test Cases behind as you can in a sandbox)." --- ## Method: CLI is truth, browser is proof The video is only trustworthy because the CLI independently confirms it. Two CLI checks bracket the recording: PRE (read the flow XML to confirm logic) and POST (SOQL that Owner actually became the queue). See child "sf CLI: verify flow logic + results". ## Steps 1. **Verify logic (CLI):** retrieve the flow, read the XML mappings/trigger/entry-filter. 2. **Reality check per org (SOQL):** which record types + queues exist. Demoable set is org-specific — see child "Demoable mappings are org-specific". 3. **Record (browser):** `browser-harness <<'PY' "$(cat ~/.config/browser-harness/agent-workspace/so1024_demo.py)" PY` — creates a Case per record type via the form-fill skill, screencasts each create->save->record-page, writes `/tmp/so1024_rec/manifest.json`. 4. **Encode:** `python3 agent-workspace/screencast_encode.py` — title cards + chapters + tightened timing -> `/tmp/so1024_demo.mp4`; prints mm:ss chapter/payoff report. 5. **Verify results (SOQL):** confirm `Owner.Type=Queue` and Owner name == mapped queue for the created Cases. ## Facts - org (proven): `bto-onc-jtbsandbox`; flow: `Case_Assign_Owner_Queue_by_Record_Type` (Active, after-save, Create-only). - Scripts (tracked, off /tmp): `agent-workspace/{so1024_demo.py, screencast_encode.py, sf_combo.js}`. - Artifact: `so1024_demo.mp4` = intro card + one step card per record type + embedded chapters. jtbsandbox run filmed CS, Phlebotomy, Billing, Clinical Reporting (all Owner->queue confirmed by SOQL). - To retarget an org: edit `BASE`, `MAPPINGS` (record type -> recordTypeId -> expected queue) in so1024_demo.py.