Retention Programs
Define which product action should become a streak, milestone, or retention signal.
A program defines the retention loop behind a widget, API event, webhook, automation, or supported MCP tool call.
Use programs when you want to answer one simple question:
What meaningful action should this user repeat?
What A Program Contains
| Field | Purpose |
|---|---|
| Name | Human-readable program name for the dashboard. |
| Action | The thing Streakfox counts, such as lesson_complete or order_placed. |
| Cadence | Daily, weekly, or monthly rhythm for the loop. |
| Target | How many qualifying events count for the cadence. |
| Timezone | The calendar boundary for streak and progress updates. |
| Status | Test or live. Test programs are safe for setup events. |
| Milestones | Targets that can unlock messages, URLs, or rewards. |
The launch version stores programs on top of the existing widget model. Every current widget has a program surface, and program editing currently focuses on the action, cadence, target, timezone, status, webhook secret, and outbound action webhook configuration.
Event Sources
One program can receive events from multiple places:
- Your server, through the webhook
- Automation tools such as Zapier, Make, n8n or Pipedream, through the webhook
- The WordPress plugin
- Internal automation jobs
- MCP tools used by agents when your workspace has an MCP bearer token
All sources update the same streak/progress state as long as they use the same project key, member ID (userHash) and action. The widget only displays progress. Actions are never counted from the browser.
First Program Setup
- Create or open a project in the dashboard.
- Open Programs.
- Open Connections and copy the webhook URL and secret.
- Send a test action. Until the program is live, every action counts as a test.
- Send one real action from your site or sender, then go live.
- Check the live feed and program analytics.
MCP is available for existing projects/programs when Streakfox has provided a bearer token for the workspace or deployment. Customer-scoped MCP setup and agent-created projects/programs are not part of the self-serve launch path yet.
Avoiding Fragmented Streaks
Use a stable userHash for the same person across every event source. If a user starts anonymously and later signs in, use aliasing so their browser streak and signed-in account stay connected.