[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-posthog-posthog-pls-transition-leads":3,"mdc--glr7cl-key":37,"related-repo-posthog-posthog-pls-transition-leads":1791,"related-org-posthog-posthog-pls-transition-leads":1902},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":26,"repoUrl":27,"updatedAt":28,"license":29,"forks":30,"topics":31,"repo":32,"sourceUrl":35,"mdContent":36},"posthog-pls-transition-leads","qualify PostHog product-led leads","Qualify and draft outreach for PostHog product-led leads who are hitting a billing transition — either startup program customers rolling off free credits, or users whose first invoice will be >= $2K. Use this skill when a TAE needs to work a startup rolloff lead, a high first-invoice alert, or any lead where the matching criteria mentions 'startup rolloff', 'credit spend', 'first invoice', 'credits expiring', or 'high usage transition'. Also trigger when a TAE pastes Salesforce lead details with matching criteria like 'Startup rolloff + high credit spend' or 'First invoice >= $2K'.",{"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,23],{"name":9,"slug":8,"type":13},"tag",{"name":15,"slug":16,"type":13},"CRM","crm",{"name":18,"slug":19,"type":13},"Sales","sales",{"name":21,"slug":22,"type":13},"Outreach","outreach",{"name":24,"slug":25,"type":13},"Lead Enrichment","lead-enrichment",56,"https:\u002F\u002Fgithub.com\u002FPostHog\u002Fskills","2026-04-06T18:46:35.9727",null,4,[],{"repoUrl":27,"stars":26,"forks":30,"topics":33,"description":34},[],"PostHog skills (under construction)","https:\u002F\u002Fgithub.com\u002FPostHog\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Fteam\u002Fnew-business-sales\u002Ftransition-leads","---\nname: posthog-pls-transition-leads\ndescription: \"Qualify and draft outreach for PostHog product-led leads who are hitting a billing transition — either startup program customers rolling off free credits, or users whose first invoice will be >= $2K. Use this skill when a TAE needs to work a startup rolloff lead, a high first-invoice alert, or any lead where the matching criteria mentions 'startup rolloff', 'credit spend', 'first invoice', 'credits expiring', or 'high usage transition'. Also trigger when a TAE pastes Salesforce lead details with matching criteria like 'Startup rolloff + high credit spend' or 'First invoice >= $2K'.\"\n---\n\n# PostHog Transition Lead Qualification & Outreach\n\nResearch, qualify, and recommend the right play for product-led leads hitting a billing transition. These fall into two categories:\n\n1. **Startup rolloff** — Customers on PostHog's startup program ($50K free credits \u002F 1 year) who are either nearing the end of the year or burning through credits fast enough to exhaust them early.\n2. **High first invoice** — Users (free-tier-to-paid or new signups) whose first real invoice will be >= $2K, meaning they've crossed from casual usage into meaningful spend.\n\n## What Makes Transition Leads Different from Big Fish\n\nThese are NOT cold outreach leads. The person is already a PostHog customer with real usage history. That changes the research depth, the framing, and the goal:\n\n- **You already have data.** Vitally has their full usage history, billing data, and credit status. Lean on it — the billing analysis IS the research for these leads.\n- **The trigger is a financial event, not a signup.** They're about to see their first real bill, or lose remaining credits. The outreach should help them navigate that transition, not introduce PostHog.\n- **The goal is retention through the transition.** These accounts are already getting value from PostHog. The risk is sticker shock, not lack of adoption. Your job is to help them optimize their setup so the transition feels manageable — and to be the person they reach out to if they have questions about billing.\n- **It's OK to reference billing directly.** Unlike big fish outreach (where you avoid commercial topics entirely), transition leads expect a conversation that touches on credits, usage, and costs. Frame it as optimization support, not a sales pitch.\n\n## Core Workflow\n\n1. **Parse the lead** — Identify lead type (startup rolloff vs. high first invoice) from matching criteria\n2. **Check Vitally (billing-heavy)** — Account activity, users, products, and deep billing analysis\n3. **Light company research** — Only if the company context is thin or unfamiliar\n4. **Billing analysis** — Calculate post-transition costs, identify optimization opportunities\n5. **Qualify and recommend a play** — Outreach \u002F Light Touch \u002F Skip\n6. **Draft outreach** — Using the appropriate hooks for the lead type\n7. **Validate all URLs** — Fetch every link in the draft to confirm it resolves\n\n## Step 1: Parse the Lead\n\nIdentify which type of transition lead this is from the Salesforce matching criteria:\n\n- **Startup rolloff**: Look for \"startup rolloff\", \"credit spend\", \"credits expiring\", \"startup plan\" in matching criteria. The account will be on the startup program with credits that are either expiring soon or being consumed rapidly.\n- **High first invoice**: Look for \"first invoice\", \"$2K\", \"high usage\" in matching criteria. The account has crossed a usage threshold where their first invoice will be significant.\n\nSome leads may have both signals (e.g., a startup rolling off credits whose first real invoice will be large). Treat these as startup rolloff — the credit expiry is the more urgent and specific hook.\n\n## Step 2: Check Vitally (Billing-Heavy)\n\nThis is the most important step. For transition leads, the billing data matters more than firmographics.\n\n### 2a: Find the Account\n\nSearch for the account in Vitally. The most reliable lookup is **user email** via `get_user_details`. If the email lookup returns the user with their account, use `get_account_full` on the account ID to pull complete billing data.\n\n### 2b: Billing Data to Extract\n\nPull these fields from the account traits and Stripe data:\n\n**For startup rolloff:**\n- `amount_off` — remaining credit balance (from the original $50K)\n- `amount_off_expires_at` — when credits\u002Fdiscount expire\n- `stripe.metadata.startup_plan_end_at` — when the startup plan ends\n- `stripe.metadata.credit_expires_at` — when credits expire (may differ from discount expiry)\n- `creditRunwayDays` — at current spend, how long until credits are consumed\n- Stripe MRR \u002F last invoice amount — current monthly spend\n- Stripe subscription details — which plan lines they're on\n- Whether the account is in \"Credits expiring before consumption\" segment\n\nFrom these, calculate:\n- **Days until credit expiry** — how urgent is this?\n- **Credit utilization** — how much of the $50K have they used?\n- **Post-credit monthly cost** — what will their first real invoice look like?\n- **Credit waste** — how much of the remaining credit will go unused?\n\n**For high first invoice:**\n- Stripe MRR \u002F estimated first invoice amount\n- Which products are driving the cost (events, recordings, feature flag requests, etc.)\n- Whether billing limits are set\n- Usage growth trajectory (is spend accelerating?)\n\n### 2c: Check Users in the Account\n\nUse `get_account_users` on the account ID. Note:\n- **User count** — how many people are using PostHog?\n- **Active users in last 30 days** — is the team actively engaged?\n- **Vitally segments per user** — which products is each person using?\n- **Who's the org Owner?** — this is usually the person who set up the account\n\nFor transition leads, user count still matters for prioritization, but unlike big fish leads, even a single-user account can be worth outreach if the spend is significant. A solo founder burning $3K\u002Fmonth on PostHog deserves a heads-up about their credits expiring.\n\n**Who to address the outreach to:** The lead email from Salesforce is typically the person who created the PostHog account — but that's not always the right person to email. Look at who's actually active: recent last-seen dates and the highest number of sessions\u002Fsegments. The most active user is your best target — they're the one with the deepest relationship to PostHog and the most context on how the team uses it. If the lead contact hasn't been active recently but someone else on the team has, address the email to the team (e.g., \"Hey [Company] team\") or to the most active user directly. Note the discrepancy in your output so the TAE can make the call.\n\n### 2d: Check Products and Usage\n\nFrom the account traits and user segments, identify:\n- Which PostHog products are in active use\n- The heaviest cost drivers (look at replay count, feature flag requests, event volume)\n- Any obvious optimization opportunities (see Step 4)\n\n### 2e: Check Conversations and Notes\n\nUse `get_account_conversations` and `get_account_notes` to see if anyone from PostHog has already been in touch. For startup accounts, there's often a conversation from when they joined the startup program — note when it happened and who was involved, but it doesn't mean someone is actively working the account.\n\n**Pay special attention to recent billing-related support tickets.** If the account filed a support ticket about billing, usage, or costs in the last 1-2 weeks, that changes the outreach significantly — they're already thinking about costs and have already engaged with PostHog on the topic. Flag this prominently in your output. The TAE's outreach should feel like a natural extension of that conversation (e.g., \"saw your team had some questions about replay billing — happy to help you think through the bigger picture on costs as usage grows\"), not a separate cold touch that ignores the context. Piling on with a generic transition email right after a billing support ticket feels tone-deaf.\n\n### 2f: Check for Duplicate Accounts\n\nSearch Vitally for other accounts on the same email domain. Large companies sometimes have multiple PostHog orgs. If the lead's account is a duplicate of a more established one, flag it.\n\n## Step 3: Light Company Research\n\nFor startup rolloff leads, you likely already know enough from Vitally and the startup program context. Only do web research if:\n- You can't tell what the company does from Vitally data alone\n- The company name is ambiguous and could be multiple entities\n- You want to check recent funding or growth signals that might affect the conversation\n\nFor high first-invoice leads from unknown companies, do a quick web search:\n- What does the company do?\n- Do they build software products? (ICP relevance)\n- Company size and stage\n- Recent funding\n\nKeep this lean — you're not writing a company dossier. One search, maybe two.\n\n## Step 4: Billing Analysis & Optimization Opportunities\n\nThis is unique to transition leads. Before drafting outreach, identify specific things the TAE can offer to help:\n\n### Common Optimization Opportunities\n\n1. **Stale feature flags** — Active flags that aren't used in code still get evaluated and charged on every `\u002Fflags` call. Archiving unused flags can meaningfully cut feature flag costs. Link: https:\u002F\u002Fposthog.com\u002Fdocs\u002Ffeature-flags\u002Fcutting-costs\n\n2. **Billing limits** — Setting per-product billing limits prevents surprise overages. Many accounts don't have these set. Link: https:\u002F\u002Fposthog.com\u002Fdocs\u002Fbilling\u002Festimating-usage-costs\n\n3. **Replay sampling** — If replay volume is high, sampling (recording a percentage of sessions instead of all) can cut costs significantly without losing insight quality.\n\n4. **Anonymous vs. identified events** — Anonymous events are up to 4x cheaper. If the account is capturing identified events for interactions that don't need user-level attribution, switching to anonymous capture saves money.\n\n5. **Autocapture tuning** — PostHog autocaptures pageviews and page leaves by default. Disabling autocapture and manually capturing only the events that matter can reduce event volume.\n\n   **Autocapture is also a spend quality signal.** If the bulk of an account's event volume is coming from autocapture rather than custom-instrumented events, their actual committed spend may be much lower than the forecasted invoice suggests — because autocapture is easy to turn off or tune down without losing anything they rely on. An account whose $2K forecast is 80% autocapture events is very different from one that's $2K on intentionally instrumented custom events. When checking products and usage, try to assess whether the event volume is primarily autocapture or custom. If it's heavily autocapture, flag this in your output — the forecasted spend may overstate how \"stuck\" the account actually is.\n\n6. **Data warehouse \u002F batch export optimization** — If they're exporting large volumes, there may be ways to filter or reduce what's exported.\n\nDon't try to surface ALL of these in the outreach email — pick the 1-2 most relevant based on what's actually driving their costs. The email should feel targeted, not like a generic cost-cutting checklist.\n\n### Framing the Billing Conversation\n\nThe point isn't to make PostHog seem cheaper — it's to help them get the same value at a cost that feels right for their stage. If a startup is burning $1,500\u002Fmonth on PostHog and they're at $250K ARR, that's 7% of revenue on analytics tooling. Helping them optimize to $1,000\u002Fmonth might be the difference between churning and staying.\n\nBe honest about what their costs will look like. Don't hide the number — surface it and pair it with optimization suggestions.\n\n## Step 5: Qualify and Recommend a Play\n\n### Billing Limits as a Qualification Signal\n\nBefore choosing a play, check whether the account has set billing limits — and if so, what they're set to. This is one of the strongest intent signals available because it represents a deliberate, specific decision about how much they're willing to spend.\n\nAn account that's set a total billing limit of $1,500\u002Fmonth across all products is telling you exactly what their budget is. They're unlikely to become a $20K account without a meaningful change in circumstances — treating them as a high-potential lead would be misreading the signal. Conversely, an account with no billing limits and growing usage may not have thought about costs yet, which is both an opportunity (they might welcome optimization help) and a risk (sticker shock when the invoice arrives).\n\nFactor billing limits into your play recommendation and note them prominently in the billing analysis output.\n\n### Play: Outreach (Slack Channel + Email)\n\nRecommend outreach when:\n- **Active team** — 2+ users active in the last 30 days\n- **Meaningful spend** — post-transition cost will be >= $500\u002Fmonth\n- **Approaching transition** — credits expire within 60 days, or first invoice is imminent\n- **No one from PostHog is already engaged** — check conversations and notes\n\n### Play: Light Touch (Email Only, No Slack Channel)\n\nRecommend light touch when:\n- **Single active user** but spend is significant (>= $1K\u002Fmonth post-transition)\n- **Credits expire in 30+ days** — some urgency but not immediate\n- **Small team \u002F early stage** — a Slack channel feels heavyweight for a 3-person startup\n\n### Play: Skip\n\nRecommend skipping when:\n- **Already being worked** by another TAE or CS team member\n- **Very low spend** — post-transition cost will be \u003C $500\u002Fmonth and usage isn't growing\n- **Account looks abandoned** — no active users in last 30 days despite having credits\n\n**When recommending Skip, you MUST provide a disqualification reason and disqualification notes** so the TAE can update Salesforce directly.\n\n**Available disqualification reasons:**\n\n- BAA \u002F DPA Request\n- Below Sales Assist Threshold - Pass\n- Below Sales Assist Threshold - Prospect\n- Billing Support Request\n- Business Closed\n- Duplicate Lead\n- Event request\n- Existing customer inquiry\n- Feedback\n- Invalid Contact Info\n- No Budget\n- No Current Need\n- No Product Fit\n- No Response - Pass\n- No Response - Prospect\n- No Technical Resource\n- Non-Commercial\n- Not a Good Fit\n- Other\n- Partnership request\n- Resource Constraints\n- Self-Hosted Requirement\n- Spam\n- Stale - autoclosed\n- Startup Plan \u002F YC\n- Support Request\n- Using Competitor \u002F Unsolicited RFP\n\n**How to choose the right reason for transition leads:**\n\n- **Below Sales Assist Threshold - Pass**: Post-transition spend clearly below $500\u002Fmonth with no growth signals. Most common for small startup rolloffs.\n- **Below Sales Assist Threshold - Prospect**: Below threshold now but usage trajectory or business growth suggests they could cross it. Worth revisiting.\n- **No Current Need**: Account looks abandoned or usage is declining - they may not continue with PostHog post-transition.\n- **Duplicate Lead**: Another PostHog org on the same domain is the real account.\n- **Existing customer inquiry**: Lead is actually a support or billing question, not a sales opportunity.\n\n**Disqualification notes must be 250 characters or fewer, specific, and copy-pasteable.** Include key billing data points.\n\nGood DQ notes:\n- \"Startup rolloff, $340\u002Fmo post-credit spend. 2 users, analytics only. 12-person seed startup. Billing limit set at $400. No expansion signals.\"\n- \"First invoice $1.1K but 80% autocapture events. Actual committed spend ~$220\u002Fmo. 5-person team, no growth trajectory.\"\n- \"Abandoned - last active user seen 45 days ago. $18K credits remaining, expiring in 30 days. No engagement with onboarding.\"\n\nBad DQ notes:\n- \"Low spend\" (how low? what's driving it?)\n- \"Small company\" (which signal matters?)\n- \"Not worth pursuing\" (why not?)\n\n### Play: Urgent Outreach\n\nRecommend urgent outreach when:\n- **Credits expire in \u003C 14 days** and the account doesn't appear to know\n- **First invoice will be very large (>= $5K)** and no billing limits are set\n- **Usage is spiking** — something changed recently that's driving cost up fast\n\n## Step 6: Draft the Outreach Email\n\nRead the appropriate reference file before drafting:\n- Startup rolloff → `references\u002Foutreach-hooks-startup-rolloff.md`\n- High first invoice → `references\u002Foutreach-hooks-first-invoice.md`\n\n### Shared Principles (All Transition Leads)\n\n1. **Lead with the Slack channel.** The shared Slack channel is the most valuable thing you're offering - a direct line to someone technical at PostHog who can help them ship faster. Don't bury it three paragraphs in. Open with it, explain why it's useful for their specific situation (using intel from your research), and make it easy for them to jump in. From the PostHog handbook: \"We use shared Slack channels to provide timely support and to build relationships with those at our customers shipping things with PostHog.\" The Slack channel is also strategically important beyond the immediate transition. Even if the short-term outcome is helping them optimize and spend less, being in the room when they're building new features, hitting new problems, or wondering \"does PostHog do X?\" is where expansion happens organically. You won't know if there's opportunity to introduce them to parts of PostHog they aren't using or thinking about unless you can get them talking.\n2. **Write like a fellow engineer, not a salesperson.** These are competent developers who are hard to engage precisely because they don't want emails from sales. The TAEs are deeply technical too. Write the way you'd message a colleague - direct, concise, no praise or cheerleading about their setup (\"your team's ramped up fast!\" reads as patronizing). State what you know, say what you're offering, and ask something that makes them want to reply.\n3. **Keep it short.** The initial outreach should be brief. Slack channel, why it's useful for them specifically, and a conversation starter that entices them to actually open Slack and fire off a message. That's it. Save the billing optimization details for the Slack conversation itself - that's the whole point of getting them in there.\n4. **Be direct about the transition.** If credits are expiring, say so. If their first invoice will be meaningful, help them understand why. Transparency builds trust. But keep it to a sentence, not a paragraph. For startup rolloffs specifically, it's OK to mention discussing pricing options or discounts - these customers have had PostHog for free and could be facing a significant bill. Offering to talk through options is a natural part of helping them through the transition.\n5. **Follow PostHog's writing style.** Get to the point. No fluff. American English, Oxford comma, hyphens (not em\u002Fen dashes). No bare URLs - always use anchor text.\n\n### Data Integrity Rule\n\nSame as big fish: only reference things you can verify from Vitally usage data or the company's public website. Never cite enrichment data (Clearbit\u002FHarmonic tech stack fields) as fact. If you state something about their setup and it's wrong, you lose credibility — especially with an existing customer who knows exactly what they're using.\n\n## Step 7: Validate All URLs\n\nBefore presenting the draft, fetch every URL in the email to verify it resolves and points to the intended content. If a URL is broken, search for the correct page. If no valid page exists, remove the link.\n\n## Output Format\n\nWhen responding to the TAE, provide:\n\n1. **Lead type** — Startup rolloff or high first invoice (or both)\n2. **Company snapshot** — Brief: what they do, size, stage. Skip the deep dive unless needed.\n3. **Vitally account summary** — Users (count, active, roles), products in use, health score\n3a. **Disqualification reason** — From the available list (required when recommending Skip)\n3b. **Disqualification notes** — 250 characters or fewer, specific and copy-pasteable (required when recommending Skip)\n4. **Billing analysis** — This is the core of the output. Credits remaining, expiry date, current spend, post-transition cost, credit utilization, optimization opportunities.\n5. **Recommended play** — Outreach \u002F Light Touch \u002F Skip \u002F Urgent, with reasoning\n6. **Draft email** — Using the appropriate hooks for the lead type\n7. **Follow-up guidance** — Light notes on what to expect after sending\n\n## Follow-Up Guidance\n\nAfter the first outreach, here's what typically happens and how to respond:\n\n### If They Reply with Questions About Billing\u002FPricing\nThis is the best outcome. They're engaged and thinking about the transition. Answer their questions directly, offer to walk through their usage dashboard together (async or call), and help them set billing limits if they haven't already.\n\n### If They Reply Asking to Optimize\nThey want help reducing costs. Walk them through the specific optimization opportunities you identified. This might be a good time for a short call where you screenshare their billing dashboard.\n\n### If They Don't Reply (7 Days)\nOne follow-up is fine. Keep it short — reference the original email and the upcoming transition date. Don't add new content or resources. If still no reply after the follow-up, let it go. They'll see the invoice and may reach out then.\n\n### When to Loop in Others\n- **If they want to negotiate pricing or ask about annual contracts** → Loop in the AE. This is now a sales conversation.\n- **If they report a bug or technical issue** → Point them to support or the Slack channel. Don't try to debug it yourself unless it's simple.\n- **If they want to downgrade or churn** → Understand why first. If it's purely cost, see if optimization helps. If it's product fit, that's useful feedback — note it and loop in CS\u002FProduct if appropriate.\n\n## Critical Reminders\n\n1. **The billing analysis is the research.** Don't spend 30 minutes on company firmographics when the real question is \"what will they pay after credits expire?\"\n2. **Be direct about costs.** These customers are about to get a bill. Helping them understand it in advance is a kindness, not a sales pitch.\n3. **Pair costs with optimization.** Every cost mention should come with a way to reduce it.\n4. **Check conversations first.** Someone from the startup program or CS team may already be in touch.\n5. **Single users still matter here.** Unlike big fish (where 1 user = low priority), a single user spending $2K\u002Fmonth is absolutely worth outreach.\n6. **Lead with the Slack channel, not billing.** The first sentence of the email should be about the Slack channel and why it's useful for them. Billing context comes after.\n7. **Validate URLs before presenting the draft.**\n8. **Always provide a DQ reason and DQ notes when recommending Skip.** Include the disqualification reason from the available list and copy-pasteable notes (250 chars or fewer). Be specific - name concrete billing data and signals, not generic language.\n\n## BAA \u002F HIPAA Pricing Reference\n\nWhen a transition lead mentions HIPAA, BAA, or healthcare data:\n\n- **Standard BAA (no redlines):** Boost add-on at **$250\u002Fmonth** + usage-based pricing. BAA can be generated at posthog.com\u002Fbaa.\n- **Custom\u002Fredlined BAA:** Enterprise plan at **$2K\u002Fmonth** (paid annually) + usage-based pricing.\n\nLead with Boost as the standard path. Don't default to \"enterprise pricing.\"\n\n## Non-Profit Discount Reference\n\n- **Credit purchases below $25K:** 15% discount\n- **Credit purchases $25K-$100K:** additional 5% on top of standard volume discount\n- **Credit purchases above $100K:** standard volume discounts apply\n\nCustomer needs proof of non-profit status per their country's tax law.\n",{"data":38,"body":39},{"name":4,"description":6},{"type":40,"children":41},"root",[42,51,57,83,90,95,139,145,218,224,229,250,255,261,266,273,302,308,313,321,394,399,442,450,473,479,492,535,540,558,564,569,587,593,613,623,629,634,640,645,663,668,691,696,702,707,713,809,814,820,825,830,836,842,847,852,857,863,868,911,917,922,955,961,966,999,1009,1017,1155,1163,1211,1221,1226,1244,1249,1267,1273,1278,1311,1317,1322,1347,1353,1406,1412,1417,1423,1428,1434,1439,1524,1530,1535,1541,1546,1552,1557,1563,1568,1574,1607,1613,1694,1700,1705,1742,1747,1753,1786],{"type":43,"tag":44,"props":45,"children":47},"element","h1",{"id":46},"posthog-transition-lead-qualification-outreach",[48],{"type":49,"value":50},"text","PostHog Transition Lead Qualification & Outreach",{"type":43,"tag":52,"props":53,"children":54},"p",{},[55],{"type":49,"value":56},"Research, qualify, and recommend the right play for product-led leads hitting a billing transition. These fall into two categories:",{"type":43,"tag":58,"props":59,"children":60},"ol",{},[61,73],{"type":43,"tag":62,"props":63,"children":64},"li",{},[65,71],{"type":43,"tag":66,"props":67,"children":68},"strong",{},[69],{"type":49,"value":70},"Startup rolloff",{"type":49,"value":72}," — Customers on PostHog's startup program ($50K free credits \u002F 1 year) who are either nearing the end of the year or burning through credits fast enough to exhaust them early.",{"type":43,"tag":62,"props":74,"children":75},{},[76,81],{"type":43,"tag":66,"props":77,"children":78},{},[79],{"type":49,"value":80},"High first invoice",{"type":49,"value":82}," — Users (free-tier-to-paid or new signups) whose first real invoice will be >= $2K, meaning they've crossed from casual usage into meaningful spend.",{"type":43,"tag":84,"props":85,"children":87},"h2",{"id":86},"what-makes-transition-leads-different-from-big-fish",[88],{"type":49,"value":89},"What Makes Transition Leads Different from Big Fish",{"type":43,"tag":52,"props":91,"children":92},{},[93],{"type":49,"value":94},"These are NOT cold outreach leads. The person is already a PostHog customer with real usage history. That changes the research depth, the framing, and the goal:",{"type":43,"tag":96,"props":97,"children":98},"ul",{},[99,109,119,129],{"type":43,"tag":62,"props":100,"children":101},{},[102,107],{"type":43,"tag":66,"props":103,"children":104},{},[105],{"type":49,"value":106},"You already have data.",{"type":49,"value":108}," Vitally has their full usage history, billing data, and credit status. Lean on it — the billing analysis IS the research for these leads.",{"type":43,"tag":62,"props":110,"children":111},{},[112,117],{"type":43,"tag":66,"props":113,"children":114},{},[115],{"type":49,"value":116},"The trigger is a financial event, not a signup.",{"type":49,"value":118}," They're about to see their first real bill, or lose remaining credits. The outreach should help them navigate that transition, not introduce PostHog.",{"type":43,"tag":62,"props":120,"children":121},{},[122,127],{"type":43,"tag":66,"props":123,"children":124},{},[125],{"type":49,"value":126},"The goal is retention through the transition.",{"type":49,"value":128}," These accounts are already getting value from PostHog. The risk is sticker shock, not lack of adoption. Your job is to help them optimize their setup so the transition feels manageable — and to be the person they reach out to if they have questions about billing.",{"type":43,"tag":62,"props":130,"children":131},{},[132,137],{"type":43,"tag":66,"props":133,"children":134},{},[135],{"type":49,"value":136},"It's OK to reference billing directly.",{"type":49,"value":138}," Unlike big fish outreach (where you avoid commercial topics entirely), transition leads expect a conversation that touches on credits, usage, and costs. Frame it as optimization support, not a sales pitch.",{"type":43,"tag":84,"props":140,"children":142},{"id":141},"core-workflow",[143],{"type":49,"value":144},"Core Workflow",{"type":43,"tag":58,"props":146,"children":147},{},[148,158,168,178,188,198,208],{"type":43,"tag":62,"props":149,"children":150},{},[151,156],{"type":43,"tag":66,"props":152,"children":153},{},[154],{"type":49,"value":155},"Parse the lead",{"type":49,"value":157}," — Identify lead type (startup rolloff vs. high first invoice) from matching criteria",{"type":43,"tag":62,"props":159,"children":160},{},[161,166],{"type":43,"tag":66,"props":162,"children":163},{},[164],{"type":49,"value":165},"Check Vitally (billing-heavy)",{"type":49,"value":167}," — Account activity, users, products, and deep billing analysis",{"type":43,"tag":62,"props":169,"children":170},{},[171,176],{"type":43,"tag":66,"props":172,"children":173},{},[174],{"type":49,"value":175},"Light company research",{"type":49,"value":177}," — Only if the company context is thin or unfamiliar",{"type":43,"tag":62,"props":179,"children":180},{},[181,186],{"type":43,"tag":66,"props":182,"children":183},{},[184],{"type":49,"value":185},"Billing analysis",{"type":49,"value":187}," — Calculate post-transition costs, identify optimization opportunities",{"type":43,"tag":62,"props":189,"children":190},{},[191,196],{"type":43,"tag":66,"props":192,"children":193},{},[194],{"type":49,"value":195},"Qualify and recommend a play",{"type":49,"value":197}," — Outreach \u002F Light Touch \u002F Skip",{"type":43,"tag":62,"props":199,"children":200},{},[201,206],{"type":43,"tag":66,"props":202,"children":203},{},[204],{"type":49,"value":205},"Draft outreach",{"type":49,"value":207}," — Using the appropriate hooks for the lead type",{"type":43,"tag":62,"props":209,"children":210},{},[211,216],{"type":43,"tag":66,"props":212,"children":213},{},[214],{"type":49,"value":215},"Validate all URLs",{"type":49,"value":217}," — Fetch every link in the draft to confirm it resolves",{"type":43,"tag":84,"props":219,"children":221},{"id":220},"step-1-parse-the-lead",[222],{"type":49,"value":223},"Step 1: Parse the Lead",{"type":43,"tag":52,"props":225,"children":226},{},[227],{"type":49,"value":228},"Identify which type of transition lead this is from the Salesforce matching criteria:",{"type":43,"tag":96,"props":230,"children":231},{},[232,241],{"type":43,"tag":62,"props":233,"children":234},{},[235,239],{"type":43,"tag":66,"props":236,"children":237},{},[238],{"type":49,"value":70},{"type":49,"value":240},": Look for \"startup rolloff\", \"credit spend\", \"credits expiring\", \"startup plan\" in matching criteria. The account will be on the startup program with credits that are either expiring soon or being consumed rapidly.",{"type":43,"tag":62,"props":242,"children":243},{},[244,248],{"type":43,"tag":66,"props":245,"children":246},{},[247],{"type":49,"value":80},{"type":49,"value":249},": Look for \"first invoice\", \"$2K\", \"high usage\" in matching criteria. The account has crossed a usage threshold where their first invoice will be significant.",{"type":43,"tag":52,"props":251,"children":252},{},[253],{"type":49,"value":254},"Some leads may have both signals (e.g., a startup rolling off credits whose first real invoice will be large). Treat these as startup rolloff — the credit expiry is the more urgent and specific hook.",{"type":43,"tag":84,"props":256,"children":258},{"id":257},"step-2-check-vitally-billing-heavy",[259],{"type":49,"value":260},"Step 2: Check Vitally (Billing-Heavy)",{"type":43,"tag":52,"props":262,"children":263},{},[264],{"type":49,"value":265},"This is the most important step. For transition leads, the billing data matters more than firmographics.",{"type":43,"tag":267,"props":268,"children":270},"h3",{"id":269},"_2a-find-the-account",[271],{"type":49,"value":272},"2a: Find the Account",{"type":43,"tag":52,"props":274,"children":275},{},[276,278,283,285,292,294,300],{"type":49,"value":277},"Search for the account in Vitally. The most reliable lookup is ",{"type":43,"tag":66,"props":279,"children":280},{},[281],{"type":49,"value":282},"user email",{"type":49,"value":284}," via ",{"type":43,"tag":286,"props":287,"children":289},"code",{"className":288},[],[290],{"type":49,"value":291},"get_user_details",{"type":49,"value":293},". If the email lookup returns the user with their account, use ",{"type":43,"tag":286,"props":295,"children":297},{"className":296},[],[298],{"type":49,"value":299},"get_account_full",{"type":49,"value":301}," on the account ID to pull complete billing data.",{"type":43,"tag":267,"props":303,"children":305},{"id":304},"_2b-billing-data-to-extract",[306],{"type":49,"value":307},"2b: Billing Data to Extract",{"type":43,"tag":52,"props":309,"children":310},{},[311],{"type":49,"value":312},"Pull these fields from the account traits and Stripe data:",{"type":43,"tag":52,"props":314,"children":315},{},[316],{"type":43,"tag":66,"props":317,"children":318},{},[319],{"type":49,"value":320},"For startup rolloff:",{"type":43,"tag":96,"props":322,"children":323},{},[324,335,346,357,368,379,384,389],{"type":43,"tag":62,"props":325,"children":326},{},[327,333],{"type":43,"tag":286,"props":328,"children":330},{"className":329},[],[331],{"type":49,"value":332},"amount_off",{"type":49,"value":334}," — remaining credit balance (from the original $50K)",{"type":43,"tag":62,"props":336,"children":337},{},[338,344],{"type":43,"tag":286,"props":339,"children":341},{"className":340},[],[342],{"type":49,"value":343},"amount_off_expires_at",{"type":49,"value":345}," — when credits\u002Fdiscount expire",{"type":43,"tag":62,"props":347,"children":348},{},[349,355],{"type":43,"tag":286,"props":350,"children":352},{"className":351},[],[353],{"type":49,"value":354},"stripe.metadata.startup_plan_end_at",{"type":49,"value":356}," — when the startup plan ends",{"type":43,"tag":62,"props":358,"children":359},{},[360,366],{"type":43,"tag":286,"props":361,"children":363},{"className":362},[],[364],{"type":49,"value":365},"stripe.metadata.credit_expires_at",{"type":49,"value":367}," — when credits expire (may differ from discount expiry)",{"type":43,"tag":62,"props":369,"children":370},{},[371,377],{"type":43,"tag":286,"props":372,"children":374},{"className":373},[],[375],{"type":49,"value":376},"creditRunwayDays",{"type":49,"value":378}," — at current spend, how long until credits are consumed",{"type":43,"tag":62,"props":380,"children":381},{},[382],{"type":49,"value":383},"Stripe MRR \u002F last invoice amount — current monthly spend",{"type":43,"tag":62,"props":385,"children":386},{},[387],{"type":49,"value":388},"Stripe subscription details — which plan lines they're on",{"type":43,"tag":62,"props":390,"children":391},{},[392],{"type":49,"value":393},"Whether the account is in \"Credits expiring before consumption\" segment",{"type":43,"tag":52,"props":395,"children":396},{},[397],{"type":49,"value":398},"From these, calculate:",{"type":43,"tag":96,"props":400,"children":401},{},[402,412,422,432],{"type":43,"tag":62,"props":403,"children":404},{},[405,410],{"type":43,"tag":66,"props":406,"children":407},{},[408],{"type":49,"value":409},"Days until credit expiry",{"type":49,"value":411}," — how urgent is this?",{"type":43,"tag":62,"props":413,"children":414},{},[415,420],{"type":43,"tag":66,"props":416,"children":417},{},[418],{"type":49,"value":419},"Credit utilization",{"type":49,"value":421}," — how much of the $50K have they used?",{"type":43,"tag":62,"props":423,"children":424},{},[425,430],{"type":43,"tag":66,"props":426,"children":427},{},[428],{"type":49,"value":429},"Post-credit monthly cost",{"type":49,"value":431}," — what will their first real invoice look like?",{"type":43,"tag":62,"props":433,"children":434},{},[435,440],{"type":43,"tag":66,"props":436,"children":437},{},[438],{"type":49,"value":439},"Credit waste",{"type":49,"value":441}," — how much of the remaining credit will go unused?",{"type":43,"tag":52,"props":443,"children":444},{},[445],{"type":43,"tag":66,"props":446,"children":447},{},[448],{"type":49,"value":449},"For high first invoice:",{"type":43,"tag":96,"props":451,"children":452},{},[453,458,463,468],{"type":43,"tag":62,"props":454,"children":455},{},[456],{"type":49,"value":457},"Stripe MRR \u002F estimated first invoice amount",{"type":43,"tag":62,"props":459,"children":460},{},[461],{"type":49,"value":462},"Which products are driving the cost (events, recordings, feature flag requests, etc.)",{"type":43,"tag":62,"props":464,"children":465},{},[466],{"type":49,"value":467},"Whether billing limits are set",{"type":43,"tag":62,"props":469,"children":470},{},[471],{"type":49,"value":472},"Usage growth trajectory (is spend accelerating?)",{"type":43,"tag":267,"props":474,"children":476},{"id":475},"_2c-check-users-in-the-account",[477],{"type":49,"value":478},"2c: Check Users in the Account",{"type":43,"tag":52,"props":480,"children":481},{},[482,484,490],{"type":49,"value":483},"Use ",{"type":43,"tag":286,"props":485,"children":487},{"className":486},[],[488],{"type":49,"value":489},"get_account_users",{"type":49,"value":491}," on the account ID. Note:",{"type":43,"tag":96,"props":493,"children":494},{},[495,505,515,525],{"type":43,"tag":62,"props":496,"children":497},{},[498,503],{"type":43,"tag":66,"props":499,"children":500},{},[501],{"type":49,"value":502},"User count",{"type":49,"value":504}," — how many people are using PostHog?",{"type":43,"tag":62,"props":506,"children":507},{},[508,513],{"type":43,"tag":66,"props":509,"children":510},{},[511],{"type":49,"value":512},"Active users in last 30 days",{"type":49,"value":514}," — is the team actively engaged?",{"type":43,"tag":62,"props":516,"children":517},{},[518,523],{"type":43,"tag":66,"props":519,"children":520},{},[521],{"type":49,"value":522},"Vitally segments per user",{"type":49,"value":524}," — which products is each person using?",{"type":43,"tag":62,"props":526,"children":527},{},[528,533],{"type":43,"tag":66,"props":529,"children":530},{},[531],{"type":49,"value":532},"Who's the org Owner?",{"type":49,"value":534}," — this is usually the person who set up the account",{"type":43,"tag":52,"props":536,"children":537},{},[538],{"type":49,"value":539},"For transition leads, user count still matters for prioritization, but unlike big fish leads, even a single-user account can be worth outreach if the spend is significant. A solo founder burning $3K\u002Fmonth on PostHog deserves a heads-up about their credits expiring.",{"type":43,"tag":52,"props":541,"children":542},{},[543,548,550,556],{"type":43,"tag":66,"props":544,"children":545},{},[546],{"type":49,"value":547},"Who to address the outreach to:",{"type":49,"value":549}," The lead email from Salesforce is typically the person who created the PostHog account — but that's not always the right person to email. Look at who's actually active: recent last-seen dates and the highest number of sessions\u002Fsegments. The most active user is your best target — they're the one with the deepest relationship to PostHog and the most context on how the team uses it. If the lead contact hasn't been active recently but someone else on the team has, address the email to the team (e.g., \"Hey ",{"type":43,"tag":551,"props":552,"children":553},"span",{},[554],{"type":49,"value":555},"Company",{"type":49,"value":557}," team\") or to the most active user directly. Note the discrepancy in your output so the TAE can make the call.",{"type":43,"tag":267,"props":559,"children":561},{"id":560},"_2d-check-products-and-usage",[562],{"type":49,"value":563},"2d: Check Products and Usage",{"type":43,"tag":52,"props":565,"children":566},{},[567],{"type":49,"value":568},"From the account traits and user segments, identify:",{"type":43,"tag":96,"props":570,"children":571},{},[572,577,582],{"type":43,"tag":62,"props":573,"children":574},{},[575],{"type":49,"value":576},"Which PostHog products are in active use",{"type":43,"tag":62,"props":578,"children":579},{},[580],{"type":49,"value":581},"The heaviest cost drivers (look at replay count, feature flag requests, event volume)",{"type":43,"tag":62,"props":583,"children":584},{},[585],{"type":49,"value":586},"Any obvious optimization opportunities (see Step 4)",{"type":43,"tag":267,"props":588,"children":590},{"id":589},"_2e-check-conversations-and-notes",[591],{"type":49,"value":592},"2e: Check Conversations and Notes",{"type":43,"tag":52,"props":594,"children":595},{},[596,597,603,605,611],{"type":49,"value":483},{"type":43,"tag":286,"props":598,"children":600},{"className":599},[],[601],{"type":49,"value":602},"get_account_conversations",{"type":49,"value":604}," and ",{"type":43,"tag":286,"props":606,"children":608},{"className":607},[],[609],{"type":49,"value":610},"get_account_notes",{"type":49,"value":612}," to see if anyone from PostHog has already been in touch. For startup accounts, there's often a conversation from when they joined the startup program — note when it happened and who was involved, but it doesn't mean someone is actively working the account.",{"type":43,"tag":52,"props":614,"children":615},{},[616,621],{"type":43,"tag":66,"props":617,"children":618},{},[619],{"type":49,"value":620},"Pay special attention to recent billing-related support tickets.",{"type":49,"value":622}," If the account filed a support ticket about billing, usage, or costs in the last 1-2 weeks, that changes the outreach significantly — they're already thinking about costs and have already engaged with PostHog on the topic. Flag this prominently in your output. The TAE's outreach should feel like a natural extension of that conversation (e.g., \"saw your team had some questions about replay billing — happy to help you think through the bigger picture on costs as usage grows\"), not a separate cold touch that ignores the context. Piling on with a generic transition email right after a billing support ticket feels tone-deaf.",{"type":43,"tag":267,"props":624,"children":626},{"id":625},"_2f-check-for-duplicate-accounts",[627],{"type":49,"value":628},"2f: Check for Duplicate Accounts",{"type":43,"tag":52,"props":630,"children":631},{},[632],{"type":49,"value":633},"Search Vitally for other accounts on the same email domain. Large companies sometimes have multiple PostHog orgs. If the lead's account is a duplicate of a more established one, flag it.",{"type":43,"tag":84,"props":635,"children":637},{"id":636},"step-3-light-company-research",[638],{"type":49,"value":639},"Step 3: Light Company Research",{"type":43,"tag":52,"props":641,"children":642},{},[643],{"type":49,"value":644},"For startup rolloff leads, you likely already know enough from Vitally and the startup program context. Only do web research if:",{"type":43,"tag":96,"props":646,"children":647},{},[648,653,658],{"type":43,"tag":62,"props":649,"children":650},{},[651],{"type":49,"value":652},"You can't tell what the company does from Vitally data alone",{"type":43,"tag":62,"props":654,"children":655},{},[656],{"type":49,"value":657},"The company name is ambiguous and could be multiple entities",{"type":43,"tag":62,"props":659,"children":660},{},[661],{"type":49,"value":662},"You want to check recent funding or growth signals that might affect the conversation",{"type":43,"tag":52,"props":664,"children":665},{},[666],{"type":49,"value":667},"For high first-invoice leads from unknown companies, do a quick web search:",{"type":43,"tag":96,"props":669,"children":670},{},[671,676,681,686],{"type":43,"tag":62,"props":672,"children":673},{},[674],{"type":49,"value":675},"What does the company do?",{"type":43,"tag":62,"props":677,"children":678},{},[679],{"type":49,"value":680},"Do they build software products? (ICP relevance)",{"type":43,"tag":62,"props":682,"children":683},{},[684],{"type":49,"value":685},"Company size and stage",{"type":43,"tag":62,"props":687,"children":688},{},[689],{"type":49,"value":690},"Recent funding",{"type":43,"tag":52,"props":692,"children":693},{},[694],{"type":49,"value":695},"Keep this lean — you're not writing a company dossier. One search, maybe two.",{"type":43,"tag":84,"props":697,"children":699},{"id":698},"step-4-billing-analysis-optimization-opportunities",[700],{"type":49,"value":701},"Step 4: Billing Analysis & Optimization Opportunities",{"type":43,"tag":52,"props":703,"children":704},{},[705],{"type":49,"value":706},"This is unique to transition leads. Before drafting outreach, identify specific things the TAE can offer to help:",{"type":43,"tag":267,"props":708,"children":710},{"id":709},"common-optimization-opportunities",[711],{"type":49,"value":712},"Common Optimization Opportunities",{"type":43,"tag":58,"props":714,"children":715},{},[716,742,758,768,778,799],{"type":43,"tag":62,"props":717,"children":718},{},[719,724,726,732,734],{"type":43,"tag":66,"props":720,"children":721},{},[722],{"type":49,"value":723},"Stale feature flags",{"type":49,"value":725}," — Active flags that aren't used in code still get evaluated and charged on every ",{"type":43,"tag":286,"props":727,"children":729},{"className":728},[],[730],{"type":49,"value":731},"\u002Fflags",{"type":49,"value":733}," call. Archiving unused flags can meaningfully cut feature flag costs. Link: ",{"type":43,"tag":735,"props":736,"children":740},"a",{"href":737,"rel":738},"https:\u002F\u002Fposthog.com\u002Fdocs\u002Ffeature-flags\u002Fcutting-costs",[739],"nofollow",[741],{"type":49,"value":737},{"type":43,"tag":62,"props":743,"children":744},{},[745,750,752],{"type":43,"tag":66,"props":746,"children":747},{},[748],{"type":49,"value":749},"Billing limits",{"type":49,"value":751}," — Setting per-product billing limits prevents surprise overages. Many accounts don't have these set. Link: ",{"type":43,"tag":735,"props":753,"children":756},{"href":754,"rel":755},"https:\u002F\u002Fposthog.com\u002Fdocs\u002Fbilling\u002Festimating-usage-costs",[739],[757],{"type":49,"value":754},{"type":43,"tag":62,"props":759,"children":760},{},[761,766],{"type":43,"tag":66,"props":762,"children":763},{},[764],{"type":49,"value":765},"Replay sampling",{"type":49,"value":767}," — If replay volume is high, sampling (recording a percentage of sessions instead of all) can cut costs significantly without losing insight quality.",{"type":43,"tag":62,"props":769,"children":770},{},[771,776],{"type":43,"tag":66,"props":772,"children":773},{},[774],{"type":49,"value":775},"Anonymous vs. identified events",{"type":49,"value":777}," — Anonymous events are up to 4x cheaper. If the account is capturing identified events for interactions that don't need user-level attribution, switching to anonymous capture saves money.",{"type":43,"tag":62,"props":779,"children":780},{},[781,786,788,792,797],{"type":43,"tag":66,"props":782,"children":783},{},[784],{"type":49,"value":785},"Autocapture tuning",{"type":49,"value":787}," — PostHog autocaptures pageviews and page leaves by default. Disabling autocapture and manually capturing only the events that matter can reduce event volume.",{"type":43,"tag":789,"props":790,"children":791},"br",{},[],{"type":43,"tag":66,"props":793,"children":794},{},[795],{"type":49,"value":796},"Autocapture is also a spend quality signal.",{"type":49,"value":798}," If the bulk of an account's event volume is coming from autocapture rather than custom-instrumented events, their actual committed spend may be much lower than the forecasted invoice suggests — because autocapture is easy to turn off or tune down without losing anything they rely on. An account whose $2K forecast is 80% autocapture events is very different from one that's $2K on intentionally instrumented custom events. When checking products and usage, try to assess whether the event volume is primarily autocapture or custom. If it's heavily autocapture, flag this in your output — the forecasted spend may overstate how \"stuck\" the account actually is.",{"type":43,"tag":62,"props":800,"children":801},{},[802,807],{"type":43,"tag":66,"props":803,"children":804},{},[805],{"type":49,"value":806},"Data warehouse \u002F batch export optimization",{"type":49,"value":808}," — If they're exporting large volumes, there may be ways to filter or reduce what's exported.",{"type":43,"tag":52,"props":810,"children":811},{},[812],{"type":49,"value":813},"Don't try to surface ALL of these in the outreach email — pick the 1-2 most relevant based on what's actually driving their costs. The email should feel targeted, not like a generic cost-cutting checklist.",{"type":43,"tag":267,"props":815,"children":817},{"id":816},"framing-the-billing-conversation",[818],{"type":49,"value":819},"Framing the Billing Conversation",{"type":43,"tag":52,"props":821,"children":822},{},[823],{"type":49,"value":824},"The point isn't to make PostHog seem cheaper — it's to help them get the same value at a cost that feels right for their stage. If a startup is burning $1,500\u002Fmonth on PostHog and they're at $250K ARR, that's 7% of revenue on analytics tooling. Helping them optimize to $1,000\u002Fmonth might be the difference between churning and staying.",{"type":43,"tag":52,"props":826,"children":827},{},[828],{"type":49,"value":829},"Be honest about what their costs will look like. Don't hide the number — surface it and pair it with optimization suggestions.",{"type":43,"tag":84,"props":831,"children":833},{"id":832},"step-5-qualify-and-recommend-a-play",[834],{"type":49,"value":835},"Step 5: Qualify and Recommend a Play",{"type":43,"tag":267,"props":837,"children":839},{"id":838},"billing-limits-as-a-qualification-signal",[840],{"type":49,"value":841},"Billing Limits as a Qualification Signal",{"type":43,"tag":52,"props":843,"children":844},{},[845],{"type":49,"value":846},"Before choosing a play, check whether the account has set billing limits — and if so, what they're set to. This is one of the strongest intent signals available because it represents a deliberate, specific decision about how much they're willing to spend.",{"type":43,"tag":52,"props":848,"children":849},{},[850],{"type":49,"value":851},"An account that's set a total billing limit of $1,500\u002Fmonth across all products is telling you exactly what their budget is. They're unlikely to become a $20K account without a meaningful change in circumstances — treating them as a high-potential lead would be misreading the signal. Conversely, an account with no billing limits and growing usage may not have thought about costs yet, which is both an opportunity (they might welcome optimization help) and a risk (sticker shock when the invoice arrives).",{"type":43,"tag":52,"props":853,"children":854},{},[855],{"type":49,"value":856},"Factor billing limits into your play recommendation and note them prominently in the billing analysis output.",{"type":43,"tag":267,"props":858,"children":860},{"id":859},"play-outreach-slack-channel-email",[861],{"type":49,"value":862},"Play: Outreach (Slack Channel + Email)",{"type":43,"tag":52,"props":864,"children":865},{},[866],{"type":49,"value":867},"Recommend outreach when:",{"type":43,"tag":96,"props":869,"children":870},{},[871,881,891,901],{"type":43,"tag":62,"props":872,"children":873},{},[874,879],{"type":43,"tag":66,"props":875,"children":876},{},[877],{"type":49,"value":878},"Active team",{"type":49,"value":880}," — 2+ users active in the last 30 days",{"type":43,"tag":62,"props":882,"children":883},{},[884,889],{"type":43,"tag":66,"props":885,"children":886},{},[887],{"type":49,"value":888},"Meaningful spend",{"type":49,"value":890}," — post-transition cost will be >= $500\u002Fmonth",{"type":43,"tag":62,"props":892,"children":893},{},[894,899],{"type":43,"tag":66,"props":895,"children":896},{},[897],{"type":49,"value":898},"Approaching transition",{"type":49,"value":900}," — credits expire within 60 days, or first invoice is imminent",{"type":43,"tag":62,"props":902,"children":903},{},[904,909],{"type":43,"tag":66,"props":905,"children":906},{},[907],{"type":49,"value":908},"No one from PostHog is already engaged",{"type":49,"value":910}," — check conversations and notes",{"type":43,"tag":267,"props":912,"children":914},{"id":913},"play-light-touch-email-only-no-slack-channel",[915],{"type":49,"value":916},"Play: Light Touch (Email Only, No Slack Channel)",{"type":43,"tag":52,"props":918,"children":919},{},[920],{"type":49,"value":921},"Recommend light touch when:",{"type":43,"tag":96,"props":923,"children":924},{},[925,935,945],{"type":43,"tag":62,"props":926,"children":927},{},[928,933],{"type":43,"tag":66,"props":929,"children":930},{},[931],{"type":49,"value":932},"Single active user",{"type":49,"value":934}," but spend is significant (>= $1K\u002Fmonth post-transition)",{"type":43,"tag":62,"props":936,"children":937},{},[938,943],{"type":43,"tag":66,"props":939,"children":940},{},[941],{"type":49,"value":942},"Credits expire in 30+ days",{"type":49,"value":944}," — some urgency but not immediate",{"type":43,"tag":62,"props":946,"children":947},{},[948,953],{"type":43,"tag":66,"props":949,"children":950},{},[951],{"type":49,"value":952},"Small team \u002F early stage",{"type":49,"value":954}," — a Slack channel feels heavyweight for a 3-person startup",{"type":43,"tag":267,"props":956,"children":958},{"id":957},"play-skip",[959],{"type":49,"value":960},"Play: Skip",{"type":43,"tag":52,"props":962,"children":963},{},[964],{"type":49,"value":965},"Recommend skipping when:",{"type":43,"tag":96,"props":967,"children":968},{},[969,979,989],{"type":43,"tag":62,"props":970,"children":971},{},[972,977],{"type":43,"tag":66,"props":973,"children":974},{},[975],{"type":49,"value":976},"Already being worked",{"type":49,"value":978}," by another TAE or CS team member",{"type":43,"tag":62,"props":980,"children":981},{},[982,987],{"type":43,"tag":66,"props":983,"children":984},{},[985],{"type":49,"value":986},"Very low spend",{"type":49,"value":988}," — post-transition cost will be \u003C $500\u002Fmonth and usage isn't growing",{"type":43,"tag":62,"props":990,"children":991},{},[992,997],{"type":43,"tag":66,"props":993,"children":994},{},[995],{"type":49,"value":996},"Account looks abandoned",{"type":49,"value":998}," — no active users in last 30 days despite having credits",{"type":43,"tag":52,"props":1000,"children":1001},{},[1002,1007],{"type":43,"tag":66,"props":1003,"children":1004},{},[1005],{"type":49,"value":1006},"When recommending Skip, you MUST provide a disqualification reason and disqualification notes",{"type":49,"value":1008}," so the TAE can update Salesforce directly.",{"type":43,"tag":52,"props":1010,"children":1011},{},[1012],{"type":43,"tag":66,"props":1013,"children":1014},{},[1015],{"type":49,"value":1016},"Available disqualification reasons:",{"type":43,"tag":96,"props":1018,"children":1019},{},[1020,1025,1030,1035,1040,1045,1050,1055,1060,1065,1070,1075,1080,1085,1090,1095,1100,1105,1110,1115,1120,1125,1130,1135,1140,1145,1150],{"type":43,"tag":62,"props":1021,"children":1022},{},[1023],{"type":49,"value":1024},"BAA \u002F DPA Request",{"type":43,"tag":62,"props":1026,"children":1027},{},[1028],{"type":49,"value":1029},"Below Sales Assist Threshold - Pass",{"type":43,"tag":62,"props":1031,"children":1032},{},[1033],{"type":49,"value":1034},"Below Sales Assist Threshold - Prospect",{"type":43,"tag":62,"props":1036,"children":1037},{},[1038],{"type":49,"value":1039},"Billing Support Request",{"type":43,"tag":62,"props":1041,"children":1042},{},[1043],{"type":49,"value":1044},"Business Closed",{"type":43,"tag":62,"props":1046,"children":1047},{},[1048],{"type":49,"value":1049},"Duplicate Lead",{"type":43,"tag":62,"props":1051,"children":1052},{},[1053],{"type":49,"value":1054},"Event request",{"type":43,"tag":62,"props":1056,"children":1057},{},[1058],{"type":49,"value":1059},"Existing customer inquiry",{"type":43,"tag":62,"props":1061,"children":1062},{},[1063],{"type":49,"value":1064},"Feedback",{"type":43,"tag":62,"props":1066,"children":1067},{},[1068],{"type":49,"value":1069},"Invalid Contact Info",{"type":43,"tag":62,"props":1071,"children":1072},{},[1073],{"type":49,"value":1074},"No Budget",{"type":43,"tag":62,"props":1076,"children":1077},{},[1078],{"type":49,"value":1079},"No Current Need",{"type":43,"tag":62,"props":1081,"children":1082},{},[1083],{"type":49,"value":1084},"No Product Fit",{"type":43,"tag":62,"props":1086,"children":1087},{},[1088],{"type":49,"value":1089},"No Response - Pass",{"type":43,"tag":62,"props":1091,"children":1092},{},[1093],{"type":49,"value":1094},"No Response - Prospect",{"type":43,"tag":62,"props":1096,"children":1097},{},[1098],{"type":49,"value":1099},"No Technical Resource",{"type":43,"tag":62,"props":1101,"children":1102},{},[1103],{"type":49,"value":1104},"Non-Commercial",{"type":43,"tag":62,"props":1106,"children":1107},{},[1108],{"type":49,"value":1109},"Not a Good Fit",{"type":43,"tag":62,"props":1111,"children":1112},{},[1113],{"type":49,"value":1114},"Other",{"type":43,"tag":62,"props":1116,"children":1117},{},[1118],{"type":49,"value":1119},"Partnership request",{"type":43,"tag":62,"props":1121,"children":1122},{},[1123],{"type":49,"value":1124},"Resource Constraints",{"type":43,"tag":62,"props":1126,"children":1127},{},[1128],{"type":49,"value":1129},"Self-Hosted Requirement",{"type":43,"tag":62,"props":1131,"children":1132},{},[1133],{"type":49,"value":1134},"Spam",{"type":43,"tag":62,"props":1136,"children":1137},{},[1138],{"type":49,"value":1139},"Stale - autoclosed",{"type":43,"tag":62,"props":1141,"children":1142},{},[1143],{"type":49,"value":1144},"Startup Plan \u002F YC",{"type":43,"tag":62,"props":1146,"children":1147},{},[1148],{"type":49,"value":1149},"Support Request",{"type":43,"tag":62,"props":1151,"children":1152},{},[1153],{"type":49,"value":1154},"Using Competitor \u002F Unsolicited RFP",{"type":43,"tag":52,"props":1156,"children":1157},{},[1158],{"type":43,"tag":66,"props":1159,"children":1160},{},[1161],{"type":49,"value":1162},"How to choose the right reason for transition leads:",{"type":43,"tag":96,"props":1164,"children":1165},{},[1166,1175,1184,1193,1202],{"type":43,"tag":62,"props":1167,"children":1168},{},[1169,1173],{"type":43,"tag":66,"props":1170,"children":1171},{},[1172],{"type":49,"value":1029},{"type":49,"value":1174},": Post-transition spend clearly below $500\u002Fmonth with no growth signals. Most common for small startup rolloffs.",{"type":43,"tag":62,"props":1176,"children":1177},{},[1178,1182],{"type":43,"tag":66,"props":1179,"children":1180},{},[1181],{"type":49,"value":1034},{"type":49,"value":1183},": Below threshold now but usage trajectory or business growth suggests they could cross it. Worth revisiting.",{"type":43,"tag":62,"props":1185,"children":1186},{},[1187,1191],{"type":43,"tag":66,"props":1188,"children":1189},{},[1190],{"type":49,"value":1079},{"type":49,"value":1192},": Account looks abandoned or usage is declining - they may not continue with PostHog post-transition.",{"type":43,"tag":62,"props":1194,"children":1195},{},[1196,1200],{"type":43,"tag":66,"props":1197,"children":1198},{},[1199],{"type":49,"value":1049},{"type":49,"value":1201},": Another PostHog org on the same domain is the real account.",{"type":43,"tag":62,"props":1203,"children":1204},{},[1205,1209],{"type":43,"tag":66,"props":1206,"children":1207},{},[1208],{"type":49,"value":1059},{"type":49,"value":1210},": Lead is actually a support or billing question, not a sales opportunity.",{"type":43,"tag":52,"props":1212,"children":1213},{},[1214,1219],{"type":43,"tag":66,"props":1215,"children":1216},{},[1217],{"type":49,"value":1218},"Disqualification notes must be 250 characters or fewer, specific, and copy-pasteable.",{"type":49,"value":1220}," Include key billing data points.",{"type":43,"tag":52,"props":1222,"children":1223},{},[1224],{"type":49,"value":1225},"Good DQ notes:",{"type":43,"tag":96,"props":1227,"children":1228},{},[1229,1234,1239],{"type":43,"tag":62,"props":1230,"children":1231},{},[1232],{"type":49,"value":1233},"\"Startup rolloff, $340\u002Fmo post-credit spend. 2 users, analytics only. 12-person seed startup. Billing limit set at $400. No expansion signals.\"",{"type":43,"tag":62,"props":1235,"children":1236},{},[1237],{"type":49,"value":1238},"\"First invoice $1.1K but 80% autocapture events. Actual committed spend ~$220\u002Fmo. 5-person team, no growth trajectory.\"",{"type":43,"tag":62,"props":1240,"children":1241},{},[1242],{"type":49,"value":1243},"\"Abandoned - last active user seen 45 days ago. $18K credits remaining, expiring in 30 days. No engagement with onboarding.\"",{"type":43,"tag":52,"props":1245,"children":1246},{},[1247],{"type":49,"value":1248},"Bad DQ notes:",{"type":43,"tag":96,"props":1250,"children":1251},{},[1252,1257,1262],{"type":43,"tag":62,"props":1253,"children":1254},{},[1255],{"type":49,"value":1256},"\"Low spend\" (how low? what's driving it?)",{"type":43,"tag":62,"props":1258,"children":1259},{},[1260],{"type":49,"value":1261},"\"Small company\" (which signal matters?)",{"type":43,"tag":62,"props":1263,"children":1264},{},[1265],{"type":49,"value":1266},"\"Not worth pursuing\" (why not?)",{"type":43,"tag":267,"props":1268,"children":1270},{"id":1269},"play-urgent-outreach",[1271],{"type":49,"value":1272},"Play: Urgent Outreach",{"type":43,"tag":52,"props":1274,"children":1275},{},[1276],{"type":49,"value":1277},"Recommend urgent outreach when:",{"type":43,"tag":96,"props":1279,"children":1280},{},[1281,1291,1301],{"type":43,"tag":62,"props":1282,"children":1283},{},[1284,1289],{"type":43,"tag":66,"props":1285,"children":1286},{},[1287],{"type":49,"value":1288},"Credits expire in \u003C 14 days",{"type":49,"value":1290}," and the account doesn't appear to know",{"type":43,"tag":62,"props":1292,"children":1293},{},[1294,1299],{"type":43,"tag":66,"props":1295,"children":1296},{},[1297],{"type":49,"value":1298},"First invoice will be very large (>= $5K)",{"type":49,"value":1300}," and no billing limits are set",{"type":43,"tag":62,"props":1302,"children":1303},{},[1304,1309],{"type":43,"tag":66,"props":1305,"children":1306},{},[1307],{"type":49,"value":1308},"Usage is spiking",{"type":49,"value":1310}," — something changed recently that's driving cost up fast",{"type":43,"tag":84,"props":1312,"children":1314},{"id":1313},"step-6-draft-the-outreach-email",[1315],{"type":49,"value":1316},"Step 6: Draft the Outreach Email",{"type":43,"tag":52,"props":1318,"children":1319},{},[1320],{"type":49,"value":1321},"Read the appropriate reference file before drafting:",{"type":43,"tag":96,"props":1323,"children":1324},{},[1325,1336],{"type":43,"tag":62,"props":1326,"children":1327},{},[1328,1330],{"type":49,"value":1329},"Startup rolloff → ",{"type":43,"tag":286,"props":1331,"children":1333},{"className":1332},[],[1334],{"type":49,"value":1335},"references\u002Foutreach-hooks-startup-rolloff.md",{"type":43,"tag":62,"props":1337,"children":1338},{},[1339,1341],{"type":49,"value":1340},"High first invoice → ",{"type":43,"tag":286,"props":1342,"children":1344},{"className":1343},[],[1345],{"type":49,"value":1346},"references\u002Foutreach-hooks-first-invoice.md",{"type":43,"tag":267,"props":1348,"children":1350},{"id":1349},"shared-principles-all-transition-leads",[1351],{"type":49,"value":1352},"Shared Principles (All Transition Leads)",{"type":43,"tag":58,"props":1354,"children":1355},{},[1356,1366,1376,1386,1396],{"type":43,"tag":62,"props":1357,"children":1358},{},[1359,1364],{"type":43,"tag":66,"props":1360,"children":1361},{},[1362],{"type":49,"value":1363},"Lead with the Slack channel.",{"type":49,"value":1365}," The shared Slack channel is the most valuable thing you're offering - a direct line to someone technical at PostHog who can help them ship faster. Don't bury it three paragraphs in. Open with it, explain why it's useful for their specific situation (using intel from your research), and make it easy for them to jump in. From the PostHog handbook: \"We use shared Slack channels to provide timely support and to build relationships with those at our customers shipping things with PostHog.\" The Slack channel is also strategically important beyond the immediate transition. Even if the short-term outcome is helping them optimize and spend less, being in the room when they're building new features, hitting new problems, or wondering \"does PostHog do X?\" is where expansion happens organically. You won't know if there's opportunity to introduce them to parts of PostHog they aren't using or thinking about unless you can get them talking.",{"type":43,"tag":62,"props":1367,"children":1368},{},[1369,1374],{"type":43,"tag":66,"props":1370,"children":1371},{},[1372],{"type":49,"value":1373},"Write like a fellow engineer, not a salesperson.",{"type":49,"value":1375}," These are competent developers who are hard to engage precisely because they don't want emails from sales. The TAEs are deeply technical too. Write the way you'd message a colleague - direct, concise, no praise or cheerleading about their setup (\"your team's ramped up fast!\" reads as patronizing). State what you know, say what you're offering, and ask something that makes them want to reply.",{"type":43,"tag":62,"props":1377,"children":1378},{},[1379,1384],{"type":43,"tag":66,"props":1380,"children":1381},{},[1382],{"type":49,"value":1383},"Keep it short.",{"type":49,"value":1385}," The initial outreach should be brief. Slack channel, why it's useful for them specifically, and a conversation starter that entices them to actually open Slack and fire off a message. That's it. Save the billing optimization details for the Slack conversation itself - that's the whole point of getting them in there.",{"type":43,"tag":62,"props":1387,"children":1388},{},[1389,1394],{"type":43,"tag":66,"props":1390,"children":1391},{},[1392],{"type":49,"value":1393},"Be direct about the transition.",{"type":49,"value":1395}," If credits are expiring, say so. If their first invoice will be meaningful, help them understand why. Transparency builds trust. But keep it to a sentence, not a paragraph. For startup rolloffs specifically, it's OK to mention discussing pricing options or discounts - these customers have had PostHog for free and could be facing a significant bill. Offering to talk through options is a natural part of helping them through the transition.",{"type":43,"tag":62,"props":1397,"children":1398},{},[1399,1404],{"type":43,"tag":66,"props":1400,"children":1401},{},[1402],{"type":49,"value":1403},"Follow PostHog's writing style.",{"type":49,"value":1405}," Get to the point. No fluff. American English, Oxford comma, hyphens (not em\u002Fen dashes). No bare URLs - always use anchor text.",{"type":43,"tag":267,"props":1407,"children":1409},{"id":1408},"data-integrity-rule",[1410],{"type":49,"value":1411},"Data Integrity Rule",{"type":43,"tag":52,"props":1413,"children":1414},{},[1415],{"type":49,"value":1416},"Same as big fish: only reference things you can verify from Vitally usage data or the company's public website. Never cite enrichment data (Clearbit\u002FHarmonic tech stack fields) as fact. If you state something about their setup and it's wrong, you lose credibility — especially with an existing customer who knows exactly what they're using.",{"type":43,"tag":84,"props":1418,"children":1420},{"id":1419},"step-7-validate-all-urls",[1421],{"type":49,"value":1422},"Step 7: Validate All URLs",{"type":43,"tag":52,"props":1424,"children":1425},{},[1426],{"type":49,"value":1427},"Before presenting the draft, fetch every URL in the email to verify it resolves and points to the intended content. If a URL is broken, search for the correct page. If no valid page exists, remove the link.",{"type":43,"tag":84,"props":1429,"children":1431},{"id":1430},"output-format",[1432],{"type":49,"value":1433},"Output Format",{"type":43,"tag":52,"props":1435,"children":1436},{},[1437],{"type":49,"value":1438},"When responding to the TAE, provide:",{"type":43,"tag":58,"props":1440,"children":1441},{},[1442,1452,1462,1486,1495,1505,1514],{"type":43,"tag":62,"props":1443,"children":1444},{},[1445,1450],{"type":43,"tag":66,"props":1446,"children":1447},{},[1448],{"type":49,"value":1449},"Lead type",{"type":49,"value":1451}," — Startup rolloff or high first invoice (or both)",{"type":43,"tag":62,"props":1453,"children":1454},{},[1455,1460],{"type":43,"tag":66,"props":1456,"children":1457},{},[1458],{"type":49,"value":1459},"Company snapshot",{"type":49,"value":1461}," — Brief: what they do, size, stage. Skip the deep dive unless needed.",{"type":43,"tag":62,"props":1463,"children":1464},{},[1465,1470,1472,1477,1479,1484],{"type":43,"tag":66,"props":1466,"children":1467},{},[1468],{"type":49,"value":1469},"Vitally account summary",{"type":49,"value":1471}," — Users (count, active, roles), products in use, health score\n3a. ",{"type":43,"tag":66,"props":1473,"children":1474},{},[1475],{"type":49,"value":1476},"Disqualification reason",{"type":49,"value":1478}," — From the available list (required when recommending Skip)\n3b. ",{"type":43,"tag":66,"props":1480,"children":1481},{},[1482],{"type":49,"value":1483},"Disqualification notes",{"type":49,"value":1485}," — 250 characters or fewer, specific and copy-pasteable (required when recommending Skip)",{"type":43,"tag":62,"props":1487,"children":1488},{},[1489,1493],{"type":43,"tag":66,"props":1490,"children":1491},{},[1492],{"type":49,"value":185},{"type":49,"value":1494}," — This is the core of the output. Credits remaining, expiry date, current spend, post-transition cost, credit utilization, optimization opportunities.",{"type":43,"tag":62,"props":1496,"children":1497},{},[1498,1503],{"type":43,"tag":66,"props":1499,"children":1500},{},[1501],{"type":49,"value":1502},"Recommended play",{"type":49,"value":1504}," — Outreach \u002F Light Touch \u002F Skip \u002F Urgent, with reasoning",{"type":43,"tag":62,"props":1506,"children":1507},{},[1508,1513],{"type":43,"tag":66,"props":1509,"children":1510},{},[1511],{"type":49,"value":1512},"Draft email",{"type":49,"value":207},{"type":43,"tag":62,"props":1515,"children":1516},{},[1517,1522],{"type":43,"tag":66,"props":1518,"children":1519},{},[1520],{"type":49,"value":1521},"Follow-up guidance",{"type":49,"value":1523}," — Light notes on what to expect after sending",{"type":43,"tag":84,"props":1525,"children":1527},{"id":1526},"follow-up-guidance",[1528],{"type":49,"value":1529},"Follow-Up Guidance",{"type":43,"tag":52,"props":1531,"children":1532},{},[1533],{"type":49,"value":1534},"After the first outreach, here's what typically happens and how to respond:",{"type":43,"tag":267,"props":1536,"children":1538},{"id":1537},"if-they-reply-with-questions-about-billingpricing",[1539],{"type":49,"value":1540},"If They Reply with Questions About Billing\u002FPricing",{"type":43,"tag":52,"props":1542,"children":1543},{},[1544],{"type":49,"value":1545},"This is the best outcome. They're engaged and thinking about the transition. Answer their questions directly, offer to walk through their usage dashboard together (async or call), and help them set billing limits if they haven't already.",{"type":43,"tag":267,"props":1547,"children":1549},{"id":1548},"if-they-reply-asking-to-optimize",[1550],{"type":49,"value":1551},"If They Reply Asking to Optimize",{"type":43,"tag":52,"props":1553,"children":1554},{},[1555],{"type":49,"value":1556},"They want help reducing costs. Walk them through the specific optimization opportunities you identified. This might be a good time for a short call where you screenshare their billing dashboard.",{"type":43,"tag":267,"props":1558,"children":1560},{"id":1559},"if-they-dont-reply-7-days",[1561],{"type":49,"value":1562},"If They Don't Reply (7 Days)",{"type":43,"tag":52,"props":1564,"children":1565},{},[1566],{"type":49,"value":1567},"One follow-up is fine. Keep it short — reference the original email and the upcoming transition date. Don't add new content or resources. If still no reply after the follow-up, let it go. They'll see the invoice and may reach out then.",{"type":43,"tag":267,"props":1569,"children":1571},{"id":1570},"when-to-loop-in-others",[1572],{"type":49,"value":1573},"When to Loop in Others",{"type":43,"tag":96,"props":1575,"children":1576},{},[1577,1587,1597],{"type":43,"tag":62,"props":1578,"children":1579},{},[1580,1585],{"type":43,"tag":66,"props":1581,"children":1582},{},[1583],{"type":49,"value":1584},"If they want to negotiate pricing or ask about annual contracts",{"type":49,"value":1586}," → Loop in the AE. This is now a sales conversation.",{"type":43,"tag":62,"props":1588,"children":1589},{},[1590,1595],{"type":43,"tag":66,"props":1591,"children":1592},{},[1593],{"type":49,"value":1594},"If they report a bug or technical issue",{"type":49,"value":1596}," → Point them to support or the Slack channel. Don't try to debug it yourself unless it's simple.",{"type":43,"tag":62,"props":1598,"children":1599},{},[1600,1605],{"type":43,"tag":66,"props":1601,"children":1602},{},[1603],{"type":49,"value":1604},"If they want to downgrade or churn",{"type":49,"value":1606}," → Understand why first. If it's purely cost, see if optimization helps. If it's product fit, that's useful feedback — note it and loop in CS\u002FProduct if appropriate.",{"type":43,"tag":84,"props":1608,"children":1610},{"id":1609},"critical-reminders",[1611],{"type":49,"value":1612},"Critical Reminders",{"type":43,"tag":58,"props":1614,"children":1615},{},[1616,1626,1636,1646,1656,1666,1676,1684],{"type":43,"tag":62,"props":1617,"children":1618},{},[1619,1624],{"type":43,"tag":66,"props":1620,"children":1621},{},[1622],{"type":49,"value":1623},"The billing analysis is the research.",{"type":49,"value":1625}," Don't spend 30 minutes on company firmographics when the real question is \"what will they pay after credits expire?\"",{"type":43,"tag":62,"props":1627,"children":1628},{},[1629,1634],{"type":43,"tag":66,"props":1630,"children":1631},{},[1632],{"type":49,"value":1633},"Be direct about costs.",{"type":49,"value":1635}," These customers are about to get a bill. Helping them understand it in advance is a kindness, not a sales pitch.",{"type":43,"tag":62,"props":1637,"children":1638},{},[1639,1644],{"type":43,"tag":66,"props":1640,"children":1641},{},[1642],{"type":49,"value":1643},"Pair costs with optimization.",{"type":49,"value":1645}," Every cost mention should come with a way to reduce it.",{"type":43,"tag":62,"props":1647,"children":1648},{},[1649,1654],{"type":43,"tag":66,"props":1650,"children":1651},{},[1652],{"type":49,"value":1653},"Check conversations first.",{"type":49,"value":1655}," Someone from the startup program or CS team may already be in touch.",{"type":43,"tag":62,"props":1657,"children":1658},{},[1659,1664],{"type":43,"tag":66,"props":1660,"children":1661},{},[1662],{"type":49,"value":1663},"Single users still matter here.",{"type":49,"value":1665}," Unlike big fish (where 1 user = low priority), a single user spending $2K\u002Fmonth is absolutely worth outreach.",{"type":43,"tag":62,"props":1667,"children":1668},{},[1669,1674],{"type":43,"tag":66,"props":1670,"children":1671},{},[1672],{"type":49,"value":1673},"Lead with the Slack channel, not billing.",{"type":49,"value":1675}," The first sentence of the email should be about the Slack channel and why it's useful for them. Billing context comes after.",{"type":43,"tag":62,"props":1677,"children":1678},{},[1679],{"type":43,"tag":66,"props":1680,"children":1681},{},[1682],{"type":49,"value":1683},"Validate URLs before presenting the draft.",{"type":43,"tag":62,"props":1685,"children":1686},{},[1687,1692],{"type":43,"tag":66,"props":1688,"children":1689},{},[1690],{"type":49,"value":1691},"Always provide a DQ reason and DQ notes when recommending Skip.",{"type":49,"value":1693}," Include the disqualification reason from the available list and copy-pasteable notes (250 chars or fewer). Be specific - name concrete billing data and signals, not generic language.",{"type":43,"tag":84,"props":1695,"children":1697},{"id":1696},"baa-hipaa-pricing-reference",[1698],{"type":49,"value":1699},"BAA \u002F HIPAA Pricing Reference",{"type":43,"tag":52,"props":1701,"children":1702},{},[1703],{"type":49,"value":1704},"When a transition lead mentions HIPAA, BAA, or healthcare data:",{"type":43,"tag":96,"props":1706,"children":1707},{},[1708,1725],{"type":43,"tag":62,"props":1709,"children":1710},{},[1711,1716,1718,1723],{"type":43,"tag":66,"props":1712,"children":1713},{},[1714],{"type":49,"value":1715},"Standard BAA (no redlines):",{"type":49,"value":1717}," Boost add-on at ",{"type":43,"tag":66,"props":1719,"children":1720},{},[1721],{"type":49,"value":1722},"$250\u002Fmonth",{"type":49,"value":1724}," + usage-based pricing. BAA can be generated at posthog.com\u002Fbaa.",{"type":43,"tag":62,"props":1726,"children":1727},{},[1728,1733,1735,1740],{"type":43,"tag":66,"props":1729,"children":1730},{},[1731],{"type":49,"value":1732},"Custom\u002Fredlined BAA:",{"type":49,"value":1734}," Enterprise plan at ",{"type":43,"tag":66,"props":1736,"children":1737},{},[1738],{"type":49,"value":1739},"$2K\u002Fmonth",{"type":49,"value":1741}," (paid annually) + usage-based pricing.",{"type":43,"tag":52,"props":1743,"children":1744},{},[1745],{"type":49,"value":1746},"Lead with Boost as the standard path. Don't default to \"enterprise pricing.\"",{"type":43,"tag":84,"props":1748,"children":1750},{"id":1749},"non-profit-discount-reference",[1751],{"type":49,"value":1752},"Non-Profit Discount Reference",{"type":43,"tag":96,"props":1754,"children":1755},{},[1756,1766,1776],{"type":43,"tag":62,"props":1757,"children":1758},{},[1759,1764],{"type":43,"tag":66,"props":1760,"children":1761},{},[1762],{"type":49,"value":1763},"Credit purchases below $25K:",{"type":49,"value":1765}," 15% discount",{"type":43,"tag":62,"props":1767,"children":1768},{},[1769,1774],{"type":43,"tag":66,"props":1770,"children":1771},{},[1772],{"type":49,"value":1773},"Credit purchases $25K-$100K:",{"type":49,"value":1775}," additional 5% on top of standard volume discount",{"type":43,"tag":62,"props":1777,"children":1778},{},[1779,1784],{"type":43,"tag":66,"props":1780,"children":1781},{},[1782],{"type":49,"value":1783},"Credit purchases above $100K:",{"type":49,"value":1785}," standard volume discounts apply",{"type":43,"tag":52,"props":1787,"children":1788},{},[1789],{"type":49,"value":1790},"Customer needs proof of non-profit status per their country's tax law.",{"items":1792,"total":1901},[1793,1806,1826,1840,1860,1874,1885],{"slug":1794,"name":1794,"fn":1795,"description":1796,"org":1797,"tags":1798,"stars":26,"repoUrl":27,"updatedAt":1805},"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},[1799,1802,1803,1804],{"name":1800,"slug":1801,"type":13},"Communications","communications",{"name":15,"slug":16,"type":13},{"name":9,"slug":8,"type":13},{"name":18,"slug":19,"type":13},"2026-04-16T05:13:00.172732",{"slug":1807,"name":1807,"fn":1808,"description":1809,"org":1810,"tags":1811,"stars":26,"repoUrl":27,"updatedAt":1825},"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},[1812,1815,1818,1821,1824],{"name":1813,"slug":1814,"type":13},"Audit","audit",{"name":1816,"slug":1817,"type":13},"Data Engineering","data-engineering",{"name":1819,"slug":1820,"type":13},"Data Quality","data-quality",{"name":1822,"slug":1823,"type":13},"Observability","observability",{"name":9,"slug":8,"type":13},"2026-06-21T08:19:05.85849",{"slug":1827,"name":1827,"fn":1828,"description":1829,"org":1830,"tags":1831,"stars":26,"repoUrl":27,"updatedAt":1839},"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},[1832,1835,1838],{"name":1833,"slug":1834,"type":13},"Deployment","deployment",{"name":1836,"slug":1837,"type":13},"Feature Flags","feature-flags",{"name":9,"slug":8,"type":13},"2026-05-04T05:56:44.484909",{"slug":1841,"name":1841,"fn":1842,"description":1843,"org":1844,"tags":1845,"stars":26,"repoUrl":27,"updatedAt":1859},"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},[1846,1849,1852,1855,1858],{"name":1847,"slug":1848,"type":13},"A\u002FB Testing","a-b-testing",{"name":1850,"slug":1851,"type":13},"Analytics","analytics",{"name":1853,"slug":1854,"type":13},"Data Analysis","data-analysis",{"name":1856,"slug":1857,"type":13},"Debugging","debugging",{"name":9,"slug":8,"type":13},"2026-05-22T06:59:58.103867",{"slug":1861,"name":1861,"fn":1862,"description":1863,"org":1864,"tags":1865,"stars":26,"repoUrl":27,"updatedAt":1873},"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},[1866,1867,1868,1871,1872],{"name":1850,"slug":1851,"type":13},{"name":1856,"slug":1857,"type":13},{"name":1869,"slug":1870,"type":13},"Frontend","frontend",{"name":1822,"slug":1823,"type":13},{"name":9,"slug":8,"type":13},"2026-04-22T05:06:51.989772",{"slug":1875,"name":1875,"fn":1876,"description":1877,"org":1878,"tags":1879,"stars":26,"repoUrl":27,"updatedAt":1884},"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},[1880,1881,1882,1883],{"name":1850,"slug":1851,"type":13},{"name":1856,"slug":1857,"type":13},{"name":1822,"slug":1823,"type":13},{"name":9,"slug":8,"type":13},"2026-04-27T05:46:14.554016",{"slug":1886,"name":1886,"fn":1887,"description":1888,"org":1889,"tags":1890,"stars":26,"repoUrl":27,"updatedAt":1900},"error-tracking-android","track Android errors with PostHog","PostHog error tracking for Android",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1891,1894,1895,1898,1899],{"name":1892,"slug":1893,"type":13},"Android","android",{"name":1856,"slug":1857,"type":13},{"name":1896,"slug":1897,"type":13},"Mobile","mobile",{"name":1822,"slug":1823,"type":13},{"name":9,"slug":8,"type":13},"2026-04-06T18:46:26.982494",110,{"items":1903,"total":2066},[1904,1919,1929,1942,1955,1968,1984,2001,2013,2028,2038,2056],{"slug":1905,"name":1905,"fn":1906,"description":1907,"org":1908,"tags":1909,"stars":1916,"repoUrl":1917,"updatedAt":1918},"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},[1910,1911,1914,1915],{"name":1850,"slug":1851,"type":13},{"name":1912,"slug":1913,"type":13},"Cost Optimization","cost-optimization",{"name":1822,"slug":1823,"type":13},{"name":9,"slug":8,"type":13},35568,"https:\u002F\u002Fgithub.com\u002FPostHog\u002Fposthog","2026-07-28T05:34:11.117757",{"slug":1920,"name":1920,"fn":1921,"description":1922,"org":1923,"tags":1924,"stars":1916,"repoUrl":1917,"updatedAt":1928},"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},[1925,1926,1927],{"name":1850,"slug":1851,"type":13},{"name":1813,"slug":1814,"type":13},{"name":9,"slug":8,"type":13},"2026-06-08T08:08:33.693989",{"slug":1930,"name":1930,"fn":1931,"description":1932,"org":1933,"tags":1934,"stars":1916,"repoUrl":1917,"updatedAt":1941},"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},[1935,1936,1939,1940],{"name":1813,"slug":1814,"type":13},{"name":1937,"slug":1938,"type":13},"Data Warehouse","data-warehouse",{"name":1822,"slug":1823,"type":13},{"name":9,"slug":8,"type":13},"2026-06-18T08:22:57.67984",{"slug":1943,"name":1943,"fn":1944,"description":1945,"org":1946,"tags":1947,"stars":1916,"repoUrl":1917,"updatedAt":1954},"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},[1948,1949,1950,1953],{"name":1813,"slug":1814,"type":13},{"name":1937,"slug":1938,"type":13},{"name":1951,"slug":1952,"type":13},"Performance","performance",{"name":9,"slug":8,"type":13},"2026-06-18T08:25:10.936787",{"slug":1956,"name":1956,"fn":1957,"description":1958,"org":1959,"tags":1960,"stars":1916,"repoUrl":1917,"updatedAt":1967},"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},[1961,1964,1965,1966],{"name":1962,"slug":1963,"type":13},"Alerting","alerting",{"name":1856,"slug":1857,"type":13},{"name":1822,"slug":1823,"type":13},{"name":9,"slug":8,"type":13},"2026-06-18T08:24:40.318583",{"slug":1969,"name":1969,"fn":1970,"description":1971,"org":1972,"tags":1973,"stars":1916,"repoUrl":1917,"updatedAt":1983},"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},[1974,1975,1978,1979,1982],{"name":1850,"slug":1851,"type":13},{"name":1976,"slug":1977,"type":13},"Monitoring","monitoring",{"name":1822,"slug":1823,"type":13},{"name":1980,"slug":1981,"type":13},"Operations","operations",{"name":9,"slug":8,"type":13},"2026-07-18T05:10:54.430898",{"slug":1985,"name":1985,"fn":1986,"description":1987,"org":1988,"tags":1989,"stars":1916,"repoUrl":1917,"updatedAt":2000},"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},[1990,1993,1996,1997],{"name":1991,"slug":1992,"type":13},"Automation","automation",{"name":1994,"slug":1995,"type":13},"MCP","mcp",{"name":9,"slug":8,"type":13},{"name":1998,"slug":1999,"type":13},"Workflow Automation","workflow-automation","2026-07-28T05:34:12.167015",{"slug":2002,"name":2002,"fn":2003,"description":2004,"org":2005,"tags":2006,"stars":1916,"repoUrl":1917,"updatedAt":2012},"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},[2007,2008,2009,2010,2011],{"name":1850,"slug":1851,"type":13},{"name":1856,"slug":1857,"type":13},{"name":1869,"slug":1870,"type":13},{"name":1822,"slug":1823,"type":13},{"name":9,"slug":8,"type":13},"2026-05-07T05:56:19.828048",{"slug":2014,"name":2014,"fn":2015,"description":2016,"org":2017,"tags":2018,"stars":1916,"repoUrl":1917,"updatedAt":2027},"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},[2019,2022,2023,2024],{"name":2020,"slug":2021,"type":13},"API Development","api-development",{"name":1869,"slug":1870,"type":13},{"name":9,"slug":8,"type":13},{"name":2025,"slug":2026,"type":13},"SDK","sdk","2026-06-08T08:08:34.929454",{"slug":2029,"name":2029,"fn":2030,"description":2031,"org":2032,"tags":2033,"stars":1916,"repoUrl":1917,"updatedAt":2037},"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},[2034,2035,2036],{"name":2020,"slug":2021,"type":13},{"name":1980,"slug":1981,"type":13},{"name":9,"slug":8,"type":13},"2026-07-15T05:29:58.442727",{"slug":2039,"name":2039,"fn":2040,"description":2041,"org":2042,"tags":2043,"stars":1916,"repoUrl":1917,"updatedAt":2055},"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},[2044,2045,2048,2049,2052],{"name":1991,"slug":1992,"type":13},{"name":2046,"slug":2047,"type":13},"Email","email",{"name":9,"slug":8,"type":13},{"name":2050,"slug":2051,"type":13},"Reporting","reporting",{"name":2053,"slug":2054,"type":13},"Slack","slack","2026-06-09T07:32:27.935712",{"slug":2057,"name":2057,"fn":2058,"description":2059,"org":2060,"tags":2061,"stars":1916,"repoUrl":1917,"updatedAt":2065},"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},[2062,2063,2064],{"name":1850,"slug":1851,"type":13},{"name":2020,"slug":2021,"type":13},{"name":9,"slug":8,"type":13},"2026-06-08T08:08:29.624498",231]