# Own the Stack: four workflows (draft, 14 October 2026)

Draft for Kimi's markup. Nothing here is built, switched on, or created in ClickUp. Built from the Command Center, the working doc, and the shared handoff file only. ClickUp, the portal, GoHighLevel, Stripe, and n8n were not opened.

**Key**
- **Auto**: runs by itself once switched on. **Manual**: a person does it. **Approve**: Kimi signs off.
- **Today**: ✅ live · 🟡 built but off, or draft only · ❌ missing
- **Roles**: Kimi (owner), Ops lead, Tech lead (infrastructure), Billing lead (payments, Triuni's lane), Builders (Claude and Codex).

**One ClickUp rule for all four:** each case gets one ClickUp task, created when the case starts. The task status moves with the portal status. The task links back to the portal record by client ID. The portal stays the record of truth, and ClickUp is where the team works the task.

---

## 1. Onboarding a manual client (no website signup)

Example: Carl Gray, Dr. Hall.

| # | Step | Mode | Who | ClickUp | Today |
|---|---|---|---|---|---|
| 1 | Client agrees to the service outside the website | Manual | Kimi | Task created: "Onboard [client]" in Onboarding, status **New** | ❌ no intake form |
| 2 | Create the portal client record and onboarding record | Manual, then Auto | Ops lead | → **Setup** | 🟡 `start_manual_onboarding` exists, run by hand |
| 3 | Send the $50/month payment link | Manual | Billing lead, after Kimi approves the email wording | → **Awaiting payment** | 🟡 Team-side preview only, sending is off |
| 4 | Payment recorded on the portal client (by client ID and invoice ID, never by email) | Auto | Stripe or GHL to the portal | → **Paid** | 🟡 Codex building, not proven |
| 5 | Portal sign-in sent (portal access only until paid) | Manual | Ops lead | n/a (same task) | 🟡 temporary passwords issued by Kimi |
| 6 | Workspace built, or an existing server added | Manual for hand-built, Auto for website-style | Tech lead | → **Building** | ✅ provisioner works, manual extras listed |
| 7 | Monitor, nightly backup, key escrow attached | Manual for hand-built | Tech lead | checklist item | 🟡 done by hand for Carl and Dr. Hall |
| 8 | n8n link and login given **after** payment | Manual | Ops lead | → **Live** | ❌ no step that checks payment first |
| 9 | Client connects their own tools in the portal (Nango) | Manual by the client | Client | checklist item | 🟡 Connect not yet proven end to end |
| 10 | First backup within 26 hours, onboarding closed | Auto check | Tech lead reviews | → **Done** | 🟡 `manual_onboarding_status` view shows each step |

Existing draft to build from: n8n "DRAFT - Own the Stack - Manual client checklist (not live)", 11 steps.

---

## 2. Support tickets (something is broken, or the client needs help)

Two kinds: a **request** the client opens, and an **incident** the monitors detect.

| # | Step | Mode | Who | ClickUp | Today |
|---|---|---|---|---|---|
| 1a | Client opens Get Help in the portal | Manual by the client | Client | Task created in Support, status **New** | ✅ ticket submission live |
| 1b | Monitor detects a failure (Uptime Kuma, backup age, portal checks) | Auto | n/a | Task created once per problem (repeats only raise the count) | 🟡 `incident-intake` built, switched off |
| 2 | Team is notified | Auto | n/a | ClickUp assignment is the notice | ✅ new requests email agency@ and help@ · method still open for incidents (not Resend, not email for Kuma) |
| 3 | Triage: priority set, assigned | Manual | Ops lead (requests), Tech lead (incidents) | → **Triaged**, assignee set | 🟡 priority field exists, no rules |
| 4 | Work the issue, with notes in the work record | Manual | Tech lead | → **In progress** | ✅ team Tickets page shows history |
| 5 | Client sees a plain status line in the portal | Auto from status | n/a | n/a | 🟡 client status mapping drafted |
| 6 | Resolved; incident closes; client told | Manual close, Auto status | Tech lead | → **Resolved** | 🟡 `resolve_incident` built |
| 7 | Daily review of anything open past its time target | Manual | Ops lead | ClickUp view: overdue | ❌ no time targets set |

**Monitoring split (Kimi, 14 Oct)**
- **Ops lead sees everything**, incidents included. Ops does not fix incidents but makes sure each one is getting handled.
- **Tech team** works the incidents: workspace health, backups, monitors, portal checks.

**Due dates (Kimi, 14 Oct)**
- Every tech ticket gets a due date when it's created: **one business day**, Monday to Friday.
- A ticket opened Friday evening or on the weekend is due by the end of Monday. *(Assumed from Kimi's dictation; confirm.)*

**Overnight AI prep (Kimi's idea, 14 Oct)**
- Tickets opened after hours get an AI review overnight: what's wrong and a proposed fix, written into the ticket for the team that comes in next.
- The AI only proposes. It changes nothing in a client's workspace. The team approves and applies the fix.
- Cost: each review is a Claude API call, a few cents per ticket. The exact cost depends on how long the ticket and logs are.

Existing pieces: `docs/TICKETS-AND-INCIDENTS.md`, the n8n draft "Customer request, tech ticket (not live)", and the team Tickets page.

---

## 3. Job requests (a client asks for new work)

The $50/month plan covers the workspace. Building workflows is quoted separately and only starts after the client approves the quote. There are no hour blocks and no prepaid balance.

| # | Step | Mode | Who | ClickUp | Today |
|---|---|---|---|---|---|
| 1 | Client submits a request in the portal ("Ask the implementation team") | Manual by the client | Client | Task created in Jobs, status **Submitted** | ✅ submission live |
| 2 | Scope: review the client's tools, setup, and what is being asked for | Manual | Tech lead | → **Scoping** | ❌ no checklist |
| 3 | Quote written and sent in the portal | Manual | Ops lead writes, Kimi approves the price | → **Quoted** | 🟡 quote path exists, still uses the old hours model |
| 4 | Client approves or declines in the portal | Manual by the client | Client | → **Approved** or **Declined** | 🟡 approval unblocked 13 Oct, not yet tested end to end |
| 5 | Invoice for the job, **paid upfront** (Kimi, 14 Oct) | Auto when approved | Billing lead | linked invoice task | ❌ missing |
| 6 | Build the job once paid; on hold if the client needs to act | Manual | Tech lead | → **In progress** / **On hold** | n/a |
| 7 | Delivered; client confirms | Manual | Tech lead, then client | → **Delivered** → **Completed** | 🟡 states drafted in `docs/TICKET-MODEL-REPLACEMENT.md` |

---

## 4. Invoicing

Two kinds of charge: the **$50 monthly subscription** and **quoted job work**.

| # | Step | Mode | Who | ClickUp | Today |
|---|---|---|---|---|---|
| 1 | Website buyer pays $50 on Stripe checkout | Auto | n/a | none (no team action needed) | ✅ live |
| 2 | Manual client sent a payment link (workflow 1, step 3) | Manual | Billing lead | Billing task **Sent** | 🟡 sending is off until Kimi approves the wording |
| 3 | Monthly renewal charged automatically | Auto | n/a | none unless it fails | ✅ Stripe subscription · real renewal not yet observed |
| 4 | Job invoice raised after the quote is approved | Auto (proposed) | Billing lead reviews | Billing task **Sent**, linked to the job | ❌ missing |
| 5 | Payment lands on the right portal client (by client ID and invoice ID) | Auto | n/a | → **Paid** | 🟡 Codex building, not proven |
| 6 | Receipt shows on the client's Billing page | Auto | n/a | n/a | 🟡 Codex building |
| 7 | Failed payment: tagged, client notified | Auto | Billing lead follows up | Billing task **Failed** | ✅ tag and notice live |
| 8 | Cancellation: marked in the portal, workspace closed at the end of the paid month | Auto mark, Manual close | Tech lead | Task in Offboarding | 🟡 offboarding draft off |

Billing is Codex's lane. Claude does not build here.

---

## Proposed automations (each needs its own typed approval)

| Automation | What it does | Expected cost |
|---|---|---|
| Portal to ClickUp: new task | New ticket, job, manual client, or invoice → one ClickUp task | Runs on the agency's n8n, so no per-run fee. ClickUp API calls are included in the current plan as far as the records show. Plan limits not checked. |
| Portal to ClickUp: status sync | Portal status change → task status | Same as above |
| Incident intake on | Monitors report failures as one incident, not a flood of alerts | No cost. Kuma must not use Resend or email. |
| Overdue check | Daily list of tickets past their time target | No cost on n8n |
| Due date on create | Tech tickets get a one-business-day due date in ClickUp | No cost |
| Agency OS notice | New or overdue ticket → notification in Agency OS | No cost; no email |
| Overnight AI prep | After-hours tech tickets get a diagnosis and proposed fix by morning, applied only by the team | Claude API, roughly a few cents per ticket |
| Job invoice on approval | Approved quote → invoice draft for Billing lead to send | Stripe fees on payment only. No auto-send. |

---

## Decided by Kimi, 14 October 2026

- All four workflows approved as the model, to be adjusted as they run.
- **ClickUp is where the work is sourced and handled.** The team doesn't keep up with email, so email isn't the channel.
- **Team notices go to Agency OS notifications** plus the ClickUp assignment.
- Ops lead sees everything, incidents included.
- Tech tickets are due in one business day.
- Job work is invoiced and paid upfront.
- Overnight AI prep for tech tickets: wanted, proposals only.

## Still open

1. **Notion's role:** a mirror of the ClickUp board for Kimi, or not used for tickets.
2. **ClickUp location:** which space or list the task types go in.
3. **Weekend tickets:** due end of Monday (assumed above).
4. **Job invoice route:** Stripe or GoHighLevel.
