Skip to main content
itzseo
Agency operations

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.

Concepts

4 building blocks.

Engagement

A billable client contract. Monthly retainer, one-time audit, hybrid. Has status, financials, deliverables.

Cycle

A recurring engagement spawns one cycle per period (typically month). Each cycle has its own milestone progress.

Milestone

A deliverable within a cycle. ‘Publish 10 articles’, ‘Reach 200 backlinks’. Tracked individually.

Schedule

The payment plan attached to an engagement. Multiple installments, mark-paid per installment, audit trail.

Capabilities

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.

FAQ

Engagements questions.

Does this generate invoices for me?
Not in v1. ItzSEO tracks payment schedules + mark-paid, but doesn't generate PDF invoices yet. Hand off to QuickBooks / Razorpay / Xero / your accountant. PDF invoice generation is on the roadmap behind a feature flag.
What if I have a one-time engagement?
Set the engagement type to ONE_TIME. No cycles spawn. Single payment schedule. Single milestone list. Mark complete when delivered.
Can clients see their engagement status?
Yes, via /projects/[id]/portal/engagements (if the project's clientShowPerformance toggle is on). Read-only — they see status, cycles, deliverables, payment schedule. They can't mark anything done.
How does the renewable assets alert work?
Daily cron runs /api/cron/renewals. For each RenewableAsset with expiration ≤ 30/60/90 days, fires an email to the owner. The list is at /projects/[id]/assets. Useful for catching domain renewals before they lapse.
Can I import existing engagement history from another tool?
CSV import is on the roadmap. For now, recreate engagements manually. Migration support available on the Agency tier — reach out to Slack.

Client engagements. Tracked.

14-day trial.