Someone on your leadership team wants to thank everyone who earned a "Customer Hero" award last quarter. Or HR wants to check in — gently — with anyone who hasn't given a single shoutout in weeks. Either way, the list lives in Bonusly, and getting from "here's who matches" to "here's a Slack DM in their inbox" usually means exporting a report, cross-referencing names against Slack handles by hand, and pasting together a message list. By the time it's done, the data's already a week stale.
Threadly's Bonusly integration skips that entirely. It reads recognition and award activity straight out of Bonusly and uses it to build a live Slack DM audience — so "everyone who's given an award" or "everyone who received a Customer Hero recognition" is a filter you set once, not a report you re-run every time you need it.
Recognition Activity, Not a Spreadsheet
Bonusly already knows who's giving recognition, who's receiving it, and who's earned a specific named award. Threadly turns that into a filter on a Dynamic Segment of Slack direct messages — because recognition and awards belong to individual people, not shared channels, this is a DM-specific audience, not a channel-based one.
You can filter on recognition given, recognition received, awards given, awards received, or either — six ways to slice "activity" in total — and layer on a free-text match against a specific award or recognition type, like "Customer Hero" or "peer-to-peer," with an Is or Is-not condition. Stack a few of these together with AND/OR and the audience gets as narrow as you need.
Why It Doesn't Go Stale
There's no sync job or cached snapshot sitting between your filter and Bonusly. Every time a message is about to go out to a Bonusly-filtered audience, Threadly pulls current users and activity directly from the Bonusly API and evaluates the filter right then — so if someone got recognized ten minutes ago, they're already eligible for the next send.
The matching itself happens by email: Threadly maps each Bonusly user to the corresponding Slack workspace member by email address, on purpose leaving out Slack Connect and shared-channel guests, since there's no reliable way to identify them across organizations. If Bonusly is unreachable or a token's gone stale, that filter just returns no matches instead of breaking the send — the rest of your audience still gets the message.
What This Looks Like in Practice
- Celebrating award winners: DM everyone who's received a "Customer Hero" award this quarter with a call-out, a perk, or an invite to a recognition event — no manual list-building.
- Catching quiet participants early: Segment by "no recognition given" and send a nudge before disengagement becomes a pattern worth escalating.
- Spotlighting top recognizers: Message everyone who's given recognition or an award and ask them to share what prompted it.
- Award-specific outreach: Use the free-text match to reach everyone who's ever earned a particular award, for a dedicated campaign or survey.
And because it's built on the same filter pattern as Threadly's other integrations, you can combine Bonusly activity with Attio, HubSpot, Planhat, or Featurebase data in the same audience — Bonusly is just one more lens on top of whatever else you already segment by.
Setting It Up
Connect Bonusly from the Integrations screen in your Threadly dashboard using a Personal Access Token with user:read, recognition:read, and awards:read scopes. Once connected, Bonusly shows up as a filter option on any direct-message Dynamic Segment. It's available now on Threadly's Pro plan.
Questions? We're standing by at support@trythreadly.com.

