skills/sales-push-notification/SKILL.md
Mobile and web push notification strategy — opt-in optimization, rich push, segmentation, timing, frequency capping, deep linking, A/B testing, and analytics. Covers strategy and implementation across Braze, OneSignal, Airship, Firebase/FCM, Customer.io, Klaviyo, Iterable, and MoEngage. Use when push opt-in rates are low, users are disabling notifications, push campaigns get poor click-through, you're unsure which push provider to pick, or notifications feel spammy and drive uninstalls. Do NOT use for in-app messages (use /sales-in-app-messaging), email marketing (use /sales-email-marketing), SMS/WhatsApp messaging (use /sales-braze or platform-specific skill), or cold outbound (use /sales-cadence). For Braze-specific help, use /sales-braze. For Customer.io-specific help, use /sales-customerio.
npx skillsauth add sales-skills/sales sales-push-notificationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Help the user with push notification strategy — from opt-in optimization and message design through segmentation, timing, frequency capping, and analytics. This skill is tool-agnostic but includes platform-specific guidance for Braze, OneSignal, Airship, Firebase/FCM, Customer.io, Klaviyo, Iterable, and MoEngage.
If references/learnings.md exists, read it first for accumulated knowledge.
Ask the user:
What do you need help with?
What platforms do you target?
What tool are you using (or considering)?
If the user's request already provides most of this context, skip directly to the relevant step. Lead with your best-effort answer using reasonable assumptions (stated explicitly), then ask only the most critical 1-2 clarifying questions at the end.
Push is highest-value for:
Push is lowest-value (and most likely to cause unsubscribes) for:
iOS requires explicit user permission for push. Android auto-enables but users can disable. Web requires permission prompt.
The push primer pattern (critical for iOS):
Opt-in rate benchmarks:
Frequency guidelines:
Timing optimization:
Read references/platform-guide.md for detailed platform comparisons, implementation checklist, and key metrics.
You no longer need the platform guide details — focus on the user's specific situation.
Based on the user's specific question, provide targeted recommendations drawing on the strategy framework in Step 2 and platform details in the reference guide.
references/learnings.md with today's date.This skill covers a strategy domain across many platforms. Before pointing the user to any specific platform skill (any /sales-{platform} listed in ## Related skills, e.g., /sales-mailshake, /sales-klaviyo, /sales-apollo), read that platform skill's actual SKILL.md first. The 1-line description in ## Related skills is enough to identify a candidate — it's not enough to commit to it or to write a prompt that invokes it well.
How to read it:
~/.claude/skills/{skill-name}/SKILL.md exists locally, Read it.sales-* skills, WebFetch directly from this repo: https://raw.githubusercontent.com/sales-skills/sales/main/skills/{skill-name}/SKILL.md — e.g., for sales-mailshake: https://raw.githubusercontent.com/sales-skills/sales/main/skills/sales-mailshake/SKILL.md.sales-* skills (third-party), look up {org}/{repo} in ~/.claude/skills/sales-do/references/skill-sources.md if installed and fetch the same skills/{skill-name}/SKILL.md path under that repo.After reading, ground your recommendation in something concrete from the SKILL.md (its scope, a sub-flow, its argument-hint shape, or a "Do NOT use for..." negative trigger). Align any generated invocation with the platform skill's argument-hint. If the platform skill turns out not to fit the user's situation, swap to another or handle the question here directly rather than recommending a poor fit.
/sales-iterable — Iterable platform help (push setup, Studio journeys, Brand Affinity, STO)/sales-braze — Braze platform help (push setup, Canvas integration, BrazeAI timing)/sales-customerio — Customer.io platform help (push in Journeys)/sales-klaviyo — Klaviyo platform help (push for Shopify e-commerce)/sales-omnisend — Omnisend platform help (web push + email + SMS for ecommerce)/sales-sendpulse — SendPulse platform help (web push + email + chatbots + Automation 360)/sales-in-app-messaging — In-app messages and content cards (companion to push)/sales-email-marketing — Email marketing strategy (coordinate push + email cadence)/sales-sms-marketing — SMS marketing strategy (coordinate push + SMS cadence)/sales-live-chat — Live chat and chatbot (another engagement channel)/sales-do — Not sure which skill to use? The router matches any sales objective to the right skill. Install: npx skills add sales-skills/sales --skill sales-doUser says: "Our iOS push opt-in rate is only 25%. How do we improve it?" Skill does: Diagnoses likely cause (showing OS prompt too early without primer). Designs a push primer flow: trigger in-app message after user completes first key action (e.g., first purchase, first save), explain value proposition specific to their behavior, show OS prompt only on "Enable" tap. Provides benchmark (50-70% with primer). Result: Push primer implementation plan with expected 2x improvement in opt-in rate
User says: "I want to send push notifications to users who abandon their cart in our e-commerce app" Skill does: Designs a 3-step push sequence: Push 1 at 1 hour ("You left something behind" + product image), Push 2 at 24 hours ("Still interested? Items selling fast"), Push 3 at 48 hours with incentive ("10% off if you complete today"). Includes deep linking to cart, frequency capping, and exit conditions (remove on purchase). Result: Automated cart abandonment push campaign with timing, content, and deep links
User says: "We're a Series A startup with 50K MAUs. Should we use OneSignal or Braze for push?" Skill does: Compares OneSignal (free tier, simpler, good for push-primary) vs Braze (enterprise, expensive but powerful cross-channel). At 50K MAUs, recommends OneSignal to start — free, fast setup, covers push + basic email. Suggests re-evaluating Braze when they hit 500K+ MAUs or need sophisticated cross-channel journeys. Result: Clear recommendation with migration path as they scale
Symptom: Push notifications sent but open rate below 3% Cause: Messages not personalized, bad timing, or sending to disengaged users Solution: 1) Segment by recent activity — only send to users active in last 30 days. 2) Enable intelligent timing / send time optimization. 3) Personalize with user name and relevant content. 4) Use rich push (images, action buttons). 5) A/B test titles and body copy. 6) Review frequency — reduce if sending more than 1/day.
Symptom: Users disabling push notifications at > 2% per month Cause: Sending too frequently, irrelevant content, or no frequency capping Solution: 1) Implement frequency capping (max 1-2 promotional push per day). 2) Segment by interest — don't blast everyone. 3) Add preference center so users can choose notification types. 4) Review content relevance — are you sending value or just noise? 5) Reduce promotional push frequency for users who haven't engaged in 14+ days.
Symptom: Push campaigns show sends but no deliveries on iOS Cause: APNs certificate expired, invalid tokens, or sandbox/production mismatch Solution: 1) Check APNs certificate expiry in your push platform settings. 2) Verify you're using the correct environment (sandbox for dev, production for App Store). 3) Check that push entitlement is enabled in your Xcode project. 4) Test with a fresh install to generate a new token. 5) Check Apple's APNs status page for outages.
tools
Waitlister platform help — pre-launch waitlist platform with hosted landing pages, points-based viral referrals, built-in email broadcasts, REST API, and five HMAC-signed webhook events. Use when choosing Free (100 subscribers) vs Launch $15/mo (unlimited subs, referrals + broadcasts) vs Growth $49/mo (API, webhooks, Klaviyo/Mailchimp/Kit sync, fraud detection unlock here) vs Business $129/mo, building a webhook handler that verifies X-Webhook-Signature, webhooks auto-disabled after 10 consecutive failures, API signups bypassing referral fraud detection because client_ip/fingerprint weren't forwarded, granting bonus points or pulling top referrers via the API for reward fulfillment, broadcast send caps forcing an ESP handoff, automating without Zapier (Waitlister has none — webhooks/API only), or comparing Waitlister vs LaunchList/KickoffLabs/GetWaitlist/Prefinery. Do NOT use for list-growth strategy (use /sales-audience-growth) or LaunchList help (use /sales-launchlist).
development
LaunchList platform help — viral pre-launch waitlist platform with one-time lifetime pricing, gamified referrals (queue jumping, leaderboard, position inflation), embed widget + custom form POST endpoint, new_user/email_verify webhooks, Zapier, and spam protection. Use when choosing Free (100 submissions) vs Launch $29 (500) vs Grow $79 one-time (10K — webhooks, Zapier, team unlock here), wiring waitlist signups into Mailchimp/Kit/HubSpot or a CRM because LaunchList has no email broadcast system, needing programmatic access when there is no public REST API yet (form POST + webhook workaround), building a webhook handler with referred_by referral attribution, blocking disposable-email or bot signups on a viral waitlist, a custom signup form not submitting or not tracking referrals, or comparing LaunchList vs KickoffLabs/Viral Loops/Prefinery/GetWaitlist on one-time vs subscription pricing. Do NOT use for list-growth strategy (use /sales-audience-growth) or KickoffLabs help (use /sales-kickofflabs).
development
UpViral platform help — viral referral marketing and list-building platform (by Emarky) for viral sweepstakes, giveaway/reward campaigns, pre-launch waiting lists, and milestone referrals, with REST API (`app.upviral.com/api/v1/`, form-encoded `uvapikey` + `uvmethod`), Callback-URL webhooks, IP-based fraud detection, and 30+ ESP/CRM integrations. Use when campaigns aren't tracking referral points, deciding between Starter $79/mo (10K leads, NO API) vs Business $119/mo (API + webhooks) vs Premium $319/mo, the API erroring because you're on Starter where API/webhooks are gated, building a pipeline with `add_contact`/`get_leads`/`get_leads_points`, interpreting same-IP suspicious-referral flags, or picking UpViral over Viral Loops/Vyper/Gleam. Do NOT use for newsletter audience growth (use /sales-audience-growth), KickoffLabs help (use /sales-kickofflabs), merge-tag referrals (use /sales-referralkit), SparkLoop recommendations (use /sales-sparkloop), or multi-level Level 1/2/3 tracking (use /sales-referralhero).
tools
ReferralHero platform help — full-stack referral, affiliate, waitlist, contest, and NPS platform with REST API, webhooks, Zapier, native ESP connectors, multi-level referral tracking (Level 1/2/3), coupon groups, anti-fraud, and a 5,000 calls/hour limit. Use when referrals aren't tracking, deciding between Free (no API) vs PRO $199/mo (API + webhooks) vs PREMIUM $399/mo (ReCaptcha + SMS Verification), auth failing with `no_token` or `Bearer` vs `X-API-Key`, Level 2/3 counts off from calling `level_2_all_referrals` not `level_2_referrals`, bulk 429s from not chunking the 500-transaction `add_bulk_transactions` limit, coupon endpoints 404 without a coupon group, reward fulfillment (`promote` then `unlock_promoted_reward`) failing, or comparing to SparkLoop/ReferralKit/GrowSurf. Do NOT use for newsletter audience growth (use /sales-audience-growth), merge-tag referrals (use /sales-referralkit), SparkLoop recommendations (use /sales-sparkloop), or affiliate strategy across tools (use /sales-affiliate-program).