DaemonLayer Logo
Slack

Approvals in Slack that land on the right technician

Urgent tickets and approval requests post straight to the Slack channels your engineers already watch. The technician who owns the ticket gets @mentioned, so approvals get claimed instead of quietly expiring.

# l2-support 8
DaemonLayer
DaemonLayer APP 9:41 AM
@Sara Lindqvist a workflow is waiting for your approval.
Approval needed · Password reset
Ticket#2044
ClientMeridian Health
WorkflowPassword Reset
UrgencyHigh
Reset password & send temporary credentials to the verified requester.
Assigned to Sara Lindqvist · posted to #l2-support
Channel delivery

Where your team already works, not another inbox

Each ticket queue goes to the channel that owns it: L1 to one, onboarding to another, everything else to a catch-all. The routing is plain and deterministic, so an approval or alert always shows up exactly where you'd expect.

  • A channel per team — L1, L2, onboarding, or one catch-all for the rest
  • Narrow any channel to specific queues or a single client
  • No webhook URLs to copy around — pick the channel in Slack and you're done
Ticket queue → Slack channel
L1 Service Desk #l1-support
L2 Network #l2-support
Onboarding #provisioning
All other queues #ops-alerts
A ticket can match several channels at once — it posts to all of them.
Technician @mentions

The approval reaches a person, not just a channel

An approval sitting unclaimed in a busy channel is a ticket about to stall — and when a Human-in-the-Loop approval times out, it drops back to the service desk. DaemonLayer @mentions the technician who owns the ticket, so the right person is notified personally and the approval actually gets actioned.

Matching is by email, and the result is cached after the first lookup — so every mention after that is instant.

Resolving the mention
PSA assignee email
users.lookupByEmail
U04SARA…
Rendered in the post
@Sara Lindqvist
No match? The post still goes out — just without the mention.
Install & permissions

One click to connect. Nothing it shouldn't touch.

There's no Slack app to build and no credentials to wrangle — connect your workspace in a single click and you're live. DaemonLayer asks for exactly what it needs to post and to mention, and nothing more. When a client's security questionnaire asks what your tools can see, that's an easy answer.

It never reads messages and never opens DMs.

Requested Slack scopes 3 total
users:read Read basic user info
users:read.email Resolve email → Slack user ID for the @mention
incoming-webhook Post to the channel you pick, under your app's identity
No message read access · no DMs

Notification routing

Slack, Teams, email, and the in-app bell — in one place

Team channels connect a Slack or Teams channel to the queues that team owns. System alerts still reach your notification email and the in-app bell. It all lives under Notification Settings.

Frequently Asked Questions

Common questions about this integration

Do I need to build my own Slack app?

No. DaemonLayer provides a shared Slack app that you install into your workspace with a single OAuth step — the same one-click model as the Microsoft Teams integration. There's no app to register, and no client ID or secret to enter by hand. DaemonLayer stores the workspace bot token encrypted.

Is the Slack integration required to use Slack channels?

Yes. Both the branded channel delivery and the technician @mention lookups come from this single OAuth install. Until Slack is connected, the option to add a Slack notification destination stays disabled. Microsoft Teams channels are configured separately and don't depend on this.

Can I send different ticket queues to different channels?

Yes. Each Slack channel is bound to its own incoming webhook, so you create one notification destination per channel — all under the single Slack integration you installed once. Assign each destination the queues (and optionally a single client) it should hear about, and DaemonLayer routes tickets to every matching channel.

What can DaemonLayer actually see in our Slack?

Only what the three scopes allow: users:read and users:read.email to resolve a technician's email to their Slack user ID, and incoming-webhook to post to the channels you pick. The integration never reads messages and never opens DMs. Messages are delivered through app-generated incoming webhooks, so posts appear under your DaemonLayer app's name and icon.

Why isn't a specific technician being @mentioned?

Mentions are matched by email: the assignee's PSA email must match the email on their Slack account. If the integration isn't connected, the assignee has no email on record, or Slack returns users_not_found, the post still goes out — just without the personal mention. Notifications are never dropped or delayed because a mention couldn't be resolved.

We connected Slack a while ago — do we need to do anything?

If you connected before branded channel delivery was added, click Reconnect Slack once so DaemonLayer can request the incoming-webhook scope. Slack can't add a new scope to an existing token silently, so a one-time reconnect is required.

Automate your first ticket in under 30 minutes

Connect your PSA, and DaemonLayer starts triaging, resolving, and routing, no scripting, no setup calls. Cancel anytime.

Prefer a walkthrough? Book a demo →