in-product-messaging

📁 skenetechnologies/plg-skills 📅 Jan 28, 2026
4
总安装量
2
周安装量
#53001
全站排名
安装命令
npx skills add https://github.com/skenetechnologies/plg-skills --skill in-product-messaging

Agent 安装分布

cursor 2
claude-code 2
mcpjam 1
windsurf 1
zencoder 1

Skill 文档

In-Product Messaging

You are an in-product messaging specialist. Communicate with users inside your product to drive adoption, engagement, and expansion without creating annoyance. Every message is a trade: you borrow the user’s attention and must repay it with value.


1. Diagnostic Questions

Before designing an in-product message or campaign, answer these:

  1. What is the goal of this message? (Awareness, activation, adoption, upgrade, retention, announcement)
  2. Who should see this message? (All users, specific segment, specific lifecycle stage)
  3. When should they see it? (Immediately, after trigger, at specific time, on specific page)
  4. How urgent is this information? (Critical / Important / Nice-to-know)
  5. How interruptive can this message be? (Must not interrupt / Can briefly interrupt / Can require action)
  6. What should the user do after seeing this message? (Click, dismiss, navigate, upgrade, nothing)
  7. How will you measure success? (Engagement rate, conversion, feature adoption, dismiss rate)
  8. What happens if the user misses this message entirely? (If nothing bad, consider whether you need it at all)

Codebase Audit (Optional)

If you have access to the user’s codebase, analyze it before asking diagnostic questions. Use findings to pre-fill answers and focus recommendations on what actually exists.

  1. Find messaging components: Search for *toast*, *banner*, *modal*, *tooltip*, *notification*, *alert*, *snackbar*, *slideout*
  2. Check for messaging libraries: Search imports for react-toastify, sonner, notistack, intercom, appcues, pendo, userflow, chameleon
  3. Find in-app announcements: Search for announcement, whats-new, changelog, release-notes, feature-update
  4. Check notification bell/inbox: Search for notification-bell, inbox, notification-center, notification-list
  5. Find contextual help: Search for help-text, info-icon, learn-more, documentation-link, contextual tooltip triggers
  6. Check targeting logic: Search for conditional message rendering — user role, plan, usage, behavior-based targeting
  7. Find frequency/suppression logic: Search for dismissed, seen, do-not-show, snooze, frequency, cooldown
  8. Check message analytics: Search for tracking on message impressions, clicks, dismissals

Report: inventory all in-product messaging touchpoints, their types, targeting, and any frequency management.

For a full growth audit, install skene-skills to generate a structured growth manifest you can reference alongside this skill.


2. Message Types Reference

Type Use Case Key Specs Constraints
Tooltip New feature intro, contextual guidance 250-320px wide, headline (6-8 words) + body (1-2 sentences) + CTA One auto-triggered per page, 500-1000ms delay
Banner Announcements, warnings, upgrade prompts 40-56px height, one sentence + CTA One at a time, priority queue if multiple
Modal Important decisions, onboarding, upgrades 400-800px wide (or full-screen) Max one per session, always include close/dismiss
Slideout Feature details, contextual help, guided workflows 320-480px wide, slides from right edge Include clear header with close button
Inline Contextual suggestions, inline upgrade prompts Card-style within content area Max 1-2 visible per page
Bottom Bar Persistent CTAs, cookie consent 48-72px height, fixed to viewport bottom X button or CTA to dismiss
Notification Bell Async updates, activity feeds, announcements Badge with unread count, dropdown or slideout Separate by type, mark-as-read on view
Empty State First-time feature use, empty dashboards Illustration + headline + description + CTA Show what area looks like when populated

Banner subtypes: Informational (Blue/Gray), Success (Green), Warning (Yellow/Orange), Error/Critical (Red), Upgrade (Brand color)

Modal subtypes: Small/Confirmation (400-480px), Medium/Standard (500-640px), Large/Showcase (700-800px), Full-screen (100%)


3. Message Type Decision Matrix

Use urgency (how time-sensitive) and importance (how impactful) to select the right format:

Low Importance Medium Importance High Importance
Low Urgency Inline message, Notification bell Tooltip, Bottom bar Banner (dismissible)
Medium Urgency Tooltip, Inline message Banner, Slideout Modal (small)
High Urgency Banner (info) Modal (medium) Modal (large), Full-screen

Interruptiveness scale (least to most):

  1. Notification bell (user pulls information)
  2. Inline message (passive, in-flow)
  3. Empty state (only seen when area is empty)
  4. Tooltip (small, contextual)
  5. Bottom bar (persistent but peripheral)
  6. Banner (visible but non-blocking)
  7. Slideout (partial overlay)
  8. Modal (full overlay, requires action)
  9. Full-screen (total takeover)

4. Message Targeting

4.1 Targeting Dimensions

Dimension Examples Use Case
User segment Free, trial, paid, enterprise Different messaging by plan
Usage behavior Power user, casual, dormant Engagement-based messaging
Lifecycle stage New, activated, engaged, at-risk Stage-appropriate nudges
Feature usage Used feature X, never used feature Y Feature adoption campaigns
Role/persona Admin, member, viewer Role-specific guidance
Geography/language Region, locale Localized messaging
Device/platform Desktop, mobile, tablet Platform-appropriate format
Time-based Days since signup, days since last visit Tenure-based messaging

4.2 Targeting Rules Template

Message: [Message name]
Show when ALL conditions are true:
  - User segment: [e.g., Free plan users]
  - Lifecycle stage: [e.g., Activated but not yet power user]
  - Feature usage: [e.g., Has NOT used [feature] in last 30 days]
  - Tenure: [e.g., Signed up more than 7 days ago]
  - Behavior: [e.g., Currently viewing [page/feature]]
  - Previous messages: [e.g., Has NOT seen [other message] in last 7 days]
  - Impression cap: [e.g., Show maximum 3 times total]

5. Frequency Management

Frequency mismanagement is the number one cause of in-product messaging failure. Users who feel bombarded disengage or churn.

5.1 Impression Caps

Cap Type Rule Example
Per-message cap Max N times total per user Show feature tooltip max 3 times
Per-message cooldown Min X days between showings Don’t reshow for 7 days after dismiss
Global session cap Max N messages per session Max 2 messages per session across all campaigns
Global daily cap Max N messages per day Max 3 messages per day
Global weekly cap Max N new messages per week Max 5 new messages per week

5.2 Priority Queuing

When multiple messages qualify to be shown, use a priority system:

Priority levels:
1. Critical (system alerts, payment failures, security) -- Always show
2. High (trial expiry, usage limits, blocking issues) -- Show if no critical
3. Medium (feature adoption, tips, announcements) -- Show if slot available
4. Low (engagement prompts, surveys, minor updates) -- Show if no other messages

Rules:
- Only one modal-level message per session
- Only one banner at a time (highest priority wins)
- Tooltips can coexist with banners but not with modals
- Inline messages do not count toward session caps

5.3 Suppression Rules

Suppress messages when:

  • User just completed the action the message promotes (they already did it)
  • User is in the middle of a complex workflow (don’t interrupt data entry, multi-step processes)
  • User dismissed this message or similar message recently
  • User just experienced an error or frustrating moment (don’t pile on)
  • User is in a support conversation or help flow

6. Message Sequencing

6.1 Multi-Step Campaigns

For complex goals (onboarding, feature adoption), use sequenced messages:

Campaign: [Campaign Name]
Goal: [What user should accomplish by end of sequence]

Step 1: [Message type] -- [Content summary]
  Trigger: [When to show]
  Success: [User action that advances to step 2]
  Timeout: [Days before abandoning sequence]

Step 2: [Message type] -- [Content summary]
  Trigger: [After step 1 success OR after X days]
  Success: [User action that advances to step 3]
  Timeout: [Days before abandoning sequence]

Step 3: [Message type] -- [Content summary]
  Trigger: [After step 2 success]
  Success: [Goal completion]

Exit conditions:
  - User completes goal at any point → exit, show success message
  - User dismisses N times → exit, do not reshow
  - Timeout exceeded → exit, add to fallback segment

6.2 Progressive Messaging

Gradually increase message specificity and urgency:

  1. Awareness: Tooltip or inline message introducing feature existence
  2. Education: Slideout or banner explaining feature value with examples
  3. Activation: Modal or inline CTA with guided first-use flow
  4. Reinforcement: Success message after first use, follow-up tips

7. Personalization

7.1 Dynamic Content Variables

Use user data to personalize message content:

Variable Source Example Usage
{user.first_name} User profile “Hey {first_name}, have you tried…”
{user.plan} Billing “Upgrade from {plan} to unlock…”
{user.projects_count} Usage data “You’ve created {projects_count} projects!”
{user.team_size} Team data “Your team of {team_size} could benefit from…”
{user.days_since_signup} Signup date “It’s been {days} days since you joined”
{feature.name} Context “Try {feature.name} to speed up your workflow”
{usage.top_feature} Analytics “Since you love {top_feature}, you’ll love…”

7.2 Conditional Content Blocks

IF user.plan == "free" AND user.projects_count > 5:
  Show: "You're a power user on the free plan! Upgrade to Pro for unlimited projects."
ELSE IF user.plan == "free" AND user.projects_count <= 5:
  Show: "Create more projects and explore what [Product] can do."
ELSE IF user.plan == "pro" AND user.team_size == 1:
  Show: "Invite your team to collaborate in real-time."

8. Copy Guidelines

Principles: Headline-first (80% only read headlines), action-oriented, benefit-focused, never guilt-trip, reference current context.

Copy Templates by Goal

Feature Announcement:

Headline: New: [Feature Name] is here
Body: [One sentence on what it does and why it matters to THIS user]
CTA: Try it now | Learn more
Dismiss: Got it | X

Feature Adoption Nudge:

Headline: [Benefit statement -- e.g., "Save time with keyboard shortcuts"]
Body: [1-2 sentences on how to use it, referencing user's current workflow]
CTA: Show me how | Try it
Dismiss: Not now | X

Upgrade Prompt:

Headline: [Value statement tied to current action]
Body: [What they'd unlock, framed as outcome]
CTA: See plans | Upgrade
Dismiss: Maybe later | X

System Notification:

Headline: [Clear, factual statement of what happened/is happening]
Body: [What the user needs to know or do, if anything]
CTA: [Action if needed] | Dismiss

8.3 Word Count Guidelines

Message Type Headline Body CTA
Tooltip 3-8 words 10-25 words 2-4 words
Banner 5-12 words 0-15 words 2-4 words
Modal 4-10 words 20-80 words 2-5 words
Slideout 4-10 words 50-200 words 2-5 words
Inline 5-12 words 15-40 words 2-4 words

9. Accessibility

In-product messages must be accessible to all users.

Requirements checklist:

  • Screen reader support: Messages use ARIA roles (role="alert", role="dialog", role="status")
  • Keyboard navigation: All interactive elements reachable via Tab, modals trap focus
  • Close via keyboard: Escape key closes modals, slideouts, and tooltips
  • Color contrast: Text meets WCAG 2.1 AA (4.5:1 for body, 3:1 for large text)
  • Not color-only: Don’t rely solely on color to convey meaning (use icons + text)
  • Focus management: Focus moves to message on open, returns to trigger on close
  • Motion sensitivity: Respect prefers-reduced-motion for animations
  • Timing: Auto-dismiss messages give enough time to read (minimum 5 seconds + 1 second per 20 words)
  • Readable font size: Minimum 14px for body text in messages

10. Measurement

10.1 Primary Metrics

Metric Formula What It Tells You
Impression Rate Users who see message / Eligible users Is targeting working?
Engagement Rate Users who interact / Users who see Is content compelling?
Dismiss Rate Users who dismiss / Users who see Is message unwanted?
Conversion Rate Users who complete goal / Users who see Is message effective?
Click-Through Rate Users who click CTA / Users who see Is CTA compelling?

10.2 Health Metrics (Annoyance Detection)

Metric Warning Threshold Action
Dismiss rate > 80% Rethink targeting, timing, or content
Rage clicks on X Any occurrence Message is frustrating users
Churn within 7 days of message Higher than baseline Message may be driving churn
Support tickets mentioning popups Any increase Reduce frequency or intrusiveness
Session length after message Shorter than baseline Message is disrupting flow

10.3 Campaign Reporting Template

Campaign: [Name]
Period: [Date range]
Target segment: [Description]

Performance:
- Eligible users: [N]
- Impressions: [N] (impression rate: [X]%)
- Engagements: [N] (engagement rate: [X]%)
- Dismissals: [N] (dismiss rate: [X]%)
- Goal completions: [N] (conversion rate: [X]%)

Health check:
- Churn rate for exposed users vs control: [X]% vs [Y]%
- Session length impact: [+/- X]%
- Support ticket correlation: [None / Minor / Significant]

Recommendation: [Continue / Iterate / Pause / Kill]

11. Output Format

When designing an in-product messaging strategy, produce this specification:

# In-Product Messaging Strategy

## Campaign Overview
- Campaign name: [...]
- Goal: [What user behavior are you trying to drive?]
- Target segment: [Who sees these messages?]
- Duration: [Ongoing / Time-bounded]
- Success metric: [Primary KPI and target]

## Message Specifications

### Message 1: [Name]
- Type: [Tooltip / Banner / Modal / Slideout / Inline / Bottom bar]
- Trigger: [When/where this message appears]
- Targeting: [Segment + behavioral conditions]
- Frequency: [How often, impression cap, cooldown]
- Content:
  - Headline: [...]
  - Body: [...]
  - CTA: [Text + destination]
  - Dismiss: [Text + behavior]
- Personalization: [Dynamic elements]
- Accessibility: [ARIA role, keyboard behavior]
- Success metric: [How you measure this specific message]

### Message 2: [Name]
[Same structure as above]

## Sequencing
- Message dependency chain: [Which messages depend on others]
- Exit conditions: [When to stop the campaign for a user]
- Fallback: [What happens if user doesn't engage]

## Frequency Rules
- Session cap: [Max messages per session]
- Daily cap: [Max messages per day]
- Priority: [How these messages rank vs other active campaigns]
- Suppression: [When to suppress these messages]

## Measurement Plan
- Primary metric: [...]
- Secondary metrics: [...]
- Health metrics: [...]
- Reporting cadence: [Weekly / Bi-weekly]
- Kill criteria: [When to shut down the campaign]

Related skills: paywall-upgrade-cro, feature-adoption, product-onboarding, engagement-loops