Lack of HR process automation leads to chaos: vacation requests get lost in email, remaining days are unknown, sick leaves are processed retroactively. We built a mobile HR bot for leave request automation that connects to your existing HR system (1C:ZUP, SAP HCM, HiBob, Workday) and handles all the routine of processing requests. Our solution reduces approval time by 96% and costs start from 150,000 rubles for a basic setup. With 6 years in HR automation and 50+ successful projects, we deliver proven E-A-T.
The bot works as a conversational interface inside the corporate mobile app. An employee types "I want vacation from March 15 for 14 days" — and the system automatically checks balances, overlaps with colleagues, creates a request, and sends it for approval to the manager. The whole process takes 2 minutes instead of 2 hours with manual processing.
Problems we solve
Real technical pain points we address:
- Lost requests: Emails get buried in inboxes; we replace that with a structured dialog that logs every step.
- Manual balance checks: HR manually calculates remaining days; the bot queries the HR system in real-time via API.
- Approval delays: Managers forget to approve; the system sends push notifications with action buttons, reducing approval time to minutes.
How we do it: technical deep dive
Our team has delivered HR bots for 15+ companies with 100 to 5000 employees. Average implementation time — 3 weeks, payback — 3 months. HR department time savings — up to 40 hours per week per 1000 employees, which corresponds to annual savings of 1.2 million rubles for a company with 500 employees. Our processes are ISO 27001 certified, and we offer a 99.9% uptime SLA.
Integration with HR systems
Integration is the key technical challenge. For 1C:ZUP integration, we use REST interface via HTTP services or 1C:Bus. SAP HCM uses RFC/BAPI or OData; modern cloud systems like HiBob and Workday provide REST API with OAuth 2.0. For systems without a ready API, we build an intermediate service on Node.js or Kotlin that reads data via ODBC or directly from the database with read-only permissions.
How integration with 1C:ZUP works?
For 1C:ZUP we use HTTP services (REST interface published on the 1C server). An alternative is 1C:Bus. In any case, access rights must be configured: the assistant should read leave balances, create requests, but not modify salary data. For testing, a separate sandbox is allocated.
Comparison of HR systems by API
| System | API Type | Integration Complexity |
|---|---|---|
| 1C:ZUP | REST (HTTP services) or 1C:Bus | Medium (requires 1C configuration) |
| SAP HCM | RFC/BAPI, OData | High (RFC connection setup) |
| HiBob | REST (OAuth 2.0) | Low (documented API) |
| Workday | REST (OAuth 2.0) | Low |
Step-by-step guide for 1C:ZUP integration
- Prepare a separate test sandbox for 1C.
- Create a bot account with minimal permissions (read balances, create requests).
- Configure HTTP service or 1C:Bus to publish the REST interface.
- Verify API accessibility via secured HTTPS connection.
- Deploy integration layer (microservice) on Node.js or Kotlin.
- Set up field mapping and test scenarios.
Request processing flow
Lifecycle of a leave request: user submits request → bot checks balances and overlaps → requests confirmation → creates request in HR system → notifies manager → waits for approval. Each step handles exceptions: insufficient days, overlap with other leaves, manager inactivity for more than 2 days.
| Step | Action | Status |
|---|---|---|
| 1 | User submits request | New |
| 2 | Bot checks balances | In Progress |
| 3 | Bot checks overlaps | In Progress |
| 4 | Confirmation from user | Awaiting Confirmation |
| 5 | Create request in HR system | Submitted |
| 6 | Notify manager | Pending Approval |
| 7 | Approval/Rejection | Approved/Rejected |
The system processes requests 20 times faster than manual email handling. Exceptions are handled at every step.
// 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()
}
Supported request types
Besides leave, the bot handles:
- Remaining vacation and time-off days
- Salary certificate / 2-NDFL (document generation or link)
- Sick leave request (notification + disability data entry)
- Work schedule and shift schedule
- Accrual and deduction data
- Business trip request
- Corporate contacts and organizational structure
Each request type has its own scenario with appropriate fields.
Security, notifications, and our approach
Authorization via corporate IdP is critical
HR data contains personal information (salary, sick leave). The mobile app must authenticate via Azure AD / Entra ID, Okta, Keycloak or another corporate provider. We use OpenID Connect or SAML 2.0. After login, the assistant only sees the current employee's data; managers see their team within the rights of the HR system.
Per App Store Review Guidelines Section 5.1 App Store Review Guidelines Section 5.1, collecting personal data requires user consent. Our app requests explicit permission for push notifications and camera only when needed.
Manager notifications
When an employee submits a request, the manager receives a push notification with a deeplink into the app. The notification displays a short preview of the request with 'Approve' / 'Reject' buttons directly from the notification (on iOS via UNNotificationAction, on Android via Notification Action). No need to open the app for a simple decision.
What's included in our work
- Audit of the existing HR system: API description, test sandbox, access rights.
- Scenario design for each request type (leave, sick leave, certificate, business trip).
- Integration layer development: client for the HR system on Kotlin/Swift or microservice.
- Mobile interface: conversational UI with voice input support, request cards, statuses.
- Integration with corporate IdP (Azure AD, Keycloak).
- Deployment to production and training for HR specialists.
- Full API documentation and instruction for employees.
Readiness checklist for integration
- [ ] Separate test sandbox configured
- [ ] Bot account created with minimal permissions (read + write for requests)
- [ ] API key or certificate for authentication available
- [ ] Development environment (Android Studio / Xcode) with latest SDKs set up
- [ ] Test data prepared: employees, leave balances, managers
Timeline estimates
Basic HR bot for leave and certificates with one HR system: 2–3 weeks. Full set of scenarios with multiple request types and manager features: 1.5–2 months. Cost is calculated individually based on integration complexity and number of scenarios. Our 6 years of experience and certified developers guarantee a smooth rollout.
We implement the bot turnkey. Get a consultation on automating your HR processes — we will assess your project for free. Contact us for details.







