- Approval-based setup: Approve Prowler once in Slack instead of building a Slack app and pasting a token.
- A verified destination: Saving a channel checks it, so a channel Prowler cannot reach is reported straight away rather than when something depends on it.
- Controlled reach: Prowler posts only to the channel recorded on the integration, and private channels stay invisible until the Prowler app is invited to them.
This guide covers the Slack integration in Prowler Cloud and Prowler Private Cloud. It is unrelated to the Prowler CLI
--slack flag, which posts a scan summary from the command line using a self-created Slack app and the SLACK_API_TOKEN and SLACK_CHANNEL_NAME environment variables — see CLI Integrations for that feature.How the Slack Integration Works
When connected and configured:- A Slack workspace is approved once through Slack’s app install flow, and Prowler stores the resulting credential encrypted.
- Prowler reads the channels it can post to: the workspace’s public channels, plus the private channels the Prowler app has been invited to.
- One channel is recorded on the integration as the default destination.
- Saving that channel checks the connection against it, covering both the credential and the channel.
- Disconnecting removes the integration from Prowler and attempts to revoke Prowler’s access at Slack.
Prerequisites
The Slack integration is available only in Prowler Cloud and Prowler Private Cloud. Prowler Local Server does not serve the Slack endpoints at all, so the Slack card does not appear on the Integrations page and the management page redirects away. Configuring and using the Slack integration requires the Manage Integrations permission. The integration is tenant-wide, so it does not require Unlimited Visibility or any specific Provider Group. One Slack workspace connects per tenant. Approving Prowler again in the same workspace refreshes the stored credential, while approving it in a different workspace is refused until the current workspace is disconnected — a workspace is never swapped out silently.Permissions Prowler Requests in Slack
Slack shows a consent screen listing everything the Prowler app asks for. Prowler requests exactly four bot scopes:
Two of these read more broadly than they behave, and both are worth understanding before approving the app.
What chat:write.public Does Not Grant
On the consent screen, chat:write.public reads as permission to post in any public channel. Prowler never uses it that way: Prowler only ever posts to the channel recorded on the integration. The scope exists so that recording a public channel does not also require someone to invite the Prowler app to it first.
Why a Private Channel Is Missing From the Picker
groups:read reveals only the private channels the Prowler app is already a member of. A private channel therefore appears in the picker only after someone invites @Prowler to it in Slack:
Connecting a Slack Workspace
To connect a Slack workspace to Prowler Cloud or Prowler Private Cloud:- In either product, navigate to Integrations.
-
Locate the Slack card and click Manage.

-
Click Add to Slack.

- In Slack, select the workspace to connect and approve the permissions listed on the consent screen.
-
Slack returns to Prowler Cloud or Prowler Private Cloud, which completes the install and shows the connected workspace.

Declining the consent screen creates nothing. Prowler reports that the workspace was not connected and offers to start again.
Choosing the Default Channel
Prowler posts to one channel, recorded on the integration as its default destination.-
Open the Destination channel picker. It lists the workspace’s public channels, plus the private channels the Prowler app has been invited to, each marked Private.

- Select a channel.
- Click Save channel.
@Prowler to a private one, then click Refresh channels.
A workspace can hold more channels than Prowler reads in one go. When that happens, the picker says so and lists what was read: every listed channel is usable, and a channel missing from a partial list is not necessarily one @Prowler has to be invited to. Only listed channels can be selected: Refresh channels repeats the same bounded read rather than reading further, and the picker’s search filters what was already read, so neither surfaces a channel the read left out.
Disconnecting a Slack Workspace
Disconnecting removes the integration from Prowler and attempts to revoke Prowler’s access at Slack.- On the Slack management page, click Disconnect.
-
Review the confirmation, then click Disconnect workspace.

What Revocation Means
Revocation is attempted at Slack, and it is best-effort:- Revocation succeeded: The stored credential no longer grants Prowler anything, and the integration is gone from Prowler.
- Revocation failed: The integration and the stored credential are gone from Prowler either way, so there is nothing to retry. Slack did not confirm the revocation, which means the Prowler app may still be installed in the workspace. Remove it from that workspace’s Slack app settings.
- Revocation unreported: Slack’s answer carried no outcome either way. The integration is gone from Prowler, and the disconnect is reported without any claim about revocation. When certainty matters, check the workspace’s Slack app settings and remove the Prowler app if it is still installed.
Integration Status
The Slack management page reports the state of the connection and offers these actions:Troubleshooting
Slack Is Not Available in This Environment Yet
The Prowler Slack app is not configured for the deployment being used, so no workspace can be connected. This resolves without any action on the tenant’s side — the page starts working as soon as the app is configured.A Private Channel Does Not Appear in the Picker
The Prowler app has not been invited to it. In Slack, run/invite @Prowler in that channel, then click Refresh channels. Membership is the permission: no scope reveals a private channel the app is not in.
Connection Test Fails
- Confirm the recorded channel still exists and has not been archived.
- For a private destination channel, confirm the Prowler app is still a member of it.
- Confirm the Prowler app is still installed in the workspace.
Prowler’s Access Has Been Revoked
When Slack stops accepting the stored credential — because a workspace administrator revoked it, or the app was removed from the workspace — Prowler reports the workspace as disconnected and offers Reconnect to Slack. Approving Prowler in Slack again restores access.The Connection Check Fails on the Channel
- Confirm the destination channel saved on the integration is the channel being watched in Slack.
- Check the outcome reported on the page: when Slack refuses the channel, the reason Slack gave is shown there — an archived or deleted channel surfaces here rather than failing silently.
- For a private channel, confirm the Prowler app is still a member of it.

