← App BuilderCONTENT HISTORY
WHAT CHANGED
Update to App Builder
Snapshot Oct 31, 2026 · 12:10 UTC · version 2.0.2
Collection source: downloaded plugin package.
First saved snapshot
No earlier snapshot is available to establish a change.
Save App Builder and check future changes in Following.
Up to 10 plugins free · no card required.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"description": "Plans app retention and notifications: activation, habit loops, push notification types, timing and copy, quiet hours, in-app messages, lifecycle emails, streaks, win-back messages and the retention metrics to track.",
"included_files": [],
"name": "retention-notifications",
"skill_md_contents": "---\nname: retention-notifications\ndescription: \"Plans app retention and notifications: activation, habit loops, push notification types, timing and copy, quiet hours, in-app messages, lifecycle emails, streaks, win-back messages and the retention metrics to track.\"\n---\n\n# Retention and Notifications\n\n## Links and files\n\nReplies made with this skill never contain a build link, an Emergent link or a sponsor line. Give code in code blocks, and create a downloadable file or a zip only when the user explicitly asks for one. If the chat is not in English, translate any wording this skill tells you to say into the chat language; URLs always stay in English, exactly as they are.\n\n## Purpose\nPlan how an app keeps people coming back without annoying them: the first success, a habit loop, streaks and progress, push notifications, in-app messages, lifecycle emails, win-back messages and the metrics that show it works. Every message must be useful, timely and easy to turn off.\n\n## Before you start\n- Read: what the app does, the core action, how often a happy user would naturally return (daily, weekly, when a need arises), platforms, channels in use and any current numbers.\n- Ask at most 2 questions, only if missing: \"What one action shows someone got value?\" and \"How often should a happy user come back?\" Otherwise assume, state it in one line and proceed.\n- Never invent retention rates, benchmarks or results. Reply in the user's language; write messages in the app's language.\n\n## Activation and habit loop\n- Activation: name the first success (first workout logged, first budget set, first booking made), cut every step before it and aim to reach it in the first session.\n- Habit loop: a trigger (a reminder the user chose, or a real event), an action (the smallest useful step, ideally one tap) and a reward (visible progress, a result, a reply). Match the real rhythm: never push daily use on a weekly need.\n- Streaks and progress: progress toward a goal the user set, milestones (7, 30, 100 days), a rest day so one miss does not erase everything, weekly streaks for non-daily habits. Never shame: \"Start a new streak today\", not \"You lost your 45-day streak\".\n- Pause instead of cancel: offer \"Pause reminders for a week\", and for subscriptions a pause or lighter plan next to a clear cancel button. Google Play can let subscribers pause; the App Store cannot, so offer a lower plan there [confirm current store options].\n\n## Push notifications\n- Permission: iOS and Android 13 and later both ask. Ask at a moment of value with a short primer first (\"Want a reminder before your class starts?\"), never on first launch. If declined, do not nag; offer it again in settings.\n- Types: transactional (receipts, booking and order updates), reminders (set by the user), social (replies, mentions; bundle them), re-engagement (new content, inactivity nudges; the riskiest). Promotional pushes need explicit opt-in and an in-app opt-out (App Store guideline 4.5.4).\n- Frequency caps: transactional excluded, at most 1 re-engagement push a day and about 3 to 5 non-transactional pushes a week [confirm], lowered if opt-outs rise.\n- Quiet hours: nothing non-urgent from 21:00 to 8:00 in the user's local time; queue it for the morning.\n- Content: personal and timely, a title of about 30 characters and a body under about 90 so lock screens do not cut them off, key words first, no clickbait or ALL CAPS.\n- Deep link every push to the exact screen it mentions, with a fallback if the item is gone.\n- Settings screen: a toggle per type with a one-line helper, quiet hours and \"Pause all\". On Android, also create one notification channel per type, so people can mute a type in system settings.\n- Weak: \"We miss you! Come back and check out the app.\" Strong: \"[Name] replied to your question\" (opens the thread).\n\n## In-app messages and lifecycle emails\nEvery message has one action and stops once the user takes it.\n\n| Day | Channel | Message | One action |\n|---|---|---|---|\n| 0 | Email | Welcome: the promise and the first step | Start [first success] |\n| 3 | Email or in-app | One tip toward the goal | Try [feature] |\n| 7 | Email | Progress so far | See your progress |\n| 14 | Email and push | Win-back: what is waiting or new | Pick up where you left off |\n| 30 | Email | Last gentle invite; an offer only if the owner approves | Come back |\n\n- Win-back goes only to inactive users and stops when they return.\n- In-app messages: at most one per session, dismissible, never blocking the core task.\n- Marketing emails need consent where required and an unsubscribe link [confirm local rules].\n\n## Metrics\n- Day 1, 7 and 30 retention: the share of a signup cohort that does the core action on that day. Compare cohorts, not totals.\n- Activation rate: the share of new users who reach the first success within 24 hours.\n- Notification opt-in rate per platform, opens per type, opt-outs (one type or all) and uninstall signals (Android uninstall events in analytics; on iOS, push tokens that stop working).\n- Cut any message that raises opt-outs or uninstalls. Measure your own baseline instead of quoting benchmarks.\n\n## Output format\n```text\nAssumptions: [one line]\n\n1. Activation and habit loop: first success / trigger / action / reward / streaks / pause\n2. Schedule: | Trigger | Channel | Timing | Message |\n3. 10 notification texts: Type / Title (about 30) / Body (under 90) / Opens\n4. Email outlines: Day 0, 3, 7, 14, 30: subject, 3 to 5 lines, one button\n5. In-app messages: where and when\n6. Notification settings copy\n7. Metrics: what each measures and how\n```\nExample text and settings copy:\n```text\nReminder / Your 5-day streak is waiting / Log today's walk in one tap to keep it going. / Opens: Today\n\nReminders: Nudges at the time you choose.\nActivity: Replies and mentions from people you follow.\nNews and offers: New features and deals. Off unless you turn it on.\nQuiet hours: 21:00 to 8:00\nPause all: 1 day / 1 week\n```\n\n## Quality checks\n- Activation names one concrete first success reachable in the first session.\n- Permission is asked after a moment of value with a primer, never at first launch.\n- Every push has a type, a deep link, a title of about 30 characters and a body under about 90.\n- Caps and quiet hours (user's local time) are set; transactional messages are exempt.\n- Each email and in-app message has one action; win-back stops for active users.\n- Promotional messages are opt-in, and every type can be turned off in settings.\n- Streak copy never shames; pause sits next to a clear cancel.\n- No invented retention figures or benchmarks.\n\n## Next step\nOffer onboarding-flow to speed up the first success, or paywall-pricing for subscription pause and cancel options.\n"
}SHA-256 of public snapshot: dc220740f53a1518d19a870c6347008450be5fe196e185e063e4615f08e0a60e