Tenant lifecycle
Modules PLT, IAM, ORG, EMP, ATT, LVE, PAY, NTF · Release R0 to R1 · Specs Platform, Organization, architecture sections 9 and 14
Context
The reference product offers a self-serve trial and relies on an implementation team for templates such as the attendance Excel [Observed] (see Spryple analysis §3.2 and §21.1). Spyrl automates provisioning, guides set-up with a readiness score, validates imports with dry-runs, and requires a parallel payroll run before go-live.
Diagram
Steps
| # | Actor | Action | System response | Module | Notifications |
|---|---|---|---|---|---|
| 1 | Prospect | Signs up: company, owner, mobile OTP, slug and company code, plan, optional sample data | Slug and code validated; tenant Provisioning | PLT | — |
| 2 | System | Provisions | Cell placement; tenant rows and seed data (roles, leave templates, components, default structure, statutory pack); owner invite; plt.tenant.provisioned; tenant Trial | PLT, IAM, ORG, LVE, PAY | Welcome email with activation link |
| 3 | org_owner | Activates, enrols MFA | Owner Active | IAM | — |
| 4 | org_owner | Setup wizard: company and legal entities, locations with fences and ID sequences, departments and designations, holiday calendar | Readiness checks update | ORG | — |
| 5 | hr_admin, finance_admin | Policies: attendance, leave types and policies, lifecycle, payroll schedule, components and structures, statutory registrations, workflows | Defaults from templates; policy previews | ATT, LVE, EMP, PAY, NTF | — |
| 6 | hr_admin | Imports employees, job data, bank and statutory IDs (dry-run, fix, commit) | Employees created; invites queued or held until go-live | EMP | — |
| 7 | hr_admin, payroll_manager | Imports opening leave balances, compensation and YTD payroll figures | OPENING ledger entries; compensation records; YTD for TDS | LVE, PAY | — |
| 8 | hr_admin | Maps biometric devices or enables mobile punching; invites a pilot group | Days computed for the pilot | ATT, IAM | Invites to pilot employees |
| 9 | payroll_manager | Runs a parallel payroll for one month against the legacy payroll | Run calculated (not paid); variance report vs imported legacy figures | PAY | — |
| 10 | org_owner | Reviews the go-live checklist (readiness score, parallel run variance, statutory codes, bank file test) | Go-live date set | ORG, PAY | — |
| 11 | org_owner | Pays the first invoice or signs the contract | Tenant Active; metering starts; plt.tenant.activated | PLT | Invoice email |
| 12 | System | Sends invites to all employees on go-live day | Users activate | IAM | Email or SMS invites |
| 13 | System | Monthly billing | PEPM on peak active employees; invoice with GST | PLT | Invoice email |
| 14 | org_owner | Renews, changes plan or buys add-ons | Entitlements updated; plt.entitlements.changed | PLT | — |
| 15 | org_owner | Cancels (or non-payment runs out) | Churned; export window opens; full export (CSV, JSON, documents) available | PLT | Export ready email |
| 16 | System | Export window ends | Data deleted from the cell; backups age out; deletion certificate issued; plt.tenant.deleted | PLT | Certificate email |
Exception paths
| Situation | Handling |
|---|---|
| Provisioning step fails | Job retries from the failed step; platform alert after N failures; tenant sees "setting up" status |
| Slug or company code taken | Suggestions offered; reserved words blocked |
| Trial ends before go-live | Trial extension by platform_admin; otherwise Expired with a grace period before deletion |
| Import has errors | Dry-run error file; nothing committed until clean; commits are idempotent per employee code |
| Parallel run variance too high | Analyse by component; fix structures or imported YTD; rerun; go-live waits |
| Payment fails | PastDue with a 7-day grace and banner; then Suspended (read-only, payroll export allowed); never blocked in the payroll window without senior approval |
| Enterprise needs isolation | Dedicated cell provisioned; same steps; target under one day |
| Owner leaves the company | Another org_owner takes over; if none exists, verified ownership transfer through support |
| Support needs access during set-up | Break-glass grant with owner consent; visible in the tenant's access log |