Skip to content
English
  • There are no suggestions because the search field is empty.

Monitor room occupancy

Post to Slack whenever a meeting room or desk becomes occupied outside business hours — a lightweight heads-up for after-hours activity. For office managers, facilities teams, or anyone who wants a nudge when someone's in the building when they shouldn't be.

What this workflow does

  • The Space Occupied trigger fires every time a sensor-monitored space flips from available to occupied.
  • A Time Of Day condition checks whether right now is outside business hours.
  • If it is, the workflow posts a short message to a Slack channel.
  • During business hours the condition's false branch ends the run, and nothing is posted.

It's a clean template for any "alert me when event X happens outside window Y" pattern.

[SCREENSHOT] The finished workflow on the canvas: a Space Occupied trigger connected to a Time Of Day condition. The condition's true port connects to a Post To Channel action; the false port is unconnected.

Prerequisites

  • Workflows enabled for your organization. See Enable workflows for your org.
  • Slack connected and a channel ready to receive alerts (e.g. #security-alerts).
  • Occupancy sensors installed and reporting on the spaces you care about.

Build it

1. Create the workflow

From the Workflows list click New workflow, name it After-hours occupancy alerts, and open the editor.

2. Add the trigger

Click Add nodeTriggersSpace Occupied. There are no settings to configure — the trigger fires for every sensor-monitored space in your organization when it becomes occupied.

If you want the opposite — someone leaving a room — use Space Not Occupied instead.

3. Add the after-hours filter

Click Add nodeConditionsTime Of Day. Settings:

  • Timezone — your office's IANA timezone, e.g. Europe/Oslo.
  • Begin — 18:00.
  • End — 08:00.
  • Days of week — tick Monday through Sunday. The overnight window handles the day boundary automatically, so one node covers all seven nights.

Wire an edge from the Space Occupied trigger to the Time Of Day condition's input.

4. Add the Slack action

Click Add nodeActionsPost To Channel. Settings:

  • Channel — #security-alerts (or whatever monitoring channel you use).
  • Content type — markdown.
  • Content

*Unexpected occupancy:* **{{ trigger.space.name }}** just became occupied outside business hours.

For how data references and templates actually work in these fields, see References and templates.

Wire an edge from the condition's true port to the Slack action's input. Leave the false port unconnected.

5. Test it

Click Run workflow. The Space Occupied trigger opens with a JSON editor — paste a synthetic payload:

{
  "space": { "id": "room-12", "name": "Sky room" },
  "isOccupied": true
}

The run will either:

  • Go all green if your clock is currently inside the 18:00–08:00 window — a real Slack message is posted.
  • Stop at the condition, false branch if you test during business hours. That's the correct behaviour; the condition did its job.

To confirm the Slack step when you're testing during the day, temporarily widen the Time Of Day window to 00:00–23:59, run, then restore the real window before saving.

Heads up: test runs use your real Slack. Point Channel at a test channel while you iterate.

6. Enable it

Click Save, turn Enabled on, add a commit message, and save. Every after-hours occupancy event from now on will post to Slack.

Variations

  • Filter to specific spaces. Drop an If condition between the trigger and the Time Of Day with trigger.space.id equals a specific id. A narrower trigger first means cleaner execution history.
  • Different hours by day. Split into two workflows — one for weekdays, one for weekends — each with its own Time Of Day window.
  • DM instead of channel post. Swap Post To Channel for Send Direct Message to page a specific person. See Slack.
  • Alert when a room empties unexpectedly. Use Space Not Occupied as the trigger instead.

When it doesn't fire

If a late-night occupancy event doesn't produce a message:

  1. Check the workflow is Enabled in the Save dialog.
  2. Open the Executions tab. Is the run showing but ending at the Time Of Day's false branch? Double-check the timezone and day-of-week settings.
  3. Make sure Slack is still healthy — see Slack and Integration disconnected.
  4. Confirm occupancy sensors are reporting for that space — open the space in the main app and watch for live state changes.
  5. See Workflow didn't run for more diagnostics.

Related