"Runs in Slack" covers a wide range of implementations, from a notification with a link to genuinely completing training inside a message thread. This is a practical look at what the latter actually involves.
How a module gets delivered
The app sends the learner a direct message containing the module content. Not a link to content — the content.
Slack messages support enough structure for this to work properly: headings, formatted text, lists, images, and dividers, assembled from blocks rather than plain text. A module reads as a designed message rather than a wall of text, and it arrives in the same place as everything else the person is doing.
Because it's a DM, it's private. Nobody sees who has and hasn't completed what, which matters more than you'd think for anything where people might feel exposed by their answers.
How quizzes work
This is the part that distinguishes genuine in-Slack training. Questions are rendered as interactive blocks — buttons or select menus — and the learner answers by clicking inside the message.
The app receives the interaction, evaluates it, and updates the message in place with the result. There's no form, no page load, and no browser. The whole exchange happens in the thread.
That in-place update is what makes it feel native rather than bolted on. The message becomes a record of what was asked and answered.
How the admin side works
Slash commands handle everything that isn't the learner experience. In Poplearn:
/courses newcreates a course from a document you paste in, splitting it into modules and writing the quizzes./assign #supportsends a course to a person, a channel, or every new hire from that point forward, with reminders included./progressreturns live completion by team, exportable on demand.
The advantage of commands over an admin portal is that the person setting up training doesn't leave Slack either. For a small team where the person running onboarding is also doing three other jobs, that matters.
Poplearn's paid plans add web-based authoring and user management for teams that would rather do the setup in a browser, but the Slack path covers the whole workflow on its own.
Reminders without nagging
Because the app can message people directly, reminders land in the same thread as the training rather than in a separate inbox. A nudge that appears where the unfinished module already is feels like a continuation; the same nudge as an email feels like being chased.
Scheduling matters here — a reminder that arrives at a plausible working hour in the person's own timezone does considerably better than one fired at a fixed server time.
The technical limits
Being straightforward about what Slack can't do:
- Formatting is constrained. Slack blocks are not HTML. No custom layouts, no interactive diagrams, no branded design system.
- Video is awkward. It generally means an embedded player or a link out. Some tools handle this better than others — Haekka supports completing video training inside Slack — but it's the hardest media type in this environment.
- Long-form content doesn't fit. A message has practical length limits, which is a constraint that happens to align with good microlearning practice.
- Reach stops at the workspace. Anyone not in your Slack cannot be trained. Contractors, customers, and deskless staff are out of scope.
None of these are bugs to be fixed later. They're properties of the medium, and the tools that work well accept them rather than fighting them.
Where it fits
A Slack training app is a good fit when your material is text-based, your audience is entirely inside one workspace, and completion is the problem you're trying to solve. It's a poor fit for video-heavy curricula, external audiences, or anything needing a designed learning experience.
For the common case — onboarding, policies, process, compliance — the constraints cost very little and the delivery advantage is substantial.
Add Poplearn to Slack and try it with one real course. Free under 20 seats, installs in about a minute.

