Perkadoo
Guides

Streaks

Define which product action should become a streak, milestone, or retention signal.

A streak defines the retention loop behind a widget, API event, webhook, automation, or supported MCP tool call.

Use streaks when you want to answer one simple question:

What meaningful action should this user repeat?

What A Streak Contains

FieldPurpose
NameHuman-readable streak name for the dashboard.
ActionThe thing Perkadoo counts, such as lesson_complete or order_placed.
CadenceDaily, weekly, or monthly rhythm for the loop.
TargetHow many qualifying events count for the cadence.
TimezoneThe calendar boundary for streak and progress updates.
StatusTest or live. Test streaks are safe for setup events.
MilestonesTargets that can unlock messages, URLs, or rewards.

The launch version stores streaks on top of the existing widget model. Every current widget has a streak surface, and streak editing currently focuses on the action, cadence, target, timezone, status, webhook secret, and outbound action webhook configuration.

Event Sources

One streak 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 Streak Setup

  1. Create or open a project in the dashboard.
  2. Open Setup and copy the webhook URL and secret.
  3. Send a test action. Until the streak is live, every action counts as a test.
  4. Send one real action from your site or sender, then go live.
  5. Check the live feed and streak analytics.

MCP is available for existing projects and streaks when Perkadoo has provided a bearer token for the workspace or deployment. Customer-scoped MCP setup and agent-created projects and streaks 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.

On this page