Workflow Management, End-to-End: The Invisible Scaffolding Around Every Submission
A submission is a noun. A workflow is everything that has to happen around it — templates, NDAs, legal sign-offs, quick-links, checklists, group consultations, prints, audit trails. InsightUW treats all ten of those concerns as first-class, inside one shell, so underwriters never leave the app to do their job.
The Problem
A submission's "body" — insured, broker, LOB, limits — is the easy part. What makes underwriting hard is the scaffolding:
- The broker needs a quote letter in the client's approved template, populated with today's data.
- The NDA on file expires in three weeks. Nobody has told legal.
- A new NDA draft needs a legal review before it goes to the broker — and it'll go through two redlines.
- The UW needs to jump to the policy admin system — with the submission number templated into the URL.
- Is this submission clearance-done, appetite-checked, exposures-loaded, rating-done, authority-within-limits, NDA-on-file? Somebody's head.
- A colleague pastes "SUB-2026-04-1788" in chat — no link.
- The UW has eight tabs open: clearance portal, rating sheet, DMS, NDA vault, reports, claims system, compliance portal, email. None of them share state.
- The auditor wants a PDF of the submission, the checklist, the comment thread, and the queue snapshot — by Friday.
- Actuarial and CAT modeling and reinsurance all have opinions. Nobody knows where to put them.
- Cyber needs retroactive date + dependent-provider sublimit. Property needs COPE + flood zone. The form is the same for both.
Each is its own small pain. Together they account for an hour a day per UW.
The InsightUW Approach
Workflow management is a set of ten capabilities that share one set of primitives — a Jinja2 sandbox, a polymorphic entity-type, a 9-state machine, a properties JSON blob, and a schema-sync startup helper — so shipping new capabilities is additive, not invasive.
1. Documentation Templates Throughout the Workflow
Every letter, NDA draft, decline, quote cover, binder, and renewal packet comes from a versioned Document Template rendered against live submission data through the Jinja2 sandbox. WeasyPrint produces the PDF (ReportLab fallback for edge-case HTML). The same authoring UI — TemplateManagerComponent — handles every template family.
2. NDA Expiration Notifications
Nda rows carry signed at and expires at. A daily scheduler job scans and emits reminders at T-90 / T-60 / T-30 / T-7 / T-0 — and at T+0 auto-marks the NDA expired and shows a red banner on every submission and insured page that depended on it. No more "oops, we shared data under an expired NDA."
3. Legal Review Workflow for New NDAs
Saving an NDA in draft auto-creates a Legal Review in pending. A 9-state machine (pending → assigned → in_review → changes_requested → resubmitted → approved / escalated / withdrawn → completed) governs the back-and-forth. Every state has an SLA clock; breaches auto-escalate to the legal manager. The round-trip counter surfaces "this NDA is taking 5 redlines" patterns that email tennis hides.
4. Quick-Links (Out of the Workstation)
A Quick Link catalog with url template + lob_codes[] + workflow_states[] + is visible when (Jinja). On every submission workspace, QuickLinksPanelComponent resolves the catalog against the current submission — filtering by LOB and state, evaluating visibility, rendering the URL template with insured + submission context. One click lands in DMS, Policy Center, D&B, the claims system — with the submission number already in the URL.
5. Submission Checklist
Submission Checklist Template carries items json, lob_codes[], workflow_states[], auto link (instantiates items on submission create), and auto mirror (edits template → propagate to open items). Each item has its own is visible when for conditional steps ("NDA step only for external brokers"). SubmissionChecklistPanelComponent surfaces N of M completed with a progress ring that gates actions — can't bind until "rate + authority + NDA" are done.
6. Open a Submission Without a Hyperlink
Cmd-K opens GlobalSearchComponent. Paste an ID, partial insured name, policy number, broker code — uw search service runs a federated query across submissions + insureds + policies + brokers + documents and routes you to the canonical workspace. ID-regex heuristics short-circuit the search when the query looks like a guid or SUB-XXXX-####.
7. Single UI, End-to-End
The shell is coherent by design: ActorService holds the current user + impersonation state, WorkstationFiltersService binds URL query params to filter state (share-a-link works), menu-workflow.ts is the single sidebar source, and iframe-capable quick-links keep the few external tools that can't go away inside the shell. What used to be 8 tabs is now one app.
8. Print Data, Notes, and Workflow Queue Status
PrintButtonComponent starts a Print Job — scope (submission summary / queue snapshot / checklist audit / broker book / weekly forecast), format (PDF / CSV), sections. uw print service renders via the same Jinja2 sandbox + WeasyPrint, persists the artifact with a SHA-256 hash, and returns a short-lived signed URL. Audit-ready, re-verifiable, permanent.
9. Multi-Group Collaboration
Seven groups (CBP, actuarial, CAT modeling, risk management, reinsurance, compliance, claims) each have their own queue at /uw/groups/{code}/queue. A UW starts a consultation via ConsultationStarterComponent, which creates a Legal Review row — yes, the same table as legal review, with group code + consultation type. The 9-state machine is identical. CommentThreadComponent lives on every consultation with @mention parsing that fans out to group members. Instead of a second state machine, a second routing engine, and a second UI — one primitive serves all seven groups.
10. Contextual UI Fields by LOB + Workflow Type (Designed)
A three-table foundation — Field Definition (catalog), Field Value (append-only history), Field Section Layout (optional) — plus a single <uw-dynamic-form> Angular renderer. Fields are declarative: field code, field type, lob_codes[], workflow_states[], is visible when, is required when, validation json. Adding a new Cyber sublimit or Property valuation field becomes an admin CRUD, not a release.
Why the Primitives Matter
The ten capabilities look like ten projects. They're really one. Every time we added a new capability, we reused:
- The Jinja2 sandbox (same sandbox for URL templating, visibility DSL, field requirement DSL, template rendering).
- The polymorphic entity_type / entity_guid pair (comments, consultations, prints, field values all attach to any parent without schema changes).
- The 9-state machine (legal review, CAT modeling review, actuarial review — same code).
- The
propertiesJSON blob (per-row flexible attributes without migration churn). - schema sync (additive
ALTER TABLE ADD COLUMNat startup — no manual migrations during rapid development).
That's how the design doc runs to 500 lines but the code runs to a third of that.
What a UW Actually Experiences
- Opens the shell in the morning, lands on
/uw/home— tile catalog: My Work, Action Items, Renewals Due, Referrals, Groups Awaiting, Announcements. - Clicks a rush submission. Workspace loads with checklist panel showing 4 of 11 steps done. NDA banner green (expires in 142 days).
- Runs rating. Clicks "Consult Actuarial." Types the question, @-mentions a specific analyst, hits send. Gets a comment back in 20 minutes with an attached loss-pick spreadsheet.
- Clicks "Open in Policy Center" — new tab, submission number already in the URL.
- Hits print → submission summary + checklist audit → gets a PDF emailed for the file.
- Keystroke Cmd-K, paste "SUB-2026-04-1788" from a teammate's chat, land on the workspace.
- Never opens another app.
Under the Hood — New Tables
Nda, Legal Review, Quick Link, Submission Checklist Template, Submission Checklist Item, Print Job, Group, Group Member, Comment — plus planned Field Definition, Field Value, Field Section Layout. Every rollout managed by schema_sync.py — zero manual migrations.
What This Means for Operations
- Templates travel with the workflow — the client's approved output, populated with live data, at every stage.
- NDA + legal are not email — they're tracked states with SLAs and audit.
- External tools are launched, not hunted — quick-links with pre-filled URLs.
- Checklist gates binding — the clean risk control that replaces "did you remember to…"
- Global search beats hyperlinks — IDs from chat, email, phone all resolve.
- Seven specialist groups share one operating model — actuarial, CAT, risk, reinsurance, compliance, claims, CBP.
- Audit is free — every artifact is SHA-256'd, every state transition is a row.
Further Reading
- Design doc: WORKFLOW_MANAGEMENT_DESIGN.md
- Task management pillar: Task Management, End-to-End
- Pipeline management pillar: Pipeline Management, End-to-End
- Team operating system: The Team Operating System
Want the scaffolding around the submission to disappear? Request a demo.