What in-app messages do
Two automation types for non-email touchpoints inside your product:| Type | What it does |
|---|---|
| In-App Message | Modal or inline message rendered by the SDK |
| Banner | Banner-style alert at the top of the page |
How they’re delivered
When you activate an in-app message or banner:- The first content step is upserted into the
active_messagestable withactive: true - The SDK polls (or receives via realtime) for active messages for the current user
- The SDK renders the message in the product
Inside a series
In-app messages and banners can also appear as steps inside a series (channelin_app or banner):
- They’re enqueued like email steps
- The cron currently marks them as
deliveredimmediately and advances the user
Halo’s runtime for in-app/banner steps inside a series is simpler than the standalone activation path. Standalone in-app/banner automations are the more battle-tested path for surface-level rendering.
Common use cases
| Use case | Type |
|---|---|
| New feature announcement | Banner |
| Dunning notice (“Your card is expired”) | Banner |
| Onboarding prompt (“Connect your first integration”) | In-App |
| Re-engagement modal (“It’s been a while”) | In-App |
| Maintenance window notice | Banner |
Audience targeting
In-app and banner automations support the same audience targeting as broadcasts:- All users with email (or with the SDK loaded)
- Filter by segment — user/company traits, custom fields, Stripe data
- Subscription list (less common for in-app)
Designing the content
Content uses the same editor as series in-app steps. You can include:- Rich text
- Merge tags (
{{first_name}},{{company_name}}, custom fields) - Links
- Images
Activating and pausing
| Action | Effect |
|---|---|
| Activate | Insert into active_messages, becomes visible to matching users |
| Pause | Set active: false, hides the message from new users |
| Archive | Permanently disable |
Where to go next
Broadcasts
Email equivalent — one-shot to a targeted audience.
Series
Combine in-app steps with email steps in a sequence.