Skip to main content

Integration for Slack

Learn how to connect PlusPlus to your organization’s Slack team, enabling your people to receive notifications from our system

Written by Michael Wallace

Scenario

You manage PlusPlus and want users to receive Slack direct messages for invites, enrollments, assignments, and reminders, and to have Slack channels automatically created for scheduled tracks.

Solution

Connect PlusPlus to your Slack workspace, then turn on Slack notifications.

  1. Go to System Settings > Integrations > Slack and click Connect. PlusPlus redirects you to Slack's authorization page.

  2. Approve the install in Slack. Slack redirects you back to System Settings > Integrations > Slack.

  3. Turn on Allow PlusPlus to send Slack notifications and Save your changes.

If your Slack workspace requires admin approval before installing apps, the first click on Connect instead routes a request to your workspace admin. Once they approve the PlusPlus app at https://[your-workspace].slack.com/apps/manage, return to System Settings > Integrations > Slack and click Connect again to complete the install.

To turn off Slack notifications instance-wide later, return to the same panel and turn off Allow PlusPlus to send Slack notifications.

Go deeper

User attribute matching

PlusPlus connects each Slack user to a PlusPlus user by evaluating two path expressions and matching the resulting values:

  • PlusPlus User Attribute — defaults to email. Evaluated against the PlusPlus user record.

  • Slack User Attribute — defaults to profile.email. Evaluated against the Slack user object returned by Slack's users.list API.

The defaults match users by their email addresses on both sides, which works for most customers without modification.

[SCREENSHOT: System Settings > Integrations > Slack panel showing PlusPlus User Attribute and Slack User Attribute fields with their default values]

Both fields accept full JMESPath expressions, including nested paths, filters, array indexing, and pipes. Override the defaults when:

  • Slack and PlusPlus use different email domains (for example, after an acquisition or domain change).

  • You track user identity by an attribute other than email — for example, employee ID stored in a Slack custom profile field.

  • You need to disambiguate users in workspaces with overlapping accounts.

A worked example: matching by employee ID instead of email, where Slack profiles carry employee ID in a custom field with the internal ID XF12345.

  • PlusPlus User Attribute: employee_id

  • Slack User Attribute: profile.fields.XF12345.value

On the Slack side, the expression evaluates against the full Slack member object — id, name, real_name, the entire profile subtree, and any custom profile.fields.<field_id>.value. On the PlusPlus side, the expression evaluates against the user record's database fields, including the metadata JSONField, so metadata.<key> works for custom attributes mapped through your people integration.

To test an expression against a sample payload, use https://jmespath.org.

Slack profile email is required

PlusPlus filters out Slack members without profile.email before evaluating either expression, regardless of which attribute you have configured. A Slack user with no email on their profile is invisible to the matcher even when matching on profile.real_name or a custom field. This typically affects bot accounts, contractor accounts created without email, and users who deliberately removed their email from Slack.

Test Slack: verify or refresh a user's Slack identity

The Test Slack button on the Contact Info card of a user profile resolves a user's Slack identity using the configured attribute mapping, stores the result on the PlusPlus user record, and sends a test direct message.

[SCREENSHOT: Contact Info card on a user profile, showing email, resolved Slack handle, and Test Slack button]

Behavior:

  • On match: PlusPlus stores the user's Slack ID and Slack display name on the PlusPlus user record, then sends a test DM. The user's Slack handle becomes visible on their profile and notifications route correctly going forward.

  • On no match: the button reports Could not find this user's Slack account. Any previously-stored Slack identity for that user is left untouched.

  • On Slack API failure during the test DM: the matched identity is still saved, and the send error is reported separately.

Who can use it:

  • Any user can press Test Slack on their own profile.

  • Admins can press Test Slack on any user's profile.

Use Test Slack to:

  • Repair a user whose Slack handle is missing or stale on their profile.

  • Verify a recent change to PlusPlus User Attribute or Slack User Attribute resolves a specific user as expected.

  • Confirm a user is reachable in Slack before publishing a Slack-heavy scheduled track.

If Test Slack fails repeatedly for a user, check, in order:

  1. Whether the user has profile.email set in Slack — without it, the user is filtered before matching runs.

  2. Whether the configured match expression resolves on both sides. Test the expression against a sample payload at https://jmespath.org.

  3. Whether the user is a member of the Slack workspace PlusPlus is connected to.

Turn off Slack notifications for one user

To turn off Slack DMs for a single user without affecting others:

  1. Go to the user's profile and click Edit.

  2. Go to Notification Preferences and turn off Receive Slack notifications.

  3. Save the profile.

The user continues to receive email notifications.

Permission scopes

The PlusPlus Slack app requires the following scopes:

To inspect what data each scope grants, open the PlusPlus Slack app page, click Permissions, and expand individual scopes.

If your workspace was connected before the current scope set was finalized and you see Slack channel auto-provisioning failing for scheduled tracks, disconnect and reconnect at System Settings > Integrations > Slack to grant the current scopes.

Change the bot name

The bot defaults to "PlusPlus" in Slack. To rename it:

  1. Select PlusPlus from the installed apps list.

  2. In the Bot User section, click the edit (pencil) button.

  3. Edit the bot name and click Save Changes.

The new name applies to all users in the Slack workspace, not just the admin who changed it.

Customize what gets sent

PlusPlus ships notification templates pre-configured for both email and Slack. To enable or disable individual notifications, edit message content, or override defaults for a specific content item, see How to customize email and Slack notifications.

Privacy

See https://plusplus.co/privacy for the PlusPlus privacy policy.

Did this answer your question?