Overview
The Slack integration connects your Slack workspaces to G360 and collects communication and collaboration data for reporting and analytics. With this integration, you can:- Connect Slack workspaces using Slack API tokens
- Synchronize workspace data automatically every day
- Analyze collaboration patterns and communication metrics on the Slack Metrics dashboard
- Slack app: an app you create and install in your Slack workspace, which gives you the API tokens.
- Connection: the tokens you add in G360 to link that workspace.
Prerequisites
Before you configure the integration, make sure you have:- A G360 user with the admin role. Only admins can open the Slack Connections page, create a connection, change its tokens, or delete it.
- Access to the Slack workspace, and permission to create and install Slack apps
- A Slack app installed in your workspace, with the required Bot Token scopes
- A valid Slack Bot Token (
xoxb-...) - For Enterprise Grid only, a valid Slack User Token (
xoxp-...) (see User Token)
Create the Slack app
This is the part your Slack admin does in Slack. It takes about ten minutes.Create the app
Name it and pick the workspace
g360-metrics, select the workspace you want to connect, and click Create App. The app’s Basic Information page opens.Add the Bot Token scopes
channels:join.Add the User Token scopes (Enterprise Grid only)
Install the app
Copy the tokens
xoxb-). On Enterprise Grid, also copy the User OAuth Token (it starts with xoxp-). Keep them somewhere safe until you paste them into G360.Invite the bot to private channels
Create a Slack connection
Open Slack Connections

Start a new connection

Enter connection details
Test the connection
- Success: a message reads “Connected to your workspace name successfully!”
- Failure: an error message shows Slack’s reason, for example
invalid_auth. A token that doesn’t start withxoxb-(orxoxp-for the User Token) is rejected before Slack is called.
Save the connection
- Connection Created — the connection is saved and appears in the Slack Connections list with its workspace name and ID.
- Project Created — G360 created a project with the same name as the connection, linked the connection to it, and started the first sync.
What happens when you save
- Both tokens are tested against Slack before anything is stored.
- For Enterprise Grid, G360 checks that the User Token really has Grid analytics access. If it doesn’t, the connection is rejected with an error on Account Type, instead of being saved and producing silently empty data later.
- The workspace name and workspace ID are read from Slack and stored.
- Tokens are encrypted at rest and never shown again in the G360 UI.
- A project is created for the connection, and the first sync starts immediately, collecting the last 90 days.
- After that, the connection syncs daily at 12:00 AM IST (18:30 UTC).
- You can have one connection per Slack workspace, and one Slack connection per project.
What the form does not ask for
- Channels. There is no channel picker. Every sync joins the public channels the bot is not in yet and collects every channel the bot is a member of. See Channel access.
- Timezone. There is no timezone field. G360 detects the workspace’s most common time zone automatically. After hours uses each person’s own Slack time zone.
Edit a connection
Open the connection
Change what you need
- To rename the connection or change the Department Field Key, edit those fields and leave the token fields empty. The saved tokens are kept.
- To replace a token, for example after you reinstall the Slack app, paste the new token into Bot Token (or User Token).
Update the connection
Delete a connection
A connection that is linked to a project cannot be deleted. Every connection created from the Slack Connections page gets a project automatically, so unlink the project first:Unlink the project
Open Slack Connections
Confirm
What deleting does
- The connection is soft-deleted: it disappears from G360 but the record is kept for audit.
- Its daily sync schedule is stopped. The schedule is soft-deleted too, so its run history is kept.
- The workspace’s synced data is removed from the dashboards. The raw data received from Slack is kept as a record and marked deleted, so it is never loaded back.
- People whose only data source was this Slack workspace are deactivated in G360.
- If another live connection still syncs the same workspace, that connection’s data is not affected.
Bot Token scopes
G360 uses the Bot Token to authenticate with the Slack API and collect workspace data.Channel access
Scopes alone are not enough: the bot can only read messages from channels it is a member of. Channels the bot is not in are excluded from data collection. How the bot becomes a member depends on the channel type:- New public channels are joined at the next sync (the daily scheduled sync, or a manual one).
- New private channels are included from the next sync after you invite the bot.
- If someone removes the bot from a public channel, it does not rejoin. Invite it again to resume tracking.
- Archived channels are not joined.
- The bot joins up to 100 public channels per sync, so a workspace with many channels can take more than one sync to be fully covered.
- Each automatic join shows a one-time “joined #channel” notice in that channel. The bot never posts anything else.
Enable automatic joining on an existing app
If your app was created beforechannels:join was required, it keeps working as before. The sync skips joining public channels and tracks only the channels the bot was invited to. The connection shows no error. The public channels it is not in still appear on the dashboard, marked (App not invited).
To enable automatic joining:
Open your app
Add the scope
channels:join.Reinstall the app
Check the Bot Token
- Same as before: you don’t need to change anything in G360.
- Changed: edit the Slack connection in G360, paste the new token into Bot Token, and click Update Connection. This clears the dashboard data until the next sync reloads it.
Wait for the next sync
User Token (Enterprise Grid only)
For Enterprise Grid workspaces, select Enterprise as the Account Type and enter a Slack User Token (xoxp-...). G360 uses it to read Slack’s own workspace-wide analytics export and the custom profile field that holds each person’s department.
Department Field Key (optional)
This is the ID of the Slack custom profile field that holds each person’s department. Leave it blank. G360 finds the field automatically by looking for a profile field labelled “Department”. Automatic detection needs the User Token, so it only works on Enterprise Grid.Synchronization and metrics
After you save the connection, G360 collects workspace data automatically. You can use the collected data to analyze:- Workspace activity and user participation
- Response times and communication trends
- After-hours load and burnout signals
- Inactive seats and their cost
What is collected
When it runs
- The first sync starts as soon as you save the connection and collects the last 90 days.
- After that, the sync runs automatically once a day at 12:00 AM IST (18:30 UTC).
- Dashboards show data as of the most recent successful sync. Until the first sync finishes, the dashboard has no data for the connection.
- A normal daily sync finishes quickly. The first sync is heavier because it collects history, and on Enterprise Grid it is limited by Slack’s own rate limit on its analytics export (one file per day).
Good to know
- Messages with a subtype (joins, leaves, channel renames, most bot posts) and messages with no author are ignored.
- Slack only reports the current state of its member and channel lists. There is no “who was in this channel last March”, so a historical backfill uses today’s roster.
What each Slack plan includes
The integration works on any Slack plan. What changes is how much Slack makes available.Data handling and privacy
- Outbound only. G360 polls Slack’s API. There is no inbound webhook, no event subscription, and no slash command — nothing the app can post into your workspace.
- Read-only scopes, plus joining public channels. Nothing in the scope list permits posting, editing, or deleting. The only thing the app does in your workspace is join public channels (
channels:join), which shows a one-time “joined” notice. - Tokens are encrypted at rest and never shown in the G360 UI after you save them.
- Scope of collection. Every public channel, and only the private channels the bot has been explicitly invited to. Removing the bot from a public channel keeps it out. It is never rejoined.
- Message content. Message text is part of the raw data Slack returns, and G360 keeps that raw data exactly as received. No metric is calculated from message text, and no dashboard, chart, or analytics endpoint in G360 displays it. Every metric is built from timestamps, author IDs, channel IDs, and reply counts.
- Small-group suppression. Any channel or department week with fewer than 5 distinct contributors is flagged as suppressed, so the dashboard cannot be used to point at one identifiable person.
- Deleting a connection removes its synced data from the dashboards and stops its sync schedule. See What deleting does.
Troubleshooting
Connection test failed
Connection test failed
- Invalid Bot Token, or an invalid or missing User Token (Enterprise Grid)
- A token pasted with the wrong prefix (the Bot Token must start with
xoxb-, the User Token withxoxp-) - Missing required OAuth scopes, or the Slack app was not reinstalled after scope changes
- Copy the tokens again from OAuth & Permissions in your Slack app.
- Make sure all required OAuth scopes are granted, and reinstall the Slack app after you update scopes.
- Click Test Connection again.
Enterprise Grid connection is rejected on save
Enterprise Grid connection is rejected on save
- The User Token does not have Grid analytics access, for example because it is missing the
admin.analytics:readscope, or the workspace is not on Enterprise Grid.
- If the workspace is not on Enterprise Grid, set Account Type to Standard.
- Otherwise add the missing User Token scope and reinstall the Slack app. An org level admin may need to approve it.
- Copy the new User Token into the connection and save again.
"A connection to this Slack workspace already exists"
"A connection to this Slack workspace already exists"
Data not appearing
Data not appearing
- First sync has not finished yet: it starts when you save the connection
- Public channels missing: the app lacks the
channels:joinscope, or someone removed the bot from the channel - Private channels missing: the bot was not invited (
/invite @your_app_name), or the app lacksgroups:readorgroups:history - Dashboard empty right after you changed a token: a new token clears the dashboard data until the next sync reloads it
- Department charts blank: people have not filled in the Department field on their Slack profile, or the workspace is not on Enterprise Grid
- After-hours numbers look wrong: check the time zone on their Slack profile.
- Nothing shows for a project: the connection is not linked to that project, or the dashboard’s Project filter is set to a different project
- Verify Slack permissions and scopes.
- Confirm the app has the
channels:joinscope and was reinstalled after you added it. - Confirm the bot is invited to every private channel you expect data from.
- Allow time for synchronization to complete.
Cannot delete the connection
Cannot delete the connection
Best practices
- Use descriptive connection names.
- Grant only the required OAuth scopes, and reinstall the Slack app whenever scopes change.
- Add the
channels:joinscope so public channels are tracked automatically. - Invite the bot to every private channel you want tracked.
- Regularly validate Slack credentials and review communication analytics.

