The honest problem with any HR portal is that people don't open it. They open Slack. A request for time off then sits unapproved for three days — not because the manager objects, but because "approve the thing in the portal" never made it out of their head and into their calendar.
The Slack integration isn't a second copy of the product inside a chat client. It moves the handful of moments that genuinely need a human — an approval, a reminder, a thirty-second survey — into the window that's already open, and leaves the rest on the web.
What lands in a channel
Two scheduled posts, both optional and off until you turn them on.
The birthday post names everyone celebrating today, with job title and team. The daily out-of-office digest lists who is away, with an emoji per absence type — palm tree for vacation, thermometer for sick leave, plane for a business trip — plus the type and date range. Each goes to a channel you pick, at an hour you set, in your company's time zone rather than UTC. If there's nothing to report, nothing is posted.
Approvals you finish without leaving the conversation
This is the part that changes behaviour. When someone requests time off, every approver gets a direct message with the request — who, what type, which dates, their comment — and two buttons.
Approve rewrites the message in place with the outcome. If the request needs more than one approval, the updated message shows progress ("2 of 3 approvals") and who has signed off so far, so nobody has to ask. Reject opens a native Slack dialog with a mandatory reason field; the reason travels with the decision and reaches the requester. A single rejection rejects the whole request. If someone taps a button on a request that's already been decided, the message replaces itself with "Already processed" instead of silently doing nothing.
Surveys that take thirty seconds
Pulse survey invitations arrive as a direct message with a Take pulse button. Clicking it opens a real Slack modal with the actual questions — an NPS selector, scale questions with your own range and per-value descriptions, single and multiple choice, free text, and comment fields where you asked for them. Submitting records the response and replaces the invitation with a confirmation. For manager NPS the message carries one button per manager, so rating three people is three taps rather than three forms.
Responses stay anonymous exactly as they are on the web — the Slack path writes through the same code, which stores no link between a response and a person. One honest limitation: ranking questions can't be rendered in Slack's block layout, so the bot answers those with a link to the browser form.
Notifications that reach a person
Beyond approvals, direct messages carry the things with a deadline: a review cycle starting, a reminder that evaluations are still open, results becoming available, a work report waiting on your feedback, a goal status change awaiting approval, the outcome of your own absence request.
Slack DMs are a per-person opt-in and are off by default. Each employee turns them on in their own settings; email stays the default channel. Connecting the workspace does not start messaging the whole company on an admin's behalf.
Status sync
When an absence is fully approved, the person's Slack status can be set automatically: an emoji matching the absence type and text like "On vacation until Mar 14". It expires by itself a day after the absence ends, so nobody is left showing a palm tree in February. This is a separate toggle, also off by default.
Three slash commands
/who <name> returns a colleague's card — position, department, email, phone — with a link to their place in the org chart. /out lists who is away today. /birthdays shows the next five birthdays within a fortnight. All three answer privately, visible only to the person who asked.
Sign-in and account matching
Slack works as an SSO provider: people sign in with the workspace account they already have, and the workspace's own two-factor requirement carries over.
When an admin installs the app, the portal matches existing employees to Slack accounts by email and reports how many were matched. That's a linking step, not an import — employee records still come from the admin area, CSV import or SSO.
Whose time this saves
Managers approve time off in the seconds between meetings instead of building a queue in a portal they open on Fridays.
Employees get an answer the same day, and know why when the answer is no.
HR gets response rates a link in an email doesn't produce, because the survey opens where the person already is.
Admins set it up once: one OAuth flow, two channel choices, three toggles.
What it deliberately doesn't do
There's no app home screen duplicating the portal, no employee import from your workspace, and no broadcast of review or survey results into a channel. Everything sensitive stays behind the portal's own roles.
Getting started
An admin connects the workspace under Integrations, picks the birthday and absence channels, sets the digest hour, and switches on what's useful. A few minutes, and nothing custom to write.
Slack is available on every plan, including the free tier for up to 10 people. The portal also works entirely without it — Slack adds a delivery channel, never a dependency.