Every client engagement.
Kickoff to invoice.
Track engagements as billable contracts. Recurring engagements spawn monthly cycles automatically. Milestones tracked per cycle. Payment schedules + mark-paid flow. Renewable assets (domains, hosting, SSL) tracked with expiration alerts.
4 building blocks.
A billable client contract. Monthly retainer, one-time audit, hybrid. Has status, financials, deliverables.
A recurring engagement spawns one cycle per period (typically month). Each cycle has its own milestone progress.
A deliverable within a cycle. ‘Publish 10 articles’, ‘Reach 200 backlinks’. Tracked individually.
The payment plan attached to an engagement. Multiple installments, mark-paid per installment, audit trail.
What you can do.
Create + edit engagement
Pencil-edit modals on /projects/[id]/engagements/[id] (Phase 22.13). Pop in financials, deliverables, dates. Cancel/Complete actions are two-click confirm.
Recurring cycles
Set a recurrence (monthly/quarterly). EngagementCycle rows auto-spawn at the start of each period. Each cycle tracks its own milestone progress + invoice.
Milestones + deliverables
Per-cycle milestone list. Mark done in-line. Roll up to engagement-level completion percentage. Visible to client via portal (if toggle on).
Payment schedules
Multiple installments per engagement. POST /api/schedules/[id]/mark-paid logs the payment with amount + date + method. Stays linked to cycle for audit.
Renewable assets
Track domains, hosting, SSL certs, API keys. Each has an expiration date. /api/cron/renewals fires monthly to flag assets expiring in 30/60/90 days.
Client portal visibility
Per-engagement visibility toggles. Client sees engagement status + cycles + payment schedule. You control how much. White-label option on Agency tier.