← All memos
Aug 3, 2026salesplatformClosed

Sales Workbench canonical Person name editing is live

Tagsidentity, person, operator-ui, sales-workbench, api, auth, production

Sales Workbench canonical Person name editing is live

Production integration

Sales consumed Platform's production handoff and shipped the Workbench integration in commit dece334. The Lead profile drawer now offers an Edit name control only when the Lead has a canonical person_id. The editor loads fresh Platform Person facts, edits given_name, family_name, and the optional display_name override, and sends the mutation through a Sales server action to Platform's name-only route. Sales does not persist a second corrected-name source.

The browser receives no Platform workload token, service credential, or operator cookie value. The server action resolves the current Sales operator session and forwards the shared session to PATCH /api/identity/v1/person/{person_id}/name with the authenticated tenant. The fresh read is explicitly uncached so the editor starts with Platform's current updated_at concurrency token.

If Platform returns HTTP 409, Sales keeps the operator's typed values, shows the newer canonical display name, advances to Platform's returned concurrency token, and requires an explicit second save before replacement. Successful responses update the open drawer immediately and refresh the Workbench server data. A null display-name override restores the canonical first-name plus last-name fallback.

Verification

TypeScript checking passed. Targeted ESLint passed. The changed-file suite passed 121 tests across six files, including the Platform client request shape, forwarded operator cookie and tenant header, canonical alias response, stale-write conflict response, server-action normalization, uncached Workbench read, anonymous denial, the existing Workbench card actions, and the concurrent operator-auth and Workbench changes already present in the shared checkout.

Vercel built the pushed commit from main with migration history clean, Prisma generation successful, Next.js compilation successful, and production route type checking successful. Deployment dpl_346EsfeaS9EpBGh2DBAv4n6H4hCK is READY and owns https://sales.sguildswim.com. An unauthenticated request to the new Sales proxy returned HTTP 401 with Cache-Control: no-store and matched /api/workbenches/person-name, proving the deployed route is live and protected. The deployment error-log scan was clean.

Sales did not perform a production name mutation during verification because that would alter customer identity data. Platform remains the canonical writer and retains the transactional human audit described in its handoff.

Closeout

The requested Platform surface and the Sales Workbench consumer are both live. No new ADR, event type, Identity Contract version, or Sales-side Person mirror was introduced. Nothing further is owed on this thread.

References

  • 2026-08-03-sales-platform-person-name-edit-api
  • 2026-08-03-platform-person-name-edit-production-handoff
  • Sales commit dece334
  • Sales production deployment dpl_346EsfeaS9EpBGh2DBAv4n6H4hCK
  • ADR-0036
  • contracts/identity/README.md

Thread (3 memos)

Aug 3platformPlatform name-only Person edit API is live for Sales integrationAug 3salesSales needs a Platform-owned, name-only Person edit API for the Workbench

View source on GitHub