Send awards to Slack
Novigem publishes a platform event every time someone earns points, wins a badge or completes a challenge. Any org with Slack connected to Salesforce can subscribe to that event with a Flow and post a message. Clicks, no code, and nothing to wait for from us.
There is no packaged Slack toggle yet. That is on the roadmap. What follows works today and takes about five minutes.
The event
Award_Granted__e fires on every award. It is a high-volume platform event published after commit, so it only fires once the underlying record actually saved.
| Field | Holds |
|---|---|
User_Id__c | The user who earned it |
Points__c | Points awarded |
Title__c | Short headline for the award |
Message__c | Longer description |
Rule_Name__c | The rule that fired, when it was a rule award |
Challenge_Name__c · Challenge_Id__c | The challenge, when the award came from one |
Badge_Name__c · Badge_Id__c | The badge, when one was earned |
Badge_Description__c · Badge_Icon_Color__c | Badge presentation detail |
Source_Record_Id__c | The Salesforce record the behaviour happened on |
In a subscriber org these carry the ngm__ namespace prefix. The Flow field picker shows labels rather than API names, so this matters only if you are writing formulas.
Before you start
- Slack connected to your Salesforce org, so the standard Send Slack Message action is available in Flow
- Permission to create and activate Flows
- At least one active Novigem rule, otherwise nothing will fire to test against
Build the Flow
Create a platform-event-triggered Flow
Setup → Flows → New Flow → Platform Event-Triggered Flow.
For the platform event, choose Award Granted.
Resolve the user
The event carries User_Id__c, not a name. Add a Get Records on User, filtered where Id equals the event’s User_Id__c, to get the name, and the Slack handle if you store one.
Add the Slack message
Add the Send Slack Message action. Pick the channel, then build the message text from the event fields and the user you just retrieved.
A message that reads well is usually the name, the points, and the reason:
{!Get_User.Name} earned {!$Record.Points__c} points · {!$Record.Title__c}Activate
Save and activate. Trigger a rule in your org and watch the channel.
The detail people trip over
The Send Slack Message action is restricted to asynchronous paths in a record-triggered Flow. That restriction is why most people abandon this approach.
It does not apply here. Platform-event-triggered flows are asynchronous by nature, so the action is available directly, with no scheduled path to configure.
Before you turn it on for everyone
Award_Granted__e is a high-volume event and Novigem fires it on every award. On an active sales floor that can be a lot of messages.
Worth doing one of these before you point it at a busy channel:
- Filter the trigger. Set an entry condition on the Flow so only badge awards or challenge completions post, rather than every points award.
- Use a dedicated channel so the volume does not bury other conversation.
- Check your event allocation. High-volume platform events have delivery limits per org per day, shared across every subscriber.
Teams, Discord, and anything else
Nothing above is specific to Slack. The pattern is: subscribe to Award_Granted__e from a platform-event-triggered Flow, then call whatever action or HTTP callout your destination needs.
If it can be reached from a Flow, it can be reached from a Novigem award today.
Related
- Notifications · every channel and its status
- Integrations · what is packaged and what is not
- Components · the in-app celebration that subscribes to the same event