IntermediateAgent Skill

Popups (formerly Popup CRO)

Plan ecommerce popup optimization around when a visitor needs the offer and what they should do next. Share the popup's goal, audience, traffic sources and offer terms; this Skill helps write the message and define triggers, targeting, frequency limits and mobile behavior before your team configures the popup in its existing tool.

Views
0
Copies
0
Favorites
0
Editorial Score
84/100
01

What this Skill does

A popup can fail because the offer is weak, but also because it appears too early, too often or in a form that is hard to dismiss. This Skill reviews the message and display rules together, including mobile usability and measurement.

Use it for email signup, promotional or other focused popup requests with a defined goal. The result is a configuration and copy plan you can implement in your storefront tool. Installation, consent handling and platform-specific behavior still need to be checked in that implementation.

02

What makes it different

01

Approach and advantage

Trigger choice is connected to the visitor's context instead of being treated as a default timer. Consider audience and traffic source alongside the offer, then decide when the interruption has a clear purpose for that visitor.

02

What you can use it for

Frequency limits, mobile layout and accessible dismissal are part of the design brief. Pair those rules with a measurement plan so the team can evaluate the popup's contribution without ignoring the browsing experience around it.

03

Before you install

Inputs to prepare

Popup purpose, audience, traffic sources, existing performance, offer terms, and mobile constraints.

Agent and runtime

Use a compatible agent that can discover the installed Skill and read its supporting files. Any external service or creative runtime must be configured separately.

Scope to confirm

It does not install a popup app or modify a storefront. Check consent and platform rules before implementation; no conversion uplift is assured.

04

Install and get started

Copy this request into Codex or Claude Code. The assistant downloads the original repository at the specified commit, installs the complete files and checks required dependencies.

  1. Open Codex or Claude Code with local file and terminal access.
  2. Copy the request below into the app you are using. The assistant will select that app’s installation directory.
  3. Check the returned path and file checks. Start a new session if needed, then ask the assistant to use the installed Skill.
Install popups in the app I am using and carry out the file installation, not just explain it. Original repository: https://github.com/coreyhaines31/marketingskills.git Commit: e85f3cbc2e4a79bf33b2a12e9bdd9087d414735b Skill folder: skills/popups 1. Download this exact source into a new directory. Read SKILL.md and its setup references before running any bundled scripts. Do not substitute another author’s package. 2. For Codex, use ~/.agents/skills/popups; for Claude Code, use ~/.claude/skills/popups. Install only for my current app. Install the complete Skill folder, including scripts, references, assets and bundled notices. Keep any root license with the installed folder. Check all destination folders first; if any already exist, report differences before replacing them. 3. Compare the source and installed file lists and hashes. Inspect documented runtimes, dependencies and required connections. Configure only the local dependencies needed for this Skill; use an isolated environment when appropriate. Ask me to complete any account login locally, without putting credentials in chat. 4. Report the source commit, actual installation path, file-check results and any remaining runtime setup. Explain how to invoke popups in this app. Check discovery separately from file copying; start a new session if needed. Do not run production tasks or claim a successful business outcome from installation alone.
05

Original Skill.md

This is the unchanged source SKILL.md for the reviewed version. Install the complete package to retain referenced scripts, assets, and instructions. Starter prompts below are EcomAgentTools examples.

---
name: popups
description: When the user wants to create or optimize popups, modals, overlays, slide-ins, or banners for conversion purposes. Also use when the user mentions "exit intent," "popup conversions," "modal optimization," "lead capture popup," "email popup," "announcement banner," "overlay," "collect emails with a popup," "exit popup," "scroll trigger," "sticky bar," or "notification bar." Use this for any overlay or interrupt-style conversion element. For forms outside of popups, see cro. For general page conversion optimization, see cro.
metadata:
  version: 2.0.0
---

# Popup CRO

You are an expert in popup and modal optimization. Your goal is to create popups that convert without annoying users or damaging brand perception.

## Initial Assessment

**Check for product marketing context first:**
If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.

Before providing recommendations, understand:

1. **Popup Purpose**
   - Email/newsletter capture
   - Lead magnet delivery
   - Discount/promotion
   - Announcement
   - Exit intent save
   - Feature promotion
   - Feedback/survey

2. **Current State**
   - Existing popup performance?
   - What triggers are used?
   - User complaints or feedback?
   - Mobile experience?

3. **Traffic Context**
   - Traffic sources (paid, organic, direct)
   - New vs. returning visitors
   - Page types where shown

---

## Core Principles

### 1. Timing Is Everything
- Too early = annoying interruption
- Too late = missed opportunity
- Right time = helpful offer at moment of need

### 2. Value Must Be Obvious
- Clear, immediate benefit
- Relevant to page context
- Worth the interruption

### 3. Respect the User
- Easy to dismiss
- Don't trap or trick
- Remember preferences
- Don't ruin the experience

---

## Trigger Strategies

### Time-Based
- **Not recommended**: "Show after 5 seconds"
- **Better**: "Show after 30-60 seconds" (proven engagement)
- Best for: General site visitors

### Scroll-Based
- **Typical**: 25-50% scroll depth
- Indicates: Content engagement
- Best for: Blog posts, long-form content
- Example: "You're halfway through—get more like this"

### Exit Intent
- Detects cursor moving to close/leave
- Last chance to capture value
- Best for: E-commerce, lead gen
- Mobile alternative: Back button or scroll up

### Click-Triggered
- User initiates (clicks button/link)
- Zero annoyance factor
- Best for: Lead magnets, gated content, demos
- Example: "Download PDF" → Popup form

### Page Count / Session-Based
- After visiting X pages
- Indicates research/comparison behavior
- Best for: Multi-page journeys
- Example: "Been comparing? Here's a summary..."

### Behavior-Based
- Add to cart abandonment
- Pricing page visitors
- Repeat page visits
- Best for: High-intent segments

---

## Popup Types

### Email Capture Popup
**Goal**: Newsletter/list subscription

**Best practices:**
- Clear value prop (not just "Subscribe")
- Specific benefit of subscribing
- Single field (email only)
- Consider incentive (discount, content)

**Copy structure:**
- Headline: Benefit or curiosity hook
- Subhead: What they get, how often
- CTA: Specific action ("Get Weekly Tips")

### Lead Magnet Popup
**Goal**: Exchange content for email

**Best practices:**
- Show what they get (cover image, preview)
- Specific, tangible promise
- Minimal fields (email, maybe name)
- Instant delivery expectation

### Discount/Promotion Popup
**Goal**: First purchase or conversion

**Best practices:**
- Clear discount (10%, $20, free shipping)
- Deadline creates urgency
- Single use per visitor
- Easy to apply code

### Exit Intent Popup
**Goal**: Last-chance conversion

**Best practices:**
- Acknowledge they're leaving
- Different offer than entry popup
- Address common objections
- Final compelling reason to stay

**Formats:**
- "Wait! Before you go..."
- "Forget something?"
- "Get 10% off your first order"
- "Questions? Chat with us"

### Announcement Banner
**Goal**: Site-wide communication

**Best practices:**
- Top of page (sticky or static)
- Single, clear message
- Dismissable
- Links to more info
- Time-limited (don't leave forever)

### Slide-In
**Goal**: Less intrusive engagement

**Best practices:**
- Enters from corner/bottom
- Doesn't block content
- Easy to dismiss or minimize
- Good for chat, support, secondary CTAs

---

## Design Best Practices

### Visual Hierarchy
1. Headline (largest, first seen)
2. Value prop/offer (clear benefit)
3. Form/CTA (obvious action)
4. Close option (easy to find)

### Sizing
- Desktop: 400-600px wide typical
- Don't cover entire screen
- Mobile: Full-width bottom or center, not full-screen
- Leave space to close (visible X, click outside)

### Close Button
- Keep visible (top right is convention) — users who can't find the close button will bounce entirely
- Large enough to tap on mobile
- "No thanks" text link as alternative
- Click outside to close

### Mobile Considerations
- Can't detect exit intent (use alternatives)
- Full-screen overlays feel aggressive
- Bottom slide-ups work well
- Larger touch targets
- Easy dismiss gestures

### Imagery
- Product image or preview
- Face if relevant (increases trust)
- Minimal for speed
- Optional—copy can work alone

---

## Copy Formulas

### Headlines
- Benefit-driven: "Get [result] in [timeframe]"
- Question: "Want [desired outcome]?"
- Command: "Don't miss [thing]"
- Social proof: "Join [X] people who..."
- Curiosity: "The one thing [audience] always get wrong about [topic]"

### Subheadlines
- Expand on the promise
- Address objection ("No spam, ever")
- Set expectations ("Weekly tips in 5 min")

### CTA Buttons
- First person works: "Get My Discount" vs "Get Your Discount"
- Specific over generic: "Send Me the Guide" vs "Submit"
- Value-focused: "Claim My 10% Off" vs "Subscribe"

### Decline Options
- Polite, not guilt-trippy
- "No thanks" / "Maybe later" / "I'm not interested"
- Avoid manipulative: "No, I don't want to save money"

---

## Frequency and Rules

### Frequency Capping
- Show maximum once per session
- Remember dismissals (cookie/localStorage)
- 7-30 days before showing again
- Respect user choice

### Audience Targeting
- New vs. returning visitors (different needs)
- By traffic source (match ad message)
- By page type (context-relevant)
- Exclude converted users
- Exclude recently dismissed

### Page Rules
- Exclude checkout/conversion flows
- Consider blog vs. product pages
- Match offer to page context

---

## Compliance and Accessibility

### GDPR/Privacy
- Clear consent language
- Link to privacy policy
- Don't pre-check opt-ins
- Honor unsubscribe/preferences

### Accessibility
- Keyboard navigable (Tab, Enter, Esc)
- Focus trap while open
- Screen reader compatible
- Sufficient color contrast
- Don't rely on color alone

### Google Guidelines
- Intrusive interstitials hurt SEO
- Mobile especially sensitive
- Allow: Cookie notices, age verification, reasonable banners
- Avoid: Full-screen before content on mobile

---

## Measurement

### Key Metrics
- **Impression rate**: Visitors who see popup
- **Conversion rate**: Impressions → Submissions
- **Close rate**: How many dismiss immediately
- **Engagement rate**: Interaction before close
- **Time to close**: How long before dismissing

### What to Track
- Popup views
- Form focus
- Submission attempts
- Successful submissions
- Close button clicks
- Outside clicks
- Escape key

### Benchmarks
- Email popup: 2-5% conversion typical
- Exit intent: 3-10% conversion
- Click-triggered: Higher (10%+, self-selected)

---

## Output Format

### Popup Design
- **Type**: Email capture, lead magnet, etc.
- **Trigger**: When it appears
- **Targeting**: Who sees it
- **Frequency**: How often shown
- **Copy**: Headline, subhead, CTA, decline
- **Design notes**: Layout, imagery, mobile

### Multiple Popup Strategy
If recommending multiple popups:
- Popup 1: [Purpose, trigger, audience]
- Popup 2: [Purpose, trigger, audience]
- Conflict rules: How they don't overlap

### Test Hypotheses
Ideas to A/B test with expected outcomes

---

## Common Popup Strategies

### E-commerce
1. Entry/scroll: First-purchase discount
2. Exit intent: Bigger discount or reminder
3. Cart abandonment: Complete your order

### B2B SaaS
1. Click-triggered: Demo request, lead magnets
2. Scroll: Newsletter/blog subscription
3. Exit intent: Trial reminder or content offer

### Content/Media
1. Scroll-based: Newsletter after engagement
2. Page count: Subscribe after multiple visits
3. Exit intent: Don't miss future content

### Lead Generation
1. Time-delayed: General list building
2. Click-triggered: Specific lead magnets
3. Exit intent: Final capture attempt

---

## Experiment Ideas

### Placement & Format Experiments

**Banner Variations**
- Top bar vs. banner below header
- Sticky banner vs. static banner
- Full-width vs. contained banner
- Banner with countdown timer vs. without

**Popup Formats**
- Center modal vs. slide-in from corner
- Full-screen overlay vs. smaller modal
- Bottom bar vs. corner popup
- Top announcements vs. bottom slideouts

**Position Testing**
- Test popup sizes on desktop and mobile
- Left corner vs. right corner for slide-ins
- Test visibility without blocking content

---

### Trigger Experiments

**Timing Triggers**
- Exit intent vs. 30-second delay vs. 50% scroll depth
- Test optimal time delay (10s vs. 30s vs. 60s)
- Test scroll depth percentage (25% vs. 50% vs. 75%)
- Page count trigger (show after X pages viewed)

**Behavior Triggers**
- Show based on user intent prediction
- Trigger based on specific page visits
- Return visitor vs. new visitor targeting
- Show based on referral source

**Click Triggers**
- Click-triggered popups for lead magnets
- Button-triggered vs. link-triggered modals
- Test in-content triggers vs. sidebar triggers

---

### Messaging & Content Experiments

**Headlines & Copy**
- Test attention-grabbing vs. informational headlines
- "Limited-time offer" vs. "New feature alert" messaging
- Urgency-focused copy vs. value-focused copy
- Test headline length and specificity

**CTAs**
- CTA button text variations
- Button color testing for contrast
- Primary + secondary CTA vs. single CTA
- Test decline text (friendly vs. neutral)

**Visual Content**
- Add countdown timers to create urgency
- Test with/without images
- Product preview vs. generic imagery
- Include social proof in popup

---

### Personalization Experiments

**Dynamic Content**
- Personalize popup based on visitor data
- Show industry-specific content
- Tailor content based on pages visited
- Use progressive profiling (ask more over time)

**Audience Targeting**
- New vs. returning visitor messaging
- Segment by traffic source
- Target based on engagement level
- Exclude already-converted visitors

---

### Frequency & Rules Experiments

- Test frequency capping (once per session vs. once per week)
- Cool-down period after dismissal
- Test different dismiss behaviors
- Show escalating offers over multiple visits

---

## Task-Specific Questions

1. What's the primary goal for this popup?
2. What's your current popup performance (if any)?
3. What traffic sources are you optimizing for?
4. What incentive can you offer?
5. Are there compliance requirements (GDPR, etc.)?
6. Mobile vs. desktop traffic split?

---

## Related Skills

- **lead-magnets**: For planning lead magnets to promote via popups
- **cro**: For optimizing the form inside the popup
- **cro**: For the page context around popups
- **emails**: For what happens after popup conversion
- **ab-testing**: For testing popup variations
06

Get started

Starter prompts for the main use cases—copy and use them directly.

01

Design a contextual email-signup popup

Design a contextual email-signup popup Use for: Design a contextual email-signup popup. Prepare: Popup purpose, audience, traffic sources, existing performance, offer terms, and mobile constraints.

Show prompt and variablesHide prompt and variables
Use the installed popups Skill. Task: Design a contextual email-signup popup. Inputs: [INPUT]. Constraints: [CONSTRAINTS]. Check missing information first. Produce a reviewable result with evidence, assumptions, and next steps. It does not install a popup app or modify a storefront. Check consent and platform rules before implementation; no conversion uplift is assured.

Replace these variables

[INPUT]
Popup purpose, audience, traffic sources, existing performance, offer terms, and mobile constraints.
[CONSTRAINTS]
Scope, allowed actions, output format, and review requirements.
02

Review exit-intent timing and frequency limits

Review exit-intent timing and frequency limits Use for: Review exit-intent timing and frequency limits. Prepare: Popup purpose, audience, traffic sources, existing performance, offer terms, and mobile constraints.

Show prompt and variablesHide prompt and variables
Use the installed popups Skill. Task: Review exit-intent timing and frequency limits. Inputs: [INPUT]. Constraints: [CONSTRAINTS]. Check missing information first. Produce a reviewable result with evidence, assumptions, and next steps. It does not install a popup app or modify a storefront. Check consent and platform rules before implementation; no conversion uplift is assured.

Replace these variables

[INPUT]
Popup purpose, audience, traffic sources, existing performance, offer terms, and mobile constraints.
[CONSTRAINTS]
Scope, allowed actions, output format, and review requirements.
03

Create a mobile popup testing and accessibility checklist

Create a mobile popup testing and accessibility checklist Use for: Create a mobile popup testing and accessibility checklist. Prepare: Popup purpose, audience, traffic sources, existing performance, offer terms, and mobile constraints.

Show prompt and variablesHide prompt and variables
Use the installed popups Skill. Task: Create a mobile popup testing and accessibility checklist. Inputs: [INPUT]. Constraints: [CONSTRAINTS]. Check missing information first. Produce a reviewable result with evidence, assumptions, and next steps. It does not install a popup app or modify a storefront. Check consent and platform rules before implementation; no conversion uplift is assured.

Replace these variables

[INPUT]
Popup purpose, audience, traffic sources, existing performance, offer terms, and mobile constraints.
[CONSTRAINTS]
Scope, allowed actions, output format, and review requirements.
07

Worked example: Specify a first-purchase offer popup

A fictional merchant approves the HARBOR10 first-order discount. Shipping and expiry must be clear, and shoppers may use it without giving an email. Desktop/mobile triggers, frequency and dismissal need specification.

Steps and prompt

  1. Prepare the attached business materials, preserving amounts, units, dates and metric definitions.
  2. Design a restrained email-offer popup for this store. Calculate the actual discounted delivered price, write the offer and consent copy, and define desktop/mobile triggers, eligibility, dismissal, frequency and error states. Keep use of the discount separate from optional marketing consent and provide an event plan.
  3. Submit the exact prompt below. Read the primary deliverable on the right and download all deliverables for the team handoff.

Case input files: business-inputs.zip

Use the popup-cro Skill.

Design a restrained email-offer popup for this store. Calculate the actual discounted delivered price, write the offer and consent copy, and define desktop/mobile triggers, eligibility, dismissal, frequency and error states. Keep use of the discount separate from optional marketing consent and provide an event plan.

The attached business materials are:
- inputs/brief.json

Deliver a complete result.md report that the operations team can read, plus any finished files needed for this task. Keep supporting calculations and evidence with the deliverables. Write the report in English; use the requested target language for customer-facing copy. The business datasets are fictional examples unless the brief explicitly names a live public website.

What the run produced

The primary file produced by this prompt is shown below in its original language.

A visible discount with a separate optional email signup

Use a small dismissible offer panel. Display HARBOR10 directly; a shopper does not need to enter an email or subscribe to use it. This design follows the approved offer and keeps the product readable on mobile.

Customer-facing copy

Headline: 10% off your first HarborMug order

Offer: Use HARBOR10 at checkout. One $24 mug becomes $21.60, plus $5 US shipping: $26.60 before applicable tax. You save $2.40 on merchandise.

Terms: First order only, once per customer, cannot be combined with other offers. Excludes shipping and tax. Valid through November 17, 2026, at 11:59 p.m. America/New_York; the configured cutoff is November 18 at 00:00. Free shipping starts at a $50 merchandise subtotal after discounts. US delivery only.

Primary action: Copy HARBOR10

Secondary action: Continue shopping

Optional section: “Want product and care updates?” Email field and an unchecked checkbox: “Yes, email me HarborMug updates, up to two messages per month. I can unsubscribe at any time.” Submit: Sign me up. Add a working Privacy policy link after its destination is verified. Keep discount copying available with the box unchecked and no email entered.

Trigger and suppression rules

Desktop: initially offer a small “First order offer” link. Permit one automatic corner slide-in only after 45 seconds of engaged time and 50% scroll on a product or collection page. These are design starting points, not empirically optimal thresholds. Avoid an exit-intent dependency.

Mobile: use the same shopper-initiated link; no automatic full-screen popup and no back-button interception. A compact bottom sheet must leave the close control visible with the keyboard open. The two fictional interview objections to first-screen obstruction support this conservative choice, but are not representative research.

Show only during the configured offer dates to eligible first-order visitors when eligibility is known. If unknown, state first-order eligibility clearly and verify it at checkout rather than promising acceptance. Exclude cart, checkout, support/returns flows, known purchasers, recent dismissals and successful subscribers. Keep the promotion accessible through an ordinary offer link when an automatic display is suppressed.

Cap automatic display at once per session and suppress for 30 days after dismissal. Do not display competing overlays at the same time. Closing by X, outside click or Escape has the same effect. Restore focus to the trigger; trap focus only when the element is a modal dialog. Use visible labels, keyboard controls, readable contrast and large tap targets.

States and error handling

Copy success: “Code copied.” If clipboard access fails, select or show the code with “Copy this code manually: HARBOR10.” A copy action does not imply an order or subscription.

For optional signup, require email and affirmative consent. Missing email: “Enter the email address for your updates.” Invalid address: “Check your email address.” Unchecked consent: “Choose whether you want marketing updates. You can still use HARBOR10 without subscribing.” Server failure preserves the email and selection. Confirm subscription only after server acceptance; if double opt-in is configured, say “Check your inbox to confirm” rather than claiming confirmation already occurred.

Expired offer: hide the code panel and never silently issue another promotion. Ineligible order: checkout explains the first-order restriction while preserving the cart.

Event plan and fixture calculation

Events: offer_eligible, offer_view, offer_close (method), code_copy, signup_focus, signup_attempt, signup_accepted and signup_failed (error category). Keep optional newsletter consent state separate from promotion usage. Do not send email addresses or text fields to analytics. Deduplicate automatic views per session and accepted subscriptions server-side.

The supplied measurement fixture yields 400/1,000 = 40% view rate; 20/400 = 5% successful subscriptions per view; 20/24 = 83.33% per attempt; 120/400 = 30% immediate-close rate. Close methods reconcile: 240 + 40 + 20 = 300. Average close time is 1,500/300 = 5 seconds. These are fictional fixture calculations, not a launched popup's results.

Review contribution after the discount, purchase completion, dismissals, signup errors and complaints. Known contribution before payment fees, tax and overhead is $26.60 − $8 unit cost − $4 shipping cost = $14.60 per one-mug order, versus $17 without discount. Do not call that net profit. A later trigger test should hold offer value constant and include purchase and experience guardrails.

Merchant business data is synthetic. Website observations, when present, come from the public URLs listed in the report.

08

Risks and operating notes

Known limits

It does not install a popup app or modify a storefront. Check consent and platform rules before implementation; no conversion uplift is assured.

Evidence and review

Source and package files reviewed: GitHub e85f3cbc2e4a. Current package identifier: popups. This is a static review, not an installation or business-outcome test.

Before acting on the result

Use authorized inputs and keep secrets out of prompts. Review customer-facing claims, calculations, code changes, and any proposed external action before applying them.

Frequently asked questions

What does it do, and what is the advantage?

Plan popup offers, timing, copy, targeting rules, and measurement. The renamed popups skill connects trigger selection with frequency limits, mobile usability, and accessible dismissal.

How do I install it and start?

Choose the method for your agent and install the complete package, not just the displayed SKILL.md. Popup purpose, audience, traffic sources, existing performance, offer terms, and mobile constraints. Start a new agent session and explicitly ask to use popups. Try one use case below with a small sample and review the output.

Which situations is it useful for?

Design a contextual email-signup popup; Review exit-intent timing and frequency limits; Create a mobile popup testing and accessibility checklist

What limitations should I know?

It does not install a popup app or modify a storefront. Check consent and platform rules before implementation; no conversion uplift is assured.

What was checked for this page?

Source and package files reviewed: GitHub e85f3cbc2e4a. Current package identifier: popups. This is a static review, not an installation or business-outcome test.

No reviews yet.

Leave a review

Rate every dimension, then share your real experience.

Task effectiveness
Setup and ease of use
Reliability and guardrails
Documentation clarity
Time to first useful result
Author / maintainer

Corey Haines

Source and package files reviewed: GitHub e85f3cbc2e4a. Current package identifier: popups. This is a static review, not an installation or business-outcome test.