[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-posthog-posthog-survey-creator":3,"mdc-vdu1xe-key":34,"related-org-posthog-posthog-survey-creator":1464,"related-repo-posthog-posthog-survey-creator":1637},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":29,"sourceUrl":32,"mdContent":33},"posthog-survey-creator","create and configure PostHog surveys","Create and configure surveys in PostHog through guided conversation. Use this skill when a user wants to create a survey, collect user feedback, run NPS\u002FCSAT\u002FCES\u002FPMF surveys, gather product feedback, or understand user sentiment. The skill guides Product Managers through survey design by matching their goals to proven templates (or creating custom surveys), then configuring targeting and scheduling before creating via PostHog MCP tools.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"posthog","PostHog","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fposthog.png",[12,14,17,20],{"name":9,"slug":8,"type":13},"tag",{"name":15,"slug":16,"type":13},"User Research","user-research",{"name":18,"slug":19,"type":13},"Product Management","product-management",{"name":21,"slug":22,"type":13},"Analytics","analytics",56,"https:\u002F\u002Fgithub.com\u002FPostHog\u002Fskills","2026-04-06T18:46:42.184079",null,4,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":31},[],"PostHog skills (under construction)","https:\u002F\u002Fgithub.com\u002FPostHog\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Fteam\u002Fcustomer-success\u002Fposthog-survey-creator","---\nname: posthog-survey-creator\ndescription: Create and configure surveys in PostHog through guided conversation. Use this skill when a user wants to create a survey, collect user feedback, run NPS\u002FCSAT\u002FCES\u002FPMF surveys, gather product feedback, or understand user sentiment. The skill guides Product Managers through survey design by matching their goals to proven templates (or creating custom surveys), then configuring targeting and scheduling before creating via PostHog MCP tools.\n---\n\n# PostHog Survey Creator\n\nGuide users through creating effective surveys in PostHog via conversational flow. Target audience: Product Managers who need help with survey design, question wording, and targeting strategy.\n\n## Critical Rules\n\n1. **One question per message.** Wait for user response before proceeding.\n2. **Use PostHog MCP first.** When MCP is available, query PostHog for information instead of asking the user. Always present findings for validation.\n3. **Only ask users when MCP unavailable.** Fall back to questions only if MCP tools aren't accessible.\n4. **Always create as draft.** Never offer to launch immediately. Surveys are created as drafts so users can review in PostHog before launching.\n\n## PostHog MCP Detection\n\nAt the start of conversation or when needing PostHog data, attempt to use MCP tools:\n- `posthog:event-definitions-list` — Get available events\n- `posthog:properties-list` — Get event or person properties  \n- `posthog:surveys-get-all` — Check existing surveys\n- `posthog:feature-flag-get-all` — Get feature flags for linking\n\n**If MCP works:** Use data from PostHog and ask user to validate.\n**If MCP fails\u002Funavailable:** Ask user directly about their PostHog setup.\n\n## Conversation Flow\n\n### Opening: Show the Journey\n\nWhen user asks to create a survey:\n\n```\n\"I'll help you create a survey in PostHog. Here's what we'll figure out together:\n\n1. **Goal** – What do you want to learn?\n2. **Questions** – What to ask and how\n3. **Audience** – Who should see this?\n4. **Timing** – When and how often?\n\nLet's start with the goal. **What do you want to learn from this survey?**\"\n```\n\nWait for response.\n\n---\n\n### Step 1: Understand the Goal\n\n**Ask:** \"What do you want to learn from this survey?\"\n\nListen for keywords to match templates:\n\n| Keywords | Template |\n|----------|----------|\n| \"recommend\", \"loyalty\", \"NPS\" | NPS |\n| \"satisfied\", \"satisfaction\" | CSAT |\n| \"easy\", \"effort\", \"friction\" | CES |\n| \"disappointed\", \"product-market fit\" | PMF |\n| \"why signed up\", \"jobs to be done\" | JTBD |\n| \"price\", \"expensive\", \"value\" | Pricing |\n| \"competitor\", \"alternatives\" | Competitive Intel |\n| \"not using\", \"adoption\" | Feature Adoption |\n| \"beta\", \"new feature\" | Beta Feedback |\n| \"trial\", \"upgrade\" | Trial Conversion |\n| \"new user\", \"intent\" | Welcome Survey |\n| \"onboarding\", \"getting started\" | Activation |\n| \"inactive\", \"churned\", \"win back\" | Dormant User |\n| \"cancel\", \"leaving\" | Churn\u002FExit |\n| \"support\", \"ticket\" | Support CSAT |\n\n**After response:** Present matching template OR explore custom, then proceed.\n\n---\n\n### Step 2: Present Template or Explore Custom\n\n#### If template matches:\n\n```\n\"Based on what you're describing, a **Customer Effort Score (CES)** survey would work well. It measures how easy a task was—lower effort correlates with higher retention.\n\nThe standard approach is:\n- Q1: Rating (1-7) – 'How easy was it to [task]?'\n- Q2: Open text (for low scores) – 'What made this difficult?'\n\n**Does this approach work for you, or would you like to customize it?**\"\n```\n\n#### If no template matches:\n\n```\n\"This sounds like a custom survey—I'll help you design one.\n\n**What's the single most important thing you want to learn?**\"\n```\n\n---\n\n### Step 3: Finalize Questions\n\nIf customizing, ask ONE question at a time until questions are defined.\n\nOnce set, confirm:\n```\n\"Here's what we have:\n[list questions]\n\n**Does this look right?**\"\n```\n\n---\n\n### Step 4: Define Audience (MCP-First Approach)\n\nThis is where PostHog MCP becomes critical. **Do not ask the user about events or properties if MCP is available.**\n\n#### With PostHog MCP available:\n\n1. **First, ask the high-level targeting question:**\n   ```\n   \"Now let's decide who sees this survey.\n   \n   **Who should see it?** For example:\n   - All users\n   - Users on a specific page\n   - A specific segment (paid users, new users, etc.)\n   - Users who completed a specific action\"\n   ```\n\n2. **Based on their answer, query PostHog and present options:**\n\n   **If they mention an action\u002Fevent:**\n   ```\n   [Use posthog:event-definitions-list to find matching events]\n   \n   \"I found these events in your PostHog that might match:\n   - `report_viewed` (1.2k times this month)\n   - `report_created` (340 times this month)\n   - `report_exported` (89 times this month)\n   \n   **Which event should trigger the survey?**\"\n   ```\n\n   **If they mention a user segment:**\n   ```\n   [Use posthog:properties-list with type=\"person\" to find properties]\n   \n   \"I found these person properties you could filter by:\n   - `plan` (values: free, pro, enterprise)\n   - `signed_up_at`\n   - `company_size`\n   \n   **Which property should we use, and what value?**\"\n   ```\n\n   **If they mention a page:**\n   ```\n   \"Got it—I'll target users on that page.\n   \n   **What's the URL or URL pattern?** (e.g., '\u002Freports' or contains 'dashboard')\"\n   ```\n\n3. **If checking for existing similar surveys:**\n   ```\n   [Use posthog:surveys-get-all to check for duplicates]\n   \n   \"I noticed you already have an 'NPS Survey' running that targets the dashboard. \n   \n   **Should I create a new one, or would you like to modify the existing survey?**\"\n   ```\n\n4. **If linking to feature flags:**\n   ```\n   [Use posthog:feature-flag-get-all if user mentions beta\u002Ffeature flags]\n   \n   \"I found these feature flags that might be relevant:\n   - `new-reporting-feature` (currently 30% rollout)\n   - `beta-dashboard-v2` (10% rollout)\n   \n   **Should the survey only show to users with one of these flags enabled?**\"\n   ```\n\n#### Without PostHog MCP (fallback):\n\nIf MCP tools fail or aren't available, ask the user directly:\n\n```\n\"I don't have access to query your PostHog directly.\n\n**Do you know the event name for when users [complete the action]?** \n(If not, we can target by page URL instead)\"\n```\n\nOr for properties:\n```\n\"**What's the property name for [plan\u002Fsegment] in your PostHog?**\n(e.g., 'plan', 'subscription_tier', etc.)\"\n```\n\n---\n\n### Step 5: Configure Timing\n\n**Ask:**\n```\n\"**Should this survey show once per user, or repeat over time?**\n\n- Once is good for most feedback surveys\n- Recurring works for NPS (e.g., every 90 days)\"\n```\n\nIf recurring, follow up:\n```\n\"**How often should it repeat?**\"\n```\n\n---\n\n### Step 6: Confirm and Create\n\nSummarize and ask for final confirmation:\n\n```\n\"Here's the survey I'll create:\n\n**Name:** [name]\n**Questions:**\n1. [Q1]\n2. [Q2]\n\n**Audience:** [targeting details]\n**Schedule:** [once\u002Frecurring]\n\nI'll create this as a draft so you can review and adjust the styling in PostHog before launching.\n\n**Ready to create it?**\"\n```\n\nWait for confirmation, then use `posthog:survey-create` with `start_date: null` (draft).\n\n---\n\n### Step 7: After Creation\n\n```\n\"Done! Here's your survey: [link]\n\nIt's saved as a draft. From PostHog you can:\n- Preview how it looks\n- Adjust colors and styling\n- Launch when you're ready\n\n**Anything else you'd like help with?**\"\n```\n\n---\n\n## MCP Query Patterns\n\n### Finding events for targeting\n\n```\n1. User says: \"Users who created a report\"\n2. Query: posthog:event-definitions-list with q=\"report\"\n3. Present matches: \"I found `report_created`, `report_viewed`, `report_shared`. Which one?\"\n4. User confirms\n```\n\n### Finding person properties\n\n```\n1. User says: \"Paid users only\"\n2. Query: posthog:properties-list with type=\"person\"\n3. Look for: plan, subscription, tier, pricing-related properties\n4. Present: \"I found a `plan` property with values free\u002Fpro\u002Fenterprise. Should we target `plan` is not `free`?\"\n5. User confirms\n```\n\n### Checking existing surveys\n\n```\n1. Before creating, query: posthog:surveys-get-all\n2. Check for similar names or targeting\n3. If found: \"You have an existing [survey name] with similar targeting. Create new or modify existing?\"\n```\n\n### Finding feature flags\n\n```\n1. User mentions beta\u002Ffeature rollout\n2. Query: posthog:feature-flag-get-all\n3. Present relevant flags: \"I found `beta-feature-x`. Link the survey to this flag?\"\n```\n\n---\n\n## Example Conversation (With MCP)\n\n**User:** \"I want to create a survey\"\n\n**Claude:** \"I'll help you create a survey in PostHog. Here's what we'll figure out together:\n\n1. **Goal** – What do you want to learn?\n2. **Questions** – What to ask and how\n3. **Audience** – Who should see this?\n4. **Timing** – When and how often?\n\nLet's start. **What do you want to learn from this survey?**\"\n\n---\n\n**User:** \"I want to know if the new export feature is easy to use\"\n\n**Claude:** \"Great! This is perfect for a **Customer Effort Score (CES)** survey.\n\nHere's the standard approach:\n- **Q1 (Rating 1-7):** 'How easy was it to use the export feature?'\n- **Q2 (Open text, for low scores):** 'What would make it easier?'\n\n**Does this work, or would you like to customize it?**\"\n\n---\n\n**User:** \"That works\"\n\n**Claude:** \"Perfect. Now let's decide who should see this.\n\n**Who should see the survey?** For example:\n- Everyone\n- Users who've used the export feature\n- A specific segment\"\n\n---\n\n**User:** \"People who have used the export feature\"\n\n**Claude:** [Queries posthog:event-definitions-list with q=\"export\"]\n\n\"I found these export-related events in your PostHog:\n- `export_completed` (2.3k times this month)\n- `export_started` (2.8k times this month)\n- `export_failed` (145 times this month)\n\n**Which event should trigger the survey?** I'd recommend `export_completed` so users have finished the action.\"\n\n---\n\n**User:** \"Yes, export_completed\"\n\n**Claude:** \"Got it—survey shows after `export_completed`.\n\n**Should this survey show once per user, or repeat over time?**\"\n\n---\n\n**User:** \"Once\"\n\n**Claude:** \"Here's the survey I'll create:\n\n**Name:** Export Feature CES\n**Questions:**\n1. Rating (1-7): 'How easy was it to use the export feature?'\n2. Open text (low scores): 'What would make it easier?'\n\n**Audience:** Users who trigger `export_completed`\n**Schedule:** Once per user\n\nI'll create this as a draft so you can review it in PostHog before launching.\n\n**Ready to create it?**\"\n\n---\n\n**User:** \"Yes\"\n\n**Claude:** [Creates survey via posthog:survey-create with start_date: null]\n\n\"Done! Here's your survey: [link]\n\nIt's saved as a draft. You can preview it, adjust the styling, and launch when ready.\n\n**Anything else you'd like help with?**\"\n\n---\n\n## Example Conversation (Without MCP)\n\n**User:** \"People who have used the export feature\"\n\n**Claude:** [MCP query fails or unavailable]\n\n\"I can't query your PostHog directly. **Do you know the event name for when someone completes an export?**\n\nIf not, we can target by URL instead (e.g., show on the exports page).\"\n\n---\n\n**User:** \"I think it's called export_done\"\n\n**Claude:** \"Got it—I'll use `export_done` as the trigger event.\n\n**Should this survey show once per user, or repeat?**\"\n\n---\n\n## Question Design Reference\n\nSee [references\u002Fquestion-examples.md](references\u002Fquestion-examples.md) for:\n- 22 survey templates with proven questions\n- Targeting recommendations per survey type\n- Branching logic examples\n",{"data":35,"body":36},{"name":4,"description":6},{"type":37,"children":38},"root",[39,47,53,60,106,112,117,166,183,189,196,201,213,218,222,228,238,243,466,476,479,485,492,501,507,516,519,525,530,535,544,547,553,563,569,683,689,694,703,708,717,720,726,733,742,747,756,759,765,770,779,800,803,809,818,821,827,833,842,848,857,863,872,878,887,890,896,906,916,959,971,974,983,999,1004,1027,1036,1039,1048,1057,1067,1085,1088,1097,1112,1117,1153,1170,1173,1182,1198,1207,1210,1219,1228,1243,1256,1278,1283,1292,1295,1304,1317,1327,1332,1341,1344,1350,1358,1371,1381,1386,1389,1398,1415,1424,1427,1433,1446],{"type":40,"tag":41,"props":42,"children":43},"element","h1",{"id":4},[44],{"type":45,"value":46},"text","PostHog Survey Creator",{"type":40,"tag":48,"props":49,"children":50},"p",{},[51],{"type":45,"value":52},"Guide users through creating effective surveys in PostHog via conversational flow. Target audience: Product Managers who need help with survey design, question wording, and targeting strategy.",{"type":40,"tag":54,"props":55,"children":57},"h2",{"id":56},"critical-rules",[58],{"type":45,"value":59},"Critical Rules",{"type":40,"tag":61,"props":62,"children":63},"ol",{},[64,76,86,96],{"type":40,"tag":65,"props":66,"children":67},"li",{},[68,74],{"type":40,"tag":69,"props":70,"children":71},"strong",{},[72],{"type":45,"value":73},"One question per message.",{"type":45,"value":75}," Wait for user response before proceeding.",{"type":40,"tag":65,"props":77,"children":78},{},[79,84],{"type":40,"tag":69,"props":80,"children":81},{},[82],{"type":45,"value":83},"Use PostHog MCP first.",{"type":45,"value":85}," When MCP is available, query PostHog for information instead of asking the user. Always present findings for validation.",{"type":40,"tag":65,"props":87,"children":88},{},[89,94],{"type":40,"tag":69,"props":90,"children":91},{},[92],{"type":45,"value":93},"Only ask users when MCP unavailable.",{"type":45,"value":95}," Fall back to questions only if MCP tools aren't accessible.",{"type":40,"tag":65,"props":97,"children":98},{},[99,104],{"type":40,"tag":69,"props":100,"children":101},{},[102],{"type":45,"value":103},"Always create as draft.",{"type":45,"value":105}," Never offer to launch immediately. Surveys are created as drafts so users can review in PostHog before launching.",{"type":40,"tag":54,"props":107,"children":109},{"id":108},"posthog-mcp-detection",[110],{"type":45,"value":111},"PostHog MCP Detection",{"type":40,"tag":48,"props":113,"children":114},{},[115],{"type":45,"value":116},"At the start of conversation or when needing PostHog data, attempt to use MCP tools:",{"type":40,"tag":118,"props":119,"children":120},"ul",{},[121,133,144,155],{"type":40,"tag":65,"props":122,"children":123},{},[124,131],{"type":40,"tag":125,"props":126,"children":128},"code",{"className":127},[],[129],{"type":45,"value":130},"posthog:event-definitions-list",{"type":45,"value":132}," — Get available events",{"type":40,"tag":65,"props":134,"children":135},{},[136,142],{"type":40,"tag":125,"props":137,"children":139},{"className":138},[],[140],{"type":45,"value":141},"posthog:properties-list",{"type":45,"value":143}," — Get event or person properties",{"type":40,"tag":65,"props":145,"children":146},{},[147,153],{"type":40,"tag":125,"props":148,"children":150},{"className":149},[],[151],{"type":45,"value":152},"posthog:surveys-get-all",{"type":45,"value":154}," — Check existing surveys",{"type":40,"tag":65,"props":156,"children":157},{},[158,164],{"type":40,"tag":125,"props":159,"children":161},{"className":160},[],[162],{"type":45,"value":163},"posthog:feature-flag-get-all",{"type":45,"value":165}," — Get feature flags for linking",{"type":40,"tag":48,"props":167,"children":168},{},[169,174,176,181],{"type":40,"tag":69,"props":170,"children":171},{},[172],{"type":45,"value":173},"If MCP works:",{"type":45,"value":175}," Use data from PostHog and ask user to validate.\n",{"type":40,"tag":69,"props":177,"children":178},{},[179],{"type":45,"value":180},"If MCP fails\u002Funavailable:",{"type":45,"value":182}," Ask user directly about their PostHog setup.",{"type":40,"tag":54,"props":184,"children":186},{"id":185},"conversation-flow",[187],{"type":45,"value":188},"Conversation Flow",{"type":40,"tag":190,"props":191,"children":193},"h3",{"id":192},"opening-show-the-journey",[194],{"type":45,"value":195},"Opening: Show the Journey",{"type":40,"tag":48,"props":197,"children":198},{},[199],{"type":45,"value":200},"When user asks to create a survey:",{"type":40,"tag":202,"props":203,"children":207},"pre",{"className":204,"code":206,"language":45},[205],"language-text","\"I'll help you create a survey in PostHog. Here's what we'll figure out together:\n\n1. **Goal** – What do you want to learn?\n2. **Questions** – What to ask and how\n3. **Audience** – Who should see this?\n4. **Timing** – When and how often?\n\nLet's start with the goal. **What do you want to learn from this survey?**\"\n",[208],{"type":40,"tag":125,"props":209,"children":211},{"__ignoreMap":210},"",[212],{"type":45,"value":206},{"type":40,"tag":48,"props":214,"children":215},{},[216],{"type":45,"value":217},"Wait for response.",{"type":40,"tag":219,"props":220,"children":221},"hr",{},[],{"type":40,"tag":190,"props":223,"children":225},{"id":224},"step-1-understand-the-goal",[226],{"type":45,"value":227},"Step 1: Understand the Goal",{"type":40,"tag":48,"props":229,"children":230},{},[231,236],{"type":40,"tag":69,"props":232,"children":233},{},[234],{"type":45,"value":235},"Ask:",{"type":45,"value":237}," \"What do you want to learn from this survey?\"",{"type":40,"tag":48,"props":239,"children":240},{},[241],{"type":45,"value":242},"Listen for keywords to match templates:",{"type":40,"tag":244,"props":245,"children":246},"table",{},[247,266],{"type":40,"tag":248,"props":249,"children":250},"thead",{},[251],{"type":40,"tag":252,"props":253,"children":254},"tr",{},[255,261],{"type":40,"tag":256,"props":257,"children":258},"th",{},[259],{"type":45,"value":260},"Keywords",{"type":40,"tag":256,"props":262,"children":263},{},[264],{"type":45,"value":265},"Template",{"type":40,"tag":267,"props":268,"children":269},"tbody",{},[270,284,297,310,323,336,349,362,375,388,401,414,427,440,453],{"type":40,"tag":252,"props":271,"children":272},{},[273,279],{"type":40,"tag":274,"props":275,"children":276},"td",{},[277],{"type":45,"value":278},"\"recommend\", \"loyalty\", \"NPS\"",{"type":40,"tag":274,"props":280,"children":281},{},[282],{"type":45,"value":283},"NPS",{"type":40,"tag":252,"props":285,"children":286},{},[287,292],{"type":40,"tag":274,"props":288,"children":289},{},[290],{"type":45,"value":291},"\"satisfied\", \"satisfaction\"",{"type":40,"tag":274,"props":293,"children":294},{},[295],{"type":45,"value":296},"CSAT",{"type":40,"tag":252,"props":298,"children":299},{},[300,305],{"type":40,"tag":274,"props":301,"children":302},{},[303],{"type":45,"value":304},"\"easy\", \"effort\", \"friction\"",{"type":40,"tag":274,"props":306,"children":307},{},[308],{"type":45,"value":309},"CES",{"type":40,"tag":252,"props":311,"children":312},{},[313,318],{"type":40,"tag":274,"props":314,"children":315},{},[316],{"type":45,"value":317},"\"disappointed\", \"product-market fit\"",{"type":40,"tag":274,"props":319,"children":320},{},[321],{"type":45,"value":322},"PMF",{"type":40,"tag":252,"props":324,"children":325},{},[326,331],{"type":40,"tag":274,"props":327,"children":328},{},[329],{"type":45,"value":330},"\"why signed up\", \"jobs to be done\"",{"type":40,"tag":274,"props":332,"children":333},{},[334],{"type":45,"value":335},"JTBD",{"type":40,"tag":252,"props":337,"children":338},{},[339,344],{"type":40,"tag":274,"props":340,"children":341},{},[342],{"type":45,"value":343},"\"price\", \"expensive\", \"value\"",{"type":40,"tag":274,"props":345,"children":346},{},[347],{"type":45,"value":348},"Pricing",{"type":40,"tag":252,"props":350,"children":351},{},[352,357],{"type":40,"tag":274,"props":353,"children":354},{},[355],{"type":45,"value":356},"\"competitor\", \"alternatives\"",{"type":40,"tag":274,"props":358,"children":359},{},[360],{"type":45,"value":361},"Competitive Intel",{"type":40,"tag":252,"props":363,"children":364},{},[365,370],{"type":40,"tag":274,"props":366,"children":367},{},[368],{"type":45,"value":369},"\"not using\", \"adoption\"",{"type":40,"tag":274,"props":371,"children":372},{},[373],{"type":45,"value":374},"Feature Adoption",{"type":40,"tag":252,"props":376,"children":377},{},[378,383],{"type":40,"tag":274,"props":379,"children":380},{},[381],{"type":45,"value":382},"\"beta\", \"new feature\"",{"type":40,"tag":274,"props":384,"children":385},{},[386],{"type":45,"value":387},"Beta Feedback",{"type":40,"tag":252,"props":389,"children":390},{},[391,396],{"type":40,"tag":274,"props":392,"children":393},{},[394],{"type":45,"value":395},"\"trial\", \"upgrade\"",{"type":40,"tag":274,"props":397,"children":398},{},[399],{"type":45,"value":400},"Trial Conversion",{"type":40,"tag":252,"props":402,"children":403},{},[404,409],{"type":40,"tag":274,"props":405,"children":406},{},[407],{"type":45,"value":408},"\"new user\", \"intent\"",{"type":40,"tag":274,"props":410,"children":411},{},[412],{"type":45,"value":413},"Welcome Survey",{"type":40,"tag":252,"props":415,"children":416},{},[417,422],{"type":40,"tag":274,"props":418,"children":419},{},[420],{"type":45,"value":421},"\"onboarding\", \"getting started\"",{"type":40,"tag":274,"props":423,"children":424},{},[425],{"type":45,"value":426},"Activation",{"type":40,"tag":252,"props":428,"children":429},{},[430,435],{"type":40,"tag":274,"props":431,"children":432},{},[433],{"type":45,"value":434},"\"inactive\", \"churned\", \"win back\"",{"type":40,"tag":274,"props":436,"children":437},{},[438],{"type":45,"value":439},"Dormant User",{"type":40,"tag":252,"props":441,"children":442},{},[443,448],{"type":40,"tag":274,"props":444,"children":445},{},[446],{"type":45,"value":447},"\"cancel\", \"leaving\"",{"type":40,"tag":274,"props":449,"children":450},{},[451],{"type":45,"value":452},"Churn\u002FExit",{"type":40,"tag":252,"props":454,"children":455},{},[456,461],{"type":40,"tag":274,"props":457,"children":458},{},[459],{"type":45,"value":460},"\"support\", \"ticket\"",{"type":40,"tag":274,"props":462,"children":463},{},[464],{"type":45,"value":465},"Support CSAT",{"type":40,"tag":48,"props":467,"children":468},{},[469,474],{"type":40,"tag":69,"props":470,"children":471},{},[472],{"type":45,"value":473},"After response:",{"type":45,"value":475}," Present matching template OR explore custom, then proceed.",{"type":40,"tag":219,"props":477,"children":478},{},[],{"type":40,"tag":190,"props":480,"children":482},{"id":481},"step-2-present-template-or-explore-custom",[483],{"type":45,"value":484},"Step 2: Present Template or Explore Custom",{"type":40,"tag":486,"props":487,"children":489},"h4",{"id":488},"if-template-matches",[490],{"type":45,"value":491},"If template matches:",{"type":40,"tag":202,"props":493,"children":496},{"className":494,"code":495,"language":45},[205],"\"Based on what you're describing, a **Customer Effort Score (CES)** survey would work well. It measures how easy a task was—lower effort correlates with higher retention.\n\nThe standard approach is:\n- Q1: Rating (1-7) – 'How easy was it to [task]?'\n- Q2: Open text (for low scores) – 'What made this difficult?'\n\n**Does this approach work for you, or would you like to customize it?**\"\n",[497],{"type":40,"tag":125,"props":498,"children":499},{"__ignoreMap":210},[500],{"type":45,"value":495},{"type":40,"tag":486,"props":502,"children":504},{"id":503},"if-no-template-matches",[505],{"type":45,"value":506},"If no template matches:",{"type":40,"tag":202,"props":508,"children":511},{"className":509,"code":510,"language":45},[205],"\"This sounds like a custom survey—I'll help you design one.\n\n**What's the single most important thing you want to learn?**\"\n",[512],{"type":40,"tag":125,"props":513,"children":514},{"__ignoreMap":210},[515],{"type":45,"value":510},{"type":40,"tag":219,"props":517,"children":518},{},[],{"type":40,"tag":190,"props":520,"children":522},{"id":521},"step-3-finalize-questions",[523],{"type":45,"value":524},"Step 3: Finalize Questions",{"type":40,"tag":48,"props":526,"children":527},{},[528],{"type":45,"value":529},"If customizing, ask ONE question at a time until questions are defined.",{"type":40,"tag":48,"props":531,"children":532},{},[533],{"type":45,"value":534},"Once set, confirm:",{"type":40,"tag":202,"props":536,"children":539},{"className":537,"code":538,"language":45},[205],"\"Here's what we have:\n[list questions]\n\n**Does this look right?**\"\n",[540],{"type":40,"tag":125,"props":541,"children":542},{"__ignoreMap":210},[543],{"type":45,"value":538},{"type":40,"tag":219,"props":545,"children":546},{},[],{"type":40,"tag":190,"props":548,"children":550},{"id":549},"step-4-define-audience-mcp-first-approach",[551],{"type":45,"value":552},"Step 4: Define Audience (MCP-First Approach)",{"type":40,"tag":48,"props":554,"children":555},{},[556,558],{"type":45,"value":557},"This is where PostHog MCP becomes critical. ",{"type":40,"tag":69,"props":559,"children":560},{},[561],{"type":45,"value":562},"Do not ask the user about events or properties if MCP is available.",{"type":40,"tag":486,"props":564,"children":566},{"id":565},"with-posthog-mcp-available",[567],{"type":45,"value":568},"With PostHog MCP available:",{"type":40,"tag":61,"props":570,"children":571},{},[572,589,649,666],{"type":40,"tag":65,"props":573,"children":574},{},[575,580],{"type":40,"tag":69,"props":576,"children":577},{},[578],{"type":45,"value":579},"First, ask the high-level targeting question:",{"type":40,"tag":202,"props":581,"children":584},{"className":582,"code":583,"language":45},[205],"\"Now let's decide who sees this survey.\n\n**Who should see it?** For example:\n- All users\n- Users on a specific page\n- A specific segment (paid users, new users, etc.)\n- Users who completed a specific action\"\n",[585],{"type":40,"tag":125,"props":586,"children":587},{"__ignoreMap":210},[588],{"type":45,"value":583},{"type":40,"tag":65,"props":590,"children":591},{},[592,597,601,606,615,618,623,632,635,640],{"type":40,"tag":69,"props":593,"children":594},{},[595],{"type":45,"value":596},"Based on their answer, query PostHog and present options:",{"type":40,"tag":598,"props":599,"children":600},"br",{},[],{"type":40,"tag":69,"props":602,"children":603},{},[604],{"type":45,"value":605},"If they mention an action\u002Fevent:",{"type":40,"tag":202,"props":607,"children":610},{"className":608,"code":609,"language":45},[205],"[Use posthog:event-definitions-list to find matching events]\n\n\"I found these events in your PostHog that might match:\n- `report_viewed` (1.2k times this month)\n- `report_created` (340 times this month)\n- `report_exported` (89 times this month)\n\n**Which event should trigger the survey?**\"\n",[611],{"type":40,"tag":125,"props":612,"children":613},{"__ignoreMap":210},[614],{"type":45,"value":609},{"type":40,"tag":598,"props":616,"children":617},{},[],{"type":40,"tag":69,"props":619,"children":620},{},[621],{"type":45,"value":622},"If they mention a user segment:",{"type":40,"tag":202,"props":624,"children":627},{"className":625,"code":626,"language":45},[205],"[Use posthog:properties-list with type=\"person\" to find properties]\n\n\"I found these person properties you could filter by:\n- `plan` (values: free, pro, enterprise)\n- `signed_up_at`\n- `company_size`\n\n**Which property should we use, and what value?**\"\n",[628],{"type":40,"tag":125,"props":629,"children":630},{"__ignoreMap":210},[631],{"type":45,"value":626},{"type":40,"tag":598,"props":633,"children":634},{},[],{"type":40,"tag":69,"props":636,"children":637},{},[638],{"type":45,"value":639},"If they mention a page:",{"type":40,"tag":202,"props":641,"children":644},{"className":642,"code":643,"language":45},[205],"\"Got it—I'll target users on that page.\n\n**What's the URL or URL pattern?** (e.g., '\u002Freports' or contains 'dashboard')\"\n",[645],{"type":40,"tag":125,"props":646,"children":647},{"__ignoreMap":210},[648],{"type":45,"value":643},{"type":40,"tag":65,"props":650,"children":651},{},[652,657],{"type":40,"tag":69,"props":653,"children":654},{},[655],{"type":45,"value":656},"If checking for existing similar surveys:",{"type":40,"tag":202,"props":658,"children":661},{"className":659,"code":660,"language":45},[205],"[Use posthog:surveys-get-all to check for duplicates]\n\n\"I noticed you already have an 'NPS Survey' running that targets the dashboard. \n\n**Should I create a new one, or would you like to modify the existing survey?**\"\n",[662],{"type":40,"tag":125,"props":663,"children":664},{"__ignoreMap":210},[665],{"type":45,"value":660},{"type":40,"tag":65,"props":667,"children":668},{},[669,674],{"type":40,"tag":69,"props":670,"children":671},{},[672],{"type":45,"value":673},"If linking to feature flags:",{"type":40,"tag":202,"props":675,"children":678},{"className":676,"code":677,"language":45},[205],"[Use posthog:feature-flag-get-all if user mentions beta\u002Ffeature flags]\n\n\"I found these feature flags that might be relevant:\n- `new-reporting-feature` (currently 30% rollout)\n- `beta-dashboard-v2` (10% rollout)\n\n**Should the survey only show to users with one of these flags enabled?**\"\n",[679],{"type":40,"tag":125,"props":680,"children":681},{"__ignoreMap":210},[682],{"type":45,"value":677},{"type":40,"tag":486,"props":684,"children":686},{"id":685},"without-posthog-mcp-fallback",[687],{"type":45,"value":688},"Without PostHog MCP (fallback):",{"type":40,"tag":48,"props":690,"children":691},{},[692],{"type":45,"value":693},"If MCP tools fail or aren't available, ask the user directly:",{"type":40,"tag":202,"props":695,"children":698},{"className":696,"code":697,"language":45},[205],"\"I don't have access to query your PostHog directly.\n\n**Do you know the event name for when users [complete the action]?** \n(If not, we can target by page URL instead)\"\n",[699],{"type":40,"tag":125,"props":700,"children":701},{"__ignoreMap":210},[702],{"type":45,"value":697},{"type":40,"tag":48,"props":704,"children":705},{},[706],{"type":45,"value":707},"Or for properties:",{"type":40,"tag":202,"props":709,"children":712},{"className":710,"code":711,"language":45},[205],"\"**What's the property name for [plan\u002Fsegment] in your PostHog?**\n(e.g., 'plan', 'subscription_tier', etc.)\"\n",[713],{"type":40,"tag":125,"props":714,"children":715},{"__ignoreMap":210},[716],{"type":45,"value":711},{"type":40,"tag":219,"props":718,"children":719},{},[],{"type":40,"tag":190,"props":721,"children":723},{"id":722},"step-5-configure-timing",[724],{"type":45,"value":725},"Step 5: Configure Timing",{"type":40,"tag":48,"props":727,"children":728},{},[729],{"type":40,"tag":69,"props":730,"children":731},{},[732],{"type":45,"value":235},{"type":40,"tag":202,"props":734,"children":737},{"className":735,"code":736,"language":45},[205],"\"**Should this survey show once per user, or repeat over time?**\n\n- Once is good for most feedback surveys\n- Recurring works for NPS (e.g., every 90 days)\"\n",[738],{"type":40,"tag":125,"props":739,"children":740},{"__ignoreMap":210},[741],{"type":45,"value":736},{"type":40,"tag":48,"props":743,"children":744},{},[745],{"type":45,"value":746},"If recurring, follow up:",{"type":40,"tag":202,"props":748,"children":751},{"className":749,"code":750,"language":45},[205],"\"**How often should it repeat?**\"\n",[752],{"type":40,"tag":125,"props":753,"children":754},{"__ignoreMap":210},[755],{"type":45,"value":750},{"type":40,"tag":219,"props":757,"children":758},{},[],{"type":40,"tag":190,"props":760,"children":762},{"id":761},"step-6-confirm-and-create",[763],{"type":45,"value":764},"Step 6: Confirm and Create",{"type":40,"tag":48,"props":766,"children":767},{},[768],{"type":45,"value":769},"Summarize and ask for final confirmation:",{"type":40,"tag":202,"props":771,"children":774},{"className":772,"code":773,"language":45},[205],"\"Here's the survey I'll create:\n\n**Name:** [name]\n**Questions:**\n1. [Q1]\n2. [Q2]\n\n**Audience:** [targeting details]\n**Schedule:** [once\u002Frecurring]\n\nI'll create this as a draft so you can review and adjust the styling in PostHog before launching.\n\n**Ready to create it?**\"\n",[775],{"type":40,"tag":125,"props":776,"children":777},{"__ignoreMap":210},[778],{"type":45,"value":773},{"type":40,"tag":48,"props":780,"children":781},{},[782,784,790,792,798],{"type":45,"value":783},"Wait for confirmation, then use ",{"type":40,"tag":125,"props":785,"children":787},{"className":786},[],[788],{"type":45,"value":789},"posthog:survey-create",{"type":45,"value":791}," with ",{"type":40,"tag":125,"props":793,"children":795},{"className":794},[],[796],{"type":45,"value":797},"start_date: null",{"type":45,"value":799}," (draft).",{"type":40,"tag":219,"props":801,"children":802},{},[],{"type":40,"tag":190,"props":804,"children":806},{"id":805},"step-7-after-creation",[807],{"type":45,"value":808},"Step 7: After Creation",{"type":40,"tag":202,"props":810,"children":813},{"className":811,"code":812,"language":45},[205],"\"Done! Here's your survey: [link]\n\nIt's saved as a draft. From PostHog you can:\n- Preview how it looks\n- Adjust colors and styling\n- Launch when you're ready\n\n**Anything else you'd like help with?**\"\n",[814],{"type":40,"tag":125,"props":815,"children":816},{"__ignoreMap":210},[817],{"type":45,"value":812},{"type":40,"tag":219,"props":819,"children":820},{},[],{"type":40,"tag":54,"props":822,"children":824},{"id":823},"mcp-query-patterns",[825],{"type":45,"value":826},"MCP Query Patterns",{"type":40,"tag":190,"props":828,"children":830},{"id":829},"finding-events-for-targeting",[831],{"type":45,"value":832},"Finding events for targeting",{"type":40,"tag":202,"props":834,"children":837},{"className":835,"code":836,"language":45},[205],"1. User says: \"Users who created a report\"\n2. Query: posthog:event-definitions-list with q=\"report\"\n3. Present matches: \"I found `report_created`, `report_viewed`, `report_shared`. Which one?\"\n4. User confirms\n",[838],{"type":40,"tag":125,"props":839,"children":840},{"__ignoreMap":210},[841],{"type":45,"value":836},{"type":40,"tag":190,"props":843,"children":845},{"id":844},"finding-person-properties",[846],{"type":45,"value":847},"Finding person properties",{"type":40,"tag":202,"props":849,"children":852},{"className":850,"code":851,"language":45},[205],"1. User says: \"Paid users only\"\n2. Query: posthog:properties-list with type=\"person\"\n3. Look for: plan, subscription, tier, pricing-related properties\n4. Present: \"I found a `plan` property with values free\u002Fpro\u002Fenterprise. Should we target `plan` is not `free`?\"\n5. User confirms\n",[853],{"type":40,"tag":125,"props":854,"children":855},{"__ignoreMap":210},[856],{"type":45,"value":851},{"type":40,"tag":190,"props":858,"children":860},{"id":859},"checking-existing-surveys",[861],{"type":45,"value":862},"Checking existing surveys",{"type":40,"tag":202,"props":864,"children":867},{"className":865,"code":866,"language":45},[205],"1. Before creating, query: posthog:surveys-get-all\n2. Check for similar names or targeting\n3. If found: \"You have an existing [survey name] with similar targeting. Create new or modify existing?\"\n",[868],{"type":40,"tag":125,"props":869,"children":870},{"__ignoreMap":210},[871],{"type":45,"value":866},{"type":40,"tag":190,"props":873,"children":875},{"id":874},"finding-feature-flags",[876],{"type":45,"value":877},"Finding feature flags",{"type":40,"tag":202,"props":879,"children":882},{"className":880,"code":881,"language":45},[205],"1. User mentions beta\u002Ffeature rollout\n2. Query: posthog:feature-flag-get-all\n3. Present relevant flags: \"I found `beta-feature-x`. Link the survey to this flag?\"\n",[883],{"type":40,"tag":125,"props":884,"children":885},{"__ignoreMap":210},[886],{"type":45,"value":881},{"type":40,"tag":219,"props":888,"children":889},{},[],{"type":40,"tag":54,"props":891,"children":893},{"id":892},"example-conversation-with-mcp",[894],{"type":45,"value":895},"Example Conversation (With MCP)",{"type":40,"tag":48,"props":897,"children":898},{},[899,904],{"type":40,"tag":69,"props":900,"children":901},{},[902],{"type":45,"value":903},"User:",{"type":45,"value":905}," \"I want to create a survey\"",{"type":40,"tag":48,"props":907,"children":908},{},[909,914],{"type":40,"tag":69,"props":910,"children":911},{},[912],{"type":45,"value":913},"Claude:",{"type":45,"value":915}," \"I'll help you create a survey in PostHog. Here's what we'll figure out together:",{"type":40,"tag":61,"props":917,"children":918},{},[919,929,939,949],{"type":40,"tag":65,"props":920,"children":921},{},[922,927],{"type":40,"tag":69,"props":923,"children":924},{},[925],{"type":45,"value":926},"Goal",{"type":45,"value":928}," – What do you want to learn?",{"type":40,"tag":65,"props":930,"children":931},{},[932,937],{"type":40,"tag":69,"props":933,"children":934},{},[935],{"type":45,"value":936},"Questions",{"type":45,"value":938}," – What to ask and how",{"type":40,"tag":65,"props":940,"children":941},{},[942,947],{"type":40,"tag":69,"props":943,"children":944},{},[945],{"type":45,"value":946},"Audience",{"type":45,"value":948}," – Who should see this?",{"type":40,"tag":65,"props":950,"children":951},{},[952,957],{"type":40,"tag":69,"props":953,"children":954},{},[955],{"type":45,"value":956},"Timing",{"type":45,"value":958}," – When and how often?",{"type":40,"tag":48,"props":960,"children":961},{},[962,964,969],{"type":45,"value":963},"Let's start. ",{"type":40,"tag":69,"props":965,"children":966},{},[967],{"type":45,"value":968},"What do you want to learn from this survey?",{"type":45,"value":970},"\"",{"type":40,"tag":219,"props":972,"children":973},{},[],{"type":40,"tag":48,"props":975,"children":976},{},[977,981],{"type":40,"tag":69,"props":978,"children":979},{},[980],{"type":45,"value":903},{"type":45,"value":982}," \"I want to know if the new export feature is easy to use\"",{"type":40,"tag":48,"props":984,"children":985},{},[986,990,992,997],{"type":40,"tag":69,"props":987,"children":988},{},[989],{"type":45,"value":913},{"type":45,"value":991}," \"Great! This is perfect for a ",{"type":40,"tag":69,"props":993,"children":994},{},[995],{"type":45,"value":996},"Customer Effort Score (CES)",{"type":45,"value":998}," survey.",{"type":40,"tag":48,"props":1000,"children":1001},{},[1002],{"type":45,"value":1003},"Here's the standard approach:",{"type":40,"tag":118,"props":1005,"children":1006},{},[1007,1017],{"type":40,"tag":65,"props":1008,"children":1009},{},[1010,1015],{"type":40,"tag":69,"props":1011,"children":1012},{},[1013],{"type":45,"value":1014},"Q1 (Rating 1-7):",{"type":45,"value":1016}," 'How easy was it to use the export feature?'",{"type":40,"tag":65,"props":1018,"children":1019},{},[1020,1025],{"type":40,"tag":69,"props":1021,"children":1022},{},[1023],{"type":45,"value":1024},"Q2 (Open text, for low scores):",{"type":45,"value":1026}," 'What would make it easier?'",{"type":40,"tag":48,"props":1028,"children":1029},{},[1030,1035],{"type":40,"tag":69,"props":1031,"children":1032},{},[1033],{"type":45,"value":1034},"Does this work, or would you like to customize it?",{"type":45,"value":970},{"type":40,"tag":219,"props":1037,"children":1038},{},[],{"type":40,"tag":48,"props":1040,"children":1041},{},[1042,1046],{"type":40,"tag":69,"props":1043,"children":1044},{},[1045],{"type":45,"value":903},{"type":45,"value":1047}," \"That works\"",{"type":40,"tag":48,"props":1049,"children":1050},{},[1051,1055],{"type":40,"tag":69,"props":1052,"children":1053},{},[1054],{"type":45,"value":913},{"type":45,"value":1056}," \"Perfect. Now let's decide who should see this.",{"type":40,"tag":48,"props":1058,"children":1059},{},[1060,1065],{"type":40,"tag":69,"props":1061,"children":1062},{},[1063],{"type":45,"value":1064},"Who should see the survey?",{"type":45,"value":1066}," For example:",{"type":40,"tag":118,"props":1068,"children":1069},{},[1070,1075,1080],{"type":40,"tag":65,"props":1071,"children":1072},{},[1073],{"type":45,"value":1074},"Everyone",{"type":40,"tag":65,"props":1076,"children":1077},{},[1078],{"type":45,"value":1079},"Users who've used the export feature",{"type":40,"tag":65,"props":1081,"children":1082},{},[1083],{"type":45,"value":1084},"A specific segment\"",{"type":40,"tag":219,"props":1086,"children":1087},{},[],{"type":40,"tag":48,"props":1089,"children":1090},{},[1091,1095],{"type":40,"tag":69,"props":1092,"children":1093},{},[1094],{"type":45,"value":903},{"type":45,"value":1096}," \"People who have used the export feature\"",{"type":40,"tag":48,"props":1098,"children":1099},{},[1100,1104,1106],{"type":40,"tag":69,"props":1101,"children":1102},{},[1103],{"type":45,"value":913},{"type":45,"value":1105}," ",{"type":40,"tag":1107,"props":1108,"children":1109},"span",{},[1110],{"type":45,"value":1111},"Queries posthog:event-definitions-list with q=\"export\"",{"type":40,"tag":48,"props":1113,"children":1114},{},[1115],{"type":45,"value":1116},"\"I found these export-related events in your PostHog:",{"type":40,"tag":118,"props":1118,"children":1119},{},[1120,1131,1142],{"type":40,"tag":65,"props":1121,"children":1122},{},[1123,1129],{"type":40,"tag":125,"props":1124,"children":1126},{"className":1125},[],[1127],{"type":45,"value":1128},"export_completed",{"type":45,"value":1130}," (2.3k times this month)",{"type":40,"tag":65,"props":1132,"children":1133},{},[1134,1140],{"type":40,"tag":125,"props":1135,"children":1137},{"className":1136},[],[1138],{"type":45,"value":1139},"export_started",{"type":45,"value":1141}," (2.8k times this month)",{"type":40,"tag":65,"props":1143,"children":1144},{},[1145,1151],{"type":40,"tag":125,"props":1146,"children":1148},{"className":1147},[],[1149],{"type":45,"value":1150},"export_failed",{"type":45,"value":1152}," (145 times this month)",{"type":40,"tag":48,"props":1154,"children":1155},{},[1156,1161,1163,1168],{"type":40,"tag":69,"props":1157,"children":1158},{},[1159],{"type":45,"value":1160},"Which event should trigger the survey?",{"type":45,"value":1162}," I'd recommend ",{"type":40,"tag":125,"props":1164,"children":1166},{"className":1165},[],[1167],{"type":45,"value":1128},{"type":45,"value":1169}," so users have finished the action.\"",{"type":40,"tag":219,"props":1171,"children":1172},{},[],{"type":40,"tag":48,"props":1174,"children":1175},{},[1176,1180],{"type":40,"tag":69,"props":1177,"children":1178},{},[1179],{"type":45,"value":903},{"type":45,"value":1181}," \"Yes, export_completed\"",{"type":40,"tag":48,"props":1183,"children":1184},{},[1185,1189,1191,1196],{"type":40,"tag":69,"props":1186,"children":1187},{},[1188],{"type":45,"value":913},{"type":45,"value":1190}," \"Got it—survey shows after ",{"type":40,"tag":125,"props":1192,"children":1194},{"className":1193},[],[1195],{"type":45,"value":1128},{"type":45,"value":1197},".",{"type":40,"tag":48,"props":1199,"children":1200},{},[1201,1206],{"type":40,"tag":69,"props":1202,"children":1203},{},[1204],{"type":45,"value":1205},"Should this survey show once per user, or repeat over time?",{"type":45,"value":970},{"type":40,"tag":219,"props":1208,"children":1209},{},[],{"type":40,"tag":48,"props":1211,"children":1212},{},[1213,1217],{"type":40,"tag":69,"props":1214,"children":1215},{},[1216],{"type":45,"value":903},{"type":45,"value":1218}," \"Once\"",{"type":40,"tag":48,"props":1220,"children":1221},{},[1222,1226],{"type":40,"tag":69,"props":1223,"children":1224},{},[1225],{"type":45,"value":913},{"type":45,"value":1227}," \"Here's the survey I'll create:",{"type":40,"tag":48,"props":1229,"children":1230},{},[1231,1236,1238],{"type":40,"tag":69,"props":1232,"children":1233},{},[1234],{"type":45,"value":1235},"Name:",{"type":45,"value":1237}," Export Feature CES\n",{"type":40,"tag":69,"props":1239,"children":1240},{},[1241],{"type":45,"value":1242},"Questions:",{"type":40,"tag":61,"props":1244,"children":1245},{},[1246,1251],{"type":40,"tag":65,"props":1247,"children":1248},{},[1249],{"type":45,"value":1250},"Rating (1-7): 'How easy was it to use the export feature?'",{"type":40,"tag":65,"props":1252,"children":1253},{},[1254],{"type":45,"value":1255},"Open text (low scores): 'What would make it easier?'",{"type":40,"tag":48,"props":1257,"children":1258},{},[1259,1264,1266,1271,1276],{"type":40,"tag":69,"props":1260,"children":1261},{},[1262],{"type":45,"value":1263},"Audience:",{"type":45,"value":1265}," Users who trigger ",{"type":40,"tag":125,"props":1267,"children":1269},{"className":1268},[],[1270],{"type":45,"value":1128},{"type":40,"tag":69,"props":1272,"children":1273},{},[1274],{"type":45,"value":1275},"Schedule:",{"type":45,"value":1277}," Once per user",{"type":40,"tag":48,"props":1279,"children":1280},{},[1281],{"type":45,"value":1282},"I'll create this as a draft so you can review it in PostHog before launching.",{"type":40,"tag":48,"props":1284,"children":1285},{},[1286,1291],{"type":40,"tag":69,"props":1287,"children":1288},{},[1289],{"type":45,"value":1290},"Ready to create it?",{"type":45,"value":970},{"type":40,"tag":219,"props":1293,"children":1294},{},[],{"type":40,"tag":48,"props":1296,"children":1297},{},[1298,1302],{"type":40,"tag":69,"props":1299,"children":1300},{},[1301],{"type":45,"value":903},{"type":45,"value":1303}," \"Yes\"",{"type":40,"tag":48,"props":1305,"children":1306},{},[1307,1311,1312],{"type":40,"tag":69,"props":1308,"children":1309},{},[1310],{"type":45,"value":913},{"type":45,"value":1105},{"type":40,"tag":1107,"props":1313,"children":1314},{},[1315],{"type":45,"value":1316},"Creates survey via posthog:survey-create with start_date: null",{"type":40,"tag":48,"props":1318,"children":1319},{},[1320,1322],{"type":45,"value":1321},"\"Done! Here's your survey: ",{"type":40,"tag":1107,"props":1323,"children":1324},{},[1325],{"type":45,"value":1326},"link",{"type":40,"tag":48,"props":1328,"children":1329},{},[1330],{"type":45,"value":1331},"It's saved as a draft. You can preview it, adjust the styling, and launch when ready.",{"type":40,"tag":48,"props":1333,"children":1334},{},[1335,1340],{"type":40,"tag":69,"props":1336,"children":1337},{},[1338],{"type":45,"value":1339},"Anything else you'd like help with?",{"type":45,"value":970},{"type":40,"tag":219,"props":1342,"children":1343},{},[],{"type":40,"tag":54,"props":1345,"children":1347},{"id":1346},"example-conversation-without-mcp",[1348],{"type":45,"value":1349},"Example Conversation (Without MCP)",{"type":40,"tag":48,"props":1351,"children":1352},{},[1353,1357],{"type":40,"tag":69,"props":1354,"children":1355},{},[1356],{"type":45,"value":903},{"type":45,"value":1096},{"type":40,"tag":48,"props":1359,"children":1360},{},[1361,1365,1366],{"type":40,"tag":69,"props":1362,"children":1363},{},[1364],{"type":45,"value":913},{"type":45,"value":1105},{"type":40,"tag":1107,"props":1367,"children":1368},{},[1369],{"type":45,"value":1370},"MCP query fails or unavailable",{"type":40,"tag":48,"props":1372,"children":1373},{},[1374,1376],{"type":45,"value":1375},"\"I can't query your PostHog directly. ",{"type":40,"tag":69,"props":1377,"children":1378},{},[1379],{"type":45,"value":1380},"Do you know the event name for when someone completes an export?",{"type":40,"tag":48,"props":1382,"children":1383},{},[1384],{"type":45,"value":1385},"If not, we can target by URL instead (e.g., show on the exports page).\"",{"type":40,"tag":219,"props":1387,"children":1388},{},[],{"type":40,"tag":48,"props":1390,"children":1391},{},[1392,1396],{"type":40,"tag":69,"props":1393,"children":1394},{},[1395],{"type":45,"value":903},{"type":45,"value":1397}," \"I think it's called export_done\"",{"type":40,"tag":48,"props":1399,"children":1400},{},[1401,1405,1407,1413],{"type":40,"tag":69,"props":1402,"children":1403},{},[1404],{"type":45,"value":913},{"type":45,"value":1406}," \"Got it—I'll use ",{"type":40,"tag":125,"props":1408,"children":1410},{"className":1409},[],[1411],{"type":45,"value":1412},"export_done",{"type":45,"value":1414}," as the trigger event.",{"type":40,"tag":48,"props":1416,"children":1417},{},[1418,1423],{"type":40,"tag":69,"props":1419,"children":1420},{},[1421],{"type":45,"value":1422},"Should this survey show once per user, or repeat?",{"type":45,"value":970},{"type":40,"tag":219,"props":1425,"children":1426},{},[],{"type":40,"tag":54,"props":1428,"children":1430},{"id":1429},"question-design-reference",[1431],{"type":45,"value":1432},"Question Design Reference",{"type":40,"tag":48,"props":1434,"children":1435},{},[1436,1438,1444],{"type":45,"value":1437},"See ",{"type":40,"tag":1439,"props":1440,"children":1442},"a",{"href":1441},"references\u002Fquestion-examples.md",[1443],{"type":45,"value":1441},{"type":45,"value":1445}," for:",{"type":40,"tag":118,"props":1447,"children":1448},{},[1449,1454,1459],{"type":40,"tag":65,"props":1450,"children":1451},{},[1452],{"type":45,"value":1453},"22 survey templates with proven questions",{"type":40,"tag":65,"props":1455,"children":1456},{},[1457],{"type":45,"value":1458},"Targeting recommendations per survey type",{"type":40,"tag":65,"props":1460,"children":1461},{},[1462],{"type":45,"value":1463},"Branching logic examples",{"items":1465,"total":1636},[1466,1483,1495,1508,1521,1536,1552,1569,1583,1598,1608,1626],{"slug":1467,"name":1467,"fn":1468,"description":1469,"org":1470,"tags":1471,"stars":1480,"repoUrl":1481,"updatedAt":1482},"analyzing-expensive-users","analyze expensive users in AI observability","Analyze the most expensive users in AI observability and explain why they cost so much. Use when the user asks about top spenders, expensive users, per-user LLM cost, user-level cost drivers, or patterns behind high AI observability spend.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1472,1473,1476,1479],{"name":21,"slug":22,"type":13},{"name":1474,"slug":1475,"type":13},"Cost Optimization","cost-optimization",{"name":1477,"slug":1478,"type":13},"Observability","observability",{"name":9,"slug":8,"type":13},35568,"https:\u002F\u002Fgithub.com\u002FPostHog\u002Fposthog","2026-07-28T05:34:11.117757",{"slug":1484,"name":1484,"fn":1485,"description":1486,"org":1487,"tags":1488,"stars":1480,"repoUrl":1481,"updatedAt":1494},"auditing-endpoints","audit PostHog project endpoints","Audit every endpoint in a PostHog project for staleness, failed materialisations, and unused materialised versions. Use when the user asks \"what endpoints can I clean up?\", \"are any of my endpoints broken?\", \"which materialised versions are still being called?\", or wants a one-shot cleanup pass over the Endpoints product. Produces a prioritised report grouped by issue type, with recommended actions but does not modify anything without explicit confirmation.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1489,1490,1493],{"name":21,"slug":22,"type":13},{"name":1491,"slug":1492,"type":13},"Audit","audit",{"name":9,"slug":8,"type":13},"2026-06-08T08:08:33.693989",{"slug":1496,"name":1496,"fn":1497,"description":1498,"org":1499,"tags":1500,"stars":1480,"repoUrl":1481,"updatedAt":1507},"auditing-warehouse-source-health","audit PostHog data warehouse source health","Audit the health of a PostHog project's data warehouse sources and syncs — find every broken or degraded source connection, sync schema, and webhook channel. Use when the user asks \"why are my imports failing?\", \"what's broken with my sources?\", \"why is my warehouse data stale?\", or wants a one-shot triage of source\u002Fsync health before deciding where to dig in. Produces a prioritized report grouped by severity, with recommended next steps. For materialized-view health use `auditing-warehouse-view-health`; for a single failing sync use `diagnosing-failed-warehouse-syncs`.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1501,1502,1505,1506],{"name":1491,"slug":1492,"type":13},{"name":1503,"slug":1504,"type":13},"Data Warehouse","data-warehouse",{"name":1477,"slug":1478,"type":13},{"name":9,"slug":8,"type":13},"2026-06-18T08:22:57.67984",{"slug":1509,"name":1509,"fn":1510,"description":1511,"org":1512,"tags":1513,"stars":1480,"repoUrl":1481,"updatedAt":1520},"auditing-warehouse-view-health","audit PostHog materialized view health","Audit the health of a PostHog project's materialized views (saved queries) — find every failed materialization and flag unused or stale materialized views that cost storage and compute. Use when the user asks \"which of my views are broken?\", \"why is this materialized view failing?\", \"are any of my views wasting compute?\", or wants a one-shot triage of view health. For source\u002Fsync health use `auditing-warehouse-source-health`.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1514,1515,1516,1519],{"name":1491,"slug":1492,"type":13},{"name":1503,"slug":1504,"type":13},{"name":1517,"slug":1518,"type":13},"Performance","performance",{"name":9,"slug":8,"type":13},"2026-06-18T08:25:10.936787",{"slug":1522,"name":1522,"fn":1523,"description":1524,"org":1525,"tags":1526,"stars":1480,"repoUrl":1481,"updatedAt":1535},"authoring-error-tracking-alerts","author PostHog error tracking alerts","Author error tracking alerts that fire when an issue is created, reopened, or starts spiking. Use when the user asks to set up error notifications, route exceptions to Slack\u002Fwebhook\u002FLinear, or evaluate which error events are worth alerting on. Covers trigger-event selection, integration choice, dedup against existing alerts, and shipping with the canonical message body shape.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1527,1530,1533,1534],{"name":1528,"slug":1529,"type":13},"Alerting","alerting",{"name":1531,"slug":1532,"type":13},"Debugging","debugging",{"name":1477,"slug":1478,"type":13},{"name":9,"slug":8,"type":13},"2026-06-18T08:24:40.318583",{"slug":1537,"name":1537,"fn":1538,"description":1539,"org":1540,"tags":1541,"stars":1480,"repoUrl":1481,"updatedAt":1551},"authoring-log-alerts","author log alerts in PostHog","Author useful, low-noise log alerts on services in a PostHog project. Use when the user asks to set up alerts for their logs, suggest alerts they should add, or evaluate whether a service is worth monitoring. Covers service triage, baseline characterisation, threshold drafting, back-testing via simulate, and shipping with a notification destination.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1542,1543,1546,1547,1550],{"name":21,"slug":22,"type":13},{"name":1544,"slug":1545,"type":13},"Monitoring","monitoring",{"name":1477,"slug":1478,"type":13},{"name":1548,"slug":1549,"type":13},"Operations","operations",{"name":9,"slug":8,"type":13},"2026-07-18T05:10:54.430898",{"slug":1553,"name":1553,"fn":1554,"description":1555,"org":1556,"tags":1557,"stars":1480,"repoUrl":1481,"updatedAt":1568},"building-workflows","build and edit PostHog workflows","Build, edit, test, enable, and monitor PostHog workflows over MCP. Author the action\u002Fedge graph so it runs and opens cleanly in the visual editor, then change drafts surgically with patch operations. Use when asked to build, set up, automate, change, fix, or debug a workflow, campaign, broadcast, drip sequence, or event-triggered automation in the workflows product.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1558,1561,1564,1565],{"name":1559,"slug":1560,"type":13},"Automation","automation",{"name":1562,"slug":1563,"type":13},"MCP","mcp",{"name":9,"slug":8,"type":13},{"name":1566,"slug":1567,"type":13},"Workflow Automation","workflow-automation","2026-07-28T05:34:12.167015",{"slug":1570,"name":1570,"fn":1571,"description":1572,"org":1573,"tags":1574,"stars":1480,"repoUrl":1481,"updatedAt":1582},"check-posthog-loading","inspect PostHog SDK loading across URLs","Inspect how the PostHog JavaScript SDK is loaded across a list of URLs. Use to confirm consistent installation across pages, find pages missing the snippet, detect mismatched API keys or hosts between pages, and verify the load method (head snippet vs deferred vs array.js).\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1575,1576,1577,1580,1581],{"name":21,"slug":22,"type":13},{"name":1531,"slug":1532,"type":13},{"name":1578,"slug":1579,"type":13},"Frontend","frontend",{"name":1477,"slug":1478,"type":13},{"name":9,"slug":8,"type":13},"2026-05-07T05:56:19.828048",{"slug":1584,"name":1584,"fn":1585,"description":1586,"org":1587,"tags":1588,"stars":1480,"repoUrl":1481,"updatedAt":1597},"consuming-endpoints-from-client-code","integrate PostHog endpoints into client applications","Wire a PostHog endpoint into a client app or SDK. Covers fetching the OpenAPI spec, generating a typed client with openapi-generator or @hey-api\u002Fopenapi-ts, sending the right auth header, shaping the variables payload (HogQL code_name vs insight breakdown property), handling rate-limit and materialised-endpoint error responses. Use when the user says \"how do I call my endpoint\", \"generate a client for this\", or \"what auth header do I use\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1589,1592,1593,1594],{"name":1590,"slug":1591,"type":13},"API Development","api-development",{"name":1578,"slug":1579,"type":13},{"name":9,"slug":8,"type":13},{"name":1595,"slug":1596,"type":13},"SDK","sdk","2026-06-08T08:08:34.929454",{"slug":1599,"name":1599,"fn":1600,"description":1601,"org":1602,"tags":1603,"stars":1480,"repoUrl":1481,"updatedAt":1607},"copying-endpoints-across-projects","copy PostHog endpoints across projects","Copy a PostHog endpoint (a saved HogQL\u002Finsight query exposed as an API route) to another project in the same organization, or duplicate it under a new name in the same project. Use when the user wants to duplicate an endpoint, promote an endpoint from staging to production, replicate an endpoint's query\u002Fvariables\u002Ffreshness config in another workspace, or clone an endpoint to iterate on it. Unlike feature flags and experiments, endpoints have NO native cross-project copy tool — this skill covers the read-then-recreate flow (endpoint-get then endpoint-create), the active-project switching it requires, name-collision checks, and the safe defaults (land unmaterialised in the target, verify with endpoint-run). Does not cover editing endpoint versions (see managing-endpoint-versions) or authoring a brand-new endpoint from scratch (see creating-an-endpoint).\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1604,1605,1606],{"name":1590,"slug":1591,"type":13},{"name":1548,"slug":1549,"type":13},{"name":9,"slug":8,"type":13},"2026-07-15T05:29:58.442727",{"slug":1609,"name":1609,"fn":1610,"description":1611,"org":1612,"tags":1613,"stars":1480,"repoUrl":1481,"updatedAt":1625},"creating-ai-subscription","schedule recurring AI-generated PostHog reports","Create a recurring AI-generated PostHog report — schedule a free-text prompt to run on a cron, with the LLM-synthesized markdown delivered to email or Slack on each tick. Use when the user wants a recurring AI summary of X on any cadence (daily, weekly, monthly, yearly) rather than a one-off report. (To attach an AI summary to an existing insight\u002Fdashboard subscription instead of a free-text prompt, see `managing-subscriptions` and its `summary_enabled` option.)\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1614,1615,1618,1619,1622],{"name":1559,"slug":1560,"type":13},{"name":1616,"slug":1617,"type":13},"Email","email",{"name":9,"slug":8,"type":13},{"name":1620,"slug":1621,"type":13},"Reporting","reporting",{"name":1623,"slug":1624,"type":13},"Slack","slack","2026-06-09T07:32:27.935712",{"slug":1627,"name":1627,"fn":1628,"description":1629,"org":1630,"tags":1631,"stars":1480,"repoUrl":1481,"updatedAt":1635},"creating-an-endpoint","create PostHog API endpoints","Create a PostHog endpoint with the right shape on the first try — covers query kind choice, name conventions, what to expose as variables (HogQL code_name vs insight breakdown), data_freshness_seconds, and whether to materialise on day one. Use when the user says \"create an endpoint\", \"expose this query as an API\", \"turn this insight into an endpoint\", or asks for help structuring a new endpoint. Steers away from common mistakes: materialising a query with cohort breakdowns or compare mode, inline-only variables on a materialised endpoint, unbounded date ranges, ambiguous names.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1632,1633,1634],{"name":21,"slug":22,"type":13},{"name":1590,"slug":1591,"type":13},{"name":9,"slug":8,"type":13},"2026-06-08T08:08:29.624498",231,{"items":1638,"total":1741},[1639,1656,1672,1686,1702,1714,1725],{"slug":1640,"name":1640,"fn":1641,"description":1642,"org":1643,"tags":1644,"stars":23,"repoUrl":24,"updatedAt":1655},"account-handover","draft sales account handover notes","Draft structured handover notes for transitioning a PostHog account from one TAM or CSM to another. Use this skill when a TAM needs to hand over an account, prepare a transition briefing, write handover notes, create an account summary for a new owner, or any request involving account transitions between TAMs or CSMs. Triggers on \"hand over this account\", \"transition account to\", \"draft handover notes\", \"account briefing for new TAM\", \"prepare account transition\", or when a TAM names an account and says they're leaving or reassigning it.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1645,1648,1651,1652],{"name":1646,"slug":1647,"type":13},"Communications","communications",{"name":1649,"slug":1650,"type":13},"CRM","crm",{"name":9,"slug":8,"type":13},{"name":1653,"slug":1654,"type":13},"Sales","sales","2026-04-16T05:13:00.172732",{"slug":1657,"name":1657,"fn":1658,"description":1659,"org":1660,"tags":1661,"stars":23,"repoUrl":24,"updatedAt":1671},"auditing-warehouse-data-health","audit PostHog data warehouse health","Audit the health of a PostHog project's data warehouse — find every broken or degraded pipeline item across sources, sync schemas, materialized views, batch exports, and transformations. Use when the user asks \"what's broken in my warehouse?\", \"give me a health check\", \"audit my data pipeline\", \"why are some dashboards stale?\", or wants a one-shot triage summary before deciding where to spend time. Produces a prioritized report of issues grouped by severity and type, with recommended next steps.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1662,1663,1666,1669,1670],{"name":1491,"slug":1492,"type":13},{"name":1664,"slug":1665,"type":13},"Data Engineering","data-engineering",{"name":1667,"slug":1668,"type":13},"Data Quality","data-quality",{"name":1477,"slug":1478,"type":13},{"name":9,"slug":8,"type":13},"2026-06-21T08:19:05.85849",{"slug":1673,"name":1673,"fn":1674,"description":1675,"org":1676,"tags":1677,"stars":23,"repoUrl":24,"updatedAt":1685},"copying-flags-across-projects","copy feature flags across PostHog projects","Copy a feature flag from one PostHog project to one or more target projects in the same organization. Use when the user wants to duplicate a flag, promote a flag from staging to production, sync flags across projects, or replicate a flag configuration in a different workspace. Covers cohort remapping, scheduled-change handling, encrypted payloads, and the safe defaults (disabled in target, no scheduled changes).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1678,1681,1684],{"name":1679,"slug":1680,"type":13},"Deployment","deployment",{"name":1682,"slug":1683,"type":13},"Feature Flags","feature-flags",{"name":9,"slug":8,"type":13},"2026-05-04T05:56:44.484909",{"slug":1687,"name":1687,"fn":1688,"description":1689,"org":1690,"tags":1691,"stars":23,"repoUrl":24,"updatedAt":1701},"diagnosing-experiment-results","diagnose PostHog experiment results and anomalies","Diagnoses bias, anomalies, and strange-looking results on a specific PostHog experiment. Covers empty \u002F 0-exposure experiments, sample ratio mismatch, identity fragmentation, multi-variant exposure, uneven-split exclusion bias, significance traps (peeking, A\u002FA, Bayesian vs Frequentist), PostHog-vs-SQL discrepancies, and surprises after mid-run edits. Symptom-driven dispatch to the right diagnostic.\nTRIGGER when: user asks 'is my experiment biased?' or 'why 0 exposures?', references the bias banner, says a variant looks strange \u002F wrong \u002F off, sees significance flipping, notices PostHog numbers disagreeing with their SQL, sees an A\u002FA test showing significance, or reports surprises after mid-run edits.\nDO NOT TRIGGER when: creating a new experiment (use creating-experiments), only configuring rollout (use configuring-experiment-rollout) or metrics (use configuring-experiment-analytics), or only asking lifecycle questions (use managing-experiment-lifecycle).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1692,1695,1696,1699,1700],{"name":1693,"slug":1694,"type":13},"A\u002FB Testing","a-b-testing",{"name":21,"slug":22,"type":13},{"name":1697,"slug":1698,"type":13},"Data Analysis","data-analysis",{"name":1531,"slug":1532,"type":13},{"name":9,"slug":8,"type":13},"2026-05-22T06:59:58.103867",{"slug":1703,"name":1703,"fn":1704,"description":1705,"org":1706,"tags":1707,"stars":23,"repoUrl":24,"updatedAt":1713},"diagnosing-missing-recordings","diagnose missing PostHog session recordings","Diagnoses why a session recording is missing or was not captured. Use when a user asks why a session has no replay, why recordings aren't appearing, or wants to troubleshoot session replay capture issues for a specific session ID or across their project. Covers SDK diagnostic signals, project settings, sampling, triggers, ad blockers, and quota\u002Fbilling scenarios.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1708,1709,1710,1711,1712],{"name":21,"slug":22,"type":13},{"name":1531,"slug":1532,"type":13},{"name":1578,"slug":1579,"type":13},{"name":1477,"slug":1478,"type":13},{"name":9,"slug":8,"type":13},"2026-04-22T05:06:51.989772",{"slug":1715,"name":1715,"fn":1716,"description":1717,"org":1718,"tags":1719,"stars":23,"repoUrl":24,"updatedAt":1724},"diagnosing-sdk-health","diagnose PostHog SDK health","Diagnoses the health of a project's PostHog SDK integrations — which SDKs are out of date and how to fix them. Use when a user asks about PostHog SDK versions, outdated SDKs, upgrade recommendations, \"SDK health\", \"SDK doctor\" (the former name), or when events or features seem off and it might be due to an old SDK.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1720,1721,1722,1723],{"name":21,"slug":22,"type":13},{"name":1531,"slug":1532,"type":13},{"name":1477,"slug":1478,"type":13},{"name":9,"slug":8,"type":13},"2026-04-27T05:46:14.554016",{"slug":1726,"name":1726,"fn":1727,"description":1728,"org":1729,"tags":1730,"stars":23,"repoUrl":24,"updatedAt":1740},"error-tracking-android","track Android errors with PostHog","PostHog error tracking for Android",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1731,1734,1735,1738,1739],{"name":1732,"slug":1733,"type":13},"Android","android",{"name":1531,"slug":1532,"type":13},{"name":1736,"slug":1737,"type":13},"Mobile","mobile",{"name":1477,"slug":1478,"type":13},{"name":9,"slug":8,"type":13},"2026-04-06T18:46:26.982494",110]