HR Assistant Bot for Leave Requests and Applications in Mobile Applications
An HR bot takes on routine work that consumes HR specialists' time: leave requests, remaining days verification, sick leave, documents. For employees, it replaces emails and calls to HR. Technically — integration with an HR system through a mobile dialog interface.
Integration with HR Systems
Main systems in the CIS market: 1C:ZUP (payroll and personnel management), SAP HCM, HiBob, Workday, Bamboo HR. Each has its own API with varying documentation quality.
1C:ZUP is most commonly integrated via HTTP services (REST interface published on 1C server) or through 1C:Bus. For SAP — RFC/BAPI or OData API. Workday/HiBob — modern REST with OAuth 2.0.
For systems without ready-made API (old 1C versions, custom HR systems) — intermediate service that reads data via ODBC or directly from database with read-only rights.
Leave Request Lifecycle
The dialog scenario is simpler than it seems, but each step requires validation:
1. User: "I want leave from March 15 for 14 days"
2. Bot: checks remaining days (API) → 14 days available
3. Bot: checks overlaps with colleagues (optional) → no conflicts
4. Bot: shows card with dates for confirmation
5. User: confirms
6. Bot: creates request in HR system → status "Pending Approval"
7. Bot: notifies manager (push/email)
8. Manager: approves/rejects
9. Bot: notifies employee of decision
At each step — exception handling: what if insufficient days remaining, period conflicts with another vacation, manager doesn't respond in 2 days.
// Android ViewModel for managing request state
sealed class LeaveRequestState {
object Idle : LeaveRequestState()
data class CollectingDates(val startDate: LocalDate?, val endDate: LocalDate?) : LeaveRequestState()
data class AwaitingConfirmation(val request: LeaveRequestDraft) : LeaveRequestState()
data class Submitted(val requestId: String) : LeaveRequestState()
data class Error(val message: String) : LeaveRequestState()
}
Types of Requests the HR Bot Should Handle
Beyond vacations — complete list of typical requests:
- Remaining vacation days and comp days
- Salary statement / tax form (document generation or link)
- Sick leave request (notification + sick leave data entry)
- Work schedule and shift schedule
- Payroll and deduction data
- Business trip request
- Corporate contacts and organizational structure
For each request type — separate scenario with corresponding fields.
Security and Authorization
HR data is sensitive. Mobile application must be authenticated via corporate IdP: Azure AD / Entra ID, Okta, Keycloak. SSO via SAML 2.0 or OpenID Connect.
The bot sees data only for the current employee, cannot request information about another. Exception — managers: they see their team's data within their HR system rights.
Logging all bot actions is mandatory. Audit: who, when, what request was created.
Manager Notifications
When an employee submits a request, the manager receives a push notification with deeplink to the app. In the app — brief request preview, "Approve" / "Reject" buttons directly from notification (on iOS via UNNotificationAction, on Android via Notification Action). No need to open the app for a simple decision.
Implementation Process
Audit HR system: API capabilities, access rights, test environment.
Design scenarios for each request type.
Develop integration layer (API client for HR system).
Mobile client: dialog UI, request cards, statuses.
IdP integration for authentication.
Timeline Estimates
HR bot for basic requests (leave + statements) with one HR system — 2–3 weeks. Full set of scenarios, multiple request types, manager functions — 1.5–2 months.







