Skip to main content

Maintenance & Support

How Spyrl is kept healthy after launch and how clients get help. Incident severities are defined in backup and DR; this page maps support priorities onto them.

1. Support tiers​

TierWhoHandles
L0 Self-helpHelp centre, in-app guides, setup wizard tips, status pageHow-to questions, known issues, statutory change notes
L1 Support deskSupport specialists (HR/payroll-literate)Triage, how-to, configuration help, data fixes the tenant can do with guidance, routing
L2 Support engineeringSupport engineers with break-glass access (administration)Investigation in logs and traces, consented tenant sessions, import and connector problems, runbook execution
L3 EngineeringModule owners and on-callDefects, performance, incidents, data repairs that need code
Payroll SMEPayroll specialistStatutory interpretation, payroll variances, pack questions

Tenant admins are the first line for their own employees: employees ask their HR, and HR contacts Spyrl. Employee-originated tickets are redirected to the tenant's HR unless the issue is account access.

2. SLAs per plan​

Business hours are 09:00–19:00 IST, Monday–Saturday, excluding national holidays.

LiteStandardProfessionalEnterprise
ChannelsEmail, in-appEmail, in-app, chatEmail, in-app, chat, phone (business hours)All + named CSM + phone 24×7 for P1
CoverageBusiness hoursBusiness hoursBusiness hours; P1 24×724×7 for P1/P2
First response P18 business hours4 h1 h30 min
First response P21 business day8 business hours4 h2 h
First response P33 business days2 business days1 business day8 business hours
Target resolution or workaround P1Best effort1 business day8 h4 h
Uptime commitment99.5% target99.5% target99.5% target (99.9% in Stage B)99.9% contractual with service credits (requires Stage B, architecture §10.2)
Payroll window priority—Priority queue 25th–5thPriority queueDedicated contact
OnboardingSelf-serveSelf-serve or paid assistedAssisted includedImplementation project

Priorities

PriorityDefinitionMaps to
P1Production unusable for the tenant, payroll cannot be processed or paid on time, or suspected data exposureSEV1/SEV2
P2Major feature broken with no workaround (for example punches failing at one site, payslips not generated)SEV2/SEV3
P3Feature problem with a workaround; configuration question blocking a taskSEV3
P4How-to, cosmetic, feature requestSEV4 / product backlog

Service credits (Enterprise) are defined in the contract; a typical schedule is 5% of the monthly fee per 0.1% below the commitment, capped at 25% (proposal, commercial validation needed).

3. Ticket workflow​

  • Every ticket carries tenant, cell, plan, module code (ATT, PAY and so on), priority and the release version.
  • Tickets touching payroll get a payroll SME reviewer before resolution.
  • No sensitive data in tickets. Agents redact screenshots and spreadsheets attached by clients (PAN, bank, salary); the help desk auto-masks PAN- and Aadhaar-like patterns. Files needed for investigation go through the tenant's in-app secure upload, not ticket attachments.
  • Reopened tickets return to the same agent; three reopenings escalate to the support lead.

4. Known-error and runbook management​

ArtefactContentWhereOwner
Known-error recordSymptom, affected versions/tenants, root cause (if known), workaround, linked engineering issue, statusHelp desk knowledge base, internalSupport lead
Public known issuesCustomer-safe summary and workaroundHelp centre + status pageSupport lead
Operational runbooksOne per alert key (rb/...) and per procedure (restore, tenant move, deletion)docs/runbooks/ in the main repository, reviewed as codeEngineering on-call owners
Support playbooksCommon L1/L2 procedures (import errors, device mapping, SSO setup, reset MFA with identity check)Internal KBSupport engineering

Rules: a known error that generates more than 5 tickets in a month gets a product fix prioritised; a runbook used in an incident is reviewed in the postmortem; runbooks unused for 6 months are validated in a game-day or deleted.

5. Dependency update policy (Renovate)​

CategoryPolicy
Security updatesRenovate opens immediately; fix SLAs follow the security overview (critical 48 h, high 7 days)
Patch and minor (npm)Grouped weekly PR per area (backend, web, mobile, tooling); automerge for dev dependencies and patch versions when CI passes
Major versionsIndividual PRs, scheduled; one major framework upgrade per quarter at most (for example NestJS, React, Prisma, Expo SDK)
Expo SDKFollow each new SDK within 2 releases (Expo supports a limited window and stores raise target-API requirements yearly)
Node.jsRun an active LTS; upgrade within 6 months of a new LTS and before the current one reaches end of life
PostgreSQLMinor versions via RDS auto minor upgrade in the maintenance window; major version upgrade yearly at most, rehearsed on staging, outside the payroll window (blue/green deployment where available)
Base imagesRebuilt weekly even without code changes so OS patches land; pinned by digest
LockfilesCommitted; npm ci only; new dependencies need a short justification and a licence check (no AGPL in the server bundle without review)
Supply chainProvenance and signatures on images (cosign), SBOMs kept per release, typosquat checks on new packages

6. Deprecation policy​

SurfaceNoticeMechanism
Public API /v1 endpoints and webhook payload versions6 months (12 for Enterprise if contracted)Deprecation/Sunset headers, developer-portal notice, monthly email to clients still calling (upgrades)
Mobile app versions90-day support window; minimum version raised with 14 days' noticeIn-app soft banner, then 426
Product features3 months for features in active use; a migration path or export providedIn-app announcement, release notes, CSM outreach for affected tenants
Integrations / connectors3 months; 6 months for payroll-critical exports (bank, statutory formats remain until the portal or bank retires them)Connector health banner and email
Browser supportLast 2 versions of evergreen browsers; announced annuallyHelp centre
Feature flagsRemoved within 90 days of full rolloutTech-debt ticket auto-created

7. Documentation maintenance​

Docs-as-code. This site lives in website/ in the main repository and is built in CI; broken links fail the build.

ContentSource of truthRule
Canonical documents (summary, BRD, PRD, project plan, architecture, review, conventions, research)Root files in the repositoryMirrored into reference/ by website/scripts/sync-docs.mjs before every build. Never edit reference/ by hand. Docs pages link to them (for example architecture, PRD) instead of copying their content
Module specs, operations, security, quality pageswebsite/docs/*Updated in the same PR as the behaviour change; a PR template checkbox asks "docs updated?"
Permission matrixpackages/policy/permissions.tsCI check compares with the RBAC matrix
API referenceGenerated OpenAPI from packages/contractsNever hand-written (API overview)
Data dictionaryPrisma schema comments (classification and purpose)Generated (data model)
Runbooksdocs/runbooks/An alert cannot merge without its runbook
Decision logADR entries under architecture/A change to a canonical decision in CONVENTIONS §6 needs an ADR entry first

Owners follow CONVENTIONS §9: Product owns product/, features/, workflows/, roadmap/; Product + Eng own modules/; Eng owns architecture/, data/, api/, integrations/; Ops owns operations/; Security owns security/; QA owns quality/. A CODEOWNERS file enforces review by the owning group. Each page is reviewed at least once per release theme (R1–R4); pages untouched for 6 months are flagged in a quarterly docs review.

8. Tech-debt budget​

  • 15–20% of each sprint's capacity goes to tech debt, reliability and upgrades, rising to 30% when the error budget is under 25% (observability).
  • Debt is tracked as issues labelled tech-debt with a module code and an impact note (risk, toil hours, slowed delivery). The engineering lead ranks them monthly.
  • Automatic debt sources: flags past expiry, deprecated API usage by our own code, quarantined tests, Renovate major PRs older than 60 days, known errors with more than 5 tickets a month, manual steps found in DR drills.
  • One "hardening week" after each major release theme (R1–R4) is reserved for debt and documentation, never scheduled in a payroll window.

9. KPIs​

AreaKPITarget (initial)
SupportFirst-response SLA met95% per plan
SupportResolution SLA met (P1/P2)90%
SupportCSAT4.5 / 5 or better
SupportTickets per 100 active employees per monthFalling quarter over quarter; under 1.0 after hypercare
SupportSelf-service deflection (KB views resolving without a ticket)40%
ReliabilitySLO attainment per cellWithin targets in observability
ReliabilityChange failure rate (releases needing rollback or a hotfix)Under 10%
ReliabilityMTTR for SEV1/SEV2Under 1 h / 4 h
PayrollPayroll runs completed without a Spyrl-caused correction99.5%
DeliveryLead time from merge to production (wave 1)Under 7 days
MaintenanceCritical/high vulnerabilities past SLA0
MaintenanceDependencies more than one major version behindUnder 5
MaintenanceFlaky-test rate in CIUnder 1% of runs
DocsPages reviewed in the last release theme100% of operations, security and module pages
CustomerOnboarding time to go-live (assisted, Standard)2–4 weeks