Before you start
- A Slack user who can install apps in your workspace. If app installation is restricted, ask your Slack administrator.
- A G360 administrator account. Slack Settings is admin-only.
- Your G360 hostname over HTTPS, for example
https://g360.yourcompany.com.
- Sending messages — No. G360 only needs outbound HTTPS to
slack.com. - Automatic member updates — Yes. Slack must reach G360 on port 443 with a valid, trusted TLS certificate. Self-signed certificates are rejected.
Set up Slack
Create the Slack app
- Go to api.slack.com/apps and click Create New App.
-
Select Paste a manifest and click Continue.

Create new app → Paste a manifest.
- On the JSON tab, replace the sample with the app manifest.
-
Replace
YOUR-G360-HOSTNAMEwith your G360 hostname. It appears once, in therequest_urlfield near the bottom. -
Choose your workspace and click Next.

The manifest pasted into the JSON tab, with a workspace selected.
- Review the summary, then click Create.
Install the app and copy the bot token
- In the left sidebar, open OAuth & Permissions.
- Click Install to Workspace and approve the permissions.
- Copy the Bot User OAuth Token. It starts with
xoxb-.

The Bot User OAuth Token on OAuth & Permissions.
Copy the signing secret
- In the left sidebar, open Basic Information.
- Under App Credentials, click Show next to Signing Secret and copy it.

The Signing Secret on Basic Information.
Connect Slack in G360
- In G360, go to Notification Settings → Slack Settings.
- Under Workspace connection, paste the Bot User OAuth Token and the Signing Secret.
- Click Connect Slack.

Notification Settings → Slack Settings, before connecting.
Turn on automatic member updates
- In your Slack app, open Event Subscriptions and switch Enable Events on.
-
For Request URL, enter:
Slack checks the URL as you save. Verified means G360 answered correctly.Request URL

A verified Request URL under Event Subscriptions.
-
Under Subscribe to bot events, click Add Bot User Event and add
team_join,user_change,app_uninstalled, andtokens_revoked.
The four bot events G360 needs.
- Click Save Changes, then reinstall the app. Reinstalling is required for the new event subscriptions to take effect.
Invite the bot to private channels
Send a test message
- Under Channels, select one or more channels. Use the search box to filter a long list.
- Under People (direct message), select anyone to test a direct message with. Each person is listed with the email G360 matches them by.
- Type a message, or leave it blank to send a default one.
- Click Send test message.

Send a test message, with channels and people selected.
Use Slack in reports and alerts
In Schedule Report or Schedule Alert, select Slack under Notification Channels, then choose channels and people. No webhook URL is needed — destinations come from your real channel and member lists.
Choosing Slack destinations on a scheduled report.
Keep the member list current
Automatic member updates on the settings page shows the sync mode:Disconnect Slack
- In G360, click Disconnect on Slack Settings. G360 stops sending and deletes the stored credentials.
- In Slack, remove the app from your workspace. G360 detects the removal and marks the connection inactive.
Troubleshooting
"That is a user token (xoxp-)" or "That is an app-level token (xapp-)"
"That is a user token (xoxp-)" or "That is an app-level token (xapp-)"
xoxb-) from OAuth & Permissions."Slack rejected the token: invalid_auth"
"Slack rejected the token: invalid_auth"
"Some expected permissions are missing"
"Some expected permissions are missing"
Sending fails with "not_in_channel"
Sending fails with "not_in_channel"
/invite @G360 in it. Public channels need no invite. This is the most common first-run problem.Sending fails with "channel_not_found"
Sending fails with "channel_not_found"
"No member emails were returned"
"No member emails were returned"
users:read.email scope. Add it, reinstall the app, and paste the new token."Synced N members, but none matched a G360 user"
"Synced N members, but none matched a G360 user"
"Connected, but the workspace member list could not be loaded"
"Connected, but the workspace member list could not be loaded"
Refresh members stays on "Refreshing…" and then says it has not finished
Refresh members stays on "Refreshing…" and then says it has not finished
Slack will not accept the Events request URL
Slack will not accept the Events request URL
- The hostname is your real G360 hostname, with no trailing slash before
/api/v1/…. - The URL is reachable from the internet. Open
https://g360.yourcompany.com/api/v1/notifications/inbound/slack/events/from a phone on mobile data — any response from G360 means Slack can reach it. - The TLS certificate is valid and trusted. Slack rejects self-signed certificates.
- Steps 3 and 4 are complete. Without the signing secret, G360 cannot answer Slack’s check, and Slack reports it as unreachable.
interactivity block from the manifest, but leaving it causes no harm — Slack stores that URL without checking it.Automatic member updates stuck on "awaiting Slack"
Automatic member updates stuck on "awaiting Slack"
- The Events request URL is not set. It is not in the manifest — add it in step 5.
- Slack cannot reach G360. See the entry above.
- The signing secret is wrong — often the Client Secret was copied instead. Copy it again from Basic Information → App Credentials → Signing Secret.
New members are not appearing on their own
New members are not appearing on their own
Reports are set to Slack but nothing arrives
Reports are set to Slack but nothing arrives
- Check the report’s execution history to confirm it ran.
- Confirm Slack is selected with at least one channel or person.
- For a private channel, confirm the app is invited.
- Confirm Slack Settings still shows the connection as connected.
Reference
App manifest
ReplaceYOUR-G360-HOSTNAME with your G360 hostname. There is no event_subscriptions block on purpose — you add the Events URL in step 5.
Permissions
channels:read returns channel names, not messages.
G360 subscribes to four events: team_join and user_change keep the member list current; app_uninstalled and tokens_revoked stop sending when the app is removed.
