SOWs that write themselves. Edits that stay.
A production platform that turns structured sales inputs into rule-driven project timelines and polished Word documents, without ever overwriting a reviewer's judgment.
- One browser app: company, scope, answers and signers captured once, saved as versioned drafts.
- 30+ codified rules: the same scope always produces the same timeline, ready for review.
- Constrained AI: natural-language commands, with every database change made by deterministic logic.
Meet our client
- Client
- PE-backed DevOps software company
- Industry
- Enterprise software, DevOps & configuration management
- Market
- Enterprise B2B
In a nutshell
The client's sales and delivery teams assembled every Statement of Work by hand. We built a browser-based SOW authoring and document-generation platform, orchestrated through eight n8n workflows, that saves versioned drafts, builds timelines from reusable content and 30+ business rules, preserves reviewed edits when scope changes, and renders the final Word document from the approved state.
Same scope. Different SOW. Every time.
Timelines lived in people's heads. Give the same scope to two estimators and you got two plans. Ask them again and watch it happen.
- Copy, paste, re-enter: reusable technical content and engagement details were copied between SOWs by hand.
- Timelines by judgment: two people could produce different delivery plans from the same scope.
- Fragile edits: a late scope change meant regenerating the timeline, and reviewer edits were lost.
- Content tied to formatting: layout and content were coupled, so every change risked the other.
Generate, review, then render. In that order.
Automation should raise consistency without removing judgment. So the platform splits generation from rendering, and the reviewed timeline becomes the source of truth. Step through one SOW.
- Enter it once: someone on the sales or delivery team fills in the company, SOW details, scope, technical answers and signers in the Form App, and saves a draft.
- Review the plan: the platform builds the timeline from the rules; a reviewer edits tasks, adds rows and reorders them, then saves it as approved.
- Change the scope: if scope changes after review, the platform removes only the generated rows owned by the dropped scope, adds the new scope before the closing phases, and keeps the reviewer's edits.
- Render the document: the Word file is built from the approved timeline, using the standard or Upgrade & Training template.
- Hand off to readiness: once the SOW is signed, its scope seeds the readiness checklist, one section per technology, to prepare the project for implementation.
Pick a scope. Watch 30+ rules build the timeline.
The real scope options from the Form App. Toggle them and the engine assembles delivery weeks, applying the codified rules you can see firing alongside.
Rule behaviour is real (BR-001 to BR-032). Technology hours are illustrative; in production they come from the Qdrant content catalog and approved overrides.
- Normalize first: scope is reduced to four canonical groups, aliases are resolved against the catalog, and duplicates removed.
- Content from Qdrant: technology blocks come from the sow_templates collection; rules, fixed blocks and hour overrides from PostgreSQL.
- Capacity-aware: a codified planning rule (BR-025) gives each timeline week a capacity of 40 hours; content that overflows creates continuation weeks.
- Fixed closing phases: Requirements opens when DevOps exists; Cutover, HyperCare and Project Wrap close, sized by DevOps count.
Change the scope. Keep the edits.
A reviewer has already edited this timeline. Now the customer drops OIC and adds Salesforce and Jira. Compare regenerating from scratch with the platform's ownership-aware reconciliation.
- The backend decides the delta: added, removed and unchanged scope are calculated from previous and current scope, never trusted from the browser.
- Rows know their owner: generated rows carry scope group, key, label and source week, so only removed scope's rows are removed.
- Human edits survive: mixed weeks with reviewer content are preserved; new scope is inserted before the fixed closing phases.
- Tidy finish: aggregates rebuild, zero-hour SCM rows merge into host weeks, and the sequence is renumbered.
Conversational, but never in control
Type a command, or pick one. Known commands skip the model entirely. Free-form ones go to Claude as a parser, and the answer is validated before anything changes. The model never touches the database.
{ }- Deterministic first: create, open and copy lifecycle commands are recognised by code and never sent to a model.
- A parser, not an agent: free-form text goes to an Anthropic model at temperature 0 with an allow-list of operations and a fixed output schema.
- Validated, then routed: unsupported operations are rejected; ordinary edits stay in the browser, lifecycle actions go to the database.
- Parameterized SQL only: every state-changing database action is built by workflow logic, never written by the model.
Layout lives in the template. Logic lives in the engine.
The approved state is rendered into version-controlled Word templates with Docxtemplater. Switch the engagement type and watch the template change while the timeline stays exactly the same.
- Independent failure modes: a formatting defect can't alter a correct timeline, and a timeline fix never needs a template change.
- Two document types: standard engagements and Upgrade & Training SOWs use separate templates; Upgrade is a protected branch, not a ninth workflow.
- Change layout without redeploying: templates are mounted into the n8n container from the host filesystem.
- Checked on every release: both document types are generated, opened and inspected for raw tags, missing tables and clipping.
From signed SOW to a ready project
The SOW's scope also seeds a readiness checklist portal. Consultants manage the checklist catalog from inside each technology section, and a tiered match makes sure Okta never resolves to Azure AD.
Removing a catalog item is a soft-disable. Future checklists stop seeing it; SOW sessions that already copied it keep their values.
- Scope in, checklist out: each technology in the SOW loads its own checklist section, with notes and values for up to three environments.
- Global vs per-SOW: catalog tables are shared; each SOW session keeps its own copied state and entered values.
- Strongest match first: section title, then technology label, then tool category, then main category, each tried across the whole catalog.
- Export ready: completed checklists export per technology, and the Services Copilot can update or export them by command.
Eight workflows. Three stores. One rollback away.
Responsibilities are split across eight n8n workflows instead of one monolith. Tap a workflow to see its job, or switch to the release path every production change follows.
- One owner per webhook: every production path has exactly one active workflow, so routing never collides.
- Change a copy first: edits happen on inactive workflow copies, tested against representative fixtures before promotion.
- Back up everything: PostgreSQL, Qdrant snapshots, templates and workflow JSON exports before every deployment.
- No secrets in exports: credentials are excluded from workflow exports and from all documentation.
Inside the platform
Real screens from the Form App, the generated Word document and the readiness portal. Customer and staff names are blurred.
Reproducible, reviewable, recoverable
A slow, judgment-heavy authoring process became a production workflow that standardizes delivery planning while keeping human judgment authoritative.
- An Admin Portal: an authenticated portal to manage technologies, aliases, hours, questions, fixed blocks and rules.
- Catalog-driven forms: scope options and questions rendered from the catalog instead of hard-coded in the Form App.
- Validate, publish, roll back: every configuration change previewed, regression-checked and reversible.
- Source document management: versioned ingestion and publishing of reusable Qdrant content.
Automate the document. Keep the expertise.
Rule-driven generation, human review that sticks, and AI kept inside safe boundaries.
- 01Your business objective
- 02The technical context
- 03The right next step