Zoho

Zoho People and Slack Integration: Leave Alerts, Birthday Notifications, and HR Self-Service

Aaxonix Team Aaxonix Team · Apr 27, 2026 · 14 min read #Employee Notifications #HR Automation #Leave Management
Zoho People and Slack Integration: Leave Alerts, Birthday Notifications, and HR Self-Service

HR teams that split their day between Zoho People and Slack know the friction: a leave request sits in the Zoho People inbox for hours because the approver is heads-down in Slack, birthday reminders go unnoticed in email, and employees message HR directly for leave balance queries that could be self-served. A proper Zoho People Slack integration eliminates that friction by pushing the right HR events into the channels where your team already works, and letting employees pull their own data through slash commands. This guide walks through the full implementation: Zoho Flow configurations for push notifications, Zoho People API setup for self-service queries, notification templates, and testing procedures you can follow step by step.

Why Connect Zoho People with Slack

Zoho People handles leave management, attendance tracking, employee onboarding, and performance reviews. Slack is where most distributed teams spend their working hours. When these two systems operate independently, HR events create response delays that compound across the organisation.

Consider the numbers. A mid-size company with 150 employees generates roughly 40 to 60 leave requests per month. If each request notification sits unread in a Zoho People email for even 2 hours, that is 80 to 120 hours of cumulative wait time monthly. Slack notifications cut that delay to minutes because managers see the request in the channel they already have open.

The integration covers three categories of HR communication:

The combination of push notifications (Zoho Flow to Slack) and pull queries (Slack slash command to Zoho People API) covers the full spectrum of day-to-day HR communication without employees ever leaving their messaging app.

Zoho People Slack Integration Architecture

Before building, understand how the pieces connect. The integration uses two distinct pathways:

Push Path: Zoho Flow

Zoho Flow acts as the automation layer. It listens for trigger events in Zoho People (a new leave request, an approved leave, a birthday match) and executes an action in Slack (post a message to a channel, send a direct message). No custom code is needed for this path. Zoho Flow provides pre-built connectors for both Zoho People and Slack, and you configure the trigger-action pairs through a visual builder.

Pull Path: Slack Slash Command + Zoho People API

For self-service, you create a Slack slash command (e.g., /leavebalance) that calls a lightweight middleware endpoint. That endpoint authenticates against the Zoho People API using OAuth 2.0, fetches the requesting employee’s leave data, and returns a formatted response to Slack. This path requires a small backend component, which can run on Zoho Catalyst, AWS Lambda, Google Cloud Functions, or any serverless platform.

ComponentRoleAuthentication
Zoho PeopleSource of HR data (leaves, attendance, employee records)OAuth 2.0 (Zoho accounts)
Zoho FlowEvent-driven automation, push notificationsConnected via Zoho account (single sign-on)
Slack WorkspaceNotification delivery, slash command interfaceSlack App (Bot Token)
Middleware (optional)Handles slash command requests, calls Zoho People APISlack verification + Zoho OAuth

Setting Up Zoho Flow for Leave Approval Notifications

This is the highest-value automation. Every leave request triggers a Slack notification to the approving manager, and every approval or rejection triggers a confirmation back to the employee.

Step 1: Create the Zoho Flow Connection

  1. Log in to Zoho Flow
  2. Click Create Flow and name it “Leave Request to Slack”
  3. Select Zoho People as the trigger app
  4. Choose the trigger event: Leave Request Created (this fires when any employee submits a new leave request)
  5. Authenticate with your Zoho People organisation if not already connected

Step 2: Configure the Slack Action

  1. Add Slack as the action app
  2. Select Send Channel Message as the action
  3. Connect your Slack workspace by authorising the Zoho Flow Slack app
  4. Choose the target channel (e.g., #hr-leave-requests or the manager’s direct message)
  5. Build the message template using Zoho People field variables

Step 3: Message Template for Leave Requests

Use this template structure for clear, actionable notifications:

New Leave Request | {Employee Name} | {Leave Type}
From: {Start Date} To: {End Date} ({Number of Days} days)
Reason: {Reason}
Action needed: Approve or reject in Zoho People

Map each placeholder to the corresponding Zoho People trigger field. Zoho Flow shows all available fields from the leave request form, including employee name, department, leave type, date range, and reason.

Step 4: Add Conditional Logic (Optional)

Use Zoho Flow’s Decision node to route notifications differently based on leave duration or type. For example, route leave requests of 3 or more days to a senior manager channel, while shorter requests go to the direct manager only. You can also filter by leave type: sick leave notifications might go to HR directly, while casual leave goes to the team lead.

Step 5: Create the Approval Confirmation Flow

Create a second flow with the trigger Leave Request Approved (or Rejected). This sends a Slack DM to the employee confirming the outcome:

Your {Leave Type} request for {Start Date} to {End Date} has been {Status}.
Approved by: {Approver Name}

Test both flows by submitting a test leave request in Zoho People and verifying the Slack messages arrive in the correct channels.

Birthday and Anniversary Notifications via Zoho Flow

Employee milestones are easy to automate but often overlooked. Zoho People stores date of birth and joining date for every employee. Zoho Flow can check these dates daily and push notifications to a designated Slack channel.

Configuring the Birthday Flow

  1. In Zoho Flow, create a new flow with a Schedule trigger set to run daily at 9:00 AM (or your preferred time)
  2. Add a Zoho People action: Fetch Records from the Employee form
  3. Use a Date Filter to match employees whose date of birth matches today’s month and day
  4. For each matching employee, add a Slack Send Channel Message action to your #celebrations or #general channel

The notification template for birthdays:

Happy Birthday, {Employee Name}! Wishing you a great day from the entire team.

For work anniversaries, follow the same pattern but filter on the joining date field. Include the number of years to add context:

{Employee Name} completes {Years} years with us today. Congratulations!

These notifications take under 10 minutes to set up and run without any maintenance once configured. They contribute to employee engagement without requiring HR to manually track dates and send messages.

Attendance Summary Notifications

For teams that track attendance through Zoho People, daily or weekly attendance summaries posted to Slack give managers visibility without logging into a separate dashboard.

Daily Check-in/Check-out Summary

Create a Zoho Flow with a schedule trigger at end of business (e.g., 6:00 PM). Fetch attendance records for the day from Zoho People, aggregate the data, and post a summary to the team’s Slack channel:

Attendance Summary | {Date}
Present: {Count} | Absent: {Count} | On Leave: {Count} | Late Arrivals: {Count}

Weekly Attendance Report

A Friday afternoon summary gives managers the weekly picture. Fetch records for Monday through Friday, calculate totals per employee, and format a table-style message. Slack supports basic formatting with code blocks and tables, which works well for structured data.

For larger organisations (200+ employees), posting individual attendance records would create noise. Instead, post aggregate numbers to the manager channel and use a Slack thread or a link back to the Zoho People attendance dashboard for details.

Building the Slack Slash Command for Leave Balance

This is the pull-based self-service component. Employees type /leavebalance in Slack and get their current leave balance without contacting HR or logging into Zoho People.

Step 1: Register a Zoho People API Client

  1. Go to Zoho API Console
  2. Create a Self Client application
  3. Note the Client ID and Client Secret
  4. Generate a refresh token with the scope ZOHOPEOPLE.leave.READ
  5. Store the refresh token securely in your middleware’s environment variables

Step 2: Create a Slack App with Slash Command

  1. Go to Slack API Apps page and create a new app for your workspace
  2. Under Slash Commands, create /leavebalance
  3. Set the Request URL to your middleware endpoint (e.g., https://your-function.zoho.com/leavebalance)
  4. Install the app to your workspace and note the Bot Token and Signing Secret

Step 3: Middleware Logic

The middleware receives the slash command request from Slack, identifies the employee by their Slack email (which must match the Zoho People employee email), calls the Zoho People Leave API, and returns the formatted balance. Here is the logic flow:

  1. Verify the Slack request signature using the Signing Secret
  2. Extract the user’s Slack email via the Slack users.info API
  3. Map the email to a Zoho People employee ID using the Fetch Records API
  4. Call the Leave Type Details endpoint: GET /people/api/leave/getLeaveTypeDetails?userId={employeeId}
  5. Parse the response to extract each leave type’s PermittedCount, AvailedCount, and BalanceCount
  6. Format and return a Slack message

The response displayed to the employee in Slack:

Your Leave Balance (as of {today}):
Casual Leave: 5 available / 12 total
Sick Leave: 3 available / 6 total
Earned Leave: 10 available / 15 total

Step 4: Deploy and Test

Deploy the middleware function, then test by typing /leavebalance in Slack. Verify the response matches the data shown in Zoho People’s leave dashboard. Test with multiple employees to confirm the email mapping works correctly. Handle edge cases: what happens if the Slack email does not match any Zoho People record? Return a clear error message directing the employee to contact HR.

Notification Templates and Best Practices

Well-formatted Slack messages make the difference between notifications that get acted on and notifications that get ignored. Follow these guidelines for all Zoho-to-Slack notification templates:

Notification TypeChannelFormatFrequency
Leave request (new)#hr-approvals or manager DMBold employee name, leave type, dates, reasonReal-time
Leave approved/rejectedEmployee DMStatus, dates, approver nameReal-time
Birthday#celebrationsEmployee name, short wishDaily (9 AM)
Work anniversary#celebrationsEmployee name, years completedDaily (9 AM)
Attendance summary#team-updates or manager channelAggregate counts, late arrivalsDaily (6 PM) or weekly
Leave balance querySlash command response (ephemeral)Table of leave types with balancesOn demand

Reducing Notification Fatigue

The biggest risk with any Slack integration is over-notifying. Follow these rules:

Testing and Troubleshooting the Integration

Before rolling out to the full organisation, run through this testing checklist:

Zoho Flow Push Notifications

  1. Submit a test leave request in Zoho People. Confirm the Slack notification arrives in the correct channel within 60 seconds.
  2. Approve the test request. Confirm the approval notification reaches the employee’s Slack DM.
  3. Reject a separate test request. Verify the rejection message includes the correct status and approver.
  4. Test the birthday flow by temporarily changing a test employee’s date of birth to today’s date. Confirm the message posts to the celebrations channel at the scheduled time.
  5. Check Zoho Flow’s execution history for any failed runs. Common issues: expired Slack token (re-authenticate the Slack connection), incorrect channel ID, or Zoho People field mapping errors.

Slash Command Self-Service

  1. Type /leavebalance in Slack. Verify the response returns within 3 seconds.
  2. Compare the returned balance with the Zoho People dashboard for the same employee. Numbers must match exactly.
  3. Test with an employee whose Slack email differs from their Zoho People email. Confirm a helpful error message appears.
  4. Check the middleware logs for any API errors, rate limit hits, or authentication failures.

Common Issues and Fixes

IssueCauseFix
Slack message not arrivingExpired Slack OAuth tokenRe-authenticate Slack connection in Zoho Flow
Wrong channelChannel ID changed after renamingUpdate the channel selection in Zoho Flow action
Missing employee fieldsField mapping not setRe-map trigger fields in the Zoho Flow builder
Slash command timeoutMiddleware cold start or API rate limitUse provisioned concurrency or cache the OAuth token
Leave balance mismatchStale API tokenRefresh the Zoho OAuth token automatically using the refresh token

Comparing Integration Approaches: Zoho Flow vs. Zapier vs. Custom Build

While this guide focuses on Zoho Flow (the native Zoho option), it is worth knowing how alternatives compare for a Zoho and Slack integration:

CriteriaZoho FlowZapierCustom (API)
Setup complexityLow (visual builder, native Zoho auth)Low (similar visual builder)High (code, hosting, OAuth)
CostIncluded with Zoho One; standalone from $10/monthFree tier limited; paid from $29.99/monthHosting costs only
Zoho People triggersNative, full event coverageLimited trigger optionsFull API access
Slash command supportNot natively (needs middleware)Not natively (needs middleware)Full control
MaintenanceMinimal (Zoho-managed)Minimal (Zapier-managed)You maintain code and infrastructure
Best forZoho-first organisationsMulti-vendor stacksComplex, custom requirements

For organisations already using Zoho’s product suite, Zoho Flow is the natural choice. It shares authentication with Zoho People, has deeper trigger coverage for Zoho apps, and avoids the per-task pricing model of third-party platforms.

For a full overview of all available options, explore our complete guide to Zoho integrations.

Frequently Asked Questions

Can Zoho People send leave approval notifications directly to Slack without Zoho Flow?

Zoho People does not have a built-in Slack integration. You need an automation layer like Zoho Flow, Zapier, or a custom webhook to push leave notifications from Zoho People to Slack channels. Zoho Flow is the recommended option for organisations already on the Zoho ecosystem because it shares authentication and offers native Zoho People triggers.

How do I map Slack users to Zoho People employees for the slash command?

The slash command middleware uses the Slack user’s email address (retrieved via the Slack users.info API) to look up the matching employee record in Zoho People. This requires that employee email addresses in Zoho People match their Slack workspace emails exactly. If your organisation uses different emails for each platform, you will need a mapping table in your middleware.

What Zoho People API scopes are needed for the leave balance slash command?

You need the ZOHOPEOPLE.leave.READ scope for fetching leave balances and the ZOHOPEOPLE.forms.READ scope for looking up employee records by email. Generate an OAuth refresh token with both scopes through the Zoho API Console’s Self Client option, and store the refresh token securely in your middleware’s environment variables.

Is there a rate limit on the Zoho People Leave API?

Yes. The Leave Type Details endpoint allows 30 API calls per minute with a 2-minute lock period if exceeded. For a slash command serving a 200-person company, this limit is rarely hit since queries are user-initiated and spread throughout the day. If you anticipate higher volume, cache leave balances for 5 to 10 minutes in your middleware.

Can I use Zoho Cliq instead of Slack for these HR notifications?

Yes. Zoho Cliq has native integration with Zoho People, making the setup even simpler since both are Zoho products. However, if your team primarily uses Slack for day-to-day communication, building the Zoho People Slack integration through Zoho Flow ensures notifications reach people where they actually work. The choice depends on which messaging platform your team has standardised on.

Aaxonix configures Zoho People and Zoho Flow integrations for teams that want leave alerts, milestone notifications, and self-service HR queries inside Slack, with no ongoing maintenance overhead. Book a free consultation and get a working integration plan scoped to your team size and Zoho setup.

Book a free consultation

A well-configured Zoho People Slack integration turns your messaging app into an HR self-service portal. Managers approve leaves faster because the request appears where they are already working. Employees check their own balances without waiting for HR. And milestones like birthdays and anniversaries get recognised automatically instead of falling through the cracks. Start with the leave approval flow (the highest-impact automation), add milestone notifications next, and build the slash command when your team is ready for full self-service.

Share this article LinkedIn Twitter / X
# Employee Notifications # HR Automation # Leave Management # Slack Integration # Zoho Flow # Zoho People # Zoho People API

Thinking about Zoho or NetSuite?

Our team builds systems that actually work. No fluff, just honest architecture and clean implementation.