Skip to main content

Hire to retire

Modules EMP, IAM, ORG, ATT, LVE, PAY, LMS, ENG, EXT · Release R1 (separation and F&F in R2) · Specs Core HR, Identity & Access, Exit

Context​

In the reference product the hire flow is: HR adds a new hire, the candidate fills a self-onboarding link, HR completes joining formalities and checklists, then the admin is emailed to create credentials manually with a default password [Observed] (see Spryple analysis §4.3 and §21.2). Spyrl keeps the self-onboarding and checklists, removes the manual credential step, and adds effective-dated job history, probation confirmation and a closed loop to exit.

Diagram​

Steps​

#ActorActionSystem responseModuleNotifications
1hr_managerCreates the new hire (name, hired-on, joining date, designation, location, mobile)Employee in Hired; ID reserved from the location's sequence at JoinedEMP, ORG—
2SystemSends the pre-boarding linkSingle-use token, 7-day expiry, OTP to mobileEMP, NTFSMS and email to candidate
3CandidateCompletes sections, uploads documents, gives consentStatus PendingJoin; documents Submitted; consent recordedEMPIn-app task to HR
4hr_managerReviews documents and joining formalities; assigns job (department, designation, manager, grade, employment type)First emp_job_assignment row from joining date; onboarding checklist tasks created with ownersEMPEmail on document approval or rejection
5hr_managerMarks Joined (on or after joining date)Employee code assigned; status Joined or OnProbation; emp.employee.joinedEMPWelcome post (ENG, R2)
6SystemCreates the user and invitesUser Invited; invite link 72 hIAMEmail or SMS invite
7EmployeeActivates, sets password or uses SSO, enrols MFA if required, registers deviceUser Active; device recorded or pending approvalIAM, MOBDevice approval task to manager when required
8payroll_managerAssigns compensation (CTC and structure) and statutory details (UAN, ESIC)Effective-dated compensation; breakup previewPAY—
9line_manager or hr_managerAssigns shift and week-off (or the policy default applies)Day computation starts from joining dateATT—
10SystemPro-rata leave accrual; mandatory course enrolment (R4)Ledger entries PRORATA_ACCRUAL; enrolmentsLVE, LMSBalance visible in app
11Task ownersComplete onboarding checklist itemsChecklist Completed when all items done; emp.onboarding.completedEMPReminders for overdue items
12SystemConfirmation due reminderConfirmation request to manager then HREMP, NTFPush and email to manager
13line_manager, hr_managerConfirm or extend probationConfirmed with letter, or new due dateEMPEmployee notified; letter in profile
14hr_managerRecords transfer, promotion or manager change with effective dateNew job assignment row; emp.job.changed; PAY suggests structure reviewEMP, ATT, LVE, PAYEmployee and new manager notified
15Employee or hr_managerSeparation beginsSee separation and F&FEXT—
16SystemLast working day passesUser deactivated at 23:59 local time; status SeparatedIAM, EMPRead-only ESS access notice

Exception paths​

SituationHandling
Pre-boarding link expiresHR resends; status returns to Hired; the old token is invalid
Candidate does not joinHR marks Withdrawn with reason; reserved records are released, no employee code is consumed
Document rejectedCandidate or employee re-uploads; loop repeats; required documents block Joined only when the policy says so
Joining date movesHR edits before Joined; after Joined the change is a correction with audit and day recompute
Duplicate person (same PAN or mobile)Creation blocked with a link to the existing record (possible rehire)
No compensation at first payroll runValidation blocks the employee in the run; payroll manager is notified
Manager missing or in a reporting cycleJob change rejected; fallback approver used for requests until fixed
Backdated transfer into a locked periodAllowed; ATT and LVE recompute open periods only; PAY creates arrears if pay changes
Employee without email or smartphoneInvite by SMS; kiosk punching; payslip via SMS link or printed
Bank change after joiningChange request with HR approval; takes effect for the next unlocked run