skenetechnologies/plg-skills/in-product-messaging
Claude Code and agent skill by skenetechnologies/plg-skills
- community
Checking that the SKILL.md file is still in the repository.
When the user wants to design in-product messages -- including tooltips, banners, modals, slideouts, or notification bells -- without annoying users. Also use when the user says "in-app messages," "product announcements," "nudges," "contextual help," or "message frequency." For upgrade prompts specifically, see paywall-upgrade-cro. For feature launches, see feature-adoption.
Install
npx vskill@latest install skenetechnologies/plg-skills/in-product-messagingSKILL.md
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:
- What is the goal of this message? (Awareness, activation, adoption, upgrade, retention, announcement)
- Who should see this message? (All users, specific segment, specific lifecycle stage)
- When should they see it? (Immediately, after trigger, at specific time, on specific page)
- How urgent is this information? (Critical / Important / Nice-to-know)
- How interruptive can this message be? (Must not interrupt / Can briefly interrupt / Can require action)
- What should the user do after seeing this message? (Click, dismiss, navigate, upgrade, nothing)
- How will you measure success? (Engagement rate, conversion, feature adoption, dismiss rate)
- 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.
- Find messaging components: Search for
*toast*,*banner*,*modal*,*tooltip*,*notification*,*alert*,*snackbar*,*slideout* - Check for messaging libraries: Search imports for
react-toastify,sonner,notistack,intercom,appcues,pendo,userflow,chameleon - Find in-app announcements: Search for
announcement,whats-new,changelog,release-notes,feature-update - Check notification bell/inbox: Search for
notification-bell,inbox,notification-center,notification-list - Find contextual help: Search for
help-text,info-icon,learn-more,documentation-link, contextual tooltip triggers - Check targeting logic: Search for conditional message rendering -- user role, plan, usage, behavior-based targeting
- Find frequency/suppression logic: Search for
dismissed,seen,do-not-show,snooze,frequency,cooldown - 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):
- Notification bell (user pulls information)
- Inline message (passive, in-flow)
- Empty state (only seen when area is empty)
- Tooltip (small, contextual)
- Bottom bar (persistent but peripheral)
- Banner (visible but non-blocking)
- Slideout (partial overlay)
- Modal (full overlay, requires action)
- 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
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:
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:
6.2 Progressive Messaging
Gradually increase message specificity and urgency:
- Awareness: Tooltip or inline message introducing feature existence
- Education: Slideout or banner explaining feature value with examples
- Activation: Modal or inline CTA with guided first-use flow
- 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
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:
Feature Adoption Nudge:
Upgrade Prompt:
System Notification:
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.
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/in-product-messaging/SKILL.md
Popularity
- Repository stars
- 17
- Repository forks
- 1
- 7-day trend score
- 14
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 6 May 2026, 6 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/skenetechnologies/plg-skills/in-product-messaging)