Final handoff document — all open questions resolved. Ready for development.
The following term replacements must be applied across all project files — HTML, Markdown, schemas, code comments, and any new deliverables going forward.
| Old Term | Northwoods Term | Abbreviation |
|---|---|---|
| Project Manager, Account Manager, PM, AM | Account Director | AD |
| Sales team, salesperson, sales rep | Business Development Manager | BDM |
portal/dashboard.html — line 908: “Account Manager” → “Account Director”nws-360_team_branded.html — line 730: “Account Manager” → “Account Director”; line 733: “Project Manager” → “Account Director” (these are the same role at Northwoods)estimating.md — line 145: replace “Account Manager” and “Project Manager” with “Account Director (AD)”The internal AD portal (VPN-only, no separate auth) tracks two things per client per month: a deliverable checklist and hours spent. Data entered here syncs to what the client sees in their portal.
| Field | Type | Notes |
|---|---|---|
clientId | string | FK to client record |
month | string (YYYY-MM) | Billing period |
adId | string | Assigned Account Director |
hoursAllocated | number | Contracted hours for the month (30–40) |
hoursUsed | number | Hours consumed to date |
deliverables[] | array | See Deliverable record below |
syncedToClientPortal | boolean | Whether this data is visible to the client |
| Field | Type | Notes |
|---|---|---|
id | string | Unique deliverable ID |
title | string | e.g., “Monthly SEO Health Check” |
service | string | Service area: seo, accessibility, cmp, etc. |
status | enum | pending | in_progress | complete |
completedBy | enum | human | agent | both |
completedByName | string? | Optional — name of human or agent identifier |
hoursLogged | number | Hours charged against this deliverable |
dueDate | string (ISO date)? | Optional — if deliverable has a fixed due date |
completedDate | string (ISO date)? | Null until status is complete |
completedBy field supports human, agent, or both — reflecting that any given deliverable may be completed by a person, an automated agent, or a collaboration of both. This answers OQ-E.
email field for magic link delivery. Auth token table is standard — token, expiry, clientId.portal/dashboard.html): Magic link auth, client-facing, shows synced data from AD portal. Exists today as a prototype.Goal: Close and serve the first NWS-360 client without any portal dependency.
Goal: Give ADs a tool to track deliverables and hours per client. VPN-only.
completedBy (human / agent / both)Goal: Clients log in and see their dashboard, fed by AD portal data.
portal/dashboard.html; wire it to real data from AD portalGoal: Public-facing free scan tool that feeds prospects into the sales pipeline.
| ID | Question | Answer | Build Impact |
|---|---|---|---|
| OQ-A | AD Portal scope | Tracks deliverable checklist + hours per client per month. Users are ADs. VPN-only access. Syncs to client portal. | New schema (Section 2a). New internal UI (Phase 2). |
| OQ-B | Client Portal auth | Magic link. Does not block first sale. | Auth is Phase 3 work. First client gets PDF + call. |
| OQ-C | Baseline assessment delivery | Humans deliver (AD + SMEs). Client gets call + PDF. Agent assists internally. | Need PDF export from agent output. No client-facing baseline UI in v1. |
| OQ-D | Skill sheet ownership | Patrick assigns owners. Soft blocker — BDMs need them for sales conversations. | Phase 1 priority. Use CMP service page as template. |
| OQ-E | Agent vs. human task completion | Mix of both. Either or both can be credited. | completedBy field: human | agent | both |