Skip to main content

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
Setup has two parts:
  • 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.
G360 does not sit inside Slack as a chat bot, and it does not receive live events. On a schedule, it uses your tokens to pull data from Slack’s API. G360 works with metadata — who posted, where, when, and how quickly someone replied. No G360 dashboard, chart, or report displays what anyone actually said. See Data handling and privacy.
This page covers Slack analytics. To send G360 reports and alerts to Slack, see Slack notifications.

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)
The person who creates the app and approves its scopes must be a workspace owner or admin. On Enterprise Grid, this must be an org level admin; a workspace level install is not sufficient.

Create the Slack app

This is the part your Slack admin does in Slack. It takes about ten minutes.
1

Create the app

Go to api.slack.com/apps, click Create New App, and choose From scratch.
2

Name it and pick the workspace

Give the app a name, for example g360-metrics, select the workspace you want to connect, and click Create App. The app’s Basic Information page opens.
3

Add the Bot Token scopes

In the left menu, open OAuth & Permissions. Scroll to Scopes → Bot Token Scopes, click Add an OAuth Scope, and add every scope in the Bot Token scopes table, including channels:join.
4

Add the User Token scopes (Enterprise Grid only)

On the same page, under User Token Scopes, add the two scopes in the User Token table. Skip this step on Free, Pro, and Business+ workspaces.
5

Install the app

Scroll back to the top of OAuth & Permissions, click Install to Workspace, and click Allow. You return to OAuth & Permissions, which now shows your tokens.
6

Copy the tokens

Copy the Bot User OAuth Token (it starts with xoxb-). On Enterprise Grid, also copy the User OAuth Token (it starts with xoxp-). Keep them somewhere safe until you paste them into G360.
7

Invite the bot to private channels

In Slack, open each private channel you want tracked and run:
You don’t need to do anything for public channels. G360 joins them itself. See Channel access.
This app is separate from the Slack app used for G360 notifications. They have different purposes, scopes, and tokens, so create and connect each one on its own.

Create a Slack connection

1

Open Slack Connections

In G360, click Integrations in the left navigation menu. Click the Communication tab (or stay on All), find the Slack card, and click Connect (or Manage if a Slack connection already exists).The Slack Connections page opens. It lists all configured Slack connections, one row per workspace, with the Connection Name, Workspace Name, Workspace ID, and Last Updated time, plus edit and delete icons under Actions. Tokens are never shown. Before the first connection, the table reads “No connections found. Click Add Connection to get started.”
Slack Connections page listing configured connections
2

Start a new connection

Click Add Connection. The Manage Connections: Slack window opens.
Manage Connections: Slack window
3

Enter connection details

You don’t enter a workspace name or workspace ID. G360 reads both from Slack when you save the connection.
4

Test the connection

Click Test Connection. G360 checks the Bot Token (and the User Token, if you entered one) against Slack without saving anything.
  • 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 with xoxb- (or xoxp- for the User Token) is rejected before Slack is called.
Test Connection checks that the tokens are valid. It does not check Enterprise Grid analytics access; that check runs when you save.
5

Save the connection

Click Save Connection. You see two messages:
  1. Connection Created — the connection is saved and appears in the Slack Connections list with its workspace name and ID.
  2. Project Created — G360 created a project with the same name as the connection, linked the connection to it, and started the first sync.
If you see Project Not Created instead, the connection was still saved. Create a project for it from Projects and link the connection there.

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.
A Slack connection is tied to a project, which is what the Project filter on the Slack Metrics dashboard selects.

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

1

Open the connection

On the Slack Connections page, click the pencil icon under Actions on the connection’s row. The Edit Connections: Slack window opens with the Connection Name, Account Type, and Department Field Key filled in. The token fields are empty; the saved tokens are never sent back to the browser.
2

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).
3

Update the connection

Click Update Connection. A confirmation asks “Updating this connection will erase all previously synced data. Are you sure you want to continue?” Click Yes.You see Connection Updated.
Entering a new token clears this connection’s dashboard data. G360 reloads it from the raw data it already collected on the next sync, so the dashboards are empty until that sync finishes. Changing only the name or the Department Field Key does not clear any data.
If a sync of the connection is running at that moment, the update is refused with “A sync of this connection is running. Try again when it has finished.” Wait for the sync to finish and save again.

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:
1

Unlink the project

Go to Projects, and delete the project that has the same name as the connection (or unlink the Slack connection from it). Deleting a project unlinks its connection; it does not delete the connection.
2

Open Slack Connections

Return to Integrations → Slack → Manage. Click the trash icon under Actions on the connection’s row.
3

Confirm

A confirmation reads “Delete this connection? This action cannot be undone.” Click Delete.You see Connection Deleted, and the row disappears from the list.
If deletion fails, you see Failed to Delete Connection with the reason:

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.
Grant all required scopes before you install the app and copy the Bot Token. After you change scopes, reinstall the Slack app to apply them.Already connected with an app that does not have channels:join? See Enable automatic joining on an existing app.

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: To add the bot to a private channel, run this command in the channel:
  • 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.
A private channel the bot was never invited to silently contributes zero messages. There is no error, just empty charts.

Enable automatic joining on an existing app

If your app was created before channels: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:
1

Open your app

Go to api.slack.com/apps and open your app.
2

Add the scope

Go to OAuth & Permissions → Bot Token Scopes → Add an OAuth Scope, and add channels:join.
3

Reinstall the app

Click Reinstall to Workspace in the banner Slack shows, and approve. On Enterprise Grid, an org level admin may need to approve the new scope.
4

Check the Bot Token

Copy the Bot User OAuth Token again.
  • 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.
5

Wait for the next sync

The bot joins every public channel it is not in yet.
Public channels the bot was previously removed from stay excluded. Invite the bot to those channels again if you want them tracked.

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.
You only need a User Token for Enterprise Grid workspaces. Standard workspaces (Free, Pro, Business+) use the Bot Token only, and the G360 form shows the User Token field only for Enterprise.

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.
Department data cannot be invented. It only fills in when people have completed the Department field on their own Slack profile, and only 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
See Slack Metrics for a guide to each dashboard tab.

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.
On a standard plan, the Departments tab and the Cross-Team Threads KPI stay empty by design. This is expected, not an error. Everything else still works.

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

Possible causes
  • 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 with xoxp-)
  • Missing required OAuth scopes, or the Slack app was not reinstalled after scope changes
Actions
  • 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.
Possible cause
  • The User Token does not have Grid analytics access, for example because it is missing the admin.analytics:read scope, or the workspace is not on Enterprise Grid.
Actions
  • 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.
Each workspace can have only one Slack connection. Edit the existing connection instead of adding a new one.
Possible causes
  • First sync has not finished yet: it starts when you save the connection
  • Public channels missing: the app lacks the channels:join scope, or someone removed the bot from the channel
  • Private channels missing: the bot was not invited (/invite @your_app_name), or the app lacks groups:read or groups: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
Actions
  • Verify Slack permissions and scopes.
  • Confirm the app has the channels:join scope 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.
The connection is linked to a project, or a sync is running. See Delete a connection.

Best practices

  • Use descriptive connection names.
  • Grant only the required OAuth scopes, and reinstall the Slack app whenever scopes change.
  • Add the channels:join scope so public channels are tracked automatically.
  • Invite the bot to every private channel you want tracked.
  • Regularly validate Slack credentials and review communication analytics.

Summary

The Slack integration connects Slack workspaces to G360 to collect collaboration and communication data for reporting and analysis. Saving a connection creates its project and starts the first sync straight away, and the connection then syncs every day. Public channels are joined automatically; private channels are included once you invite the bot.