TimeLeafTimeLeaf
Back to site

Integrations

Slack

Get leave approvals and notifications as Slack direct messages, let employees use the /timeleaf command, and post a daily who's-out digest to a channel.

Last updated: October 13, 2026

With Slack connected, approvers get leave requests as Slack direct messages they can approve or decline on the spot, employees are told about decisions, and everyone can use the /timeleaf command. You can also post a daily "who's out today" digest to a channel.

What you need

  • Any plan. Slack works on every plan, including Starter.
  • A TimeLeaf admin account.
  • Permission to install apps in your Slack workspace (a Slack workspace admin or owner, or a member if your workspace lets members install apps).
  • Employees' Slack email addresses matching their TimeLeaf email addresses, because that is how TimeLeaf finds each person in Slack.

Connect Slack

1

Open the Slack tab

Go to Integrations › Messengers and open the Slack tab. (The Connect Slack → link on Integrations › Connected Apps goes to the same place.)

2

Add to Slack

Click Add to Slack. This installs TimeLeaf's own Slack app; there is nothing to create in Slack. Choose your Slack workspace and click Allow. The app asks for these permissions:

  • chat:write to send messages
  • im:write to send direct messages
  • commands for the /timeleaf command
  • users:read and users:read.email to find each employee in Slack by email
3

Check it is connected

Back in TimeLeaf, the Slack tab shows Connected with the TimeLeaf Slack app and your Slack workspace's name. Approval requests and decisions now arrive as direct messages. Nothing else is needed.

A Slack workspace can be connected to only one TimeLeaf workspace at a time. Org-wide Enterprise Grid installs are not supported; install TimeLeaf to a single Slack workspace.

To disconnect, click Disconnect on the Slack tab. This removes the TimeLeaf app from your Slack workspace.

Using your own Slack app instead

If you would rather run a Slack app you own, open Use your own Slack app instead on the Slack tab (shown while Slack is not connected) and follow the steps there:

  1. Create an app "From scratch" at api.slack.com/apps.
  2. Under OAuth & Permissions, add the Bot Token Scopes chat:write, commands, users:read, users:read.email and im:write.
  3. Under Interactivity & Shortcuts, turn Interactivity on and set the Request URL to https://<your-workspace>.timeleaf.io/api/webhooks/slack.
  4. Under Slash Commands, create /timeleaf with the same Request URL.
  5. Under Event Subscriptions, turn events on with the same Request URL and subscribe to the bot events app_uninstalled and tokens_revoked.
  6. Install the app to your workspace, paste the Bot Token (xoxb-…) and Signing Secret into TimeLeaf, and click Save Slack Configuration.

The tab then shows Connected to Slack (your own app), and messages work the same way.

What Slack does

Approvals. When an employee submits a leave request, the approver gets a direct message with Approve and Decline buttons. The decision is recorded in TimeLeaf straight away, and the employee is told.

Other messages. Timesheet approvals and decisions, shift assignments, on-call handoffs, overtime opportunities, "still working?" prompts and approval cards for changes an AI assistant proposes also arrive as direct messages.

The /timeleaf command. Employees type /timeleaf followed by a command:

CommandWhat it does
checkShow your leave balances
requestBook leave
whosoutSee who is off (replies only to you)
scheduleYour upcoming shifts
clockin / clockout / stillworkingClock in and out, or confirm you are still working (Professional and above)
timesheet / submitsheetSee or submit this week's timesheet (Professional and above)
timebankYour time bank balance (when the time bank is on)
overtimeOpen overtime opportunities (with the broadcasting add-on)
pendingRequests waiting for your decision (approvers)
teamA snapshot of your team today (managers)

Daily who's-out digest

Off by default.

1

Invite the app to the channel

In Slack, invite the TimeLeaf app to the channel the digest should post to, and copy the channel's ID.

2

Add the digest channel

On the Slack tab, click Add Slack Config. Enter a Display Name and the Channel ID, tick Post a daily "who's out today" digest to this channel (invite the app to it first) and choose the Post time (company time zone), up to 22:59. Save.

The digest lists everyone on approved leave that day by name, with "all day" or "part of the day", never the leave type. It posts every day someone is out, weekends included, and posts nothing when everyone is in. There is no token to enter here: the connected app is always used.

Troubleshooting

Message or problemWhat to do
"That Slack workspace is already connected to another TimeLeaf workspace."Disconnect Slack in the other TimeLeaf workspace first, then add it here.
"The Slack install link expired or was started by someone else."Click Add to Slack again and finish within a few minutes, signed in as the same admin.
"Slack was approved, but TimeLeaf could not finish connecting it."Click Finish connecting in the message.
"The TimeLeaf Slack app was removed from your Slack workspace."Someone removed the app in Slack. Click Add to Slack again.
"Slack is not available on this workspace yet."The TimeLeaf Slack app isn't available for your workspace. Use your own Slack app instead, or contact TimeLeaf support.
A person gets no direct messagesTheir Slack email must match their TimeLeaf email.
The digest doesn't postInvite the app to the channel and check the Channel ID.