{"id":4140,"date":"2025-08-25T10:10:38","date_gmt":"2025-08-25T10:10:38","guid":{"rendered":"https:\/\/refiner.io\/blog\/?p=4140"},"modified":"2025-08-25T11:46:39","modified_gmt":"2025-08-25T11:46:39","slug":"in-app-survey-timing","status":"publish","type":"post","link":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/","title":{"rendered":"When to Prompt an In\u2011App Survey (9 Triggers That Work)"},"content":{"rendered":"\n<div style=\"color:#32373c;background-color:#00d1b2\" class=\"wp-block-genesis-blocks-gb-notice gb-font-size-18 gb-block-notice\" data-id=\"bf2b7b\"><div class=\"gb-notice-title\" style=\"color:#fff\"><p>TL;DR<\/p><\/div><div class=\"gb-notice-text\" style=\"border-color:#00d1b2\">\n<ul class=\"wp-block-list\">\n<li>Ask in the moment, after a meaningful action, not on login or mid task.<\/li>\n\n\n\n<li>Match survey type to intent. CSAT and CES right after interactions, NPS on a recurring cadence with engaged users.<\/li>\n\n\n\n<li>Use event\u2011based triggers, not page views. Add a short delay, cap frequency, and respect cooldown windows.<\/li>\n\n\n\n<li>Keep it short, one to three questions. Show the survey in a non\u2011blocking UI unless the moment is critical.<\/li>\n\n\n\n<li>Use audience filters. Only ask people who did the thing you are asking about.<\/li>\n\n\n\n<li>Steal the decision table and the copy templates below. Then map each recipe to Refiner triggers and throttles.<\/li>\n<\/ul>\n<\/div><\/div>\n\n\n\n<p>Oh, let&#8217;s face it: You do not get great feedback by throwing your survey at users whenever you please.<\/p>\n\n\n\n<p>You get it by asking at the right moment, in the right context, to the right people.<\/p>\n\n\n\n<p>That&#8217;s it.<\/p>\n\n\n\n<p>But it&#8217;s so easy to miss it.<\/p>\n\n\n\n<p>For example, early on, I thought its survey copy that makes or breaks the results. Then I watched two almost identical surveys behave completely differently, one landing a few seconds after success, the other popping up mid task.<\/p>\n\n\n\n<p>And that is when it clicked for me: The difference was timing. Its all about when you prompt an in-app survey.<\/p>\n\n\n\n<p>So, in this guide I will show you exactly when to prompt and trigger in\u2011app surveys, how to avoid interrupting flow, and how to set it all up in Refiner.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>The one thing to remember:<\/strong><br><em>If you can only remember one rule, trigger in\u2011app surveys immediately after a user completes a relevant task or hits a milestone. <\/em>Add a small delay, five to fifteen seconds, so you do not interrupt the moment of completion. Set a global cooldown so the same person is not asked again for a while. Never prompt in the middle of a task. That is it.<\/p>\n<\/blockquote>\n\n\n\n\n\n<h2 class=\"wp-block-heading\">When To Trigger In-app Surveys, A Practical In-app Timing Playbook<\/h2>\n\n\n\n<p>Most people start designing surveys with questions.<\/p>\n\n\n\n<p>I don&#8217;t. I start with the moment.<\/p>\n\n\n\n<p>Because, as the old adage goes: Ask too early and you get noise, ask too late and the memory fades.<\/p>\n\n\n\n<p>By defining the moment first, I can quickly identify what to ask, when, which in-app survey type to use, etc., and always hit the bullseye.<\/p>\n\n\n\n<p>And that&#8217;s what you&#8217;ll learn below.<\/p>\n\n\n\n<p>This playbook gives you a simple way to decide when to ask, every time.<\/p>\n\n\n\n<p>And it&#8217;s super simple to use:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Start with the goal, like, onboarding, feature fit, loyalty, support, churn.<\/li>\n\n\n\n<li>Map that goal to the right survey type. Anchor it to a real event, a checklist complete, export success, ticket closed, cancel started.<\/li>\n\n\n\n<li>Then add a small delay, set a cooldown, and target only people who lived that moment.<\/li>\n\n\n\n<li>Finally, add conflict rules so you never stack prompts. Do this and timing stops being a guess.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">How to use this table<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Find your goal. 2) Use the survey type listed. 3) Attach to the trigger event. 4) Use the delay and cooldown as a default. 5) Only target the audience that experienced the event. 6) Start with the sample copy and adjust.<\/li>\n<\/ol>\n\n\n\n<p>Here it is.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Goal<\/th><th>Survey Type<\/th><th>Trigger Event<\/th><th>Delay<\/th><th>Cooldown<\/th><th>Audience filter<\/th><th>Sample copy<\/th><\/tr><\/thead><tbody><tr><td>Onboarding quality<\/td><td>CES or short CSAT<\/td><td>Onboarding checklist completed, or first key action done<\/td><td>5\u201315 s<\/td><td>14\u201330 days<\/td><td>New users who completed the checklist or key action<\/td><td>&#8220;Quick one, how easy was onboarding today?&#8221;<\/td><\/tr><tr><td>Feature satisfaction<\/td><td>CSAT, 1 question<\/td><td>First or 3rd use of a specific feature<\/td><td>5\u201310 s<\/td><td>30\u201390 days<\/td><td>Users who used the feature<\/td><td>&#8220;Did [Feature] help you get the job done?&#8221;<\/td><\/tr><tr><td>Bug or friction detection<\/td><td>CES<\/td><td>Repeated error, failed action, rage\u2011click pattern<\/td><td>0\u20135 s after recovery<\/td><td>14\u201330 days<\/td><td>Users who hit the error and continued<\/td><td>&#8220;That looked rough. How hard was this to complete?&#8221;<\/td><\/tr><tr><td>Loyalty tracking<\/td><td>NPS<\/td><td>After 2\u20133 active weeks and only for engaged users<\/td><td>None or 5 s<\/td><td>90\u2013180 days<\/td><td>Users with recent activity and multiple sessions<\/td><td>&#8220;How likely are you to recommend us to a friend or colleague?&#8221;<\/td><\/tr><tr><td>Support experience<\/td><td>CSAT<\/td><td>Helpdesk ticket or chat closed, first reply resolved, or doc viewed for 60+ seconds<\/td><td>0\u201310 s<\/td><td>30\u201390 days<\/td><td>People who engaged with support<\/td><td>&#8220;How did we do on your support request?&#8221;<\/td><\/tr><tr><td>Churn reasons<\/td><td>Exit survey<\/td><td>Entered cancellation flow, or plan downgraded<\/td><td>Inline in flow<\/td><td>N\/A, single shot<\/td><td>Users in cancellation or downgrade<\/td><td>&#8220;What is the main reason you are leaving today?&#8221;<\/td><\/tr><tr><td>Inactivity risk<\/td><td>Pulse survey<\/td><td>14\u201330 days since last key action or last login<\/td><td>Upon return, 5\u201310 s<\/td><td>30\u201360 days<\/td><td>At\u2011risk users who come back<\/td><td>&#8220;Welcome back. Are you still trying to [job to be done]?&#8221;<\/td><\/tr><tr><td>Pricing friction<\/td><td>Short CSAT or 1 open<\/td><td>Hit paywall or pricing page 2+ times without converting<\/td><td>Exit of page, 5 s<\/td><td>30\u201360 days<\/td><td>Evaluators, not paying customers<\/td><td>&#8220;Did pricing make sense for your use case?&#8221;<\/td><\/tr><tr><td>Mobile ratings<\/td><td>Store rating prompt<\/td><td>After a success moment, 3+ sessions, no crashes<\/td><td>End of session<\/td><td>90\u2013180 days<\/td><td>Mobile users meeting criteria<\/td><td>&#8220;Enjoying the app so far?&#8221;<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>But naturally, there are a few other factors that are always good to keep in mind when you&#8217;re planning your in-app survey.<\/p>\n\n\n\n<p>Here&#8217;s everything you need to know about that.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What in-app survey triggers make timing work?<\/h2>\n\n\n\n<p>Most timing advice says \u201c<em>ask after X<\/em>.\u201d But that&#8217;s really just a direction, not a system.<\/p>\n\n\n\n<p>The system lives in what we call trigger mechanics.<\/p>\n\n\n\n<p>This is where response rates jump, and where you avoid annoying people.<\/p>\n\n\n\n<p>Using trigger mechanics is all about event\u2011based triggers, adding small delays, re\u2011contact windows, using audience filters, sampling, conflict rules, placement, time\u2011of\u2011day, and tone.<\/p>\n\n\n\n<p>Get these wrong and a good survey flops. Get them right and you can run multiple surveys in parallel, quietly, without hurting product flow.<\/p>\n\n\n\n<p>Below is how I set them up, with defaults you can copy. Start here, then tune with your own data.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Event\u2011based beats page\u2011based<\/h3>\n\n\n\n<p>A page view is a weak signal. An event is a strong one. Track explicit actions, create named events, and use those events to trigger the survey. Create events like <code>Onboarding_Checklist_Completed<\/code>, <code>Feature_X_Used<\/code>, <code>Export_Success<\/code>, <code>Plan_Downgrade_Started<\/code>, <code>Support_Ticket_Closed<\/code>. Attach the survey to the event, not to an arbitrary page URL.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Add a small delay<\/h3>\n\n\n\n<p>Completion is the high point. Interrupt immediately and you steal the moment. Delay five to fifteen seconds. Let the brain breathe. Give them a beat to feel the success, then ask about it. If you are prompting after an error recovery, go shorter. If the event happens at logout or session end, show at exit.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Cooldowns and frequency caps <\/h3>\n\n\n\n<p>Two layers work best. Set a global cooldown, for example, no more than one survey per person every 14 days. Then, add per\u2011type caps, for example, NPS no more often than every 90 to 180 days. You can also set per\u2011survey caps, for example, a user should not see the CSAT for Feature X more than once per 30 days. This keeps your sample clean and avoids survey fatigue.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Audience filters and segmentation<\/h3>\n\n\n\n<p>Only show a survey to people who did the thing. Use attributes and segments. New users only. Customers on specific plans. Users who touched Feature X two or more times. People who have not responded to NPS yet. The narrower the audience, the more useful the data.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"810\" height=\"667\" src=\"https:\/\/refiner.io\/blog\/wp-content\/uploads\/2025\/07\/Segments.png\" alt=\"user segments in an in-app survey.\" class=\"wp-image-4084\" srcset=\"https:\/\/refiner.io\/blog\/wp-content\/uploads\/2025\/07\/Segments.png 810w, https:\/\/refiner.io\/blog\/wp-content\/uploads\/2025\/07\/Segments-300x247.png 300w, https:\/\/refiner.io\/blog\/wp-content\/uploads\/2025\/07\/Segments-768x632.png 768w\" sizes=\"auto, (max-width: 810px) 100vw, 810px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Placement and UI<\/h3>\n\n\n\n<p>Modals feel heavy. Slide\u2011ins and bottom sheets are lighter. I use modals only when the outcome is critical, for example, exit reasons in a cancellation flow. For CSAT and CES, a small slide\u2011in or an embedded widget works well. Keep the copy tight. Use clear primary and secondary actions.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"914\" src=\"https:\/\/refiner.io\/blog\/wp-content\/uploads\/2023\/07\/Widget-positions.png\" alt=\"Best performing widget positions.\" class=\"wp-image-3251\" srcset=\"https:\/\/refiner.io\/blog\/wp-content\/uploads\/2023\/07\/Widget-positions.png 1024w, https:\/\/refiner.io\/blog\/wp-content\/uploads\/2023\/07\/Widget-positions-300x268.png 300w, https:\/\/refiner.io\/blog\/wp-content\/uploads\/2023\/07\/Widget-positions-768x686.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Length (short always wins!)<\/h3>\n\n\n\n<p>Don&#8217;t go beyond one to three questions. If you need more, move the rest to a follow\u2011up channel, like email, or use branching logic. The goal in\u2011app is speed and context, not depth.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Sampling strategies<\/h3>\n\n\n\n<p>You do not need to ask everyone. Randomly sample a percentage of eligible users. Sample by segment, for example, new users at a higher rate than power users. Rotate among multiple CSAT targets so you do not stack surveys in a single session.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Avoid conflicts <\/h3>\n\n\n\n<p>You will have multiple surveys at once. Add rules that prevent stacked interruptions. For example, never show a second survey within the same session. Never show two surveys of the same type in a week. Always prioritize cancellation and support CSAT over generic prompts.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Time of day, session context, and device<\/h3>\n\n\n\n<p>In B2B products, weekday daytime often performs best. If your analytics show that users complete key work at specific hours, queue the survey to appear during those windows. For mobile, prefer end of session. Respect smaller screens and touch targets.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Language and tone<\/h3>\n\n\n\n<p>Be human. Acknowledge the moment. Avoid jargon. Avoid apology unless an error occurred. Say thank you. Make the survey feel like part of the product, not an interruption.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What in-app timing mistakes should I avoid?<\/h2>\n\n\n\n<p>These mistakes destroy response rates and trust.<\/p>\n\n\n\n<p>I learned that the hard way.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Login prompts feel efficient. They ask people to rate an experience they have not had, so you get polite guesses.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Mid\u2011task pop\u2011ups feel timely. They rip attention away from the job, and frustration skews every answer.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Early NPS feels proactive. It measures brand curiosity, not loyalty.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Long forms feel thorough. They turn a two\u2011second moment into a chore.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Repeating prompts feels like persistence. It erodes goodwill fast.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Asking about a feature to people who never touched it feels like broad research. It fills your spreadsheet with noise.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Stacking two surveys in one session feels like speed. It trains users to close everything on sight.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Incentives feel helpful. They can push ratings up in a way your team cannot reproduce later.<\/li>\n<\/ul>\n\n\n\n<p>I have made each of these calls at least once.<\/p>\n\n\n\n<p>You do not have to.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Prompting on first login.<\/strong> Think about it, your users have not done anything yet. There is nothing to rate. Wait for a milestone.<\/li>\n\n\n\n<li><strong>Interrupting mid task.<\/strong> You stall momentum and you bias responses toward frustration. Prompt after completion or at exit.<\/li>\n\n\n\n<li><strong>NPS too early.<\/strong> Asking for likelihood to recommend before real usage leads to vanity scores and bad decisions.<\/li>\n\n\n\n<li><strong>Long forms in\u2011app.<\/strong> Save the long research survey for email. Keep in\u2011app short, focused, and contextual.<\/li>\n\n\n\n<li><strong>Hitting the same user repeatedly.<\/strong> Nothing kills trust faster. Use global cooldowns and per\u2011type caps.<\/li>\n\n\n\n<li><strong>Generic audiences.<\/strong> Asking about a feature to users who never used it will produce noise. Filter by event.<\/li>\n\n\n\n<li><strong>Stacked prompts.<\/strong> Two surveys in one session is a quick path to churn. Use conflict rules.<\/li>\n\n\n\n<li><strong>Bribing the moment.<\/strong> Incentives can bias ratings. If you use them, disclose them clearly and avoid tying them to positive responses.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">What copy should I use for each moment? (9 killer in-app survey copy templates)<\/h2>\n\n\n\n<p>ere are the exact words I reach for in real products.<\/p>\n\n\n\n<p>These templates cover the key moments, onboarding, feature use, error recovery, support, NPS, churn, and more.<\/p>\n\n\n\n<p>Use them as a starting point. Replace the placeholders with your events, features, and product language.<\/p>\n\n\n\n<p>Keep it conversational and fast. One to three questions. Ask only people who just had the moment.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Post\u2011onboarding CES<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Title:<\/strong> Quick one about onboarding<\/li>\n\n\n\n<li><strong>Question:<\/strong> How easy was it to get started today?<\/li>\n\n\n\n<li><strong>Scale:<\/strong> Very difficult, Difficult, Neutral, Easy, Very easy<\/li>\n\n\n\n<li><strong>Follow\u2011up (conditional on Difficult or Very difficult):<\/strong> What made it hard? One sentence is perfect.<\/li>\n\n\n\n<li><strong>Thank you:<\/strong> Thanks for the insight. We use every response to improve onboarding.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Feature CSAT<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Title:<\/strong> Feedback on [Feature]<\/li>\n\n\n\n<li><strong>Question:<\/strong> Did [Feature] help you get the job done?<\/li>\n\n\n\n<li><strong>Scale:<\/strong> Not at all, A little, Mostly, Completely<\/li>\n\n\n\n<li><strong>Follow\u2011up (conditional on Not at all or A little):<\/strong> What was missing?<\/li>\n\n\n\n<li><strong>Thank you:<\/strong> Thanks, this helps us prioritize improvements.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Error recovery CES<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Title:<\/strong> That did not look fun<\/li>\n\n\n\n<li><strong>Question:<\/strong> After that hiccup, how easy was it to complete your task?<\/li>\n\n\n\n<li><strong>Scale:<\/strong> Very difficult to Very easy<\/li>\n\n\n\n<li><strong>Follow\u2011up:<\/strong> What should we fix first?<\/li>\n\n\n\n<li><strong>Thank you:<\/strong> We will dig in. Appreciate the nudge.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">NPS<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Title:<\/strong> A quick question<\/li>\n\n\n\n<li><strong>Question:<\/strong> How likely are you to recommend us to a friend or colleague?<\/li>\n\n\n\n<li><strong>Scale:<\/strong> 0 to 10 numeric scale<\/li>\n\n\n\n<li><strong>Follow\u2011up:<\/strong> What is the main reason for your score?<\/li>\n\n\n\n<li><strong>Thank you:<\/strong> Thanks for helping us build a better product.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Support CSAT<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Title:<\/strong> How did we do?<\/li>\n\n\n\n<li><strong>Question:<\/strong> How satisfied are you with the help you received?<\/li>\n\n\n\n<li><strong>Scale:<\/strong> Very dissatisfied to Very satisfied<\/li>\n\n\n\n<li><strong>Follow\u2011up:<\/strong> Anything we should have done differently?<\/li>\n\n\n\n<li><strong>Thank you:<\/strong> Thanks for the feedback. We review every response.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Cancellation exit survey<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Title:<\/strong> Before you go<\/li>\n\n\n\n<li><strong>Question:<\/strong> What is the main reason you are leaving today?<\/li>\n\n\n\n<li><strong>Choices:<\/strong> Too expensive, Missing features, Switching to a competitor, Not using it enough, Other<\/li>\n\n\n\n<li><strong>Follow\u2011up (Other or Missing features):<\/strong> What feature or change would have kept you?<\/li>\n\n\n\n<li><strong>Thank you:<\/strong> Thank you for the honesty. It really helps.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Inactivity pulse<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Title:<\/strong> Still working on [job to be done]?<\/li>\n\n\n\n<li><strong>Question:<\/strong> Are you still trying to [primary outcome] with [product name]?<\/li>\n\n\n\n<li><strong>Choices:<\/strong> Yes, weekly. Yes, sometimes. Not at the moment.<\/li>\n\n\n\n<li><strong>Follow\u2011up:<\/strong> What would make [product name] useful again?<\/li>\n\n\n\n<li><strong>Thank you:<\/strong> Thanks for the signal. We are always listening.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Pricing friction check<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Title:<\/strong> Did pricing make sense?<\/li>\n\n\n\n<li><strong>Question:<\/strong> Did our pricing make sense for your use case?<\/li>\n\n\n\n<li><strong>Scale:<\/strong> Not at all to Completely<\/li>\n\n\n\n<li><strong>Follow\u2011up:<\/strong> What did not fit?<\/li>\n\n\n\n<li><strong>Thank you:<\/strong> Thanks, this helps us improve the plan structure.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Mobile rating prompt<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Title:<\/strong> Enjoying the app?<\/li>\n\n\n\n<li><strong>Question:<\/strong> Would you rate us in the store?<\/li>\n\n\n\n<li><strong>Actions:<\/strong> Rate now, Not now<\/li>\n\n\n\n<li><strong>Thank you:<\/strong> Thanks for supporting the team.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">7 in-app survey timing recipes<\/h2>\n\n\n\n<p>Theory is useful. But shipping relies on recipes.<\/p>\n\n\n\n<p>These are the exact setups I use in real products.<\/p>\n\n\n\n<p>Each one tells you: the trigger event, who sees it, the delay, the cooldown, the survey, and the copy.<\/p>\n\n\n\n<p>Pick the one that matches your goal, wire it to your events, and ship. Start with the defaults, then adjust based on your data.<\/p>\n\n\n\n<p>If you only need a quick win, try #1 for onboarding or #5 for NPS. If you need to catch friction, start with #4. If churn is the question, jump to #7.<\/p>\n\n\n\n<p>Let\u2019s get specific.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1) Onboarding completion check<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Trigger:<\/strong> <code>Onboarding_Checklist_Completed<\/code><\/li>\n\n\n\n<li><strong>Who sees it:<\/strong> New users who completed at least four tasks in the checklist within their first 7 days<\/li>\n\n\n\n<li><strong>Delay:<\/strong> 10 seconds after completion<\/li>\n\n\n\n<li><strong>Cooldown:<\/strong> 30 days<\/li>\n\n\n\n<li><strong>Survey:<\/strong> CES, one question with open follow\u2011up for difficult ratings<\/li>\n\n\n\n<li><strong>Copy:<\/strong> &#8220;Quick one, how easy was onboarding today?&#8221;<\/li>\n\n\n\n<li><strong>Why this works:<\/strong> Momentum is high. Users can still recall the friction points. You capture the first impression with minimal bias.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">2) Feature X satisfaction<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Trigger:<\/strong> <code>Feature_X_Used<\/code> 3 times within 48 hours<\/li>\n\n\n\n<li><strong>Who sees it:<\/strong> Active users on Plans Pro and Enterprise, excluded if they answered this survey in the last 60 days<\/li>\n\n\n\n<li><strong>Delay:<\/strong> 5 seconds after the 3rd use<\/li>\n\n\n\n<li><strong>Cooldown:<\/strong> 60 days<\/li>\n\n\n\n<li><strong>Survey:<\/strong> 1\u2011question CSAT with open follow\u2011up on low ratings<\/li>\n\n\n\n<li><strong>Copy:<\/strong> &#8220;Did [Feature] help you get the job done?&#8221;<\/li>\n\n\n\n<li><strong>Why this works:<\/strong> Three uses separate dabblers from real users. You get feedback from people who actually relied on the feature.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">3) Export success moment<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Trigger:<\/strong> <code>Export_Success<\/code> event fired<\/li>\n\n\n\n<li><strong>Who sees it:<\/strong> Users who successfully exported a report to CSV or PDF for the first time<\/li>\n\n\n\n<li><strong>Delay:<\/strong> 8 seconds<\/li>\n\n\n\n<li><strong>Cooldown:<\/strong> 90 days<\/li>\n\n\n\n<li><strong>Survey:<\/strong> CSAT, short<\/li>\n\n\n\n<li><strong>Copy:<\/strong> &#8220;How satisfied are you with the export experience?&#8221;<\/li>\n\n\n\n<li><strong>Why this works:<\/strong> Exports finish a mini journey. The memory is fresh, the feeling is clear.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">4) Error recovery CES<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Trigger:<\/strong> <code>Error_Shown<\/code> followed by <code>Task_Completed<\/code> in the same session<\/li>\n\n\n\n<li><strong>Who sees it:<\/strong> Users who hit the error state and still completed the task<\/li>\n\n\n\n<li><strong>Delay:<\/strong> 3 seconds after completion<\/li>\n\n\n\n<li><strong>Cooldown:<\/strong> 30 days<\/li>\n\n\n\n<li><strong>Survey:<\/strong> CES<\/li>\n\n\n\n<li><strong>Copy:<\/strong> &#8220;After that hiccup, how easy was it to complete your task?&#8221;<\/li>\n\n\n\n<li><strong>Why this works:<\/strong> You acknowledge the bump and focus on effort. Great for prioritizing fixes.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">5) Quarterly NPS for engaged users<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Trigger:<\/strong> <code>Weekly_Active_User<\/code> for 2 consecutive weeks and 5+ sessions in the last 30 days<\/li>\n\n\n\n<li><strong>Who sees it:<\/strong> Customers with activity and billing in good standing, exclude anyone who saw NPS in the last 90 days<\/li>\n\n\n\n<li><strong>Delay:<\/strong> End of session<\/li>\n\n\n\n<li><strong>Cooldown:<\/strong> 90\u2013180 days<\/li>\n\n\n\n<li><strong>Survey:<\/strong> NPS with open follow\u2011up<\/li>\n\n\n\n<li><strong>Copy:<\/strong> &#8220;How likely are you to recommend us to a friend or colleague?&#8221;<\/li>\n\n\n\n<li><strong>Why this works:<\/strong> You ask only people who know the product. Scores reflect reality, not first impressions.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">6) Support CSAT on ticket close<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Trigger:<\/strong> <code>Support_Ticket_Closed<\/code> with resolution code Success<\/li>\n\n\n\n<li><strong>Who sees it:<\/strong> Anyone who interacted with support in the last 24 hours<\/li>\n\n\n\n<li><strong>Delay:<\/strong> Immediately after the chat window closes or within a few seconds of page return<\/li>\n\n\n\n<li><strong>Cooldown:<\/strong> 60\u201390 days<\/li>\n\n\n\n<li><strong>Survey:<\/strong> CSAT<\/li>\n\n\n\n<li><strong>Copy:<\/strong> &#8220;How did we do on your support request?&#8221;<\/li>\n\n\n\n<li><strong>Why this works:<\/strong> The experience is fresh. You capture both speed and quality.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">7) Cancellation reason capture<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Trigger:<\/strong> <code>Plan_Cancel_Started<\/code><\/li>\n\n\n\n<li><strong>Who sees it:<\/strong> Users who enter the cancellation flow<\/li>\n\n\n\n<li><strong>Delay:<\/strong> Inline, inside the flow<\/li>\n\n\n\n<li><strong>Cooldown:<\/strong> N\/A<\/li>\n\n\n\n<li><strong>Survey:<\/strong> One required choice with optional open follow\u2011up<\/li>\n\n\n\n<li><strong>Copy:<\/strong> &#8220;What is the main reason you are leaving today?&#8221;<\/li>\n\n\n\n<li><strong>Why this works:<\/strong> You get real reasons, at the moment of truth, without extra emails.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">How does in-app survey timing differ on mobile vs web?<\/h2>\n\n\n\n<p>Mobile and web follow the same rules. The way you apply them changes.<\/p>\n\n\n\n<p>On mobile, sessions are shorter and interrupted. I ask at success moments or the end of a session, never on first launch.<\/p>\n\n\n\n<p>On web, focus windows are longer. I use small slide\u2011ins with a short delay so I do not get in the way.<\/p>\n\n\n\n<p>Here is how I adjust timing and UI between the two.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Session shape.<\/strong> Mobile sessions are shorter. Prompt at success moments or end of session. Avoid first launch. Avoid mid task.<\/li>\n\n\n\n<li><strong>Real estate.<\/strong> Use bottom sheets or small banners. Keep text tight, friendly, readable.<\/li>\n\n\n\n<li><strong>System prompts.<\/strong> For store ratings, only show after clear success. Never after a crash. Respect the platform rules. Space prompts well.<\/li>\n\n\n\n<li><strong>Offline and flaky connections.<\/strong> Queue the survey until the app is online. If you miss the moment, show at next open with a short preface like &#8220;Quick one from last time.&#8221;<\/li>\n\n\n\n<li><strong>Distribution of devices.<\/strong> Older devices and small screens need larger tap targets and fewer steps.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">And that&#8217;s it&#8230;<\/h2>\n\n\n\n<p>Great in\u2011app survey timing is not magic. It is event selection, delay, and discipline. Ask right after the moment. Keep it short. Cap frequency. Target the audience that lived the experience. Then wire it with clear triggers and guardrails so it runs quietly in the background while your team ships product.<\/p>\n\n\n\n<p>Steal the table, ship one or two recipes this week, and iterate. If you are using Refiner, you have everything you need to do this today.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Want to learn more about in-app surveys?<\/h2>\n\n\n\n<p>I&#8217;ve been sharing my experience with in-app surveys here for quite some time now, and here are my best guides that will help you take your in-app surveys to a whole new level: <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>In\u2011app survey examples: <a>https:\/\/refiner.io\/blog\/in-app-survey-examples\/<\/a><\/li>\n\n\n\n<li>In\u2011app feedback best practices: <a>https:\/\/refiner.io\/blog\/in-app-feedback-best-practices\/<\/a><\/li>\n\n\n\n<li>Best time to send NPS: <a>https:\/\/refiner.io\/blog\/best-time-to-send-nps-survey\/<\/a><\/li>\n\n\n\n<li>In\u2011app CSAT: <a>https:\/\/refiner.io\/blog\/in-app-csat\/<\/a><\/li>\n\n\n\n<li>In\u2011app CES: <a>https:\/\/refiner.io\/blog\/in-app-ces\/<\/a><\/li>\n\n\n\n<li>Trigger Events docs: <a>https:\/\/refiner.io\/docs\/kb\/in-product-surveys\/trigger-events\/<\/a><\/li>\n\n\n\n<li>Recurring Surveys: <a>https:\/\/refiner.io\/docs\/kb\/in-product-surveys\/recurring-surveys\/<\/a><\/li>\n\n\n\n<li>Schedule and Throttle: <a>https:\/\/refiner.io\/docs\/kb\/in-product-surveys\/schedule-and-throttle\/<\/a><\/li>\n\n\n\n<li>Restrict Locations: <a>https:\/\/refiner.io\/docs\/kb\/in-product-surveys\/show-survey-at-specific-locations\/<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">In-app survey timing &#8211; FAQ<\/h2>\n\n\n\n<div class=\"schema-faq wp-block-yoast-faq-block\"><div class=\"schema-faq-section\" id=\"faq-question-1756116144229\"><strong class=\"schema-faq-question\">When should I show NPS in\u2011app?<\/strong> <p class=\"schema-faq-answer\">After someone has real experience, not day one. My default is two to three active weeks first, then every 90 to 180 days. Ask at end of session so you do not interrupt work.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1756116164272\"><strong class=\"schema-faq-question\">Is there a best day or time to trigger an in-app survey?<\/strong> <p class=\"schema-faq-answer\">In B2B, working hours perform well. Start with weekday daytime in the user\u2019s time zone, then check your analytics and adjust.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1756116184696\"><strong class=\"schema-faq-question\">How long should an in\u2011app survey be?<\/strong> <p class=\"schema-faq-answer\">Short. One to three questions. In\u2011app is about context and speed. If you need depth, add a single open follow\u2011up or send a longer email survey to a subset.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1756116198760\"><strong class=\"schema-faq-question\">Should I prompt an in-app survey on every session?<\/strong> <p class=\"schema-faq-answer\">No. Set global cooldowns and per\u2011type caps. Protect your users from fatigue and protect your data from bias.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1756116234648\"><strong class=\"schema-faq-question\">What delay should I use after an event?<\/strong> <p class=\"schema-faq-answer\">Five to fifteen seconds covers most cases. Shorten to three seconds after an error recovery. For end of session events, show at exit without delay.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1756116249526\"><strong class=\"schema-faq-question\">How do I avoid interrupting a person&#8217;s flow with my in-app survey?<\/strong> <p class=\"schema-faq-answer\">Do not prompt mid task. Use small UI, slide\u2011ins over modals, and short copy. Keep the controls friendly and easy to dismiss.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1756116272848\"><strong class=\"schema-faq-question\">Can I target by plan, role, or behavior?<\/strong> <p class=\"schema-faq-answer\">Yes. Use audience filters and segments. Ask admins about admin tasks. Ask editors about editor flows. Ask free users different questions than enterprise accounts.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1756116291488\"><strong class=\"schema-faq-question\">What if I have multiple in-app surveys to run?<\/strong> <p class=\"schema-faq-answer\">Set priority rules. Support CSAT and cancellation exit prompts win over generic questions. Prevent more than one survey per session. Space out schedules.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1756116313842\"><strong class=\"schema-faq-question\">Do incentives help with in-app surveys?<\/strong> <p class=\"schema-faq-answer\">Well, this is tricky. Incentives can boost completion, but they can also bias results. If you use rewards, disclose them and avoid tying them to positive ratings.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1756116339576\"><strong class=\"schema-faq-question\">How do I handle low in-app response rate?<\/strong> <p class=\"schema-faq-answer\">Check the moment first. Are you asking at the right time, to the right people? Then shorten the survey and simplify the UI. You can bump sampling temporarily, but fix timing before you crank volume.<\/p> <\/div> <\/div>\n\n\n\n<!-- Get to know your users -->\n<div class=\"reusable-block\">\n<span class=\"reusable-block__heading\">Get to know your users<\/span>\n<span class=\"reusable-block__text\">Refiner is a customer survey tool for web and mobile applications. Collect more user insights with perfectly timed in-app surveys, automate actions based on survey responses, and quickly find gaps in the understanding of your users.<\/span>\n<a class=\"reusable-block__link\" href=\"https:\/\/refiner.io\/\" rel=\"noopener noreferrer\" target=\"_self\">\nDiscover Refiner\n<\/a>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Oh, let&#8217;s face it: You do not get great feedback by throwing your survey at users whenever you please. You get it by asking at the right moment, in the right context, to the right people. That&#8217;s it. But it&#8217;s so easy to miss it. For example, early on, I thought its survey copy that [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":1,"featured_media":4154,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"refiner_sidebar_werbeblock":"1222","footnotes":""},"categories":[6],"tags":[],"class_list":["post-4140","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-product-led-growth"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>When To Prompt In-App Surveys, Proven Timing, Triggers, and Examples<\/title>\n<meta name=\"description\" content=\"In-app survey timing. Discover when to prompt an in-app survey. Learn to use event-based triggers, cooldowns, and contextual prompts to trigger in-app surveys.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"When To Prompt In-App Surveys, Proven Timing, Triggers, and Examples\" \/>\n<meta property=\"og:description\" content=\"In-app survey timing. Discover when to prompt an in-app survey. Learn to use event-based triggers, cooldowns, and contextual prompts to trigger in-app surveys.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/\" \/>\n<meta property=\"og:site_name\" content=\"Refiner Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-08-25T10:10:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-25T11:46:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/refiner.io\/blog\/wp-content\/uploads\/2025\/08\/In-App-Survey-Triggers.png\" \/>\n\t<meta property=\"og:image:width\" content=\"4066\" \/>\n\t<meta property=\"og:image:height\" content=\"2932\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Moritz Dausinger\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@mdausinger\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Moritz Dausinger\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/\"},\"author\":{\"name\":\"Moritz Dausinger\",\"@id\":\"https:\/\/refiner.io\/blog\/#\/schema\/person\/55632335b069a1d4a08cfd16de5d4dd2\"},\"headline\":\"When to Prompt an In\u2011App Survey (9 Triggers That Work)\",\"datePublished\":\"2025-08-25T10:10:38+00:00\",\"dateModified\":\"2025-08-25T11:46:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/\"},\"wordCount\":3509,\"publisher\":{\"@id\":\"https:\/\/refiner.io\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/refiner.io\/blog\/wp-content\/uploads\/2025\/08\/In-App-Survey-Triggers.png\",\"articleSection\":[\"Product-led Growth\"],\"inLanguage\":\"en-US\"},{\"@type\":[\"WebPage\",\"FAQPage\"],\"@id\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/\",\"url\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/\",\"name\":\"When To Prompt In-App Surveys, Proven Timing, Triggers, and Examples\",\"isPartOf\":{\"@id\":\"https:\/\/refiner.io\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/refiner.io\/blog\/wp-content\/uploads\/2025\/08\/In-App-Survey-Triggers.png\",\"datePublished\":\"2025-08-25T10:10:38+00:00\",\"dateModified\":\"2025-08-25T11:46:39+00:00\",\"description\":\"In-app survey timing. Discover when to prompt an in-app survey. Learn to use event-based triggers, cooldowns, and contextual prompts to trigger in-app surveys.\",\"breadcrumb\":{\"@id\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#breadcrumb\"},\"mainEntity\":[{\"@id\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116144229\"},{\"@id\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116164272\"},{\"@id\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116184696\"},{\"@id\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116198760\"},{\"@id\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116234648\"},{\"@id\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116249526\"},{\"@id\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116272848\"},{\"@id\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116291488\"},{\"@id\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116313842\"},{\"@id\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116339576\"}],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#primaryimage\",\"url\":\"https:\/\/refiner.io\/blog\/wp-content\/uploads\/2025\/08\/In-App-Survey-Triggers.png\",\"contentUrl\":\"https:\/\/refiner.io\/blog\/wp-content\/uploads\/2025\/08\/In-App-Survey-Triggers.png\",\"width\":4066,\"height\":2932},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/refiner.io\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"When to Prompt an In\u2011App Survey (9 Triggers That Work)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/refiner.io\/blog\/#website\",\"url\":\"https:\/\/refiner.io\/blog\/\",\"name\":\"Refiner Blog\",\"description\":\"SaaS Growth Tactics &amp; Best Practices in Managing Customer Feedback\",\"publisher\":{\"@id\":\"https:\/\/refiner.io\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/refiner.io\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/refiner.io\/blog\/#organization\",\"name\":\"Refiner Blog\",\"url\":\"https:\/\/refiner.io\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/refiner.io\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/refiner.io\/blog\/wp-content\/uploads\/2021\/06\/Refiner-Logo-Blog.png\",\"contentUrl\":\"https:\/\/refiner.io\/blog\/wp-content\/uploads\/2021\/06\/Refiner-Logo-Blog.png\",\"width\":468,\"height\":88,\"caption\":\"Refiner Blog\"},\"image\":{\"@id\":\"https:\/\/refiner.io\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/refiner.io\/blog\/#\/schema\/person\/55632335b069a1d4a08cfd16de5d4dd2\",\"name\":\"Moritz Dausinger\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/refiner.io\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ec002e5788821d64a86d8ed49b1d44b9?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ec002e5788821d64a86d8ed49b1d44b9?s=96&d=mm&r=g\",\"caption\":\"Moritz Dausinger\"},\"description\":\"CEO of Refiner\",\"sameAs\":[\"https:\/\/x.com\/mdausinger\"]},{\"@type\":\"Question\",\"@id\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116144229\",\"position\":1,\"url\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116144229\",\"name\":\"When should I show NPS in\u2011app?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"After someone has real experience, not day one. My default is two to three active weeks first, then every 90 to 180 days. Ask at end of session so you do not interrupt work.\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116164272\",\"position\":2,\"url\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116164272\",\"name\":\"Is there a best day or time to trigger an in-app survey?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"In B2B, working hours perform well. Start with weekday daytime in the user\u2019s time zone, then check your analytics and adjust.\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116184696\",\"position\":3,\"url\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116184696\",\"name\":\"How long should an in\u2011app survey be?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Short. One to three questions. In\u2011app is about context and speed. If you need depth, add a single open follow\u2011up or send a longer email survey to a subset.\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116198760\",\"position\":4,\"url\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116198760\",\"name\":\"Should I prompt an in-app survey on every session?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. Set global cooldowns and per\u2011type caps. Protect your users from fatigue and protect your data from bias.\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116234648\",\"position\":5,\"url\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116234648\",\"name\":\"What delay should I use after an event?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Five to fifteen seconds covers most cases. Shorten to three seconds after an error recovery. For end of session events, show at exit without delay.\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116249526\",\"position\":6,\"url\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116249526\",\"name\":\"How do I avoid interrupting a person's flow with my in-app survey?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Do not prompt mid task. Use small UI, slide\u2011ins over modals, and short copy. Keep the controls friendly and easy to dismiss.\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116272848\",\"position\":7,\"url\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116272848\",\"name\":\"Can I target by plan, role, or behavior?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes. Use audience filters and segments. Ask admins about admin tasks. Ask editors about editor flows. Ask free users different questions than enterprise accounts.\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116291488\",\"position\":8,\"url\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116291488\",\"name\":\"What if I have multiple in-app surveys to run?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Set priority rules. Support CSAT and cancellation exit prompts win over generic questions. Prevent more than one survey per session. Space out schedules.\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116313842\",\"position\":9,\"url\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116313842\",\"name\":\"Do incentives help with in-app surveys?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Well, this is tricky. Incentives can boost completion, but they can also bias results. If you use rewards, disclose them and avoid tying them to positive ratings.\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116339576\",\"position\":10,\"url\":\"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116339576\",\"name\":\"How do I handle low in-app response rate?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Check the moment first. Are you asking at the right time, to the right people? Then shorten the survey and simplify the UI. You can bump sampling temporarily, but fix timing before you crank volume.\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"When To Prompt In-App Surveys, Proven Timing, Triggers, and Examples","description":"In-app survey timing. Discover when to prompt an in-app survey. Learn to use event-based triggers, cooldowns, and contextual prompts to trigger in-app surveys.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/","og_locale":"en_US","og_type":"article","og_title":"When To Prompt In-App Surveys, Proven Timing, Triggers, and Examples","og_description":"In-app survey timing. Discover when to prompt an in-app survey. Learn to use event-based triggers, cooldowns, and contextual prompts to trigger in-app surveys.","og_url":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/","og_site_name":"Refiner Blog","article_published_time":"2025-08-25T10:10:38+00:00","article_modified_time":"2025-08-25T11:46:39+00:00","og_image":[{"width":4066,"height":2932,"url":"https:\/\/refiner.io\/blog\/wp-content\/uploads\/2025\/08\/In-App-Survey-Triggers.png","type":"image\/png"}],"author":"Moritz Dausinger","twitter_card":"summary_large_image","twitter_creator":"@mdausinger","twitter_misc":{"Written by":"Moritz Dausinger","Est. reading time":"16 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#article","isPartOf":{"@id":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/"},"author":{"name":"Moritz Dausinger","@id":"https:\/\/refiner.io\/blog\/#\/schema\/person\/55632335b069a1d4a08cfd16de5d4dd2"},"headline":"When to Prompt an In\u2011App Survey (9 Triggers That Work)","datePublished":"2025-08-25T10:10:38+00:00","dateModified":"2025-08-25T11:46:39+00:00","mainEntityOfPage":{"@id":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/"},"wordCount":3509,"publisher":{"@id":"https:\/\/refiner.io\/blog\/#organization"},"image":{"@id":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#primaryimage"},"thumbnailUrl":"https:\/\/refiner.io\/blog\/wp-content\/uploads\/2025\/08\/In-App-Survey-Triggers.png","articleSection":["Product-led Growth"],"inLanguage":"en-US"},{"@type":["WebPage","FAQPage"],"@id":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/","url":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/","name":"When To Prompt In-App Surveys, Proven Timing, Triggers, and Examples","isPartOf":{"@id":"https:\/\/refiner.io\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#primaryimage"},"image":{"@id":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#primaryimage"},"thumbnailUrl":"https:\/\/refiner.io\/blog\/wp-content\/uploads\/2025\/08\/In-App-Survey-Triggers.png","datePublished":"2025-08-25T10:10:38+00:00","dateModified":"2025-08-25T11:46:39+00:00","description":"In-app survey timing. Discover when to prompt an in-app survey. Learn to use event-based triggers, cooldowns, and contextual prompts to trigger in-app surveys.","breadcrumb":{"@id":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#breadcrumb"},"mainEntity":[{"@id":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116144229"},{"@id":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116164272"},{"@id":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116184696"},{"@id":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116198760"},{"@id":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116234648"},{"@id":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116249526"},{"@id":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116272848"},{"@id":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116291488"},{"@id":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116313842"},{"@id":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116339576"}],"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/refiner.io\/blog\/in-app-survey-timing\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#primaryimage","url":"https:\/\/refiner.io\/blog\/wp-content\/uploads\/2025\/08\/In-App-Survey-Triggers.png","contentUrl":"https:\/\/refiner.io\/blog\/wp-content\/uploads\/2025\/08\/In-App-Survey-Triggers.png","width":4066,"height":2932},{"@type":"BreadcrumbList","@id":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/refiner.io\/blog\/"},{"@type":"ListItem","position":2,"name":"When to Prompt an In\u2011App Survey (9 Triggers That Work)"}]},{"@type":"WebSite","@id":"https:\/\/refiner.io\/blog\/#website","url":"https:\/\/refiner.io\/blog\/","name":"Refiner Blog","description":"SaaS Growth Tactics &amp; Best Practices in Managing Customer Feedback","publisher":{"@id":"https:\/\/refiner.io\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/refiner.io\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/refiner.io\/blog\/#organization","name":"Refiner Blog","url":"https:\/\/refiner.io\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/refiner.io\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/refiner.io\/blog\/wp-content\/uploads\/2021\/06\/Refiner-Logo-Blog.png","contentUrl":"https:\/\/refiner.io\/blog\/wp-content\/uploads\/2021\/06\/Refiner-Logo-Blog.png","width":468,"height":88,"caption":"Refiner Blog"},"image":{"@id":"https:\/\/refiner.io\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/refiner.io\/blog\/#\/schema\/person\/55632335b069a1d4a08cfd16de5d4dd2","name":"Moritz Dausinger","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/refiner.io\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ec002e5788821d64a86d8ed49b1d44b9?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ec002e5788821d64a86d8ed49b1d44b9?s=96&d=mm&r=g","caption":"Moritz Dausinger"},"description":"CEO of Refiner","sameAs":["https:\/\/x.com\/mdausinger"]},{"@type":"Question","@id":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116144229","position":1,"url":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116144229","name":"When should I show NPS in\u2011app?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"After someone has real experience, not day one. My default is two to three active weeks first, then every 90 to 180 days. Ask at end of session so you do not interrupt work.","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116164272","position":2,"url":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116164272","name":"Is there a best day or time to trigger an in-app survey?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"In B2B, working hours perform well. Start with weekday daytime in the user\u2019s time zone, then check your analytics and adjust.","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116184696","position":3,"url":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116184696","name":"How long should an in\u2011app survey be?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Short. One to three questions. In\u2011app is about context and speed. If you need depth, add a single open follow\u2011up or send a longer email survey to a subset.","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116198760","position":4,"url":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116198760","name":"Should I prompt an in-app survey on every session?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"No. Set global cooldowns and per\u2011type caps. Protect your users from fatigue and protect your data from bias.","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116234648","position":5,"url":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116234648","name":"What delay should I use after an event?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Five to fifteen seconds covers most cases. Shorten to three seconds after an error recovery. For end of session events, show at exit without delay.","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116249526","position":6,"url":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116249526","name":"How do I avoid interrupting a person's flow with my in-app survey?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Do not prompt mid task. Use small UI, slide\u2011ins over modals, and short copy. Keep the controls friendly and easy to dismiss.","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116272848","position":7,"url":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116272848","name":"Can I target by plan, role, or behavior?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Yes. Use audience filters and segments. Ask admins about admin tasks. Ask editors about editor flows. Ask free users different questions than enterprise accounts.","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116291488","position":8,"url":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116291488","name":"What if I have multiple in-app surveys to run?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Set priority rules. Support CSAT and cancellation exit prompts win over generic questions. Prevent more than one survey per session. Space out schedules.","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116313842","position":9,"url":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116313842","name":"Do incentives help with in-app surveys?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Well, this is tricky. Incentives can boost completion, but they can also bias results. If you use rewards, disclose them and avoid tying them to positive ratings.","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116339576","position":10,"url":"https:\/\/refiner.io\/blog\/in-app-survey-timing\/#faq-question-1756116339576","name":"How do I handle low in-app response rate?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Check the moment first. Are you asking at the right time, to the right people? Then shorten the survey and simplify the UI. You can bump sampling temporarily, but fix timing before you crank volume.","inLanguage":"en-US"},"inLanguage":"en-US"}]}},"featured_image_src":"https:\/\/refiner.io\/blog\/wp-content\/uploads\/2025\/08\/In-App-Survey-Triggers-600x400.png","featured_image_src_square":"https:\/\/refiner.io\/blog\/wp-content\/uploads\/2025\/08\/In-App-Survey-Triggers-600x600.png","author_info":{"display_name":"Moritz Dausinger","author_link":"https:\/\/refiner.io\/blog\/author\/user\/"},"_links":{"self":[{"href":"https:\/\/refiner.io\/blog\/wp-json\/wp\/v2\/posts\/4140","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/refiner.io\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/refiner.io\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/refiner.io\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/refiner.io\/blog\/wp-json\/wp\/v2\/comments?post=4140"}],"version-history":[{"count":14,"href":"https:\/\/refiner.io\/blog\/wp-json\/wp\/v2\/posts\/4140\/revisions"}],"predecessor-version":[{"id":4186,"href":"https:\/\/refiner.io\/blog\/wp-json\/wp\/v2\/posts\/4140\/revisions\/4186"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/refiner.io\/blog\/wp-json\/wp\/v2\/media\/4154"}],"wp:attachment":[{"href":"https:\/\/refiner.io\/blog\/wp-json\/wp\/v2\/media?parent=4140"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/refiner.io\/blog\/wp-json\/wp\/v2\/categories?post=4140"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/refiner.io\/blog\/wp-json\/wp\/v2\/tags?post=4140"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}