diff --git a/cypress/e2e/billingUpgradeCTA.cy.ts b/cypress/e2e/billingUpgradeCTA.cy.ts
index be4a0a9a03e44..18504d2fe6a18 100644
--- a/cypress/e2e/billingUpgradeCTA.cy.ts
+++ b/cypress/e2e/billingUpgradeCTA.cy.ts
@@ -37,7 +37,7 @@ describe('Billing Upgrade CTA', () => {
const events = (win as any)._cypress_posthog_captures
const matchingEvents = events.filter((event) => event.event === 'billing CTA shown')
- expect(matchingEvents.length).to.equal(4)
+ expect(matchingEvents.length).to.equal(3)
})
cy.intercept('/api/billing-v2/', { fixture: 'api/billing-v2/billing-v2-unsubscribed.json' })
diff --git a/cypress/e2e/billingv2.cy.ts b/cypress/e2e/billingv2.cy.ts
index 13b819a441317..12db2073a1202 100644
--- a/cypress/e2e/billingv2.cy.ts
+++ b/cypress/e2e/billingv2.cy.ts
@@ -14,7 +14,7 @@ describe('Billing', () => {
cy.get('[data-attr=more-button]').first().click()
cy.contains('.LemonButton', 'Unsubscribe').click()
- cy.get('.LemonModal h3').should('contain', 'Why are you unsubscribing from Product analytics + data stack?')
+ cy.get('.LemonModal h3').should('contain', 'Why are you unsubscribing from Product analytics?')
cy.get('[data-attr=unsubscribe-reason-survey-textarea]').type('Product analytics')
cy.contains('.LemonModal .LemonButton', 'Unsubscribe').click()
@@ -35,7 +35,7 @@ describe('Billing', () => {
it('Unsubscribe survey text area maintains unique state between product types', () => {
cy.get('[data-attr=more-button]').first().click()
cy.contains('.LemonButton', 'Unsubscribe').click()
- cy.get('.LemonModal h3').should('contain', 'Why are you unsubscribing from Product analytics + data stack?')
+ cy.get('.LemonModal h3').should('contain', 'Why are you unsubscribing from Product analytics?')
cy.get('[data-attr=unsubscribe-reason-survey-textarea]').type('Product analytics')
cy.contains('.LemonModal .LemonButton', 'Cancel').click()
diff --git a/cypress/e2e/onboarding.cy.ts b/cypress/e2e/onboarding.cy.ts
index ecf7b86154b96..56cb23bc45b70 100644
--- a/cypress/e2e/onboarding.cy.ts
+++ b/cypress/e2e/onboarding.cy.ts
@@ -3,6 +3,8 @@ import { decideResponse } from '../fixtures/api/decide'
describe('Onboarding', () => {
beforeEach(() => {
+ cy.intercept('/api/billing-v2/', { fixture: 'api/billing-v2/billing-v2-unsubscribed.json' })
+
cy.intercept('**/decide/*', (req) =>
req.reply(
decideResponse({
@@ -21,24 +23,158 @@ describe('Onboarding', () => {
// Confirm product intro is not included as the first step in the upper right breadcrumbs
cy.get('[data-attr=onboarding-breadcrumbs] > :first-child > * span').should('not.contain', 'Product intro')
- // Navigate to the product intro page by clicking the left side bar
- cy.get('[data-attr=menu-item-replay').click()
+ cy.window().then((win) => {
+ win.POSTHOG_APP_CONTEXT.current_team.has_completed_onboarding_for = {}
+ })
+
+ cy.get('[data-attr=menu-item-savedinsights]').click()
// Confirm we're on the product_intro page
cy.get('[data-attr=top-bar-name] > span').contains('Onboarding')
- cy.get('[data-attr=product-intro-title]').contains('Watch how users experience your app')
+ cy.get('[data-attr=product-intro-title]').contains('Product analytics with autocapture')
- // Go back to /products
- cy.visit('/products')
+ cy.get('[data-attr=start-onboarding]').should('be.visible')
+ cy.get('[data-attr=skip-onboarding]').should('not.exist')
+ })
- // Again get started on product analytics onboarding
- cy.get('[data-attr=product_analytics-onboarding-card]').click()
+ // it('Step through PA onboarding', () => {
+ // cy.visit('/products')
- // Navigate to the product intro page by changing the url
- cy.visit(urls.onboarding('session_replay', 'product_intro'))
+ // // Get started on product analytics onboarding
+ // cy.get('[data-attr=product_analytics-onboarding-card]').click()
- // Confirm we're on the product intro page
- cy.get('[data-attr=top-bar-name] > span').contains('Onboarding')
- cy.get('[data-attr=product-intro-title]').contains('Watch how users experience your app')
- })
+ // // Installation should be complete
+ // cy.get('svg.LemonIcon.text-success').should('exist')
+ // cy.get('svg.LemonIcon.text-success').parent().should('contain', 'Installation complete')
+
+ // // Continue to configuration step
+ // cy.get('[data-attr=sdk-continue]').click()
+
+ // // Confirm the appropriate breadcrumb is highlighted
+ // cy.get('[data-attr=onboarding-breadcrumbs] > :nth-child(3) > * span').should('contain', 'Configure')
+ // cy.get('[data-attr=onboarding-breadcrumbs] > :nth-child(3) > * span').should('not.have.css', 'text-muted')
+
+ // // Continue to plans
+ // cy.get('[data-attr=onboarding-continue]').click()
+
+ // // Verify pricing table visible
+ // cy.get('.BillingHero').should('be.visible')
+ // cy.get('table.PlanComparison').should('be.visible')
+
+ // // Confirm buttons on pricing comparison
+ // cy.get('[data-attr=upgrade-Paid] .LemonButton__content').should('have.text', 'Upgrade')
+ // cy.get('[data-attr=upgrade-Free] .LemonButton__content').should('have.text', 'Current plan')
+
+ // // Continue
+ // cy.get('[data-attr=onboarding-skip-button]').click()
+
+ // // Click back to Install step
+ // cy.get('[data-attr=onboarding-breadcrumbs] > :first-child > * span').click()
+
+ // // Continue through to finish
+ // cy.get('[data-attr=sdk-continue]').click()
+ // cy.get('[data-attr=onboarding-continue]').click()
+ // cy.get('[data-attr=onboarding-skip-button]').click()
+ // cy.get('[data-attr=onboarding-continue]').click()
+
+ // // Confirm we're on the insights list page
+ // cy.url().should('contain', 'project/1/insights')
+
+ // cy.visit('/onboarding/product_analytics?step=product_intro')
+
+ // // Should see both an option to skip onboarding and an option to see the sdk instructions
+ // cy.get('[data-attr=skip-onboarding]').should('be.visible')
+ // cy.get('[data-attr=start-onboarding-sdk]').should('be.visible')
+
+ // cy.get('[data-attr=skip-onboarding]').first().click()
+ // cy.url().should('contain', 'project/1/insights')
+
+ // cy.visit('/onboarding/product_analytics?step=product_intro')
+ // cy.get('[data-attr=start-onboarding-sdk]').first().click()
+ // cy.url().should('contain', 'project/1/onboarding/product_analytics?step=install')
+
+ // cy.visit('/products')
+ // cy.get('[data-attr=return-to-product_analytics] > svg').click()
+ // cy.url().should('contain', 'project/1/insights')
+ // })
+
+ // it('Step through SR onboarding', () => {
+ // cy.visit('/products')
+ // cy.get('[data-attr=session_replay-onboarding-card]').click()
+
+ // // Installation should be complete
+ // cy.get('svg.LemonIcon.text-success').should('exist')
+ // cy.get('svg.LemonIcon.text-success').parent().should('contain', 'Installation complete')
+ // // Continue to configuration step
+ // cy.get('[data-attr=sdk-continue]').click()
+ // // Continue to plans
+ // cy.get('[data-attr=onboarding-continue]').click()
+ // // Verify pricing table visible
+ // cy.get('.BillingHero').should('be.visible')
+ // cy.get('table.PlanComparison').should('be.visible')
+ // // Confirm buttons on pricing comparison
+ // cy.get('[data-attr=upgrade-Paid] .LemonButton__content').should('have.text', 'Upgrade')
+ // cy.get('[data-attr=upgrade-Free] .LemonButton__content').should('have.text', 'Current plan')
+ // // Continue through to finish
+ // cy.get('[data-attr=onboarding-skip-button]').click()
+ // cy.get('[data-attr=onboarding-continue]').click()
+ // // Confirm we're on the recordings list page
+ // cy.url().should('contain', 'project/1/replay/recent')
+ // cy.visit('/onboarding/session_replay?step=product_intro')
+ // cy.get('[data-attr=skip-onboarding]').should('be.visible')
+ // cy.get('[data-attr=start-onboarding-sdk]').should('not.exist')
+ // })
+
+ // it('Step through FF onboarding', () => {
+ // cy.visit('/onboarding/feature_flags?step=product_intro')
+ // cy.get('[data-attr=start-onboarding-sdk]').first().click()
+ // cy.get('[data-attr=sdk-continue]').click()
+
+ // // Confirm the appropriate breadcrumb is highlighted
+ // cy.get('[data-attr=onboarding-breadcrumbs] > :nth-child(5) > * span').should('contain', 'Plans')
+ // cy.get('[data-attr=onboarding-breadcrumbs] > :nth-child(3) > * span').should('not.have.css', 'text-muted')
+
+ // cy.get('[data-attr=onboarding-skip-button]').click()
+ // cy.get('[data-attr=onboarding-continue]').click()
+
+ // cy.url().should('contain', '/feature_flags')
+
+ // cy.visit('/onboarding/feature_flags?step=product_intro')
+
+ // cy.get('[data-attr=skip-onboarding]').should('be.visible')
+ // cy.get('[data-attr=start-onboarding-sdk]').should('be.visible')
+
+ // cy.get('[data-attr=skip-onboarding]').first().click()
+ // })
+
+ // it('Step through Surveys onboarding', () => {
+ // cy.visit('/onboarding/surveys?step=product_intro')
+ // cy.get('[data-attr=skip-onboarding]').should('be.visible')
+ // cy.get('[data-attr=start-onboarding-sdk]').should('not.exist')
+ // cy.get('[data-attr=skip-onboarding]').first().click()
+ // cy.url().should('contain', 'survey_templates')
+
+ // cy.visit('/products')
+ // cy.get('[data-attr=surveys-onboarding-card]').click()
+ // // Installation should be complete
+ // cy.get('svg.LemonIcon.text-success').should('exist')
+ // cy.get('svg.LemonIcon.text-success').parent().should('contain', 'Installation complete')
+
+ // // Continue to configuration step
+ // cy.get('[data-attr=sdk-continue]').click()
+
+ // // Verify pricing table visible
+ // cy.get('.BillingHero').should('be.visible')
+ // cy.get('table.PlanComparison').should('be.visible')
+
+ // // Confirm buttons on pricing comparison
+ // cy.get('[data-attr=upgrade-Paid] .LemonButton__content').should('have.text', 'Upgrade')
+ // cy.get('[data-attr=upgrade-Free] .LemonButton__content').should('have.text', 'Current plan')
+
+ // // Continue
+ // cy.get('[data-attr=onboarding-skip-button]').click()
+ // cy.get('[data-attr=onboarding-continue]').click()
+
+ // cy.url().should('contain', '/survey_templates')
+ // })
})
diff --git a/cypress/fixtures/api/billing-v2/billing-v2-unsubscribed.json b/cypress/fixtures/api/billing-v2/billing-v2-unsubscribed.json
index 0aec292a9d38d..32e1268032d34 100644
--- a/cypress/fixtures/api/billing-v2/billing-v2-unsubscribed.json
+++ b/cypress/fixtures/api/billing-v2/billing-v2-unsubscribed.json
@@ -14,6 +14,7 @@
"discord_integration",
"apps",
"boolean_flags",
+ "multivariate_flags",
"persist_flags_cross_authentication",
"feature_flag_payloads",
"multiple_release_conditions",
@@ -21,6 +22,10 @@
"targeting_by_group",
"local_evaluation_and_bootstrapping",
"flag_usage_stats",
+ "experimentation",
+ "funnel_experiments",
+ "secondary_metrics",
+ "statistical_analysis",
"feature_flags_data_retention",
"console_logs",
"recordings_performance",
@@ -173,6 +178,14 @@
"limit": null,
"note": null
},
+ {
+ "key": "multivariate_flags",
+ "name": "Multivariate feature flags & experiments",
+ "description": "Create three or more variants of a feature flag to test or release different versions of a feature.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
{
"key": "persist_flags_cross_authentication",
"name": "Persist flags across authentication",
@@ -229,6 +242,38 @@
"limit": null,
"note": null
},
+ {
+ "key": "experimentation",
+ "name": "A/B testing",
+ "description": "Test changes to your product and evaluate the impacts those changes make.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "funnel_experiments",
+ "name": "Funnel & trend experiments",
+ "description": "Measure the impact of a change on a aggregate values or a series of events, like a signup flow.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "secondary_metrics",
+ "name": "Secondary experiment metrics",
+ "description": "Track additional metrics to see how your experiment affects other parts of your app or different flows.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "statistical_analysis",
+ "name": "Statistical analysis",
+ "description": "Get a statistical analysis of your experiment results to see if the results are significant, or if they're likely just due to chance.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
{
"key": "feature_flags_data_retention",
"name": "Data retention",
@@ -1717,6 +1762,14 @@
"limit": null,
"note": null
},
+ {
+ "key": "multivariate_flags",
+ "name": "Multivariate feature flags & experiments",
+ "description": "Create three or more variants of a feature flag to test or release different versions of a feature.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
{
"key": "persist_flags_cross_authentication",
"name": "Persist flags across authentication",
@@ -1773,6 +1826,38 @@
"limit": null,
"note": null
},
+ {
+ "key": "experimentation",
+ "name": "A/B testing",
+ "description": "Test changes to your product and evaluate the impacts those changes make.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "funnel_experiments",
+ "name": "Funnel & trend experiments",
+ "description": "Measure the impact of a change on a aggregate values or a series of events, like a signup flow.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "secondary_metrics",
+ "name": "Secondary experiment metrics",
+ "description": "Track additional metrics to see how your experiment affects other parts of your app or different flows.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "statistical_analysis",
+ "name": "Statistical analysis",
+ "description": "Get a statistical analysis of your experiment results to see if the results are significant, or if they're likely just due to chance.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
{
"key": "feature_flags_data_retention",
"name": "Data retention",
@@ -1879,14 +1964,6 @@
"limit": null,
"note": null
},
- {
- "key": "group_experiments",
- "name": "Group experiments",
- "description": "Target experiments to specific groups of users so everyone in the same group gets the same variant.",
- "unit": null,
- "limit": null,
- "note": null
- },
{
"key": "funnel_experiments",
"name": "Funnel & trend experiments",
@@ -1911,6 +1988,22 @@
"limit": null,
"note": null
},
+ {
+ "key": "group_experiments",
+ "name": "Group experiments",
+ "description": "Target experiments to specific groups of users so everyone in the same group gets the same variant.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "multiple_environments",
+ "name": "Multi-environment support",
+ "description": "Test flags in local development or staging by using the same flag key across PostHog projects.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
{
"key": "feature_flags_data_retention",
"name": "Data retention",
@@ -3637,5 +3730,11 @@
"discount_amount_usd": null,
"amount_off_expires_at": null,
"never_drop_data": null,
- "stripe_portal_url": "https://billing.stripe.com/p/session/test_YWNjdF8xSElNRERFdUlhdFJYU2R6LF9QZzdwUjRPMXBobnRsdHdKaDVpbEVzbkREcE9RQnFT0100S0djyn8G"
+ "customer_trust_scores": {
+ "surveys": 0,
+ "feature_flags": 0,
+ "session_replay": 3,
+ "product_analytics": 3
+ },
+ "stripe_portal_url": "https://billing.stripe.com/p/session/test_YWNjdF8xSElNRERFdUlhdFJYU2R6LF9QaEVaQ0hCTUE0aE8wUFhlVWVqd29MaElGd3lwRjFa010044U4IxJp"
}
diff --git a/cypress/fixtures/api/billing-v2/billing-v2.json b/cypress/fixtures/api/billing-v2/billing-v2.json
index 605cbf2da1d86..4a8abf3ae41b5 100644
--- a/cypress/fixtures/api/billing-v2/billing-v2.json
+++ b/cypress/fixtures/api/billing-v2/billing-v2.json
@@ -7,6 +7,7 @@
"surveys_api_mode",
"surveys_results_analysis",
"surveys_templates",
+ "surveys_data_retention",
"zapier",
"slack_integration",
"microsoft_teams_integration",
@@ -14,6 +15,7 @@
"apps",
"app_metrics",
"boolean_flags",
+ "multivariate_flags",
"persist_flags_cross_authentication",
"feature_flag_payloads",
"multiple_release_conditions",
@@ -21,46 +23,53 @@
"targeting_by_group",
"local_evaluation_and_bootstrapping",
"flag_usage_stats",
- "data_warehouse_manual_sync",
- "data_warehouse_unified_querying",
- "data_warehouse_insights_visualization",
+ "experimentation",
+ "funnel_experiments",
+ "secondary_metrics",
+ "statistical_analysis",
+ "feature_flags_data_retention",
"console_logs",
+ "recordings_performance",
+ "session_replay_network_payloads",
"recordings_playlists",
+ "session_replay_data_retention",
+ "replay_mask_sensitive_data",
+ "replay_sharing_embedding",
+ "replay_product_analytics_integration",
+ "replay_filter_person_properties",
+ "replay_filter_events",
+ "replay_dom_explorer",
+ "session_replay_sampling",
+ "replay_recording_duration_minimum",
+ "replay_feature_flag_based_recording",
"dashboards",
"funnels",
"graphs_trends",
"paths",
"subscriptions",
"paths_advanced",
- "advanced_permissions",
- "team_collaboration",
- "ingestion_taxonomy",
"correlation_analysis",
- "tagging",
"behavioral_cohort_filtering",
+ "product_analytics_data_retention",
"tracked_users",
- "data_retention",
"team_members",
"organizations_projects",
"api_access",
"social_sso",
- "project_based_permissioning",
- "white_labelling",
"community_support",
"dedicated_support",
"email_support",
- "terms_and_conditions",
- "security_assessment"
+ "2fa"
],
"license": {
"plan": "dev"
},
- "customer_id": "cus_Ot0pdGiqNz8M9J",
+ "customer_id": "cus_Pg7PIL8MsKi6bx",
"deactivated": false,
"has_active_subscription": true,
"billing_period": {
- "current_period_start": "2023-10-31T00:08:23Z",
- "current_period_end": "2023-11-30T00:08:23Z",
+ "current_period_start": "2024-03-07T23:21:20Z",
+ "current_period_end": "2024-04-07T23:21:20Z",
"interval": "month"
},
"available_product_features": [
@@ -82,8 +91,8 @@
},
{
"key": "surveys_user_targeting",
- "name": "User property targeting",
- "description": "Target users based on any of their user properties.",
+ "name": "Advanced user targeting",
+ "description": "Target by URL, user property, or feature flag when used with Feature flags.",
"unit": null,
"limit": null,
"note": null
@@ -99,15 +108,15 @@
{
"key": "surveys_api_mode",
"name": "API mode",
- "description": "Create surveys via the API.",
+ "description": "Using PostHog.js? No more code required. But if want to create your own UI, we have a full API.",
"unit": null,
"limit": null,
"note": null
},
{
"key": "surveys_results_analysis",
- "name": "Results analysis",
- "description": "Analyze your survey results including completion rates and drop offs.",
+ "name": "Aggregated results",
+ "description": "See feedback summarized and broken down per response, plus completion rates and drop offs.",
"unit": null,
"limit": null,
"note": null
@@ -120,6 +129,14 @@
"limit": null,
"note": null
},
+ {
+ "key": "surveys_data_retention",
+ "name": "Data retention",
+ "description": "Keep a historical record of your data.",
+ "unit": "year",
+ "limit": 1,
+ "note": null
+ },
{
"key": "zapier",
"name": "Zapier",
@@ -154,8 +171,8 @@
},
{
"key": "apps",
- "name": "CDP + Apps library",
- "description": "Connect your data with 50+ apps including BigQuery, Redshift, and more.",
+ "name": "Apps",
+ "description": "Use apps to transform, filter, and modify your incoming data. (Export apps not included, see the Data pipelines addon for product analytics.)",
"unit": null,
"limit": null,
"note": null
@@ -176,6 +193,14 @@
"limit": null,
"note": null
},
+ {
+ "key": "multivariate_flags",
+ "name": "Multivariate feature flags & experiments",
+ "description": "Create three or more variants of a feature flag to test or release different versions of a feature.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
{
"key": "persist_flags_cross_authentication",
"name": "Persist flags across authentication",
@@ -186,8 +211,8 @@
},
{
"key": "feature_flag_payloads",
- "name": "Payloads",
- "description": "Send additional pieces of information (any valid JSON) to your app when a flag is matched for a user.",
+ "name": "Test changes without code",
+ "description": "Use JSON payloads to change text, visuals, or entire blocks of code without subsequent deployments.",
"unit": null,
"limit": null,
"note": null
@@ -195,7 +220,7 @@
{
"key": "multiple_release_conditions",
"name": "Multiple release conditions",
- "description": "Target multiple groups of users with different release conditions for the same feature flag.",
+ "description": "Customize your rollout strategy by user or group properties, cohort, or trafic percentage.",
"unit": null,
"limit": null,
"note": null
@@ -233,33 +258,65 @@
"note": null
},
{
- "key": "data_warehouse_manual_sync",
- "name": "Manual sync",
- "description": "Sync your data to the warehouse using your cloud storage provider.",
+ "key": "experimentation",
+ "name": "A/B testing",
+ "description": "Test changes to your product and evaluate the impacts those changes make.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "funnel_experiments",
+ "name": "Funnel & trend experiments",
+ "description": "Measure the impact of a change on a aggregate values or a series of events, like a signup flow.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "data_warehouse_unified_querying",
- "name": "Unified querying",
- "description": "Query all your business and product data directly inside PostHog.",
+ "key": "secondary_metrics",
+ "name": "Secondary experiment metrics",
+ "description": "Track additional metrics to see how your experiment affects other parts of your app or different flows.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "data_warehouse_insights_visualization",
- "name": "Insights",
- "description": "Create insights from the data you import and add them to your PostHog dashboards.",
+ "key": "statistical_analysis",
+ "name": "Statistical analysis",
+ "description": "Get a statistical analysis of your experiment results to see if the results are significant, or if they're likely just due to chance.",
"unit": null,
"limit": null,
"note": null
},
+ {
+ "key": "feature_flags_data_retention",
+ "name": "Data retention",
+ "description": "Keep a historical record of your data.",
+ "unit": "year",
+ "limit": 1,
+ "note": null
+ },
{
"key": "console_logs",
"name": "Console logs",
- "description": "Diagnose issues by inspecting errors in the user's network console",
+ "description": "Debug issues faster by browsing the user's console.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "recordings_performance",
+ "name": "Network performance on recordings",
+ "description": "See your end-user's network performance and information alongside session recordings.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "session_replay_network_payloads",
+ "name": "Network monitor",
+ "description": "Analyze performance and network calls.",
"unit": null,
"limit": null,
"note": null
@@ -273,116 +330,164 @@
"note": null
},
{
- "key": "dashboards",
- "name": "Dashboards",
- "description": "Save trends, funnels, and other insights for easy reference by your whole team.",
+ "key": "session_replay_data_retention",
+ "name": "Data retention",
+ "description": "Keep a historical record of your data.",
+ "unit": "month",
+ "limit": 1,
+ "note": null
+ },
+ {
+ "key": "replay_mask_sensitive_data",
+ "name": "Block sensitive data",
+ "description": "Disable capturing data from any DOM element with HTML attributes or a customizable config.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "funnels",
- "name": "Funnels",
- "description": "Visualize user dropoff between a sequence of events.",
+ "key": "replay_sharing_embedding",
+ "name": "Share and embed",
+ "description": "Share replays directly via URL or embed via iframe.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "graphs_trends",
- "name": "Graphs & trends",
- "description": "Plot any number of events or actions over time.",
+ "key": "replay_product_analytics_integration",
+ "name": "Event timeline",
+ "description": "See a history of everything that happened in a user's session.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "paths",
- "name": "Paths",
- "description": "Limited paths excludes: customizing path insights by setting the maximum number of paths, number of people on each path, how path names appear",
+ "key": "replay_filter_person_properties",
+ "name": "Filter person properties",
+ "description": "Filter by person properties to quickly find relevant recordings.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "subscriptions",
- "name": "Insight & dashboard subscriptions",
- "description": "Create a subscription for any insight or dashboard in PostHog to receive regular reports with their updates.",
+ "key": "replay_filter_events",
+ "name": "Filter events",
+ "description": "Filter by events to quickly find relevant recordings.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "paths_advanced",
- "name": "Advanced paths",
- "description": "Customize your path insights by setting the maximum number of paths, number of people on each path, and how path names should appear.",
+ "key": "replay_dom_explorer",
+ "name": "DOM Explorer",
+ "description": "Freeze snapshots of recordings and explore the DOM with your browser dev tools.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "advanced_permissions",
- "name": "Dashboard permissions",
- "description": "Restrict access to dashboards within the organization to only those who need it.",
+ "key": "session_replay_sampling",
+ "name": "Sample recorded sessions",
+ "description": "Restrict the percentage of sessions that will be recorded.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "team_collaboration",
- "name": "Tags & text cards",
- "description": "Keep organized by adding tags to your dashboards, cohorts and more. Add text cards and descriptions to your dashboards to provide context to your team.",
+ "key": "replay_recording_duration_minimum",
+ "name": "Minimum duration",
+ "description": "Only record sessions longer than the minimum duration.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "ingestion_taxonomy",
- "name": "Ingestion taxonomy",
- "description": "Ingestion taxonomy",
+ "key": "replay_feature_flag_based_recording",
+ "name": "Record via feature flag",
+ "description": "Only record sessions for users that have the flag enabled.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "correlation_analysis",
- "name": "Correlation analysis",
- "description": "Automatically highlight significant factors that affect the conversion rate of users within a funnel.",
+ "key": "dashboards",
+ "name": "Dashboards",
+ "description": "Save trends, funnels, and other insights for easy reference by your whole team.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "tagging",
- "name": "Dashboard tags",
- "description": "Organize dashboards with tags.",
+ "key": "funnels",
+ "name": "Funnels",
+ "description": "Visualize user dropoff between a sequence of events. See conversion rate over time, use flexible step ordering, set exclusion steps, and more.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "behavioral_cohort_filtering",
- "name": "Lifecycle cohorts",
- "description": "Group users based on their long term behavior, such as whether they frequently performed an event, or have recently stopped performing an event.",
+ "key": "graphs_trends",
+ "name": "Graphs & trends",
+ "description": "Plot any number of events or actions over time.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "tracked_users",
- "name": "Tracked users",
- "description": "Track users across devices and sessions.",
+ "key": "paths",
+ "name": "User paths",
+ "description": "Limited paths excludes: customizing path insights by setting the maximum number of paths, number of people on each path, how path names appear",
"unit": null,
"limit": null,
- "note": "Unlimited"
+ "note": null
+ },
+ {
+ "key": "subscriptions",
+ "name": "Insight & dashboard subscriptions",
+ "description": "Create a subscription for any insight or dashboard in PostHog to receive regular reports with their updates.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "paths_advanced",
+ "name": "Advanced paths",
+ "description": "Customize your path insights by setting the maximum number of paths, number of people on each path, and how path names should appear.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "correlation_analysis",
+ "name": "Correlation analysis",
+ "description": "Automatically highlight significant factors that affect the conversion rate of users within a funnel.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "behavioral_cohort_filtering",
+ "name": "Lifecycle",
+ "description": "Discover how your active users break down, highlighting those who have recently stopped being active or those who have just become active for the first time.",
+ "unit": null,
+ "limit": null,
+ "note": null
},
{
- "key": "data_retention",
+ "key": "product_analytics_data_retention",
"name": "Data retention",
"description": "Keep a historical record of your data.",
+ "unit": "years",
+ "limit": 7,
+ "note": null
+ },
+ {
+ "key": "tracked_users",
+ "name": "Tracked users",
+ "description": "Track users across devices and sessions.",
"unit": null,
"limit": null,
- "note": "7 years"
+ "note": "Unlimited"
},
{
"key": "team_members",
@@ -396,9 +501,9 @@
"key": "organizations_projects",
"name": "Projects",
"description": "Create silos of data within PostHog. All data belongs to a single project and all queries are project-specific.",
- "unit": null,
- "limit": null,
- "note": "Unlimited"
+ "unit": "projects",
+ "limit": 2,
+ "note": null
},
{
"key": "api_access",
@@ -416,22 +521,6 @@
"limit": null,
"note": null
},
- {
- "key": "project_based_permissioning",
- "name": "Project permissions",
- "description": "Restrict access to data within the organization to only those who need it.",
- "unit": null,
- "limit": null,
- "note": null
- },
- {
- "key": "white_labelling",
- "name": "White labeling",
- "description": "Use your own branding in your PostHog organization.",
- "unit": null,
- "limit": null,
- "note": null
- },
{
"key": "community_support",
"name": "Community support",
@@ -442,32 +531,24 @@
},
{
"key": "dedicated_support",
- "name": "Slack (dedicated channel)",
- "description": "Get help directly from our support team in a dedicated Slack channel shared between you and the PostHog team.",
+ "name": "Dedicated account manager",
+ "description": "Work with a dedicated account manager via Slack or email to help you get the most out of PostHog.",
"unit": null,
"limit": null,
- "note": "$2k/month spend or above"
+ "note": "$2k+/month spend"
},
{
"key": "email_support",
- "name": "Direct access to engineers",
+ "name": "Email support",
"description": "Get help directly from our product engineers via email. No wading through multiple support people before you get help.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "terms_and_conditions",
- "name": "Terms and conditions",
- "description": "Terms and conditions",
- "unit": null,
- "limit": null,
- "note": "Standard"
- },
- {
- "key": "security_assessment",
- "name": "Security assessment",
- "description": "Security assessment",
+ "key": "2fa",
+ "name": "2FA",
+ "description": "Secure your PostHog account with two-factor authentication.",
"unit": null,
"limit": null,
"note": null
@@ -477,11 +558,13 @@
"current_total_amount_usd_after_discount": "0.00",
"products": [
{
- "name": "Product analytics + data stack",
- "description": "Trends, funnels, path analysis, CDP + more.",
+ "name": "Product analytics",
+ "headline": "Product analytics with autocapture",
+ "description": "A comprehensive product analytics platform built to natively work with session replay, feature flags, A/B testing, and surveys.",
"price_description": null,
"usage_key": "events",
- "image_url": "https://posthog.com/images/product/product-icons/product-analytics.svg",
+ "image_url": "https://posthog.com/images/products/product-analytics/product-analytics.png",
+ "screenshot_url": "https://posthog.com/images/products/product-analytics/screenshot-product-analytics.png",
"icon_key": "IconGraph",
"docs_url": "https://posthog.com/docs/product-analytics",
"subscribed": true,
@@ -489,9 +572,9 @@
{
"plan_key": "free-20230117",
"product_key": "product_analytics",
- "name": "Product analytics + data stack",
- "description": "Trends, funnels, path analysis, CDP + more.",
- "image_url": "https://posthog.com/images/product/product-icons/product-analytics.svg",
+ "name": "Free",
+ "description": "A comprehensive product analytics platform built to natively work with session replay, feature flags, A/B testing, and surveys.",
+ "image_url": "https://posthog.com/images/products/product-analytics/product-analytics.png",
"docs_url": "https://posthog.com/docs/product-analytics",
"note": null,
"unit": "event",
@@ -508,7 +591,7 @@
{
"key": "funnels",
"name": "Funnels",
- "description": "Visualize user dropoff between a sequence of events.",
+ "description": "Visualize user dropoff between a sequence of events. See conversion rate over time, use flexible step ordering, set exclusion steps, and more.",
"unit": null,
"limit": null,
"note": null
@@ -523,23 +606,33 @@
},
{
"key": "paths",
- "name": "Paths",
+ "name": "User paths",
"description": "Limited paths excludes: customizing path insights by setting the maximum number of paths, number of people on each path, how path names appear",
"unit": null,
"limit": null,
"note": "Limited"
+ },
+ {
+ "key": "product_analytics_data_retention",
+ "name": "Data retention",
+ "description": "Keep a historical record of your data.",
+ "unit": "year",
+ "limit": 1,
+ "note": null
}
],
"tiers": null,
"current_plan": false,
- "included_if": null
+ "included_if": null,
+ "contact_support": null,
+ "unit_amount_usd": null
},
{
- "plan_key": "paid-20230509",
+ "plan_key": "paid-20240111",
"product_key": "product_analytics",
- "name": "Product analytics + data stack",
- "description": "Trends, funnels, path analysis, CDP + more.",
- "image_url": "https://posthog.com/images/product/product-icons/product-analytics.svg",
+ "name": "Paid",
+ "description": "A comprehensive product analytics platform built to natively work with session replay, feature flags, A/B testing, and surveys.",
+ "image_url": "https://posthog.com/images/products/product-analytics/product-analytics.png",
"docs_url": "https://posthog.com/docs/product-analytics",
"note": null,
"unit": "event",
@@ -556,7 +649,7 @@
{
"key": "funnels",
"name": "Funnels",
- "description": "Visualize user dropoff between a sequence of events.",
+ "description": "Visualize user dropoff between a sequence of events. See conversion rate over time, use flexible step ordering, set exclusion steps, and more.",
"unit": null,
"limit": null,
"note": null
@@ -571,7 +664,7 @@
},
{
"key": "paths",
- "name": "Paths",
+ "name": "User paths",
"description": "Limited paths excludes: customizing path insights by setting the maximum number of paths, number of people on each path, how path names appear",
"unit": null,
"limit": null,
@@ -593,30 +686,6 @@
"limit": null,
"note": null
},
- {
- "key": "advanced_permissions",
- "name": "Dashboard permissions",
- "description": "Restrict access to dashboards within the organization to only those who need it.",
- "unit": null,
- "limit": null,
- "note": null
- },
- {
- "key": "team_collaboration",
- "name": "Tags & text cards",
- "description": "Keep organized by adding tags to your dashboards, cohorts and more. Add text cards and descriptions to your dashboards to provide context to your team.",
- "unit": null,
- "limit": null,
- "note": null
- },
- {
- "key": "ingestion_taxonomy",
- "name": "Ingestion taxonomy",
- "description": "Ingestion taxonomy",
- "unit": null,
- "limit": null,
- "note": null
- },
{
"key": "correlation_analysis",
"name": "Correlation analysis",
@@ -626,19 +695,19 @@
"note": null
},
{
- "key": "tagging",
- "name": "Dashboard tags",
- "description": "Organize dashboards with tags.",
+ "key": "behavioral_cohort_filtering",
+ "name": "Lifecycle",
+ "description": "Discover how your active users break down, highlighting those who have recently stopped being active or those who have just become active for the first time.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "behavioral_cohort_filtering",
- "name": "Lifecycle cohorts",
- "description": "Group users based on their long term behavior, such as whether they frequently performed an event, or have recently stopped performing an event.",
- "unit": null,
- "limit": null,
+ "key": "product_analytics_data_retention",
+ "name": "Data retention",
+ "description": "Keep a historical record of your data.",
+ "unit": "years",
+ "limit": 7,
"note": null
}
],
@@ -654,7 +723,7 @@
},
{
"flat_amount_usd": "0",
- "unit_amount_usd": "0.0003068",
+ "unit_amount_usd": "0.00031",
"up_to": 2000000,
"current_amount_usd": "0.00",
"current_usage": 0,
@@ -708,7 +777,9 @@
}
],
"current_plan": true,
- "included_if": null
+ "included_if": null,
+ "contact_support": null,
+ "unit_amount_usd": null
}
],
"type": "product_analytics",
@@ -725,7 +796,7 @@
},
{
"flat_amount_usd": "0",
- "unit_amount_usd": "0.0003068",
+ "unit_amount_usd": "0.00031",
"up_to": 2000000,
"current_amount_usd": "0.00",
"current_usage": 0,
@@ -782,7 +853,7 @@
"unit_amount_usd": null,
"current_amount_usd_before_addons": "0.00",
"current_amount_usd": "0.00",
- "current_usage": 35,
+ "current_usage": 0,
"usage_limit": null,
"has_exceeded_limit": false,
"percentage_usage": 0,
@@ -876,7 +947,7 @@
{
"plan_key": "addon-20230509",
"product_key": "group_analytics",
- "name": "Group analytics",
+ "name": "Addon",
"description": "Associate events with a group or entity - such as a company, community, or project. Analyze these events as if they were sent by that entity itself. Great for B2B, marketplaces, and more.",
"image_url": "https://posthog.com/images/product/product-icons/group-analytics.svg",
"docs_url": "https://posthog.com/docs/product-analytics/group-analytics",
@@ -959,106 +1030,44 @@
}
],
"current_plan": false,
- "included_if": null
- }
- ],
- "contact_support": false
- }
- ],
- "contact_support": false,
- "inclusion_only": false
- },
- {
- "name": "Session replay",
- "description": "Searchable recordings of people using your app or website with console logs and behavioral bucketing.",
- "price_description": null,
- "usage_key": "recordings",
- "image_url": "https://posthog.com/images/product/product-icons/session-replay.svg",
- "icon_key": "IconRewindPlay",
- "docs_url": "https://posthog.com/docs/session-replay",
- "subscribed": true,
- "plans": [
- {
- "plan_key": "free-20230117",
- "product_key": "session_replay",
- "name": "Session replay",
- "description": "Searchable recordings of people using your app or website with console logs and behavioral bucketing.",
- "image_url": "https://posthog.com/images/product/product-icons/session-replay.svg",
- "docs_url": "https://posthog.com/docs/session-replay",
- "note": null,
- "unit": "recording",
- "free_allocation": 15000,
- "features": [
- {
- "key": "console_logs",
- "name": "Console logs",
- "description": "Diagnose issues by inspecting errors in the user's network console",
- "unit": null,
- "limit": null,
- "note": null
- },
- {
- "key": "recordings_playlists",
- "name": "Recording playlists",
- "description": "Create playlists of certain session recordings to easily find and watch them again in the future.",
- "unit": "playlists",
- "limit": 5,
- "note": null
+ "included_if": null,
+ "contact_support": null,
+ "unit_amount_usd": null
}
],
- "tiers": null,
- "current_plan": true,
- "included_if": null
+ "contact_support": null
},
{
- "plan_key": "paid-20230117",
- "product_key": "session_replay",
- "name": "Session replay",
- "description": "Searchable recordings of people using your app or website with console logs and behavioral bucketing.",
- "image_url": "https://posthog.com/images/product/product-icons/session-replay.svg",
- "docs_url": "https://posthog.com/docs/session-replay",
- "note": null,
- "unit": "recording",
- "free_allocation": null,
- "features": [
- {
- "key": "console_logs",
- "name": "Console logs",
- "description": "Diagnose issues by inspecting errors in the user's network console",
- "unit": null,
- "limit": null,
- "note": null
- },
+ "name": "Data pipelines",
+ "description": "Get your PostHog data into your data warehouse or other tools like BigQuery, Redshift, Customer.io, and more.",
+ "price_description": null,
+ "image_url": "None",
+ "icon_key": "IconDecisionTree",
+ "docs_url": "https://posthog.com/docs/cdp/batch-exports",
+ "type": "data_pipelines",
+ "tiers": [
{
- "key": "recordings_playlists",
- "name": "Recording playlists",
- "description": "Create playlists of certain session recordings to easily find and watch them again in the future.",
- "unit": null,
- "limit": null,
- "note": null
+ "flat_amount_usd": "0",
+ "unit_amount_usd": "0",
+ "up_to": 1000000,
+ "current_amount_usd": "0.00",
+ "current_usage": 0,
+ "projected_usage": null,
+ "projected_amount_usd": null
},
{
- "key": "recordings_performance",
- "name": "Network performance on recordings",
- "description": "See your end-user's network performance and information alongside session recordings.",
- "unit": null,
- "limit": null,
- "note": null
+ "flat_amount_usd": "0",
+ "unit_amount_usd": "0.000248",
+ "up_to": 2000000,
+ "current_amount_usd": "0.00",
+ "current_usage": 0,
+ "projected_usage": null,
+ "projected_amount_usd": null
},
- {
- "key": "recordings_file_export",
- "name": "Recordings file export",
- "description": "Save session recordings as a file to your local filesystem.",
- "unit": null,
- "limit": null,
- "note": null
- }
- ],
- "tiers": [
{
"flat_amount_usd": "0",
- "unit_amount_usd": "0",
- "up_to": 15000,
+ "unit_amount_usd": "0.000104",
+ "up_to": 15000000,
"current_amount_usd": "0.00",
"current_usage": 0,
"projected_usage": null,
@@ -1066,8 +1075,8 @@
},
{
"flat_amount_usd": "0",
- "unit_amount_usd": "0.005",
- "up_to": 50000,
+ "unit_amount_usd": "0.0000655",
+ "up_to": 50000000,
"current_amount_usd": "0.00",
"current_usage": 0,
"projected_usage": null,
@@ -1075,8 +1084,8 @@
},
{
"flat_amount_usd": "0",
- "unit_amount_usd": "0.0045",
- "up_to": 150000,
+ "unit_amount_usd": "0.0000364",
+ "up_to": 100000000,
"current_amount_usd": "0.00",
"current_usage": 0,
"projected_usage": null,
@@ -1084,8 +1093,8 @@
},
{
"flat_amount_usd": "0",
- "unit_amount_usd": "0.004",
- "up_to": 500000,
+ "unit_amount_usd": "0.0000187",
+ "up_to": 250000000,
"current_amount_usd": "0.00",
"current_usage": 0,
"projected_usage": null,
@@ -1093,7 +1102,7 @@
},
{
"flat_amount_usd": "0",
- "unit_amount_usd": "0.0035",
+ "unit_amount_usd": "0.0000042",
"up_to": null,
"current_amount_usd": "0.00",
"current_usage": 0,
@@ -1101,109 +1110,384 @@
"projected_amount_usd": null
}
],
- "current_plan": false,
- "included_if": null
+ "tiered": true,
+ "included_with_main_product": false,
+ "subscribed": false,
+ "unit": "event",
+ "unit_amount_usd": null,
+ "current_amount_usd": null,
+ "current_usage": 0,
+ "projected_usage": 0,
+ "projected_amount_usd": "0.00",
+ "plans": [
+ {
+ "plan_key": "addon-20240111",
+ "product_key": "data_pipelines",
+ "name": "Addon",
+ "description": "Get your PostHog data into your data warehouse or other tools like BigQuery, Redshift, Customer.io, and more.",
+ "image_url": null,
+ "docs_url": "https://posthog.com/docs/cdp/batch-exports",
+ "note": null,
+ "unit": "event",
+ "free_allocation": null,
+ "features": [
+ {
+ "key": "data_pipelines",
+ "name": "Data pipelines",
+ "description": "Get your PostHog data into your data warehouse or other tools like BigQuery, Redshift, Customer.io, and more.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ }
+ ],
+ "tiers": [
+ {
+ "flat_amount_usd": "0",
+ "unit_amount_usd": "0",
+ "up_to": 1000000,
+ "current_amount_usd": "0.00",
+ "current_usage": 0,
+ "projected_usage": null,
+ "projected_amount_usd": null
+ },
+ {
+ "flat_amount_usd": "0",
+ "unit_amount_usd": "0.000248",
+ "up_to": 2000000,
+ "current_amount_usd": "0.00",
+ "current_usage": 0,
+ "projected_usage": null,
+ "projected_amount_usd": null
+ },
+ {
+ "flat_amount_usd": "0",
+ "unit_amount_usd": "0.000104",
+ "up_to": 15000000,
+ "current_amount_usd": "0.00",
+ "current_usage": 0,
+ "projected_usage": null,
+ "projected_amount_usd": null
+ },
+ {
+ "flat_amount_usd": "0",
+ "unit_amount_usd": "0.0000655",
+ "up_to": 50000000,
+ "current_amount_usd": "0.00",
+ "current_usage": 0,
+ "projected_usage": null,
+ "projected_amount_usd": null
+ },
+ {
+ "flat_amount_usd": "0",
+ "unit_amount_usd": "0.0000364",
+ "up_to": 100000000,
+ "current_amount_usd": "0.00",
+ "current_usage": 0,
+ "projected_usage": null,
+ "projected_amount_usd": null
+ },
+ {
+ "flat_amount_usd": "0",
+ "unit_amount_usd": "0.0000187",
+ "up_to": 250000000,
+ "current_amount_usd": "0.00",
+ "current_usage": 0,
+ "projected_usage": null,
+ "projected_amount_usd": null
+ },
+ {
+ "flat_amount_usd": "0",
+ "unit_amount_usd": "0.0000042",
+ "up_to": null,
+ "current_amount_usd": "0.00",
+ "current_usage": 0,
+ "projected_usage": null,
+ "projected_amount_usd": null
+ }
+ ],
+ "current_plan": false,
+ "included_if": null,
+ "contact_support": null,
+ "unit_amount_usd": null
+ }
+ ],
+ "contact_support": null
}
],
- "type": "session_replay",
- "free_allocation": 15000,
- "tiers": null,
- "tiered": true,
- "unit_amount_usd": null,
- "current_amount_usd_before_addons": null,
- "current_amount_usd": null,
- "current_usage": 0,
- "usage_limit": 15000,
- "has_exceeded_limit": false,
- "percentage_usage": 0,
- "projected_usage": 0,
- "projected_amount_usd": null,
- "unit": "recording",
- "addons": [],
"contact_support": false,
- "inclusion_only": false
+ "inclusion_only": false,
+ "features": [
+ {
+ "key": "product_analytics_data_retention",
+ "name": "Data retention",
+ "description": "Keep a historical record of your data.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "dashboards",
+ "name": "Dashboards",
+ "description": "Save trends, funnels, and other insights for easy reference by your whole team.",
+ "images": {
+ "light": "https://posthog.com/images/products/product-analytics/screenshot-dashboards.png",
+ "dark": "https://posthog.com/images/products/product-analytics/screenshot-dashboards-dark.png"
+ },
+ "icon_key": null,
+ "type": "primary"
+ },
+ {
+ "key": "funnels",
+ "name": "Funnels",
+ "description": "Visualize user dropoff between a sequence of events. See conversion rate over time, use flexible step ordering, set exclusion steps, and more.",
+ "images": {
+ "light": "https://posthog.com/images/products/product-analytics/screenshot-funnels.png",
+ "dark": "https://posthog.com/images/products/product-analytics/screenshot-funnels-dark.png"
+ },
+ "icon_key": null,
+ "type": "primary"
+ },
+ {
+ "key": "graphs_trends",
+ "name": "Graphs & trends",
+ "description": "Plot any number of events or actions over time.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "paths",
+ "name": "User paths",
+ "description": "Limited paths excludes: customizing path insights by setting the maximum number of paths, number of people on each path, how path names appear",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "insights",
+ "name": "Unlimited Insights",
+ "description": "Trends, funnels, retention, user paths, stickiness, and lifecycle insights to visualize your data.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "subscriptions",
+ "name": "Insight & dashboard subscriptions",
+ "description": "Create a subscription for any insight or dashboard in PostHog to receive regular reports with their updates.",
+ "images": null,
+ "icon_key": "IconNotification",
+ "type": "secondary"
+ },
+ {
+ "key": "paths_advanced",
+ "name": "Advanced paths",
+ "description": "Customize your path insights by setting the maximum number of paths, number of people on each path, and how path names should appear.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "correlation_analysis",
+ "name": "Correlation analysis",
+ "description": "Automatically highlight significant factors that affect the conversion rate of users within a funnel.",
+ "images": {
+ "light": "https://posthog.com/images/products/product-analytics/screenshot-correlation-analysis.png",
+ "dark": "https://posthog.com/images/products/product-analytics/screenshot-correlation-analysis-dark.png"
+ },
+ "icon_key": null,
+ "type": "primary"
+ },
+ {
+ "key": "behavioral_cohort_filtering",
+ "name": "Lifecycle",
+ "description": "Discover how your active users break down, highlighting those who have recently stopped being active or those who have just become active for the first time.",
+ "images": {
+ "light": "https://posthog.com/images/products/product-analytics/screenshot-lifecycle.png",
+ "dark": "https://posthog.com/images/products/product-analytics/screenshot-lifecycle-dark.png"
+ },
+ "icon_key": null,
+ "type": "primary"
+ },
+ {
+ "key": "product_analytics_retention",
+ "name": "Retention",
+ "description": "See how many users return on subsequent days after performing an event the first time, or recurrently.",
+ "images": {
+ "light": "https://posthog.com/images/products/product-analytics/screenshot-retention.png",
+ "dark": "https://posthog.com/images/products/product-analytics/screenshot-retention-dark.png"
+ },
+ "icon_key": null,
+ "type": "primary"
+ },
+ {
+ "key": "product_analytics_stickiness",
+ "name": "Stickiness",
+ "description": "Learn how many times users perform a specific event in a period of time.",
+ "images": {
+ "light": "https://posthog.com/images/products/product-analytics/screenshot-stickiness.png",
+ "dark": "https://posthog.com/images/products/product-analytics/screenshot-stickiness-dark.png"
+ },
+ "icon_key": null,
+ "type": "primary"
+ },
+ {
+ "key": "autocapture",
+ "name": "Autocapture",
+ "description": "Add PostHog.js to your website or web app to track all event data and retroactively define events.",
+ "images": null,
+ "icon_key": "IconBolt",
+ "type": "secondary"
+ },
+ {
+ "key": "data_visualization",
+ "name": "Data visualization",
+ "description": "Filter data by user property, group data, and use formulas in queries.",
+ "images": null,
+ "icon_key": "IconPieChart",
+ "type": "secondary"
+ },
+ {
+ "key": "product_analytics_sql_queries",
+ "name": "Query with SQL",
+ "description": "Use PostHog’s filtering interface or switch into SQL mode for more powerful querying.",
+ "images": null,
+ "icon_key": "IconTerminal",
+ "type": "secondary"
+ }
+ ]
},
{
- "name": "Feature flags & A/B testing",
- "description": "Safely roll out new features and run experiments on changes.",
+ "name": "Session replay",
+ "headline": "Watch how users experience your app",
+ "description": "Session replay helps you diagnose issues and understand user behavior in your product or website.",
"price_description": null,
- "usage_key": "feature_flag_requests",
- "image_url": "https://posthog.com/images/product/product-icons/feature-flags.svg",
- "icon_key": "IconToggle",
- "docs_url": "https://posthog.com/docs/feature-flags",
- "subscribed": false,
+ "usage_key": "recordings",
+ "image_url": "https://posthog.com/images/products/session-replay/session-replay.png",
+ "screenshot_url": "https://posthog.com/images/products/session-replay/screenshot-session-replay.png",
+ "icon_key": "IconRewindPlay",
+ "docs_url": "https://posthog.com/docs/session-replay",
+ "subscribed": true,
"plans": [
{
- "plan_key": "free-20230117",
- "product_key": "feature_flags",
- "name": "Feature flags & A/B testing",
- "description": "Safely roll out new features and run experiments on changes.",
- "image_url": "https://posthog.com/images/product/product-icons/feature-flags.svg",
- "docs_url": "https://posthog.com/docs/feature-flags",
+ "plan_key": "free-20231218",
+ "product_key": "session_replay",
+ "name": "Free",
+ "description": "Session replay helps you diagnose issues and understand user behavior in your product or website.",
+ "image_url": "https://posthog.com/images/products/session-replay/session-replay.png",
+ "docs_url": "https://posthog.com/docs/session-replay",
"note": null,
- "unit": "request",
- "free_allocation": 1000000,
+ "unit": "recording",
+ "free_allocation": 5000,
"features": [
{
- "key": "boolean_flags",
- "name": "Boolean feature flags",
- "description": "Turn features on and off for specific users.",
+ "key": "console_logs",
+ "name": "Console logs",
+ "description": "Debug issues faster by browsing the user's console.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "persist_flags_cross_authentication",
- "name": "Persist flags across authentication",
- "description": "Persist feature flags across authentication events so that flag values don't change when an anonymous user logs in and becomes identified.",
+ "key": "recordings_performance",
+ "name": "Network performance on recordings",
+ "description": "See your end-user's network performance and information alongside session recordings.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "feature_flag_payloads",
- "name": "Payloads",
- "description": "Send additional pieces of information (any valid JSON) to your app when a flag is matched for a user.",
+ "key": "session_replay_network_payloads",
+ "name": "Network monitor",
+ "description": "Analyze performance and network calls.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "multiple_release_conditions",
- "name": "Multiple release conditions",
- "description": "Target multiple groups of users with different release conditions for the same feature flag.",
+ "key": "recordings_playlists",
+ "name": "Recording playlists",
+ "description": "Create playlists of certain session recordings to easily find and watch them again in the future.",
+ "unit": "playlists",
+ "limit": 5,
+ "note": null
+ },
+ {
+ "key": "session_replay_data_retention",
+ "name": "Data retention",
+ "description": "Keep a historical record of your data.",
+ "unit": "month",
+ "limit": 1,
+ "note": null
+ },
+ {
+ "key": "replay_mask_sensitive_data",
+ "name": "Block sensitive data",
+ "description": "Disable capturing data from any DOM element with HTML attributes or a customizable config.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "release_condition_overrides",
- "name": "Release condition overrides",
- "description": "For any release condition, specify which flag value the users or groups in that condition should receive.",
+ "key": "replay_sharing_embedding",
+ "name": "Share and embed",
+ "description": "Share replays directly via URL or embed via iframe.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "targeting_by_group",
- "name": "Flag targeting by groups",
- "description": "Target feature flag release conditions by group properties, not just user properties.",
+ "key": "replay_product_analytics_integration",
+ "name": "Event timeline",
+ "description": "See a history of everything that happened in a user's session.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "local_evaluation_and_bootstrapping",
- "name": "Local evaluation & bootstrapping",
- "description": "Bootstrap flags on initialization so all flags are available immediately, without having to make extra network requests.",
+ "key": "replay_filter_person_properties",
+ "name": "Filter person properties",
+ "description": "Filter by person properties to quickly find relevant recordings.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "flag_usage_stats",
- "name": "Flag usage stats",
- "description": "See how many times a flag has been evaluated, how many times each variant has been returned, and what values users received.",
+ "key": "replay_filter_events",
+ "name": "Filter events",
+ "description": "Filter by events to quickly find relevant recordings.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "replay_dom_explorer",
+ "name": "DOM Explorer",
+ "description": "Freeze snapshots of recordings and explore the DOM with your browser dev tools.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "session_replay_sampling",
+ "name": "Sample recorded sessions",
+ "description": "Restrict the percentage of sessions that will be recorded.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "replay_recording_duration_minimum",
+ "name": "Minimum duration",
+ "description": "Only record sessions longer than the minimum duration.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "replay_feature_flag_based_recording",
+ "name": "Record via feature flag",
+ "description": "Only record sessions for users that have the flag enabled.",
"unit": null,
"limit": null,
"note": null
@@ -1211,127 +1495,137 @@
],
"tiers": null,
"current_plan": true,
- "included_if": null
+ "included_if": null,
+ "contact_support": null,
+ "unit_amount_usd": null
},
{
- "plan_key": "paid-20230623",
- "product_key": "feature_flags",
- "name": "Feature flags & A/B testing",
- "description": "Safely roll out new features and run experiments on changes.",
- "image_url": "https://posthog.com/images/product/product-icons/feature-flags.svg",
- "docs_url": "https://posthog.com/docs/feature-flags",
+ "plan_key": "paid-20231218",
+ "product_key": "session_replay",
+ "name": "Paid",
+ "description": "Session replay helps you diagnose issues and understand user behavior in your product or website.",
+ "image_url": "https://posthog.com/images/products/session-replay/session-replay.png",
+ "docs_url": "https://posthog.com/docs/session-replay",
"note": null,
- "unit": "request",
+ "unit": "recording",
"free_allocation": null,
"features": [
{
- "key": "boolean_flags",
- "name": "Boolean feature flags",
- "description": "Turn features on and off for specific users.",
+ "key": "console_logs",
+ "name": "Console logs",
+ "description": "Debug issues faster by browsing the user's console.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "multivariate_flags",
- "name": "Multivariate feature flags & experiments",
- "description": "Create three or more variants of a feature flag to test or release different versions of a feature.",
+ "key": "recordings_playlists",
+ "name": "Recording playlists",
+ "description": "Create playlists of certain session recordings to easily find and watch them again in the future.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "persist_flags_cross_authentication",
- "name": "Persist flags across authentication",
- "description": "Persist feature flags across authentication events so that flag values don't change when an anonymous user logs in and becomes identified.",
+ "key": "recordings_performance",
+ "name": "Network performance on recordings",
+ "description": "See your end-user's network performance and information alongside session recordings.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "feature_flag_payloads",
- "name": "Payloads",
- "description": "Send additional pieces of information (any valid JSON) to your app when a flag is matched for a user.",
+ "key": "session_replay_network_payloads",
+ "name": "Network monitor",
+ "description": "Analyze performance and network calls.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "multiple_release_conditions",
- "name": "Multiple release conditions",
- "description": "Target multiple groups of users with different release conditions for the same feature flag.",
+ "key": "recordings_file_export",
+ "name": "Download recordings",
+ "description": "Retain recordings beyond data retention limits.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "release_condition_overrides",
- "name": "Release condition overrides",
- "description": "For any release condition, specify which flag value the users or groups in that condition should receive.",
+ "key": "session_replay_data_retention",
+ "name": "Data retention",
+ "description": "Keep a historical record of your data.",
+ "unit": "months",
+ "limit": 3,
+ "note": null
+ },
+ {
+ "key": "replay_mask_sensitive_data",
+ "name": "Block sensitive data",
+ "description": "Disable capturing data from any DOM element with HTML attributes or a customizable config.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "targeting_by_group",
- "name": "Flag targeting by groups",
- "description": "Target feature flag release conditions by group properties, not just user properties.",
+ "key": "replay_sharing_embedding",
+ "name": "Share and embed",
+ "description": "Share replays directly via URL or embed via iframe.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "local_evaluation_and_bootstrapping",
- "name": "Local evaluation & bootstrapping",
- "description": "Bootstrap flags on initialization so all flags are available immediately, without having to make extra network requests.",
+ "key": "replay_product_analytics_integration",
+ "name": "Event timeline",
+ "description": "See a history of everything that happened in a user's session.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "flag_usage_stats",
- "name": "Flag usage stats",
- "description": "See how many times a flag has been evaluated, how many times each variant has been returned, and what values users received.",
+ "key": "replay_filter_person_properties",
+ "name": "Filter person properties",
+ "description": "Filter by person properties to quickly find relevant recordings.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "experimentation",
- "name": "A/B testing",
- "description": "Test changes to your product and evaluate the impacts those changes make.",
+ "key": "replay_filter_events",
+ "name": "Filter events",
+ "description": "Filter by events to quickly find relevant recordings.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "group_experiments",
- "name": "Group experiments",
- "description": "Target experiments to specific groups of users so everyone in the same group gets the same variant.",
+ "key": "replay_dom_explorer",
+ "name": "DOM Explorer",
+ "description": "Freeze snapshots of recordings and explore the DOM with your browser dev tools.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "funnel_experiments",
- "name": "Funnel & trend experiments",
- "description": "Measure the impact of a change on a aggregate values or a series of events, like a signup flow.",
+ "key": "session_replay_sampling",
+ "name": "Sample recorded sessions",
+ "description": "Restrict the percentage of sessions that will be recorded.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "secondary_metrics",
- "name": "Secondary experiment metrics",
- "description": "Track additional metrics to see how your experiment affects other parts of your app or different flows.",
+ "key": "replay_recording_duration_minimum",
+ "name": "Minimum duration",
+ "description": "Only record sessions longer than the minimum duration.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "statistical_analysis",
- "name": "Statistical analysis",
- "description": "Get a statistical analysis of your experiment results to see if the results are significant, or if they're likely just due to chance.",
+ "key": "replay_feature_flag_based_recording",
+ "name": "Record via feature flag",
+ "description": "Only record sessions for users that have the flag enabled.",
"unit": null,
"limit": null,
"note": null
@@ -1341,7 +1635,7 @@
{
"flat_amount_usd": "0",
"unit_amount_usd": "0",
- "up_to": 1000000,
+ "up_to": 5000,
"current_amount_usd": "0.00",
"current_usage": 0,
"projected_usage": null,
@@ -1349,8 +1643,8 @@
},
{
"flat_amount_usd": "0",
- "unit_amount_usd": "0.0001",
- "up_to": 2000000,
+ "unit_amount_usd": "0.04",
+ "up_to": 15000,
"current_amount_usd": "0.00",
"current_usage": 0,
"projected_usage": null,
@@ -1358,8 +1652,8 @@
},
{
"flat_amount_usd": "0",
- "unit_amount_usd": "0.000045",
- "up_to": 10000000,
+ "unit_amount_usd": "0.003",
+ "up_to": 50000,
"current_amount_usd": "0.00",
"current_usage": 0,
"projected_usage": null,
@@ -1367,8 +1661,8 @@
},
{
"flat_amount_usd": "0",
- "unit_amount_usd": "0.000025",
- "up_to": 50000000,
+ "unit_amount_usd": "0.0027",
+ "up_to": 150000,
"current_amount_usd": "0.00",
"current_usage": 0,
"projected_usage": null,
@@ -1376,7 +1670,16 @@
},
{
"flat_amount_usd": "0",
- "unit_amount_usd": "0.00001",
+ "unit_amount_usd": "0.0025",
+ "up_to": 500000,
+ "current_amount_usd": "0.00",
+ "current_usage": 0,
+ "projected_usage": null,
+ "projected_amount_usd": null
+ },
+ {
+ "flat_amount_usd": "0",
+ "unit_amount_usd": "0.002",
"up_to": null,
"current_amount_usd": "0.00",
"current_usage": 0,
@@ -1385,224 +1688,472 @@
}
],
"current_plan": false,
- "included_if": null
+ "included_if": null,
+ "contact_support": null,
+ "unit_amount_usd": null
}
],
- "type": "feature_flags",
- "free_allocation": 1000000,
+ "type": "session_replay",
+ "free_allocation": 5000,
"tiers": null,
"tiered": true,
"unit_amount_usd": null,
"current_amount_usd_before_addons": null,
"current_amount_usd": null,
"current_usage": 0,
- "usage_limit": 1000000,
+ "usage_limit": 5000,
"has_exceeded_limit": false,
- "percentage_usage": 0,
+ "percentage_usage": 0.0,
"projected_usage": 0,
"projected_amount_usd": null,
- "unit": "request",
+ "unit": "recording",
"addons": [],
"contact_support": false,
- "inclusion_only": false
+ "inclusion_only": false,
+ "features": [
+ {
+ "key": "recordings_playlists",
+ "name": "Recording playlists",
+ "description": "Create playlists of certain session recordings to easily find and watch them again in the future.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "session_replay_data_retention",
+ "name": "Data retention",
+ "description": "Keep a historical record of your data.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "console_logs",
+ "name": "Console logs",
+ "description": "Debug issues faster by browsing the user's console.",
+ "images": {
+ "light": "https://posthog.com/images/products/session-replay/console.png",
+ "dark": "https://posthog.com/images/products/session-replay/console-dark.png"
+ },
+ "icon_key": null,
+ "type": "primary"
+ },
+ {
+ "key": "recordings_performance",
+ "name": "Network performance on recordings",
+ "description": "See your end-user's network performance and information alongside session recordings.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "session_replay_network_payloads",
+ "name": "Network monitor",
+ "description": "Analyze performance and network calls.",
+ "images": {
+ "light": "https://posthog.com/images/products/session-replay/network.png",
+ "dark": "https://posthog.com/images/products/session-replay/network-dark.png"
+ },
+ "icon_key": null,
+ "type": "primary"
+ },
+ {
+ "key": "recordings_file_export",
+ "name": "Download recordings",
+ "description": "Retain recordings beyond data retention limits.",
+ "images": null,
+ "icon_key": "IconDownload",
+ "type": "secondary"
+ },
+ {
+ "key": "session_replay_sampling",
+ "name": "Sample recorded sessions",
+ "description": "Restrict the percentage of sessions that will be recorded.",
+ "images": null,
+ "icon_key": "IconSampling",
+ "type": "secondary"
+ },
+ {
+ "key": "replay_recording_duration_minimum",
+ "name": "Minimum duration",
+ "description": "Only record sessions longer than the minimum duration.",
+ "images": null,
+ "icon_key": "IconClock",
+ "type": "secondary"
+ },
+ {
+ "key": "replay_feature_flag_based_recording",
+ "name": "Record via feature flag",
+ "description": "Only record sessions for users that have the flag enabled.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "replay_mask_sensitive_data",
+ "name": "Block sensitive data",
+ "description": "Disable capturing data from any DOM element with HTML attributes or a customizable config.",
+ "images": null,
+ "icon_key": "IconPassword",
+ "type": "secondary"
+ },
+ {
+ "key": "replay_sharing_embedding",
+ "name": "Share and embed",
+ "description": "Share replays directly via URL or embed via iframe.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "replay_product_analytics_integration",
+ "name": "Event timeline",
+ "description": "See a history of everything that happened in a user's session.",
+ "images": {
+ "light": "https://posthog.com/images/products/session-replay/timeline.png",
+ "dark": "https://posthog.com/images/products/session-replay/timeline-dark.png"
+ },
+ "icon_key": null,
+ "type": "primary"
+ },
+ {
+ "key": "replay_filter_person_properties",
+ "name": "Filter person properties",
+ "description": "Filter by person properties to quickly find relevant recordings.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "replay_filter_events",
+ "name": "Filter events",
+ "description": "Filter by events to quickly find relevant recordings.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "replay_dom_explorer",
+ "name": "DOM Explorer",
+ "description": "Freeze snapshots of recordings and explore the DOM with your browser dev tools.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "works_with_posthog_js",
+ "name": "Capture sessions without extra code",
+ "description": "Works with PostHog.js",
+ "images": null,
+ "icon_key": "IconBolt",
+ "type": "secondary"
+ },
+ {
+ "key": "replay_automatic_playlists",
+ "name": "Automatic playlists",
+ "description": "Filter by user behavior, user properties, or time.",
+ "images": null,
+ "icon_key": "IconPlaylist",
+ "type": "secondary"
+ }
+ ]
},
{
- "name": "Surveys",
- "description": "Collect feedback from your users. Multiple choice, rating, open text, and more.",
+ "name": "Feature flags & A/B testing",
+ "headline": "Safely roll out features and A/B tests to specific users or groups",
+ "description": "Test changes with small groups of users before rolling out wider. Analyze usage with product analytics and session replay.",
"price_description": null,
- "usage_key": "survey_responses",
- "image_url": "https://posthog.com/images/product/product-icons/surveys.svg",
- "icon_key": "IconMessage",
- "docs_url": "https://posthog.com/docs/surveys",
+ "usage_key": "feature_flag_requests",
+ "image_url": "https://posthog.com/images/products/feature-flags/feature-flags.png",
+ "screenshot_url": "https://posthog.com/images/products/feature-flags/screenshot-feature-flags.png",
+ "icon_key": "IconToggle",
+ "docs_url": "https://posthog.com/docs/feature-flags",
"subscribed": false,
"plans": [
{
- "plan_key": "free-20230928",
- "product_key": "surveys",
- "name": "Surveys",
- "description": "Collect feedback from your users. Multiple choice, rating, open text, and more.",
- "image_url": "https://posthog.com/images/product/product-icons/surveys.svg",
- "docs_url": "https://posthog.com/docs/surveys",
+ "plan_key": "free-20230117",
+ "product_key": "feature_flags",
+ "name": "Free",
+ "description": "Test changes with small groups of users before rolling out wider. Analyze usage with product analytics and session replay.",
+ "image_url": "https://posthog.com/images/products/feature-flags/feature-flags.png",
+ "docs_url": "https://posthog.com/docs/feature-flags",
"note": null,
- "unit": "survey response",
- "free_allocation": 250,
+ "unit": "request",
+ "free_allocation": 1000000,
"features": [
{
- "key": "surveys_unlimited_surveys",
- "name": "Unlimited surveys",
- "description": "Create as many surveys as you want.",
+ "key": "boolean_flags",
+ "name": "Boolean feature flags",
+ "description": "Turn features on and off for specific users.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "surveys_all_question_types",
- "name": "All question types",
- "description": "Rating scale (for NPS and the like), multiple choice, single choice, emoji rating, link, free text.",
+ "key": "multivariate_flags",
+ "name": "Multivariate feature flags & experiments",
+ "description": "Create three or more variants of a feature flag to test or release different versions of a feature.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "surveys_user_targeting",
- "name": "User property targeting",
- "description": "Target users based on any of their user properties.",
+ "key": "persist_flags_cross_authentication",
+ "name": "Persist flags across authentication",
+ "description": "Persist feature flags across authentication events so that flag values don't change when an anonymous user logs in and becomes identified.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "surveys_user_sampling",
- "name": "User sampling",
- "description": "Sample users to only survey a portion of the users who match the criteria.",
+ "key": "feature_flag_payloads",
+ "name": "Test changes without code",
+ "description": "Use JSON payloads to change text, visuals, or entire blocks of code without subsequent deployments.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "surveys_api_mode",
- "name": "API mode",
- "description": "Create surveys via the API.",
+ "key": "multiple_release_conditions",
+ "name": "Multiple release conditions",
+ "description": "Customize your rollout strategy by user or group properties, cohort, or trafic percentage.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "surveys_results_analysis",
- "name": "Results analysis",
- "description": "Analyze your survey results including completion rates and drop offs.",
+ "key": "release_condition_overrides",
+ "name": "Release condition overrides",
+ "description": "For any release condition, specify which flag value the users or groups in that condition should receive.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "surveys_templates",
- "name": "Templates",
- "description": "Use our templates to get started quickly with NPS, customer satisfaction surveys, user interviews, and more.",
+ "key": "targeting_by_group",
+ "name": "Flag targeting by groups",
+ "description": "Target feature flag release conditions by group properties, not just user properties.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "local_evaluation_and_bootstrapping",
+ "name": "Local evaluation & bootstrapping",
+ "description": "Bootstrap flags on initialization so all flags are available immediately, without having to make extra network requests.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "flag_usage_stats",
+ "name": "Flag usage stats",
+ "description": "See how many times a flag has been evaluated, how many times each variant has been returned, and what values users received.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "experimentation",
+ "name": "A/B testing",
+ "description": "Test changes to your product and evaluate the impacts those changes make.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "funnel_experiments",
+ "name": "Funnel & trend experiments",
+ "description": "Measure the impact of a change on a aggregate values or a series of events, like a signup flow.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "secondary_metrics",
+ "name": "Secondary experiment metrics",
+ "description": "Track additional metrics to see how your experiment affects other parts of your app or different flows.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "statistical_analysis",
+ "name": "Statistical analysis",
+ "description": "Get a statistical analysis of your experiment results to see if the results are significant, or if they're likely just due to chance.",
"unit": null,
"limit": null,
"note": null
+ },
+ {
+ "key": "feature_flags_data_retention",
+ "name": "Data retention",
+ "description": "Keep a historical record of your data.",
+ "unit": "year",
+ "limit": 1,
+ "note": null
}
],
"tiers": null,
"current_plan": true,
- "included_if": null
+ "included_if": null,
+ "contact_support": null,
+ "unit_amount_usd": null
},
{
- "plan_key": "paid-20230928",
- "product_key": "surveys",
- "name": "Surveys",
- "description": "Collect feedback from your users. Multiple choice, rating, open text, and more.",
- "image_url": "https://posthog.com/images/product/product-icons/surveys.svg",
- "docs_url": "https://posthog.com/docs/surveys",
+ "plan_key": "paid-20230623",
+ "product_key": "feature_flags",
+ "name": "Paid",
+ "description": "Test changes with small groups of users before rolling out wider. Analyze usage with product analytics and session replay.",
+ "image_url": "https://posthog.com/images/products/feature-flags/feature-flags.png",
+ "docs_url": "https://posthog.com/docs/feature-flags",
"note": null,
- "unit": "survey response",
+ "unit": "request",
"free_allocation": null,
"features": [
{
- "key": "surveys_unlimited_surveys",
- "name": "Unlimited surveys",
- "description": "Create as many surveys as you want.",
+ "key": "boolean_flags",
+ "name": "Boolean feature flags",
+ "description": "Turn features on and off for specific users.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "surveys_all_question_types",
- "name": "All question types",
- "description": "Rating scale (for NPS and the like), multiple choice, single choice, emoji rating, link, free text.",
+ "key": "multivariate_flags",
+ "name": "Multivariate feature flags & experiments",
+ "description": "Create three or more variants of a feature flag to test or release different versions of a feature.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "surveys_multiple_questions",
- "name": "Multiple questions",
- "description": "Create multiple questions in a single survey.",
+ "key": "persist_flags_cross_authentication",
+ "name": "Persist flags across authentication",
+ "description": "Persist feature flags across authentication events so that flag values don't change when an anonymous user logs in and becomes identified.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "surveys_user_targeting",
- "name": "User property targeting",
- "description": "Target users based on any of their user properties.",
+ "key": "feature_flag_payloads",
+ "name": "Test changes without code",
+ "description": "Use JSON payloads to change text, visuals, or entire blocks of code without subsequent deployments.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "surveys_user_sampling",
- "name": "User sampling",
- "description": "Sample users to only survey a portion of the users who match the criteria.",
+ "key": "multiple_release_conditions",
+ "name": "Multiple release conditions",
+ "description": "Customize your rollout strategy by user or group properties, cohort, or trafic percentage.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "surveys_styling",
- "name": "Custom colors & positioning",
- "description": "Customize the colors of your surveys to match your brand and set survey position.",
+ "key": "release_condition_overrides",
+ "name": "Release condition overrides",
+ "description": "For any release condition, specify which flag value the users or groups in that condition should receive.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "surveys_text_html",
- "name": "Custom HTML text",
- "description": "Add custom HTML to your survey text.",
+ "key": "targeting_by_group",
+ "name": "Flag targeting by groups",
+ "description": "Target feature flag release conditions by group properties, not just user properties.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "surveys_api_mode",
- "name": "API mode",
- "description": "Create surveys via the API.",
+ "key": "local_evaluation_and_bootstrapping",
+ "name": "Local evaluation & bootstrapping",
+ "description": "Bootstrap flags on initialization so all flags are available immediately, without having to make extra network requests.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "surveys_results_analysis",
- "name": "Results analysis",
- "description": "Analyze your survey results including completion rates and drop offs.",
+ "key": "flag_usage_stats",
+ "name": "Flag usage stats",
+ "description": "See how many times a flag has been evaluated, how many times each variant has been returned, and what values users received.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "surveys_templates",
- "name": "Templates",
- "description": "Use our templates to get started quickly with NPS, customer satisfaction surveys, user interviews, and more.",
+ "key": "experimentation",
+ "name": "A/B testing",
+ "description": "Test changes to your product and evaluate the impacts those changes make.",
"unit": null,
"limit": null,
"note": null
- }
- ],
- "tiers": [
+ },
{
- "flat_amount_usd": "0",
- "unit_amount_usd": "0",
- "up_to": 250,
- "current_amount_usd": "0.00",
- "current_usage": 0,
- "projected_usage": null,
- "projected_amount_usd": null
+ "key": "funnel_experiments",
+ "name": "Funnel & trend experiments",
+ "description": "Measure the impact of a change on a aggregate values or a series of events, like a signup flow.",
+ "unit": null,
+ "limit": null,
+ "note": null
},
{
- "flat_amount_usd": "0",
- "unit_amount_usd": "0.2",
- "up_to": 500,
- "current_amount_usd": "0.00",
+ "key": "secondary_metrics",
+ "name": "Secondary experiment metrics",
+ "description": "Track additional metrics to see how your experiment affects other parts of your app or different flows.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "statistical_analysis",
+ "name": "Statistical analysis",
+ "description": "Get a statistical analysis of your experiment results to see if the results are significant, or if they're likely just due to chance.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "group_experiments",
+ "name": "Group experiments",
+ "description": "Target experiments to specific groups of users so everyone in the same group gets the same variant.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "multiple_environments",
+ "name": "Multi-environment support",
+ "description": "Test flags in local development or staging by using the same flag key across PostHog projects.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "feature_flags_data_retention",
+ "name": "Data retention",
+ "description": "Keep a historical record of your data.",
+ "unit": "years",
+ "limit": 7,
+ "note": null
+ }
+ ],
+ "tiers": [
+ {
+ "flat_amount_usd": "0",
+ "unit_amount_usd": "0",
+ "up_to": 1000000,
+ "current_amount_usd": "0.00",
"current_usage": 0,
"projected_usage": null,
"projected_amount_usd": null
},
{
"flat_amount_usd": "0",
- "unit_amount_usd": "0.1",
- "up_to": 1000,
+ "unit_amount_usd": "0.0001",
+ "up_to": 2000000,
"current_amount_usd": "0.00",
"current_usage": 0,
"projected_usage": null,
@@ -1610,8 +2161,8 @@
},
{
"flat_amount_usd": "0",
- "unit_amount_usd": "0.035",
- "up_to": 10000,
+ "unit_amount_usd": "0.000045",
+ "up_to": 10000000,
"current_amount_usd": "0.00",
"current_usage": 0,
"projected_usage": null,
@@ -1619,8 +2170,8 @@
},
{
"flat_amount_usd": "0",
- "unit_amount_usd": "0.015",
- "up_to": 20000,
+ "unit_amount_usd": "0.000025",
+ "up_to": 50000000,
"current_amount_usd": "0.00",
"current_usage": 0,
"projected_usage": null,
@@ -1628,7 +2179,7 @@
},
{
"flat_amount_usd": "0",
- "unit_amount_usd": "0.01",
+ "unit_amount_usd": "0.00001",
"up_to": null,
"current_amount_usd": "0.00",
"current_usage": 0,
@@ -1637,224 +2188,612 @@
}
],
"current_plan": false,
- "included_if": null
+ "included_if": null,
+ "contact_support": null,
+ "unit_amount_usd": null
}
],
- "type": "surveys",
- "free_allocation": 250,
+ "type": "feature_flags",
+ "free_allocation": 1000000,
"tiers": null,
"tiered": true,
"unit_amount_usd": null,
"current_amount_usd_before_addons": null,
"current_amount_usd": null,
"current_usage": 0,
- "usage_limit": 250,
+ "usage_limit": 1000000,
"has_exceeded_limit": false,
- "percentage_usage": 0,
+ "percentage_usage": 0.0,
"projected_usage": 0,
"projected_amount_usd": null,
- "unit": "survey response",
+ "unit": "request",
"addons": [],
"contact_support": false,
- "inclusion_only": false
+ "inclusion_only": false,
+ "features": [
+ {
+ "key": "boolean_flags",
+ "name": "Boolean feature flags",
+ "description": "Turn features on and off for specific users.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "feature_flags_data_retention",
+ "name": "Data retention",
+ "description": "Keep a historical record of your data.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "multivariate_flags",
+ "name": "Multivariate feature flags & experiments",
+ "description": "Create three or more variants of a feature flag to test or release different versions of a feature.",
+ "images": {
+ "light": "https://posthog.com/images/products/feature-flags/multivariate.png",
+ "dark": "https://posthog.com/images/products/feature-flags/multivariate-dark.png"
+ },
+ "icon_key": null,
+ "type": "primary"
+ },
+ {
+ "key": "persist_flags_cross_authentication",
+ "name": "Persist flags across authentication",
+ "description": "Persist feature flags across authentication events so that flag values don't change when an anonymous user logs in and becomes identified.",
+ "images": null,
+ "icon_key": "IconUnlock",
+ "type": "secondary"
+ },
+ {
+ "key": "feature_flag_payloads",
+ "name": "Test changes without code",
+ "description": "Use JSON payloads to change text, visuals, or entire blocks of code without subsequent deployments.",
+ "images": {
+ "light": "https://posthog.com/images/products/feature-flags/payloads.png",
+ "dark": "https://posthog.com/images/products/feature-flags/payloads-dark.png"
+ },
+ "icon_key": null,
+ "type": "primary"
+ },
+ {
+ "key": "multiple_release_conditions",
+ "name": "Multiple release conditions",
+ "description": "Customize your rollout strategy by user or group properties, cohort, or trafic percentage.",
+ "images": {
+ "light": "https://posthog.com/images/products/feature-flags/release-conditions.png",
+ "dark": "https://posthog.com/images/products/feature-flags/release-conditions-dark.png"
+ },
+ "icon_key": null,
+ "type": "primary"
+ },
+ {
+ "key": "release_condition_overrides",
+ "name": "Release condition overrides",
+ "description": "For any release condition, specify which flag value the users or groups in that condition should receive.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "targeting_by_group",
+ "name": "Flag targeting by groups",
+ "description": "Target feature flag release conditions by group properties, not just user properties.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "local_evaluation_and_bootstrapping",
+ "name": "Local evaluation & bootstrapping",
+ "description": "Bootstrap flags on initialization so all flags are available immediately, without having to make extra network requests.",
+ "images": null,
+ "icon_key": "IconDecisionTree",
+ "type": "secondary"
+ },
+ {
+ "key": "flag_usage_stats",
+ "name": "Flag usage stats",
+ "description": "See how many times a flag has been evaluated, how many times each variant has been returned, and what values users received.",
+ "images": {
+ "light": "https://posthog.com/images/products/feature-flags/reports.png",
+ "dark": "https://posthog.com/images/products/feature-flags/reports-dark.png"
+ },
+ "icon_key": null,
+ "type": "primary"
+ },
+ {
+ "key": "multiple_environments",
+ "name": "Multi-environment support",
+ "description": "Test flags in local development or staging by using the same flag key across PostHog projects.",
+ "images": null,
+ "icon_key": "IconStack",
+ "type": "secondary"
+ },
+ {
+ "key": "user_opt_in",
+ "name": "Early access feature opt-in widget",
+ "description": "Allow users to opt in to (or out of) specified features. Or use the API to build your own UI.",
+ "images": {
+ "light": "https://posthog.com/images/products/feature-flags/early-access.png",
+ "dark": "https://posthog.com/images/products/feature-flags/early-access-dark.png"
+ },
+ "icon_key": null,
+ "type": "primary"
+ },
+ {
+ "key": "instant_rollbacks",
+ "name": "Instant rollbacks",
+ "description": "Disable a feature without touching your codebase.",
+ "images": null,
+ "icon_key": "IconRevert",
+ "type": "secondary"
+ },
+ {
+ "key": "experimentation",
+ "name": "A/B testing",
+ "description": "Test changes to your product and evaluate the impacts those changes make.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "group_experiments",
+ "name": "Group experiments",
+ "description": "Target experiments to specific groups of users so everyone in the same group gets the same variant.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "funnel_experiments",
+ "name": "Funnel & trend experiments",
+ "description": "Measure the impact of a change on a aggregate values or a series of events, like a signup flow.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "secondary_metrics",
+ "name": "Secondary experiment metrics",
+ "description": "Track additional metrics to see how your experiment affects other parts of your app or different flows.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "statistical_analysis",
+ "name": "Statistical analysis",
+ "description": "Get a statistical analysis of your experiment results to see if the results are significant, or if they're likely just due to chance.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ }
+ ]
},
{
- "name": "Data warehouse",
- "description": "A single source for all your important data. This product is in beta. Pricing will be changing.",
+ "name": "Surveys",
+ "headline": "Ask anything with no-code surveys",
+ "description": "Build in-app popups with freeform text responses, multiple choice, NPS, ratings, and emoji reactions. Or use the API for complete control.",
"price_description": null,
- "usage_key": "synced_rows",
- "image_url": "https://posthog.com/images/product/product-icons/data-warehouse.svg",
- "icon_key": "IconServer",
- "docs_url": "https://posthog.com/docs/data-warehouse",
+ "usage_key": "survey_responses",
+ "image_url": "https://posthog.com/images/products/surveys/surveys.png",
+ "screenshot_url": "https://posthog.com/images/products/surveys/screenshot-surveys.png",
+ "icon_key": "IconMessage",
+ "docs_url": "https://posthog.com/docs/surveys",
"subscribed": false,
"plans": [
{
- "plan_key": "free-20231026",
- "product_key": "data_warehouse",
- "name": "Data warehouse",
- "description": "A single source for all your important data. This product is in beta. Pricing will be changing.",
- "image_url": "https://posthog.com/images/product/product-icons/data-warehouse.svg",
- "docs_url": "https://posthog.com/docs/data-warehouse",
+ "plan_key": "free-20230928",
+ "product_key": "surveys",
+ "name": "Free",
+ "description": "Build in-app popups with freeform text responses, multiple choice, NPS, ratings, and emoji reactions. Or use the API for complete control.",
+ "image_url": "https://posthog.com/images/products/surveys/surveys.png",
+ "docs_url": "https://posthog.com/docs/surveys",
"note": null,
- "unit": "row",
- "free_allocation": null,
+ "unit": "survey response",
+ "free_allocation": 250,
"features": [
{
- "key": "data_warehouse_manual_sync",
- "name": "Manual sync",
- "description": "Sync your data to the warehouse using your cloud storage provider.",
+ "key": "surveys_unlimited_surveys",
+ "name": "Unlimited surveys",
+ "description": "Create as many surveys as you want.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "surveys_all_question_types",
+ "name": "All question types",
+ "description": "Rating scale (for NPS and the like), multiple choice, single choice, emoji rating, link, free text.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "surveys_user_targeting",
+ "name": "Advanced user targeting",
+ "description": "Target by URL, user property, or feature flag when used with Feature flags.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "surveys_user_sampling",
+ "name": "User sampling",
+ "description": "Sample users to only survey a portion of the users who match the criteria.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "surveys_api_mode",
+ "name": "API mode",
+ "description": "Using PostHog.js? No more code required. But if want to create your own UI, we have a full API.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "data_warehouse_unified_querying",
- "name": "Unified querying",
- "description": "Query all your business and product data directly inside PostHog.",
+ "key": "surveys_results_analysis",
+ "name": "Aggregated results",
+ "description": "See feedback summarized and broken down per response, plus completion rates and drop offs.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "data_warehouse_insights_visualization",
- "name": "Insights",
- "description": "Create insights from the data you import and add them to your PostHog dashboards.",
+ "key": "surveys_templates",
+ "name": "Templates",
+ "description": "Use our templates to get started quickly with NPS, customer satisfaction surveys, user interviews, and more.",
"unit": null,
"limit": null,
"note": null
+ },
+ {
+ "key": "surveys_data_retention",
+ "name": "Data retention",
+ "description": "Keep a historical record of your data.",
+ "unit": "year",
+ "limit": 1,
+ "note": null
}
],
"tiers": null,
"current_plan": true,
- "included_if": null
+ "included_if": null,
+ "contact_support": null,
+ "unit_amount_usd": null
},
{
- "plan_key": "paid-20231026",
- "product_key": "data_warehouse",
- "name": "Data warehouse",
- "description": "A single source for all your important data. This product is in beta. Pricing will be changing.",
- "image_url": "https://posthog.com/images/product/product-icons/data-warehouse.svg",
- "docs_url": "https://posthog.com/docs/data-warehouse",
+ "plan_key": "paid-20230928",
+ "product_key": "surveys",
+ "name": "Paid",
+ "description": "Build in-app popups with freeform text responses, multiple choice, NPS, ratings, and emoji reactions. Or use the API for complete control.",
+ "image_url": "https://posthog.com/images/products/surveys/surveys.png",
+ "docs_url": "https://posthog.com/docs/surveys",
"note": null,
- "unit": "row",
+ "unit": "survey response",
"free_allocation": null,
"features": [
{
- "key": "data_warehouse_manual_sync",
- "name": "Manual sync",
- "description": "Sync your data to the warehouse using your cloud storage provider.",
+ "key": "surveys_unlimited_surveys",
+ "name": "Unlimited surveys",
+ "description": "Create as many surveys as you want.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "data_warehouse_one_click_sync",
- "name": "One-Click sync",
- "description": "Sync your data to the warehouse with one click.",
+ "key": "surveys_all_question_types",
+ "name": "All question types",
+ "description": "Rating scale (for NPS and the like), multiple choice, single choice, emoji rating, link, free text.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "data_warehouse_unified_querying",
- "name": "Unified querying",
- "description": "Query all your business and product data directly inside PostHog.",
+ "key": "surveys_multiple_questions",
+ "name": "Multiple questions",
+ "description": "Ask up to 10 questions in a single survey.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "data_warehouse_insights_visualization",
- "name": "Insights",
- "description": "Create insights from the data you import and add them to your PostHog dashboards.",
+ "key": "surveys_user_targeting",
+ "name": "Advanced user targeting",
+ "description": "Target by URL, user property, or feature flag when used with Feature flags.",
"unit": null,
"limit": null,
"note": null
- }
- ],
- "tiers": [
+ },
{
- "flat_amount_usd": "0",
- "unit_amount_usd": "0.000015",
- "up_to": null,
- "current_amount_usd": "0.00",
- "current_usage": 0,
- "projected_usage": null,
- "projected_amount_usd": null
- }
- ],
- "current_plan": false,
- "included_if": null
- }
- ],
- "type": "data_warehouse",
- "free_allocation": 0,
- "tiers": null,
- "tiered": false,
- "unit_amount_usd": null,
- "current_amount_usd_before_addons": null,
- "current_amount_usd": null,
- "current_usage": 0,
- "usage_limit": 0,
- "has_exceeded_limit": false,
- "percentage_usage": 0,
- "projected_usage": 0,
- "projected_amount_usd": null,
- "unit": "row",
- "addons": [],
- "contact_support": false,
- "inclusion_only": false
- },
- {
- "name": "Integrations + CDP",
- "description": "Connect PostHog to your favorite tools.",
- "price_description": null,
- "usage_key": null,
- "image_url": "https://posthog.com/images/product/product-icons/integrations.svg",
- "icon_key": "IconBolt",
- "docs_url": "https://posthog.com/docs/apps",
- "subscribed": null,
- "plans": [
- {
- "plan_key": "free-20230117",
- "product_key": "integrations",
- "name": "Integrations + CDP",
- "description": "Connect PostHog to your favorite tools.",
- "image_url": "https://posthog.com/images/product/product-icons/integrations.svg",
- "docs_url": "https://posthog.com/docs/apps",
- "note": null,
- "unit": null,
- "free_allocation": null,
- "features": [
+ "key": "surveys_user_sampling",
+ "name": "User sampling",
+ "description": "Sample users to only survey a portion of the users who match the criteria.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
{
- "key": "zapier",
- "name": "Zapier",
- "description": "Zapier lets you connect PostHog with thousands of the most popular apps, so you can automate your work and have more time for what matters most—no code required.",
+ "key": "surveys_styling",
+ "name": "Custom colors & positioning",
+ "description": "Customize the colors of your surveys to match your brand and set survey position.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "slack_integration",
- "name": "Slack",
- "description": "Get notified about new actions in Slack.",
+ "key": "surveys_text_html",
+ "name": "Custom HTML text",
+ "description": "Add custom HTML to your survey text.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "microsoft_teams_integration",
- "name": "Microsoft Teams",
- "description": "Get notified about new actions in Microsoft Teams.",
+ "key": "surveys_api_mode",
+ "name": "API mode",
+ "description": "Using PostHog.js? No more code required. But if want to create your own UI, we have a full API.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "discord_integration",
- "name": "Discord",
- "description": "Get notified about new actions in Discord.",
+ "key": "surveys_results_analysis",
+ "name": "Aggregated results",
+ "description": "See feedback summarized and broken down per response, plus completion rates and drop offs.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "apps",
- "name": "CDP + Apps library",
- "description": "Connect your data with 50+ apps including BigQuery, Redshift, and more.",
+ "key": "surveys_templates",
+ "name": "Templates",
+ "description": "Use our templates to get started quickly with NPS, customer satisfaction surveys, user interviews, and more.",
"unit": null,
"limit": null,
"note": null
+ },
+ {
+ "key": "surveys_data_retention",
+ "name": "Data retention",
+ "description": "Keep a historical record of your data.",
+ "unit": "years",
+ "limit": 7,
+ "note": null
}
],
- "tiers": null,
- "current_plan": false,
- "included_if": "no_active_subscription"
- },
- {
- "plan_key": "paid-20230117",
+ "tiers": [
+ {
+ "flat_amount_usd": "0",
+ "unit_amount_usd": "0",
+ "up_to": 250,
+ "current_amount_usd": "0.00",
+ "current_usage": 0,
+ "projected_usage": null,
+ "projected_amount_usd": null
+ },
+ {
+ "flat_amount_usd": "0",
+ "unit_amount_usd": "0.2",
+ "up_to": 500,
+ "current_amount_usd": "0.00",
+ "current_usage": 0,
+ "projected_usage": null,
+ "projected_amount_usd": null
+ },
+ {
+ "flat_amount_usd": "0",
+ "unit_amount_usd": "0.1",
+ "up_to": 1000,
+ "current_amount_usd": "0.00",
+ "current_usage": 0,
+ "projected_usage": null,
+ "projected_amount_usd": null
+ },
+ {
+ "flat_amount_usd": "0",
+ "unit_amount_usd": "0.035",
+ "up_to": 10000,
+ "current_amount_usd": "0.00",
+ "current_usage": 0,
+ "projected_usage": null,
+ "projected_amount_usd": null
+ },
+ {
+ "flat_amount_usd": "0",
+ "unit_amount_usd": "0.015",
+ "up_to": 20000,
+ "current_amount_usd": "0.00",
+ "current_usage": 0,
+ "projected_usage": null,
+ "projected_amount_usd": null
+ },
+ {
+ "flat_amount_usd": "0",
+ "unit_amount_usd": "0.01",
+ "up_to": null,
+ "current_amount_usd": "0.00",
+ "current_usage": 0,
+ "projected_usage": null,
+ "projected_amount_usd": null
+ }
+ ],
+ "current_plan": false,
+ "included_if": null,
+ "contact_support": null,
+ "unit_amount_usd": null
+ }
+ ],
+ "type": "surveys",
+ "free_allocation": 250,
+ "tiers": null,
+ "tiered": true,
+ "unit_amount_usd": null,
+ "current_amount_usd_before_addons": null,
+ "current_amount_usd": null,
+ "current_usage": 0,
+ "usage_limit": 250,
+ "has_exceeded_limit": false,
+ "percentage_usage": 0.0,
+ "projected_usage": 0,
+ "projected_amount_usd": null,
+ "unit": "survey response",
+ "addons": [],
+ "contact_support": false,
+ "inclusion_only": false,
+ "features": [
+ {
+ "key": "surveys_unlimited_surveys",
+ "name": "Unlimited surveys",
+ "description": "Create as many surveys as you want.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "surveys_all_question_types",
+ "name": "All question types",
+ "description": "Rating scale (for NPS and the like), multiple choice, single choice, emoji rating, link, free text.",
+ "images": {
+ "light": "https://posthog.com/images/products/surveys/question-types.png",
+ "dark": "https://posthog.com/images/products/surveys/question-types-dark.png"
+ },
+ "icon_key": null,
+ "type": "primary"
+ },
+ {
+ "key": "surveys_multiple_questions",
+ "name": "Multiple questions",
+ "description": "Ask up to 10 questions in a single survey.",
+ "images": {
+ "light": "https://posthog.com/images/products/surveys/steps.png",
+ "dark": "https://posthog.com/images/products/surveys/steps-dark.png"
+ },
+ "icon_key": null,
+ "type": "primary"
+ },
+ {
+ "key": "surveys_user_targeting",
+ "name": "Advanced user targeting",
+ "description": "Target by URL, user property, or feature flag when used with Feature flags.",
+ "images": {
+ "light": "https://posthog.com/images/products/surveys/targeting.png",
+ "dark": "https://posthog.com/images/products/surveys/targeting-dark.png"
+ },
+ "icon_key": null,
+ "type": "primary"
+ },
+ {
+ "key": "surveys_user_sampling",
+ "name": "User sampling",
+ "description": "Sample users to only survey a portion of the users who match the criteria.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "surveys_styling",
+ "name": "Custom colors & positioning",
+ "description": "Customize the colors of your surveys to match your brand and set survey position.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "surveys_text_html",
+ "name": "Custom HTML text",
+ "description": "Add custom HTML to your survey text.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "surveys_api_mode",
+ "name": "API mode",
+ "description": "Using PostHog.js? No more code required. But if want to create your own UI, we have a full API.",
+ "images": {
+ "light": "https://posthog.com/images/products/surveys/api.png",
+ "dark": "https://posthog.com/images/products/surveys/api-dark.png"
+ },
+ "icon_key": null,
+ "type": "primary"
+ },
+ {
+ "key": "surveys_results_analysis",
+ "name": "Aggregated results",
+ "description": "See feedback summarized and broken down per response, plus completion rates and drop offs.",
+ "images": null,
+ "icon_key": "IconPieChart",
+ "type": "secondary"
+ },
+ {
+ "key": "surveys_templates",
+ "name": "Templates",
+ "description": "Use our templates to get started quickly with NPS, customer satisfaction surveys, user interviews, and more.",
+ "images": {
+ "light": "https://posthog.com/images/products/surveys/templates.png",
+ "dark": "https://posthog.com/images/products/surveys/templates-dark.png"
+ },
+ "icon_key": null,
+ "type": "primary"
+ },
+ {
+ "key": "surveys_data_retention",
+ "name": "Data retention",
+ "description": "Keep a historical record of your data.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "surveys_link_question_type",
+ "name": "Link somewhere",
+ "description": "Send users to a webpage or invite them to book a meeting with a calendar invite.",
+ "images": {
+ "light": "https://posthog.com/images/products/surveys/link-scheduler.png",
+ "dark": "https://posthog.com/images/products/surveys/link-scheduler-dark.png"
+ },
+ "icon_key": null,
+ "type": "primary"
+ },
+ {
+ "key": "surveys_slack_notifications",
+ "name": "Slack notifications",
+ "description": "Send realtime survey responses to a Slack channel.",
+ "images": null,
+ "icon_key": "IconNotification",
+ "type": "secondary"
+ },
+ {
+ "key": "surveys_wait_periods",
+ "name": "Customizable wait periods",
+ "description": "Set a delay before a survey opens.",
+ "images": null,
+ "icon_key": "IconClock",
+ "type": "secondary"
+ }
+ ]
+ },
+ {
+ "name": "Integrations",
+ "headline": null,
+ "description": "Connect PostHog to your favorite tools.",
+ "price_description": null,
+ "usage_key": null,
+ "image_url": "https://posthog.com/images/product/product-icons/integrations.svg",
+ "screenshot_url": null,
+ "icon_key": "IconBolt",
+ "docs_url": "https://posthog.com/docs/apps",
+ "subscribed": null,
+ "plans": [
+ {
+ "plan_key": "free-20230117",
"product_key": "integrations",
- "name": "Integrations + CDP",
+ "name": "Free",
"description": "Connect PostHog to your favorite tools.",
"image_url": "https://posthog.com/images/product/product-icons/integrations.svg",
"docs_url": "https://posthog.com/docs/apps",
@@ -1871,83 +2810,545 @@
"note": null
},
{
- "key": "slack_integration",
- "name": "Slack",
- "description": "Get notified about new actions in Slack.",
+ "key": "slack_integration",
+ "name": "Slack",
+ "description": "Get notified about new actions in Slack.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "microsoft_teams_integration",
+ "name": "Microsoft Teams",
+ "description": "Get notified about new actions in Microsoft Teams.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "discord_integration",
+ "name": "Discord",
+ "description": "Get notified about new actions in Discord.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "apps",
+ "name": "Apps",
+ "description": "Use apps to transform, filter, and modify your incoming data. (Export apps not included, see the Data pipelines addon for product analytics.)",
+ "unit": null,
+ "limit": null,
+ "note": null
+ }
+ ],
+ "tiers": null,
+ "current_plan": false,
+ "included_if": "no_active_subscription",
+ "contact_support": null,
+ "unit_amount_usd": null
+ },
+ {
+ "plan_key": "paid-20230117",
+ "product_key": "integrations",
+ "name": "Paid",
+ "description": "Connect PostHog to your favorite tools.",
+ "image_url": "https://posthog.com/images/product/product-icons/integrations.svg",
+ "docs_url": "https://posthog.com/docs/apps",
+ "note": null,
+ "unit": null,
+ "free_allocation": null,
+ "features": [
+ {
+ "key": "zapier",
+ "name": "Zapier",
+ "description": "Zapier lets you connect PostHog with thousands of the most popular apps, so you can automate your work and have more time for what matters most—no code required.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "slack_integration",
+ "name": "Slack",
+ "description": "Get notified about new actions in Slack.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "microsoft_teams_integration",
+ "name": "Microsoft Teams",
+ "description": "Get notified about new actions in Microsoft Teams.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "discord_integration",
+ "name": "Discord",
+ "description": "Get notified about new actions in Discord.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "apps",
+ "name": "Apps",
+ "description": "Use apps to transform, filter, and modify your incoming data. (Export apps not included, see the Data pipelines addon for product analytics.)",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "app_metrics",
+ "name": "App metrics",
+ "description": "Get metrics on your apps to see their usage, reliability, and more.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ }
+ ],
+ "tiers": null,
+ "current_plan": true,
+ "included_if": "has_subscription",
+ "contact_support": null,
+ "unit_amount_usd": null
+ }
+ ],
+ "type": "integrations",
+ "free_allocation": 0,
+ "tiers": null,
+ "tiered": false,
+ "unit_amount_usd": null,
+ "current_amount_usd_before_addons": null,
+ "current_amount_usd": null,
+ "current_usage": 0,
+ "usage_limit": 0,
+ "has_exceeded_limit": false,
+ "percentage_usage": 0,
+ "projected_usage": 0,
+ "projected_amount_usd": null,
+ "unit": null,
+ "addons": [],
+ "contact_support": false,
+ "inclusion_only": true,
+ "features": [
+ {
+ "key": "apps",
+ "name": "Apps",
+ "description": "Use apps to transform, filter, and modify your incoming data. (Export apps not included, see the Data pipelines addon for product analytics.)",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "slack_integration",
+ "name": "Slack",
+ "description": "Get notified about new actions in Slack.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "microsoft_teams_integration",
+ "name": "Microsoft Teams",
+ "description": "Get notified about new actions in Microsoft Teams.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "discord_integration",
+ "name": "Discord",
+ "description": "Get notified about new actions in Discord.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "zapier",
+ "name": "Zapier",
+ "description": "Zapier lets you connect PostHog with thousands of the most popular apps, so you can automate your work and have more time for what matters most—no code required.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "app_metrics",
+ "name": "App metrics",
+ "description": "Get metrics on your apps to see their usage, reliability, and more.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ }
+ ]
+ },
+ {
+ "name": "Platform and support",
+ "headline": null,
+ "description": "SSO, permission management, and support.",
+ "price_description": null,
+ "usage_key": null,
+ "image_url": "https://posthog.com/images/product/product-icons/platform.svg",
+ "screenshot_url": null,
+ "icon_key": "IconStack",
+ "docs_url": "https://posthog.com/docs",
+ "subscribed": null,
+ "plans": [
+ {
+ "plan_key": "free-20230117",
+ "product_key": "platform_and_support",
+ "name": "Totally free",
+ "description": "SSO, permission management, and support.",
+ "image_url": "https://posthog.com/images/product/product-icons/platform.svg",
+ "docs_url": "https://posthog.com/docs",
+ "note": null,
+ "unit": null,
+ "free_allocation": null,
+ "features": [
+ {
+ "key": "tracked_users",
+ "name": "Tracked users",
+ "description": "Track users across devices and sessions.",
+ "unit": null,
+ "limit": null,
+ "note": "Unlimited"
+ },
+ {
+ "key": "team_members",
+ "name": "Team members",
+ "description": "PostHog doesn't charge per seat add your entire team!",
+ "unit": null,
+ "limit": null,
+ "note": "Unlimited"
+ },
+ {
+ "key": "organizations_projects",
+ "name": "Projects",
+ "description": "Create silos of data within PostHog. All data belongs to a single project and all queries are project-specific.",
+ "unit": "project",
+ "limit": 1,
+ "note": null
+ },
+ {
+ "key": "api_access",
+ "name": "API access",
+ "description": "Access your data via our developer-friendly API.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "social_sso",
+ "name": "SSO via Google, Github, or Gitlab",
+ "description": "Log in to PostHog with your Google, Github, or Gitlab account.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "community_support",
+ "name": "Community support",
+ "description": "Get help from other users and PostHog team members in our Community forums.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "2fa",
+ "name": "2FA",
+ "description": "Secure your PostHog account with two-factor authentication.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ }
+ ],
+ "tiers": null,
+ "current_plan": false,
+ "included_if": "no_active_subscription",
+ "contact_support": null,
+ "unit_amount_usd": null
+ },
+ {
+ "plan_key": "paid-20240208",
+ "product_key": "platform_and_support",
+ "name": "With subscription",
+ "description": "SSO, permission management, and support.",
+ "image_url": "https://posthog.com/images/product/product-icons/platform.svg",
+ "docs_url": "https://posthog.com/docs",
+ "note": null,
+ "unit": null,
+ "free_allocation": null,
+ "features": [
+ {
+ "key": "tracked_users",
+ "name": "Tracked users",
+ "description": "Track users across devices and sessions.",
+ "unit": null,
+ "limit": null,
+ "note": "Unlimited"
+ },
+ {
+ "key": "team_members",
+ "name": "Team members",
+ "description": "PostHog doesn't charge per seat add your entire team!",
+ "unit": null,
+ "limit": null,
+ "note": "Unlimited"
+ },
+ {
+ "key": "organizations_projects",
+ "name": "Projects",
+ "description": "Create silos of data within PostHog. All data belongs to a single project and all queries are project-specific.",
+ "unit": "projects",
+ "limit": 2,
+ "note": null
+ },
+ {
+ "key": "api_access",
+ "name": "API access",
+ "description": "Access your data via our developer-friendly API.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "social_sso",
+ "name": "SSO via Google, Github, or Gitlab",
+ "description": "Log in to PostHog with your Google, Github, or Gitlab account.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "community_support",
+ "name": "Community support",
+ "description": "Get help from other users and PostHog team members in our Community forums.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "dedicated_support",
+ "name": "Dedicated account manager",
+ "description": "Work with a dedicated account manager via Slack or email to help you get the most out of PostHog.",
+ "unit": null,
+ "limit": null,
+ "note": "$2k+/month spend"
+ },
+ {
+ "key": "email_support",
+ "name": "Email support",
+ "description": "Get help directly from our product engineers via email. No wading through multiple support people before you get help.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "2fa",
+ "name": "2FA",
+ "description": "Secure your PostHog account with two-factor authentication.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ }
+ ],
+ "tiers": null,
+ "current_plan": true,
+ "included_if": "has_subscription",
+ "contact_support": null,
+ "unit_amount_usd": null
+ },
+ {
+ "plan_key": "teams-20240208",
+ "product_key": "platform_and_support",
+ "name": "Teams",
+ "description": "SSO, permission management, and support.",
+ "image_url": "https://posthog.com/images/product/product-icons/platform.svg",
+ "docs_url": "https://posthog.com/docs",
+ "note": null,
+ "unit": null,
+ "free_allocation": null,
+ "features": [
+ {
+ "key": "tracked_users",
+ "name": "Tracked users",
+ "description": "Track users across devices and sessions.",
+ "unit": null,
+ "limit": null,
+ "note": "Unlimited"
+ },
+ {
+ "key": "team_members",
+ "name": "Team members",
+ "description": "PostHog doesn't charge per seat add your entire team!",
+ "unit": null,
+ "limit": null,
+ "note": "Unlimited"
+ },
+ {
+ "key": "organizations_projects",
+ "name": "Projects",
+ "description": "Create silos of data within PostHog. All data belongs to a single project and all queries are project-specific.",
+ "unit": null,
+ "limit": null,
+ "note": "Unlimited"
+ },
+ {
+ "key": "api_access",
+ "name": "API access",
+ "description": "Access your data via our developer-friendly API.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "social_sso",
+ "name": "SSO via Google, Github, or Gitlab",
+ "description": "Log in to PostHog with your Google, Github, or Gitlab account.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "sso_enforcement",
+ "name": "Enforce SSO login",
+ "description": "Users can only sign up and log in to your PostHog organization with your specified SSO provider.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "2fa",
+ "name": "2FA",
+ "description": "Secure your PostHog account with two-factor authentication.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "2fa_enforcement",
+ "name": "Enforce 2FA",
+ "description": "Require all users in your organization to enable two-factor authentication.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "community_support",
+ "name": "Community support",
+ "description": "Get help from other users and PostHog team members in our Community forums.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "email_support",
+ "name": "Email support",
+ "description": "Get help directly from our product engineers via email. No wading through multiple support people before you get help.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "dedicated_support",
+ "name": "Dedicated account manager",
+ "description": "Work with a dedicated account manager via Slack or email to help you get the most out of PostHog.",
+ "unit": null,
+ "limit": null,
+ "note": "$2k+/month spend"
+ },
+ {
+ "key": "priority_support",
+ "name": "Priority support",
+ "description": "Get help from our team faster than other customers.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "white_labelling",
+ "name": "White labeling",
+ "description": "Use your own branding on surveys, shared dashboards, shared insights, and more.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "project_based_permissioning",
+ "name": "Project permissions",
+ "description": "Restrict access to data within the organization to only those who need it.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "advanced_permissions",
+ "name": "Advanced permissions",
+ "description": "Control who can access and modify data and features within your organization.",
+ "unit": null,
+ "limit": null,
+ "note": "Project-based only"
+ },
+ {
+ "key": "audit_logs",
+ "name": "Audit logs",
+ "description": "See who in your organization has accessed or modified entities within PostHog.",
+ "unit": null,
+ "limit": null,
+ "note": "Basic"
+ },
+ {
+ "key": "security_assessment",
+ "name": "Security assessment",
+ "description": "Security assessment",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "microsoft_teams_integration",
- "name": "Microsoft Teams",
- "description": "Get notified about new actions in Microsoft Teams.",
+ "key": "hipaa_baa",
+ "name": "HIPAA BAA",
+ "description": "Get a signed HIPAA Business Associate Agreement (BAA) to use PostHog in a HIPAA-compliant manner.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "discord_integration",
- "name": "Discord",
- "description": "Get notified about new actions in Discord.",
+ "key": "team_collaboration",
+ "name": "Team collaboration features",
+ "description": "Work together better with tags on dashboards and insights; descriptions on insights, events, & properties; verified events; comments on almost anything.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "apps",
- "name": "CDP + Apps library",
- "description": "Connect your data with 50+ apps including BigQuery, Redshift, and more.",
+ "key": "ingestion_taxonomy",
+ "name": "Ingestion taxonomy",
+ "description": "Mark events as verified or unverified to help you understand the quality of your data.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "app_metrics",
- "name": "App metrics",
- "description": "Get metrics on your apps to see their usage, reliability, and more.",
+ "key": "tagging",
+ "name": "Dashboard tags",
+ "description": "Organize dashboards with tags.",
"unit": null,
"limit": null,
"note": null
}
],
- "tiers": null,
- "current_plan": true,
- "included_if": "has_subscription"
- }
- ],
- "type": "integrations",
- "free_allocation": 0,
- "tiers": null,
- "tiered": false,
- "unit_amount_usd": null,
- "current_amount_usd_before_addons": null,
- "current_amount_usd": null,
- "current_usage": 0,
- "usage_limit": 0,
- "has_exceeded_limit": false,
- "percentage_usage": 0,
- "projected_usage": 0,
- "projected_amount_usd": null,
- "unit": null,
- "addons": [],
- "contact_support": false,
- "inclusion_only": true
- },
- {
- "name": "Platform and support",
- "description": "SSO, permission management, and support.",
- "price_description": null,
- "usage_key": null,
- "image_url": "https://posthog.com/images/product/product-icons/platform.svg",
- "icon_key": "IconStack",
- "docs_url": "https://posthog.com/docs",
- "subscribed": null,
- "plans": [
+ "tiers": [],
+ "current_plan": false,
+ "included_if": null,
+ "contact_support": null,
+ "unit_amount_usd": "450.00"
+ },
{
- "plan_key": "free-20230117",
+ "plan_key": "enterprise-20240208",
"product_key": "platform_and_support",
- "name": "Platform and support",
+ "name": "Enterprise",
"description": "SSO, permission management, and support.",
"image_url": "https://posthog.com/images/product/product-icons/platform.svg",
"docs_url": "https://posthog.com/docs",
@@ -1955,6 +3356,22 @@
"unit": null,
"free_allocation": null,
"features": [
+ {
+ "key": "team_members",
+ "name": "Team members",
+ "description": "PostHog doesn't charge per seat add your entire team!",
+ "unit": null,
+ "limit": null,
+ "note": "Unlimited"
+ },
+ {
+ "key": "organizations_projects",
+ "name": "Projects",
+ "description": "Create silos of data within PostHog. All data belongs to a single project and all queries are project-specific.",
+ "unit": null,
+ "limit": null,
+ "note": "Unlimited"
+ },
{
"key": "tracked_users",
"name": "Tracked users",
@@ -1964,33 +3381,41 @@
"note": "Unlimited"
},
{
- "key": "data_retention",
- "name": "Data retention",
- "description": "Keep a historical record of your data.",
- "unit": "year",
- "limit": 1,
+ "key": "api_access",
+ "name": "API access",
+ "description": "Access your data via our developer-friendly API.",
+ "unit": null,
+ "limit": null,
"note": null
},
{
- "key": "team_members",
- "name": "Team members",
- "description": "PostHog doesn't charge per seat add your entire team!",
+ "key": "white_labelling",
+ "name": "White labeling",
+ "description": "Use your own branding on surveys, shared dashboards, shared insights, and more.",
"unit": null,
"limit": null,
- "note": "Unlimited"
+ "note": null
},
{
- "key": "organizations_projects",
- "name": "Projects",
- "description": "Create silos of data within PostHog. All data belongs to a single project and all queries are project-specific.",
- "unit": "project",
- "limit": 1,
+ "key": "team_collaboration",
+ "name": "Team collaboration features",
+ "description": "Work together better with tags on dashboards and insights; descriptions on insights, events, & properties; verified events; comments on almost anything.",
+ "unit": null,
+ "limit": null,
"note": null
},
{
- "key": "api_access",
- "name": "API access",
- "description": "Access your data via our developer-friendly API.",
+ "key": "ingestion_taxonomy",
+ "name": "Ingestion taxonomy",
+ "description": "Mark events as verified or unverified to help you understand the quality of your data.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "tagging",
+ "name": "Dashboard tags",
+ "description": "Organize dashboards with tags.",
"unit": null,
"limit": null,
"note": null
@@ -2004,97 +3429,81 @@
"note": null
},
{
- "key": "community_support",
- "name": "Community support",
- "description": "Get help from other users and PostHog team members in our Community forums.",
+ "key": "sso_enforcement",
+ "name": "Enforce SSO login",
+ "description": "Users can only sign up and log in to your PostHog organization with your specified SSO provider.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "terms_and_conditions",
- "name": "Terms and conditions",
- "description": "Terms and conditions",
+ "key": "saml",
+ "name": "SAML SSO",
+ "description": "Allow your organization's users to log in with SAML.",
"unit": null,
"limit": null,
- "note": "Standard"
- }
- ],
- "tiers": null,
- "current_plan": false,
- "included_if": "no_active_subscription"
- },
- {
- "plan_key": "paid-20230926",
- "product_key": "platform_and_support",
- "name": "Platform and support",
- "description": "SSO, permission management, and support.",
- "image_url": "https://posthog.com/images/product/product-icons/platform.svg",
- "docs_url": "https://posthog.com/docs",
- "note": null,
- "unit": null,
- "free_allocation": null,
- "features": [
+ "note": null
+ },
{
- "key": "tracked_users",
- "name": "Tracked users",
- "description": "Track users across devices and sessions.",
+ "key": "2fa",
+ "name": "2FA",
+ "description": "Secure your PostHog account with two-factor authentication.",
"unit": null,
"limit": null,
- "note": "Unlimited"
+ "note": null
},
{
- "key": "data_retention",
- "name": "Data retention",
- "description": "Keep a historical record of your data.",
+ "key": "2fa_enforcement",
+ "name": "Enforce 2FA",
+ "description": "Require all users in your organization to enable two-factor authentication.",
"unit": null,
"limit": null,
- "note": "7 years"
+ "note": null
},
{
- "key": "team_members",
- "name": "Team members",
- "description": "PostHog doesn't charge per seat add your entire team!",
+ "key": "project_based_permissioning",
+ "name": "Project permissions",
+ "description": "Restrict access to data within the organization to only those who need it.",
"unit": null,
"limit": null,
- "note": "Unlimited"
+ "note": null
},
{
- "key": "organizations_projects",
- "name": "Projects",
- "description": "Create silos of data within PostHog. All data belongs to a single project and all queries are project-specific.",
+ "key": "role_based_access",
+ "name": "Role-based access",
+ "description": "Control access to features like experiments, session recordings, and feature flags with custom roles.",
"unit": null,
"limit": null,
- "note": "Unlimited"
+ "note": null
},
{
- "key": "api_access",
- "name": "API access",
- "description": "Access your data via our developer-friendly API.",
+ "key": "advanced_permissions",
+ "name": "Advanced permissions",
+ "description": "Control who can access and modify data and features within your organization.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "social_sso",
- "name": "SSO via Google, Github, or Gitlab",
- "description": "Log in to PostHog with your Google, Github, or Gitlab account.",
+ "key": "audit_logs",
+ "name": "Audit logs",
+ "description": "See who in your organization has accessed or modified entities within PostHog.",
"unit": null,
"limit": null,
- "note": null
+ "note": "Advanced"
},
{
- "key": "project_based_permissioning",
- "name": "Project permissions",
- "description": "Restrict access to data within the organization to only those who need it.",
+ "key": "hipaa_baa",
+ "name": "HIPAA BAA",
+ "description": "Get a signed HIPAA Business Associate Agreement (BAA) to use PostHog in a HIPAA-compliant manner.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "white_labelling",
- "name": "White labeling",
- "description": "Use your own branding in your PostHog organization.",
+ "key": "custom_msa",
+ "name": "Custom MSA",
+ "description": "Get a custom Master Services Agreement (MSA) to use PostHog in a way that fits your company's needs.",
"unit": null,
"limit": null,
"note": null
@@ -2108,28 +3517,28 @@
"note": null
},
{
- "key": "dedicated_support",
- "name": "Slack (dedicated channel)",
- "description": "Get help directly from our support team in a dedicated Slack channel shared between you and the PostHog team.",
+ "key": "email_support",
+ "name": "Email support",
+ "description": "Get help directly from our product engineers via email. No wading through multiple support people before you get help.",
"unit": null,
"limit": null,
- "note": "$2k/month spend or above"
+ "note": null
},
{
- "key": "email_support",
- "name": "Direct access to engineers",
- "description": "Get help directly from our product engineers via email. No wading through multiple support people before you get help.",
+ "key": "dedicated_support",
+ "name": "Dedicated account manager",
+ "description": "Work with a dedicated account manager via Slack or email to help you get the most out of PostHog.",
"unit": null,
"limit": null,
"note": null
},
{
- "key": "terms_and_conditions",
- "name": "Terms and conditions",
- "description": "Terms and conditions",
+ "key": "priority_support",
+ "name": "Priority support",
+ "description": "Get help from our team faster than other customers.",
"unit": null,
"limit": null,
- "note": "Standard"
+ "note": null
},
{
"key": "security_assessment",
@@ -2138,11 +3547,29 @@
"unit": null,
"limit": null,
"note": null
+ },
+ {
+ "key": "training",
+ "name": "Ongoing training",
+ "description": "Get training from our team to help you quickly get up and running with PostHog.",
+ "unit": null,
+ "limit": null,
+ "note": null
+ },
+ {
+ "key": "configuration_support",
+ "name": "Personalized onboarding",
+ "description": "Get help from our team to create dashboards that will help you understand your data and your business.",
+ "unit": null,
+ "limit": null,
+ "note": null
}
],
"tiers": null,
- "current_plan": true,
- "included_if": "has_subscription"
+ "current_plan": false,
+ "included_if": null,
+ "contact_support": true,
+ "unit_amount_usd": null
}
],
"type": "platform_and_support",
@@ -2160,8 +3587,250 @@
"projected_amount_usd": null,
"unit": null,
"addons": [],
- "contact_support": true,
- "inclusion_only": true
+ "contact_support": false,
+ "inclusion_only": true,
+ "features": [
+ {
+ "key": "tracked_users",
+ "name": "Tracked users",
+ "description": "Track users across devices and sessions.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "team_members",
+ "name": "Team members",
+ "description": "PostHog doesn't charge per seat add your entire team!",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "api_access",
+ "name": "API access",
+ "description": "Access your data via our developer-friendly API.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "organizations_projects",
+ "name": "Projects",
+ "description": "Create silos of data within PostHog. All data belongs to a single project and all queries are project-specific.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "social_sso",
+ "name": "SSO via Google, Github, or Gitlab",
+ "description": "Log in to PostHog with your Google, Github, or Gitlab account.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "role_based_access",
+ "name": "Role-based access",
+ "description": "Control access to features like experiments, session recordings, and feature flags with custom roles.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "project_based_permissioning",
+ "name": "Project permissions",
+ "description": "Restrict access to data within the organization to only those who need it.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "advanced_permissions",
+ "name": "Advanced permissions",
+ "description": "Control who can access and modify data and features within your organization.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "saml",
+ "name": "SAML SSO",
+ "description": "Allow your organization's users to log in with SAML.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "sso_enforcement",
+ "name": "Enforce SSO login",
+ "description": "Users can only sign up and log in to your PostHog organization with your specified SSO provider.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "2fa",
+ "name": "2FA",
+ "description": "Secure your PostHog account with two-factor authentication.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "2fa_enforcement",
+ "name": "Enforce 2FA",
+ "description": "Require all users in your organization to enable two-factor authentication.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "white_labelling",
+ "name": "White labeling",
+ "description": "Use your own branding on surveys, shared dashboards, shared insights, and more.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "community_support",
+ "name": "Community support",
+ "description": "Get help from other users and PostHog team members in our Community forums.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "dedicated_support",
+ "name": "Dedicated account manager",
+ "description": "Work with a dedicated account manager via Slack or email to help you get the most out of PostHog.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "email_support",
+ "name": "Email support",
+ "description": "Get help directly from our product engineers via email. No wading through multiple support people before you get help.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "priority_support",
+ "name": "Priority support",
+ "description": "Get help from our team faster than other customers.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "training",
+ "name": "Ongoing training",
+ "description": "Get training from our team to help you quickly get up and running with PostHog.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "configuration_support",
+ "name": "Personalized onboarding",
+ "description": "Get help from our team to create dashboards that will help you understand your data and your business.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "terms_and_conditions",
+ "name": "Terms and conditions",
+ "description": "Terms and conditions",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "security_assessment",
+ "name": "Security assessment",
+ "description": "Security assessment",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "bespoke_pricing",
+ "name": "Bespoke pricing",
+ "description": "Custom pricing to fit your company's needs.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "invoice_payments",
+ "name": "Payment via invoicing",
+ "description": "Pay for your PostHog subscription via invoice.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "support_slas",
+ "name": "Support SLAs",
+ "description": "Support SLAs",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "audit_logs",
+ "name": "Audit logs",
+ "description": "See who in your organization has accessed or modified entities within PostHog.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "hipaa_baa",
+ "name": "HIPAA BAA",
+ "description": "Get a signed HIPAA Business Associate Agreement (BAA) to use PostHog in a HIPAA-compliant manner.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "custom_msa",
+ "name": "Custom MSA",
+ "description": "Get a custom Master Services Agreement (MSA) to use PostHog in a way that fits your company's needs.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "team_collaboration",
+ "name": "Team collaboration features",
+ "description": "Work together better with tags on dashboards and insights; descriptions on insights, events, & properties; verified events; comments on almost anything.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "ingestion_taxonomy",
+ "name": "Ingestion taxonomy",
+ "description": "Mark events as verified or unverified to help you understand the quality of your data.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ },
+ {
+ "key": "tagging",
+ "name": "Dashboard tags",
+ "description": "Organize dashboards with tags.",
+ "images": null,
+ "icon_key": null,
+ "type": null
+ }
+ ]
}
],
"custom_limits_usd": {},
@@ -2172,7 +3841,7 @@
},
"recordings": {
"usage": 0,
- "limit": 15000
+ "limit": 5000
},
"feature_flag_requests": {
"usage": 0,
@@ -2181,10 +3850,6 @@
"survey_responses": {
"usage": 0,
"limit": 250
- },
- "synced_rows": {
- "usage": 0,
- "limit": 0
}
},
"free_trial_until": null,
@@ -2192,5 +3857,11 @@
"discount_amount_usd": null,
"amount_off_expires_at": null,
"never_drop_data": null,
- "stripe_portal_url": "https://billing.stripe.com/p/session/test_YWNjdF8xSElNRERFdUlhdFJYU2R6LF9PdXdxeDNqcktEWWdEM1FhalNRNmNCdTZCaUJsVVBi01006f6sniQg"
+ "customer_trust_scores": {
+ "surveys": 0,
+ "feature_flags": 0,
+ "session_replay": 3,
+ "product_analytics": 3
+ },
+ "stripe_portal_url": "https://billing.stripe.com/p/session/test_YWNjdF8xSElNRERFdUlhdFJYU2R6LF9QaEVpVHFJNXdKYk9DaG04SVhMaUV4TDlxOTR1WEZi0100SMJCDr2e"
}
diff --git a/frontend/__snapshots__/scenes-app-insights-error-empty-states--long-loading--dark.png b/frontend/__snapshots__/scenes-app-insights-error-empty-states--long-loading--dark.png
index e0f2ce83d97d5..7c9894110c558 100644
Binary files a/frontend/__snapshots__/scenes-app-insights-error-empty-states--long-loading--dark.png and b/frontend/__snapshots__/scenes-app-insights-error-empty-states--long-loading--dark.png differ
diff --git a/frontend/__snapshots__/scenes-app-insights-error-empty-states--long-loading--light.png b/frontend/__snapshots__/scenes-app-insights-error-empty-states--long-loading--light.png
index f0eb7967c5b1e..8e15b103248ed 100644
Binary files a/frontend/__snapshots__/scenes-app-insights-error-empty-states--long-loading--light.png and b/frontend/__snapshots__/scenes-app-insights-error-empty-states--long-loading--light.png differ
diff --git a/frontend/__snapshots__/scenes-other-billing-v2--billing-v-2--dark.png b/frontend/__snapshots__/scenes-other-billing-v2--billing-v-2--dark.png
index d58d47379698a..b760d16fd5592 100644
Binary files a/frontend/__snapshots__/scenes-other-billing-v2--billing-v-2--dark.png and b/frontend/__snapshots__/scenes-other-billing-v2--billing-v-2--dark.png differ
diff --git a/frontend/__snapshots__/scenes-other-billing-v2--billing-v-2--light.png b/frontend/__snapshots__/scenes-other-billing-v2--billing-v-2--light.png
index d452707e2f2c4..f23ba81faf042 100644
Binary files a/frontend/__snapshots__/scenes-other-billing-v2--billing-v-2--light.png and b/frontend/__snapshots__/scenes-other-billing-v2--billing-v-2--light.png differ
diff --git a/frontend/__snapshots__/scenes-other-settings--settings-organization--dark.png b/frontend/__snapshots__/scenes-other-settings--settings-organization--dark.png
index ae4c62ad0824c..ab33e8563f5f7 100644
Binary files a/frontend/__snapshots__/scenes-other-settings--settings-organization--dark.png and b/frontend/__snapshots__/scenes-other-settings--settings-organization--dark.png differ
diff --git a/frontend/__snapshots__/scenes-other-settings--settings-organization--light.png b/frontend/__snapshots__/scenes-other-settings--settings-organization--light.png
index b0aae8a4b0b27..08a1cffcd03ae 100644
Binary files a/frontend/__snapshots__/scenes-other-settings--settings-organization--light.png and b/frontend/__snapshots__/scenes-other-settings--settings-organization--light.png differ
diff --git a/frontend/src/mocks/fixtures/_billing_v2.tsx b/frontend/src/mocks/fixtures/_billing_v2.tsx
index 017c2ed16bc6b..43b499844eb70 100644
--- a/frontend/src/mocks/fixtures/_billing_v2.tsx
+++ b/frontend/src/mocks/fixtures/_billing_v2.tsx
@@ -3,12 +3,12 @@ import { dayjs } from 'lib/dayjs'
import { BillingV2Type } from '~/types'
export const billingJson: BillingV2Type = {
- customer_id: 'cus_PRQtW3VM1Kiw7e',
+ customer_id: 'cus_Pg7PIL8MsKi6bx',
deactivated: false,
has_active_subscription: true,
billing_period: {
- current_period_start: dayjs('2023-05-01T23:59:59Z'),
- current_period_end: dayjs('2023-06-01T23:59:59Z'),
+ current_period_start: dayjs('2024-03-07T22:54:32Z'),
+ current_period_end: dayjs('2024-04-07T22:54:32Z'),
interval: 'month',
},
current_total_amount_usd: '403.07',
@@ -16,12 +16,13 @@ export const billingJson: BillingV2Type = {
products: [
{
name: 'Product analytics',
- headline: null,
- description: 'Trends, funnels, path analysis, CDP + more.',
+ headline: 'Product analytics with autocapture',
+ description:
+ 'A comprehensive product analytics platform built to natively work with session replay, feature flags, A/B testing, and surveys.',
price_description: null,
usage_key: 'events',
image_url: 'https://posthog.com/images/products/product-analytics/product-analytics.png',
- screenshot_url: null,
+ screenshot_url: 'https://posthog.com/images/products/product-analytics/screenshot-product-analytics.png',
icon_key: 'IconGraph',
docs_url: 'https://posthog.com/docs/product-analytics',
subscribed: true,
@@ -29,9 +30,10 @@ export const billingJson: BillingV2Type = {
{
plan_key: 'free-20230117',
product_key: 'product_analytics',
- name: 'Product analytics',
- description: 'Trends, funnels, path analysis, CDP + more.',
- image_url: 'https://posthog.com/images/product/product-icons/product-analytics.svg',
+ name: 'Free',
+ description:
+ 'A comprehensive product analytics platform built to natively work with session replay, feature flags, A/B testing, and surveys.',
+ image_url: 'https://posthog.com/images/products/product-analytics/product-analytics.png',
docs_url: 'https://posthog.com/docs/product-analytics',
note: null,
unit: 'event',
@@ -49,7 +51,8 @@ export const billingJson: BillingV2Type = {
{
key: 'funnels',
name: 'Funnels',
- description: 'Visualize user dropoff between a sequence of events.',
+ description:
+ 'Visualize user dropoff between a sequence of events. See conversion rate over time, use flexible step ordering, set exclusion steps, and more.',
unit: null,
limit: null,
note: null,
@@ -64,7 +67,7 @@ export const billingJson: BillingV2Type = {
},
{
key: 'paths',
- name: 'Paths',
+ name: 'User paths',
description:
'Limited paths excludes: customizing path insights by setting the maximum number of paths, number of people on each path, how path names appear',
unit: null,
@@ -83,13 +86,16 @@ export const billingJson: BillingV2Type = {
tiers: null,
current_plan: false,
included_if: null,
+ contact_support: null,
+ unit_amount_usd: null,
},
{
plan_key: 'paid-20240111',
product_key: 'product_analytics',
- name: 'Product analytics',
- description: 'Trends, funnels, path analysis, CDP + more.',
- image_url: 'https://posthog.com/images/product/product-icons/product-analytics.svg',
+ name: 'Paid',
+ description:
+ 'A comprehensive product analytics platform built to natively work with session replay, feature flags, A/B testing, and surveys.',
+ image_url: 'https://posthog.com/images/products/product-analytics/product-analytics.png',
docs_url: 'https://posthog.com/docs/product-analytics',
note: null,
unit: 'event',
@@ -107,7 +113,8 @@ export const billingJson: BillingV2Type = {
{
key: 'funnels',
name: 'Funnels',
- description: 'Visualize user dropoff between a sequence of events.',
+ description:
+ 'Visualize user dropoff between a sequence of events. See conversion rate over time, use flexible step ordering, set exclusion steps, and more.',
unit: null,
limit: null,
note: null,
@@ -122,7 +129,7 @@ export const billingJson: BillingV2Type = {
},
{
key: 'paths',
- name: 'Paths',
+ name: 'User paths',
description:
'Limited paths excludes: customizing path insights by setting the maximum number of paths, number of people on each path, how path names appear',
unit: null,
@@ -147,32 +154,6 @@ export const billingJson: BillingV2Type = {
limit: null,
note: null,
},
- {
- key: 'advanced_permissions',
- name: 'Dashboard permissions',
- description:
- 'Restrict access to dashboards within the organization to only those who need it.',
- unit: null,
- limit: null,
- note: null,
- },
- {
- key: 'team_collaboration',
- name: 'Tags & text cards',
- description:
- 'Keep organized by adding tags to your dashboards, cohorts and more. Add text cards and descriptions to your dashboards to provide context to your team.',
- unit: null,
- limit: null,
- note: null,
- },
- {
- key: 'ingestion_taxonomy',
- name: 'Ingestion taxonomy',
- description: 'Ingestion taxonomy',
- unit: null,
- limit: null,
- note: null,
- },
{
key: 'correlation_analysis',
name: 'Correlation analysis',
@@ -182,19 +163,11 @@ export const billingJson: BillingV2Type = {
limit: null,
note: null,
},
- {
- key: 'tagging',
- name: 'Dashboard tags',
- description: 'Organize dashboards with tags.',
- unit: null,
- limit: null,
- note: null,
- },
{
key: 'behavioral_cohort_filtering',
- name: 'Lifecycle cohorts',
+ name: 'Lifecycle',
description:
- 'Group users based on their long term behavior, such as whether they frequently performed an event, or have recently stopped performing an event.',
+ 'Discover how your active users break down, highlighting those who have recently stopped being active or those who have just become active for the first time.',
unit: null,
limit: null,
note: null,
@@ -275,6 +248,8 @@ export const billingJson: BillingV2Type = {
],
current_plan: true,
included_if: null,
+ contact_support: null,
+ unit_amount_usd: null,
},
],
type: 'product_analytics',
@@ -349,7 +324,7 @@ export const billingJson: BillingV2Type = {
current_amount_usd_before_addons: '0.00',
current_amount_usd: '0.00',
current_usage: 882128,
- usage_limit: 3624548,
+ usage_limit: 882128,
has_exceeded_limit: false,
percentage_usage: 0.4423939206,
projected_usage: 7000000,
@@ -443,7 +418,7 @@ export const billingJson: BillingV2Type = {
{
plan_key: 'addon-20230509',
product_key: 'group_analytics',
- name: 'Group analytics',
+ name: 'Addon',
description:
'Associate events with a group or entity - such as a company, community, or project. Analyze these events as if they were sent by that entity itself. Great for B2B, marketplaces, and more.',
image_url: 'https://posthog.com/images/product/product-icons/group-analytics.svg',
@@ -529,6 +504,8 @@ export const billingJson: BillingV2Type = {
],
current_plan: false,
included_if: null,
+ contact_support: null,
+ unit_amount_usd: null,
},
],
contact_support: false,
@@ -620,7 +597,7 @@ export const billingJson: BillingV2Type = {
{
plan_key: 'addon-20240111',
product_key: 'data_pipelines',
- name: 'Data pipelines',
+ name: 'Addon',
description:
'Get your PostHog data into your data warehouse or other tools like BigQuery, Redshift, Customer.io, and more.',
image_url: null,
@@ -706,6 +683,8 @@ export const billingJson: BillingV2Type = {
],
current_plan: false,
included_if: null,
+ contact_support: null,
+ unit_amount_usd: null,
},
],
contact_support: false,
@@ -780,31 +759,6 @@ export const billingJson: BillingV2Type = {
icon_key: 'IconNotification',
type: 'secondary',
},
- {
- key: 'team_collaboration',
- name: 'Tags & text cards',
- description:
- 'Keep organized by adding tags to your dashboards, cohorts and more. Add text cards and descriptions to your dashboards to provide context to your team.',
- images: null,
- icon_key: null,
- type: null,
- },
- {
- key: 'advanced_permissions',
- name: 'Dashboard permissions',
- description: 'Restrict access to dashboards within the organization to only those who need it.',
- images: null,
- icon_key: null,
- type: null,
- },
- {
- key: 'ingestion_taxonomy',
- name: 'Ingestion taxonomy',
- description: 'Ingestion taxonomy',
- images: null,
- icon_key: null,
- type: null,
- },
{
key: 'paths_advanced',
name: 'Advanced paths',
@@ -826,14 +780,6 @@ export const billingJson: BillingV2Type = {
icon_key: null,
type: 'primary',
},
- {
- key: 'tagging',
- name: 'Dashboard tags',
- description: 'Organize dashboards with tags.',
- images: null,
- icon_key: null,
- type: null,
- },
{
key: 'behavioral_cohort_filtering',
name: 'Lifecycle',
@@ -899,13 +845,13 @@ export const billingJson: BillingV2Type = {
},
{
name: 'Session replay',
- headline: null,
+ headline: 'Watch how users experience your app',
description:
- 'Searchable recordings of people using your app or website with console logs and behavioral bucketing.',
+ 'Session replay helps you diagnose issues and understand user behavior in your product or website.',
price_description: null,
usage_key: 'recordings',
- image_url: 'https://posthog.com/images/product/product-icons/session-replay.svg',
- screenshot_url: null,
+ image_url: 'https://posthog.com/images/products/session-replay/session-replay.png',
+ screenshot_url: 'https://posthog.com/images/products/session-replay/screenshot-session-replay.png',
icon_key: 'IconRewindPlay',
docs_url: 'https://posthog.com/docs/session-replay',
subscribed: true,
@@ -913,10 +859,10 @@ export const billingJson: BillingV2Type = {
{
plan_key: 'free-20231218',
product_key: 'session_replay',
- name: 'Session replay',
+ name: 'Free',
description:
- 'Searchable recordings of people using your app or website with console logs and behavioral bucketing.',
- image_url: 'https://posthog.com/images/product/product-icons/session-replay.svg',
+ 'Session replay helps you diagnose issues and understand user behavior in your product or website.',
+ image_url: 'https://posthog.com/images/products/session-replay/session-replay.png',
docs_url: 'https://posthog.com/docs/session-replay',
note: null,
unit: 'recording',
@@ -925,7 +871,7 @@ export const billingJson: BillingV2Type = {
{
key: 'console_logs',
name: 'Console logs',
- description: "Diagnose issues by inspecting errors in the user's network console",
+ description: "Debug issues faster by browsing the user's console.",
unit: null,
limit: null,
note: null,
@@ -941,9 +887,8 @@ export const billingJson: BillingV2Type = {
},
{
key: 'session_replay_network_payloads',
- name: 'Network payload capture',
- description:
- 'Capture and analyze network requests and response payloads and headers for each session recording.',
+ name: 'Network monitor',
+ description: 'Analyze performance and network calls.',
unit: null,
limit: null,
note: null,
@@ -967,7 +912,7 @@ export const billingJson: BillingV2Type = {
},
{
key: 'replay_mask_sensitive_data',
- name: 'Mask sensitive data',
+ name: 'Block sensitive data',
description:
'Disable capturing data from any DOM element with HTML attributes or a customizable config.',
unit: null,
@@ -984,9 +929,8 @@ export const billingJson: BillingV2Type = {
},
{
key: 'replay_product_analytics_integration',
- name: 'Product analytics integration',
- description:
- 'Jump into a playlist of session recordings directly from any time series in a graph. See when events happen in your recording timeline.',
+ name: 'Event timeline',
+ description: "See a history of everything that happened in a user's session.",
unit: null,
limit: null,
note: null,
@@ -1044,14 +988,16 @@ export const billingJson: BillingV2Type = {
tiers: null,
current_plan: false,
included_if: null,
+ contact_support: null,
+ unit_amount_usd: null,
},
{
plan_key: 'paid-20231218',
product_key: 'session_replay',
- name: 'Session replay',
+ name: 'Paid',
description:
- 'Searchable recordings of people using your app or website with console logs and behavioral bucketing.',
- image_url: 'https://posthog.com/images/product/product-icons/session-replay.svg',
+ 'Session replay helps you diagnose issues and understand user behavior in your product or website.',
+ image_url: 'https://posthog.com/images/products/session-replay/session-replay.png',
docs_url: 'https://posthog.com/docs/session-replay',
note: null,
unit: 'recording',
@@ -1060,7 +1006,7 @@ export const billingJson: BillingV2Type = {
{
key: 'console_logs',
name: 'Console logs',
- description: "Diagnose issues by inspecting errors in the user's network console",
+ description: "Debug issues faster by browsing the user's console.",
unit: null,
limit: null,
note: null,
@@ -1085,17 +1031,16 @@ export const billingJson: BillingV2Type = {
},
{
key: 'session_replay_network_payloads',
- name: 'Network payload capture',
- description:
- 'Capture and analyze network requests and response payloads and headers for each session recording.',
+ name: 'Network monitor',
+ description: 'Analyze performance and network calls.',
unit: null,
limit: null,
note: null,
},
{
key: 'recordings_file_export',
- name: 'Recordings file export',
- description: 'Save session recordings as a file to your local filesystem.',
+ name: 'Download recordings',
+ description: 'Retain recordings beyond data retention limits.',
unit: null,
limit: null,
note: null,
@@ -1110,7 +1055,7 @@ export const billingJson: BillingV2Type = {
},
{
key: 'replay_mask_sensitive_data',
- name: 'Mask sensitive data',
+ name: 'Block sensitive data',
description:
'Disable capturing data from any DOM element with HTML attributes or a customizable config.',
unit: null,
@@ -1127,9 +1072,8 @@ export const billingJson: BillingV2Type = {
},
{
key: 'replay_product_analytics_integration',
- name: 'Product analytics integration',
- description:
- 'Jump into a playlist of session recordings directly from any time series in a graph. See when events happen in your recording timeline.',
+ name: 'Event timeline',
+ description: "See a history of everything that happened in a user's session.",
unit: null,
limit: null,
note: null,
@@ -1191,7 +1135,7 @@ export const billingJson: BillingV2Type = {
up_to: 5000,
current_amount_usd: '0.00',
current_usage: 0,
- projected_usage: 0,
+ projected_usage: null,
projected_amount_usd: null,
},
{
@@ -1242,6 +1186,8 @@ export const billingJson: BillingV2Type = {
],
current_plan: true,
included_if: null,
+ contact_support: null,
+ unit_amount_usd: null,
},
],
type: 'session_replay',
@@ -1280,7 +1226,7 @@ export const billingJson: BillingV2Type = {
up_to: 150000,
current_amount_usd: '0.00',
current_usage: 0,
- projected_usage: 100000,
+ projected_usage: 10000,
projected_amount_usd: '270.00',
},
{
@@ -1304,7 +1250,7 @@ export const billingJson: BillingV2Type = {
],
tiered: true,
unit_amount_usd: null,
- current_amount_usd_before_addons: null,
+ current_amount_usd_before_addons: '0.00',
current_amount_usd: '403.07',
current_usage: 16022,
usage_limit: 100000,
@@ -1469,12 +1415,13 @@ export const billingJson: BillingV2Type = {
},
{
name: 'Feature flags & A/B testing',
- headline: null,
- description: 'Safely roll out new features and run experiments on changes.',
+ headline: 'Safely roll out features and A/B tests to specific users or groups',
+ description:
+ 'Test changes with small groups of users before rolling out wider. Analyze usage with product analytics and session replay.',
price_description: null,
usage_key: 'feature_flag_requests',
- image_url: 'https://posthog.com/images/product/product-icons/feature-flags.svg',
- screenshot_url: null,
+ image_url: 'https://posthog.com/images/products/feature-flags/feature-flags.png',
+ screenshot_url: 'https://posthog.com/images/products/feature-flags/screenshot-feature-flags.png',
icon_key: 'IconToggle',
docs_url: 'https://posthog.com/docs/feature-flags',
subscribed: false,
@@ -1482,9 +1429,10 @@ export const billingJson: BillingV2Type = {
{
plan_key: 'free-20230117',
product_key: 'feature_flags',
- name: 'Feature flags & A/B testing',
- description: 'Safely roll out new features and run experiments on changes.',
- image_url: 'https://posthog.com/images/product/product-icons/feature-flags.svg',
+ name: 'Free',
+ description:
+ 'Test changes with small groups of users before rolling out wider. Analyze usage with product analytics and session replay.',
+ image_url: 'https://posthog.com/images/products/feature-flags/feature-flags.png',
docs_url: 'https://posthog.com/docs/feature-flags',
note: null,
unit: 'request',
@@ -1498,6 +1446,15 @@ export const billingJson: BillingV2Type = {
limit: null,
note: null,
},
+ {
+ key: 'multivariate_flags',
+ name: 'Multivariate feature flags & experiments',
+ description:
+ 'Create three or more variants of a feature flag to test or release different versions of a feature.',
+ unit: null,
+ limit: null,
+ note: null,
+ },
{
key: 'persist_flags_cross_authentication',
name: 'Persist flags across authentication',
@@ -1509,9 +1466,9 @@ export const billingJson: BillingV2Type = {
},
{
key: 'feature_flag_payloads',
- name: 'Payloads',
+ name: 'Test changes without code',
description:
- 'Send additional pieces of information (any valid JSON) to your app when a flag is matched for a user.',
+ 'Use JSON payloads to change text, visuals, or entire blocks of code without subsequent deployments.',
unit: null,
limit: null,
note: null,
@@ -1520,7 +1477,7 @@ export const billingJson: BillingV2Type = {
key: 'multiple_release_conditions',
name: 'Multiple release conditions',
description:
- 'Target multiple groups of users with different release conditions for the same feature flag.',
+ 'Customize your rollout strategy by user or group properties, cohort, or trafic percentage.',
unit: null,
limit: null,
note: null,
@@ -1561,6 +1518,41 @@ export const billingJson: BillingV2Type = {
limit: null,
note: null,
},
+ {
+ key: 'experimentation',
+ name: 'A/B testing',
+ description: 'Test changes to your product and evaluate the impacts those changes make.',
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ {
+ key: 'funnel_experiments',
+ name: 'Funnel & trend experiments',
+ description:
+ 'Measure the impact of a change on a aggregate values or a series of events, like a signup flow.',
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ {
+ key: 'secondary_metrics',
+ name: 'Secondary experiment metrics',
+ description:
+ 'Track additional metrics to see how your experiment affects other parts of your app or different flows.',
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ {
+ key: 'statistical_analysis',
+ name: 'Statistical analysis',
+ description:
+ "Get a statistical analysis of your experiment results to see if the results are significant, or if they're likely just due to chance.",
+ unit: null,
+ limit: null,
+ note: null,
+ },
{
key: 'feature_flags_data_retention',
name: 'Data retention',
@@ -1573,13 +1565,16 @@ export const billingJson: BillingV2Type = {
tiers: null,
current_plan: true,
included_if: null,
+ contact_support: null,
+ unit_amount_usd: null,
},
{
plan_key: 'paid-20230623',
product_key: 'feature_flags',
- name: 'Feature flags & A/B testing',
- description: 'Safely roll out new features and run experiments on changes.',
- image_url: 'https://posthog.com/images/product/product-icons/feature-flags.svg',
+ name: 'Paid',
+ description:
+ 'Test changes with small groups of users before rolling out wider. Analyze usage with product analytics and session replay.',
+ image_url: 'https://posthog.com/images/products/feature-flags/feature-flags.png',
docs_url: 'https://posthog.com/docs/feature-flags',
note: null,
unit: 'request',
@@ -1613,9 +1608,9 @@ export const billingJson: BillingV2Type = {
},
{
key: 'feature_flag_payloads',
- name: 'Payloads',
+ name: 'Test changes without code',
description:
- 'Send additional pieces of information (any valid JSON) to your app when a flag is matched for a user.',
+ 'Use JSON payloads to change text, visuals, or entire blocks of code without subsequent deployments.',
unit: null,
limit: null,
note: null,
@@ -1624,7 +1619,7 @@ export const billingJson: BillingV2Type = {
key: 'multiple_release_conditions',
name: 'Multiple release conditions',
description:
- 'Target multiple groups of users with different release conditions for the same feature flag.',
+ 'Customize your rollout strategy by user or group properties, cohort, or trafic percentage.',
unit: null,
limit: null,
note: null,
@@ -1673,15 +1668,6 @@ export const billingJson: BillingV2Type = {
limit: null,
note: null,
},
- {
- key: 'group_experiments',
- name: 'Group experiments',
- description:
- 'Target experiments to specific groups of users so everyone in the same group gets the same variant.',
- unit: null,
- limit: null,
- note: null,
- },
{
key: 'funnel_experiments',
name: 'Funnel & trend experiments',
@@ -1709,6 +1695,24 @@ export const billingJson: BillingV2Type = {
limit: null,
note: null,
},
+ {
+ key: 'group_experiments',
+ name: 'Group experiments',
+ description:
+ 'Target experiments to specific groups of users so everyone in the same group gets the same variant.',
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ {
+ key: 'multiple_environments',
+ name: 'Multi-environment support',
+ description:
+ 'Test flags in local development or staging by using the same flag key across PostHog projects.',
+ unit: null,
+ limit: null,
+ note: null,
+ },
{
key: 'feature_flags_data_retention',
name: 'Data retention',
@@ -1767,6 +1771,8 @@ export const billingJson: BillingV2Type = {
],
current_plan: false,
included_if: null,
+ contact_support: null,
+ unit_amount_usd: null,
},
],
type: 'feature_flags',
@@ -1964,12 +1970,13 @@ export const billingJson: BillingV2Type = {
},
{
name: 'Surveys',
- headline: null,
- description: 'Collect feedback from your users. Multiple choice, rating, open text, and more.',
+ headline: 'Ask anything with no-code surveys',
+ description:
+ 'Build in-app popups with freeform text responses, multiple choice, NPS, ratings, and emoji reactions. Or use the API for complete control.',
price_description: null,
usage_key: 'survey_responses',
- image_url: 'https://posthog.com/images/product/product-icons/surveys.svg',
- screenshot_url: null,
+ image_url: 'https://posthog.com/images/products/surveys/surveys.png',
+ screenshot_url: 'https://posthog.com/images/products/surveys/screenshot-surveys.png',
icon_key: 'IconMessage',
docs_url: 'https://posthog.com/docs/surveys',
subscribed: false,
@@ -1977,9 +1984,10 @@ export const billingJson: BillingV2Type = {
{
plan_key: 'free-20230928',
product_key: 'surveys',
- name: 'Surveys',
- description: 'Collect feedback from your users. Multiple choice, rating, open text, and more.',
- image_url: 'https://posthog.com/images/product/product-icons/surveys.svg',
+ name: 'Free',
+ description:
+ 'Build in-app popups with freeform text responses, multiple choice, NPS, ratings, and emoji reactions. Or use the API for complete control.',
+ image_url: 'https://posthog.com/images/products/surveys/surveys.png',
docs_url: 'https://posthog.com/docs/surveys',
note: null,
unit: 'survey response',
@@ -2004,8 +2012,8 @@ export const billingJson: BillingV2Type = {
},
{
key: 'surveys_user_targeting',
- name: 'User property targeting',
- description: 'Target users based on any of their user properties.',
+ name: 'Advanced user targeting',
+ description: 'Target by URL, user property, or feature flag when used with Feature flags.',
unit: null,
limit: null,
note: null,
@@ -2021,15 +2029,17 @@ export const billingJson: BillingV2Type = {
{
key: 'surveys_api_mode',
name: 'API mode',
- description: 'Create surveys via the API.',
+ description:
+ 'Using PostHog.js? No more code required. But if want to create your own UI, we have a full API.',
unit: null,
limit: null,
note: null,
},
{
key: 'surveys_results_analysis',
- name: 'Results analysis',
- description: 'Analyze your survey results including completion rates and drop offs.',
+ name: 'Aggregated results',
+ description:
+ 'See feedback summarized and broken down per response, plus completion rates and drop offs.',
unit: null,
limit: null,
note: null,
@@ -2055,13 +2065,16 @@ export const billingJson: BillingV2Type = {
tiers: null,
current_plan: true,
included_if: null,
+ contact_support: null,
+ unit_amount_usd: null,
},
{
plan_key: 'paid-20230928',
product_key: 'surveys',
- name: 'Surveys',
- description: 'Collect feedback from your users. Multiple choice, rating, open text, and more.',
- image_url: 'https://posthog.com/images/product/product-icons/surveys.svg',
+ name: 'Paid',
+ description:
+ 'Build in-app popups with freeform text responses, multiple choice, NPS, ratings, and emoji reactions. Or use the API for complete control.',
+ image_url: 'https://posthog.com/images/products/surveys/surveys.png',
docs_url: 'https://posthog.com/docs/surveys',
note: null,
unit: 'survey response',
@@ -2087,15 +2100,15 @@ export const billingJson: BillingV2Type = {
{
key: 'surveys_multiple_questions',
name: 'Multiple questions',
- description: 'Create multiple questions in a single survey.',
+ description: 'Ask up to 10 questions in a single survey.',
unit: null,
limit: null,
note: null,
},
{
key: 'surveys_user_targeting',
- name: 'User property targeting',
- description: 'Target users based on any of their user properties.',
+ name: 'Advanced user targeting',
+ description: 'Target by URL, user property, or feature flag when used with Feature flags.',
unit: null,
limit: null,
note: null,
@@ -2128,15 +2141,17 @@ export const billingJson: BillingV2Type = {
{
key: 'surveys_api_mode',
name: 'API mode',
- description: 'Create surveys via the API.',
+ description:
+ 'Using PostHog.js? No more code required. But if want to create your own UI, we have a full API.',
unit: null,
limit: null,
note: null,
},
{
key: 'surveys_results_analysis',
- name: 'Results analysis',
- description: 'Analyze your survey results including completion rates and drop offs.',
+ name: 'Aggregated results',
+ description:
+ 'See feedback summarized and broken down per response, plus completion rates and drop offs.',
unit: null,
limit: null,
note: null,
@@ -2217,6 +2232,8 @@ export const billingJson: BillingV2Type = {
],
current_plan: false,
included_if: null,
+ contact_support: null,
+ unit_amount_usd: null,
},
],
type: 'surveys',
@@ -2388,7 +2405,7 @@ export const billingJson: BillingV2Type = {
{
plan_key: 'free-20230117',
product_key: 'integrations',
- name: 'Integrations',
+ name: 'Free',
description: 'Connect PostHog to your favorite tools.',
image_url: 'https://posthog.com/images/product/product-icons/integrations.svg',
docs_url: 'https://posthog.com/docs/apps',
@@ -2442,11 +2459,13 @@ export const billingJson: BillingV2Type = {
tiers: null,
current_plan: false,
included_if: 'no_active_subscription',
+ contact_support: null,
+ unit_amount_usd: null,
},
{
plan_key: 'paid-20230117',
product_key: 'integrations',
- name: 'Integrations',
+ name: 'Paid',
description: 'Connect PostHog to your favorite tools.',
image_url: 'https://posthog.com/images/product/product-icons/integrations.svg',
docs_url: 'https://posthog.com/docs/apps',
@@ -2508,6 +2527,8 @@ export const billingJson: BillingV2Type = {
tiers: null,
current_plan: true,
included_if: 'has_subscription',
+ contact_support: null,
+ unit_amount_usd: null,
},
],
type: 'integrations',
@@ -2595,7 +2616,7 @@ export const billingJson: BillingV2Type = {
{
plan_key: 'free-20230117',
product_key: 'platform_and_support',
- name: 'Platform and support',
+ name: 'Totally free',
description: 'SSO, permission management, and support.',
image_url: 'https://posthog.com/images/product/product-icons/platform.svg',
docs_url: 'https://posthog.com/docs',
@@ -2653,22 +2674,24 @@ export const billingJson: BillingV2Type = {
note: null,
},
{
- key: 'terms_and_conditions',
- name: 'Terms and conditions',
- description: 'Terms and conditions',
+ key: '2fa',
+ name: '2FA',
+ description: 'Secure your PostHog account with two-factor authentication.',
unit: null,
limit: null,
- note: 'Standard',
+ note: null,
},
],
tiers: null,
current_plan: false,
included_if: 'no_active_subscription',
+ contact_support: null,
+ unit_amount_usd: null,
},
{
- plan_key: 'paid-20230926',
+ plan_key: 'paid-20240208',
product_key: 'platform_and_support',
- name: 'Platform and support',
+ name: 'With subscription',
description: 'SSO, permission management, and support.',
image_url: 'https://posthog.com/images/product/product-icons/platform.svg',
docs_url: 'https://posthog.com/docs',
@@ -2697,9 +2720,9 @@ export const billingJson: BillingV2Type = {
name: 'Projects',
description:
'Create silos of data within PostHog. All data belongs to a single project and all queries are project-specific.',
- unit: null,
- limit: null,
- note: 'Unlimited',
+ unit: 'projects',
+ limit: 2,
+ note: null,
},
{
key: 'api_access',
@@ -2718,69 +2741,483 @@ export const billingJson: BillingV2Type = {
note: null,
},
{
- key: 'project_based_permissioning',
- name: 'Project permissions',
- description: 'Restrict access to data within the organization to only those who need it.',
+ key: 'community_support',
+ name: 'Community support',
+ description: 'Get help from other users and PostHog team members in our Community forums.',
unit: null,
limit: null,
note: null,
},
{
- key: 'white_labelling',
- name: 'White labeling',
- description: 'Use your own branding in your PostHog organization.',
+ key: 'dedicated_support',
+ name: 'Dedicated account manager',
+ description:
+ 'Work with a dedicated account manager via Slack or email to help you get the most out of PostHog.',
+ unit: null,
+ limit: null,
+ note: '$2k+/month spend',
+ },
+ {
+ key: 'email_support',
+ name: 'Email support',
+ description:
+ 'Get help directly from our product engineers via email. No wading through multiple support people before you get help.',
unit: null,
limit: null,
note: null,
},
{
- key: 'community_support',
- name: 'Community support',
- description: 'Get help from other users and PostHog team members in our Community forums.',
+ key: '2fa',
+ name: '2FA',
+ description: 'Secure your PostHog account with two-factor authentication.',
unit: null,
limit: null,
note: null,
},
+ ],
+ tiers: null,
+ current_plan: true,
+ included_if: 'has_subscription',
+ contact_support: null,
+ unit_amount_usd: null,
+ },
+ {
+ plan_key: 'teams-20240208',
+ product_key: 'platform_and_support',
+ name: 'Teams',
+ description: 'SSO, permission management, and support.',
+ image_url: 'https://posthog.com/images/product/product-icons/platform.svg',
+ docs_url: 'https://posthog.com/docs',
+ note: null,
+ unit: null,
+ free_allocation: null,
+ features: [
{
- key: 'dedicated_support',
- name: 'Slack (dedicated channel)',
+ key: 'tracked_users',
+ name: 'Tracked users',
+ description: 'Track users across devices and sessions.',
+ unit: null,
+ limit: null,
+ note: 'Unlimited',
+ },
+ {
+ key: 'team_members',
+ name: 'Team members',
+ description: "PostHog doesn't charge per seat add your entire team!",
+ unit: null,
+ limit: null,
+ note: 'Unlimited',
+ },
+ {
+ key: 'organizations_projects',
+ name: 'Projects',
description:
- 'Get help directly from our support team in a dedicated Slack channel shared between you and the PostHog team.',
+ 'Create silos of data within PostHog. All data belongs to a single project and all queries are project-specific.',
unit: null,
limit: null,
- note: '$2k/month spend or above',
+ note: 'Unlimited',
},
{
- key: 'email_support',
- name: 'Direct access to engineers',
+ key: 'api_access',
+ name: 'API access',
+ description: 'Access your data via our developer-friendly API.',
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ {
+ key: 'social_sso',
+ name: 'SSO via Google, Github, or Gitlab',
+ description: 'Log in to PostHog with your Google, Github, or Gitlab account.',
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ {
+ key: 'sso_enforcement',
+ name: 'Enforce SSO login',
description:
- 'Get help directly from our product engineers via email. No wading through multiple support people before you get help.',
+ 'Users can only sign up and log in to your PostHog organization with your specified SSO provider.',
unit: null,
limit: null,
note: null,
},
{
- key: 'terms_and_conditions',
- name: 'Terms and conditions',
- description: 'Terms and conditions',
+ key: '2fa',
+ name: '2FA',
+ description: 'Secure your PostHog account with two-factor authentication.',
unit: null,
limit: null,
- note: 'Standard',
+ note: null,
},
{
- key: 'security_assessment',
- name: 'Security assessment',
- description: 'Security assessment',
+ key: '2fa_enforcement',
+ name: 'Enforce 2FA',
+ description: 'Require all users in your organization to enable two-factor authentication.',
unit: null,
limit: null,
note: null,
},
- ],
- tiers: null,
- current_plan: true,
- included_if: 'has_subscription',
- },
- ],
+ {
+ key: 'community_support',
+ name: 'Community support',
+ description: 'Get help from other users and PostHog team members in our Community forums.',
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ {
+ key: 'email_support',
+ name: 'Email support',
+ description:
+ 'Get help directly from our product engineers via email. No wading through multiple support people before you get help.',
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ {
+ key: 'dedicated_support',
+ name: 'Dedicated account manager',
+ description:
+ 'Work with a dedicated account manager via Slack or email to help you get the most out of PostHog.',
+ unit: null,
+ limit: null,
+ note: '$2k+/month spend',
+ },
+ {
+ key: 'priority_support',
+ name: 'Priority support',
+ description: 'Get help from our team faster than other customers.',
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ {
+ key: 'white_labelling',
+ name: 'White labeling',
+ description:
+ 'Use your own branding on surveys, shared dashboards, shared insights, and more.',
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ {
+ key: 'project_based_permissioning',
+ name: 'Project permissions',
+ description: 'Restrict access to data within the organization to only those who need it.',
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ {
+ key: 'advanced_permissions',
+ name: 'Advanced permissions',
+ description:
+ 'Control who can access and modify data and features within your organization.',
+ unit: null,
+ limit: null,
+ note: 'Project-based only',
+ },
+ {
+ key: 'audit_logs',
+ name: 'Audit logs',
+ description:
+ 'See who in your organization has accessed or modified entities within PostHog.',
+ unit: null,
+ limit: null,
+ note: 'Basic',
+ },
+ {
+ key: 'security_assessment',
+ name: 'Security assessment',
+ description: 'Security assessment',
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ {
+ key: 'hipaa_baa',
+ name: 'HIPAA BAA',
+ description:
+ 'Get a signed HIPAA Business Associate Agreement (BAA) to use PostHog in a HIPAA-compliant manner.',
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ {
+ key: 'team_collaboration',
+ name: 'Team collaboration features',
+ description:
+ 'Work together better with tags on dashboards and insights; descriptions on insights, events, & properties; verified events; comments on almost anything.',
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ {
+ key: 'ingestion_taxonomy',
+ name: 'Ingestion taxonomy',
+ description:
+ 'Mark events as verified or unverified to help you understand the quality of your data.',
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ {
+ key: 'tagging',
+ name: 'Dashboard tags',
+ description: 'Organize dashboards with tags.',
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ ],
+ tiers: [],
+ current_plan: false,
+ included_if: null,
+ contact_support: null,
+ unit_amount_usd: '450.00',
+ },
+ {
+ plan_key: 'enterprise-20240208',
+ product_key: 'platform_and_support',
+ name: 'Enterprise',
+ description: 'SSO, permission management, and support.',
+ image_url: 'https://posthog.com/images/product/product-icons/platform.svg',
+ docs_url: 'https://posthog.com/docs',
+ note: null,
+ unit: null,
+ free_allocation: null,
+ features: [
+ {
+ key: 'team_members',
+ name: 'Team members',
+ description: "PostHog doesn't charge per seat add your entire team!",
+ unit: null,
+ limit: null,
+ note: 'Unlimited',
+ },
+ {
+ key: 'organizations_projects',
+ name: 'Projects',
+ description:
+ 'Create silos of data within PostHog. All data belongs to a single project and all queries are project-specific.',
+ unit: null,
+ limit: null,
+ note: 'Unlimited',
+ },
+ {
+ key: 'tracked_users',
+ name: 'Tracked users',
+ description: 'Track users across devices and sessions.',
+ unit: null,
+ limit: null,
+ note: 'Unlimited',
+ },
+ {
+ key: 'api_access',
+ name: 'API access',
+ description: 'Access your data via our developer-friendly API.',
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ {
+ key: 'white_labelling',
+ name: 'White labeling',
+ description:
+ 'Use your own branding on surveys, shared dashboards, shared insights, and more.',
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ {
+ key: 'team_collaboration',
+ name: 'Team collaboration features',
+ description:
+ 'Work together better with tags on dashboards and insights; descriptions on insights, events, & properties; verified events; comments on almost anything.',
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ {
+ key: 'ingestion_taxonomy',
+ name: 'Ingestion taxonomy',
+ description:
+ 'Mark events as verified or unverified to help you understand the quality of your data.',
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ {
+ key: 'tagging',
+ name: 'Dashboard tags',
+ description: 'Organize dashboards with tags.',
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ {
+ key: 'social_sso',
+ name: 'SSO via Google, Github, or Gitlab',
+ description: 'Log in to PostHog with your Google, Github, or Gitlab account.',
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ {
+ key: 'sso_enforcement',
+ name: 'Enforce SSO login',
+ description:
+ 'Users can only sign up and log in to your PostHog organization with your specified SSO provider.',
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ {
+ key: 'saml',
+ name: 'SAML SSO',
+ description: "Allow your organization's users to log in with SAML.",
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ {
+ key: '2fa',
+ name: '2FA',
+ description: 'Secure your PostHog account with two-factor authentication.',
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ {
+ key: '2fa_enforcement',
+ name: 'Enforce 2FA',
+ description: 'Require all users in your organization to enable two-factor authentication.',
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ {
+ key: 'project_based_permissioning',
+ name: 'Project permissions',
+ description: 'Restrict access to data within the organization to only those who need it.',
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ {
+ key: 'role_based_access',
+ name: 'Role-based access',
+ description:
+ 'Control access to features like experiments, session recordings, and feature flags with custom roles.',
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ {
+ key: 'advanced_permissions',
+ name: 'Advanced permissions',
+ description:
+ 'Control who can access and modify data and features within your organization.',
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ {
+ key: 'audit_logs',
+ name: 'Audit logs',
+ description:
+ 'See who in your organization has accessed or modified entities within PostHog.',
+ unit: null,
+ limit: null,
+ note: 'Advanced',
+ },
+ {
+ key: 'hipaa_baa',
+ name: 'HIPAA BAA',
+ description:
+ 'Get a signed HIPAA Business Associate Agreement (BAA) to use PostHog in a HIPAA-compliant manner.',
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ {
+ key: 'custom_msa',
+ name: 'Custom MSA',
+ description:
+ "Get a custom Master Services Agreement (MSA) to use PostHog in a way that fits your company's needs.",
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ {
+ key: 'community_support',
+ name: 'Community support',
+ description: 'Get help from other users and PostHog team members in our Community forums.',
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ {
+ key: 'email_support',
+ name: 'Email support',
+ description:
+ 'Get help directly from our product engineers via email. No wading through multiple support people before you get help.',
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ {
+ key: 'dedicated_support',
+ name: 'Dedicated account manager',
+ description:
+ 'Work with a dedicated account manager via Slack or email to help you get the most out of PostHog.',
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ {
+ key: 'priority_support',
+ name: 'Priority support',
+ description: 'Get help from our team faster than other customers.',
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ {
+ key: 'security_assessment',
+ name: 'Security assessment',
+ description: 'Security assessment',
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ {
+ key: 'training',
+ name: 'Ongoing training',
+ description:
+ 'Get training from our team to help you quickly get up and running with PostHog.',
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ {
+ key: 'configuration_support',
+ name: 'Personalized onboarding',
+ description:
+ 'Get help from our team to create dashboards that will help you understand your data and your business.',
+ unit: null,
+ limit: null,
+ note: null,
+ },
+ ],
+ tiers: null,
+ current_plan: false,
+ included_if: null,
+ contact_support: true,
+ unit_amount_usd: null,
+ },
+ ],
type: 'platform_and_support',
free_allocation: 0,
tiers: null,
@@ -2796,7 +3233,7 @@ export const billingJson: BillingV2Type = {
projected_amount_usd: null,
unit: null,
addons: [],
- contact_support: true,
+ contact_support: false,
inclusion_only: true,
features: [
{
@@ -2832,6 +3269,14 @@ export const billingJson: BillingV2Type = {
icon_key: null,
type: null,
},
+ {
+ key: 'social_sso',
+ name: 'SSO via Google, Github, or Gitlab',
+ description: 'Log in to PostHog with your Google, Github, or Gitlab account.',
+ images: null,
+ icon_key: null,
+ type: null,
+ },
{
key: 'role_based_access',
name: 'Role-based access',
@@ -2842,17 +3287,17 @@ export const billingJson: BillingV2Type = {
type: null,
},
{
- key: 'social_sso',
- name: 'SSO via Google, Github, or Gitlab',
- description: 'Log in to PostHog with your Google, Github, or Gitlab account.',
+ key: 'project_based_permissioning',
+ name: 'Project permissions',
+ description: 'Restrict access to data within the organization to only those who need it.',
images: null,
icon_key: null,
type: null,
},
{
- key: 'project_based_permissioning',
- name: 'Project permissions',
- description: 'Restrict access to data within the organization to only those who need it.',
+ key: 'advanced_permissions',
+ name: 'Advanced permissions',
+ description: 'Control who can access and modify data and features within your organization.',
images: null,
icon_key: null,
type: null,
@@ -2874,10 +3319,26 @@ export const billingJson: BillingV2Type = {
icon_key: null,
type: null,
},
+ {
+ key: '2fa',
+ name: '2FA',
+ description: 'Secure your PostHog account with two-factor authentication.',
+ images: null,
+ icon_key: null,
+ type: null,
+ },
+ {
+ key: '2fa_enforcement',
+ name: 'Enforce 2FA',
+ description: 'Require all users in your organization to enable two-factor authentication.',
+ images: null,
+ icon_key: null,
+ type: null,
+ },
{
key: 'white_labelling',
name: 'White labeling',
- description: 'Use your own branding in your PostHog organization.',
+ description: 'Use your own branding on surveys, shared dashboards, shared insights, and more.',
images: null,
icon_key: null,
type: null,
@@ -2892,16 +3353,16 @@ export const billingJson: BillingV2Type = {
},
{
key: 'dedicated_support',
- name: 'Slack (dedicated channel)',
+ name: 'Dedicated account manager',
description:
- 'Get help directly from our support team in a dedicated Slack channel shared between you and the PostHog team.',
+ 'Work with a dedicated account manager via Slack or email to help you get the most out of PostHog.',
images: null,
icon_key: null,
type: null,
},
{
key: 'email_support',
- name: 'Direct access to engineers',
+ name: 'Email support',
description:
'Get help directly from our product engineers via email. No wading through multiple support people before you get help.',
images: null,
@@ -2909,16 +3370,16 @@ export const billingJson: BillingV2Type = {
type: null,
},
{
- key: 'account_manager',
- name: 'Account manager',
- description: 'Work with a dedicated account manager to help you get the most out of PostHog.',
+ key: 'priority_support',
+ name: 'Priority support',
+ description: 'Get help from our team faster than other customers.',
images: null,
icon_key: null,
type: null,
},
{
key: 'training',
- name: 'Training sessions',
+ name: 'Ongoing training',
description: 'Get training from our team to help you quickly get up and running with PostHog.',
images: null,
icon_key: null,
@@ -2926,7 +3387,7 @@ export const billingJson: BillingV2Type = {
},
{
key: 'configuration_support',
- name: 'Dashboard configuration support',
+ name: 'Personalized onboarding',
description:
'Get help from our team to create dashboards that will help you understand your data and your business.',
images: null,
@@ -2973,11 +3434,62 @@ export const billingJson: BillingV2Type = {
icon_key: null,
type: null,
},
+ {
+ key: 'audit_logs',
+ name: 'Audit logs',
+ description: 'See who in your organization has accessed or modified entities within PostHog.',
+ images: null,
+ icon_key: null,
+ type: null,
+ },
+ {
+ key: 'hipaa_baa',
+ name: 'HIPAA BAA',
+ description:
+ 'Get a signed HIPAA Business Associate Agreement (BAA) to use PostHog in a HIPAA-compliant manner.',
+ images: null,
+ icon_key: null,
+ type: null,
+ },
+ {
+ key: 'custom_msa',
+ name: 'Custom MSA',
+ description:
+ "Get a custom Master Services Agreement (MSA) to use PostHog in a way that fits your company's needs.",
+ images: null,
+ icon_key: null,
+ type: null,
+ },
+ {
+ key: 'team_collaboration',
+ name: 'Team collaboration features',
+ description:
+ 'Work together better with tags on dashboards and insights; descriptions on insights, events, & properties; verified events; comments on almost anything.',
+ images: null,
+ icon_key: null,
+ type: null,
+ },
+ {
+ key: 'ingestion_taxonomy',
+ name: 'Ingestion taxonomy',
+ description:
+ 'Mark events as verified or unverified to help you understand the quality of your data.',
+ images: null,
+ icon_key: null,
+ type: null,
+ },
+ {
+ key: 'tagging',
+ name: 'Dashboard tags',
+ description: 'Organize dashboards with tags.',
+ images: null,
+ icon_key: null,
+ type: null,
+ },
],
},
],
- custom_limits_usd: {
- session_replay: '700',
- product_analytics: '550',
- },
+ custom_limits_usd: {},
+ stripe_portal_url:
+ 'https://billing.stripe.com/p/session/test_YWNjdF8xSElNRERFdUlhdFJYU2R6LF9QaEVJR3VyemlvMDZzRzdiQXZrc1AxSjNXZk1BellP0100ZsforDQG',
}
diff --git a/frontend/src/scenes/billing/Billing.stories.tsx b/frontend/src/scenes/billing/Billing.stories.tsx
index ff420d9db1c51..7ccd862eb111a 100644
--- a/frontend/src/scenes/billing/Billing.stories.tsx
+++ b/frontend/src/scenes/billing/Billing.stories.tsx
@@ -116,6 +116,7 @@ export const BillingUnsubscribeModal_DataPipelines = (): JSX.Element => {
projected_amount_usd: '0',
plans: [],
usage_key: '',
+ contact_support: false,
},
]
diff --git a/frontend/src/scenes/billing/PlanComparison.tsx b/frontend/src/scenes/billing/PlanComparison.tsx
index 8144d5c327e46..a185b4df0277f 100644
--- a/frontend/src/scenes/billing/PlanComparison.tsx
+++ b/frontend/src/scenes/billing/PlanComparison.tsx
@@ -174,6 +174,7 @@ export const PlanComparison = ({
reportSurveyShown(UNSUBSCRIBE_SURVEY_ID, product.type)
}
}}
+ data-attr={`upgrade-${plan.name}`}
>
{plan.current_plan
? 'Current plan'
diff --git a/frontend/src/scenes/onboarding/OnboardingBillingStep.tsx b/frontend/src/scenes/onboarding/OnboardingBillingStep.tsx
index c00a4aab1ebde..a5ac9fc397506 100644
--- a/frontend/src/scenes/onboarding/OnboardingBillingStep.tsx
+++ b/frontend/src/scenes/onboarding/OnboardingBillingStep.tsx
@@ -53,6 +53,7 @@ export const OnboardingBillingStep = ({
onClick={() => {
reportBillingUpgradeClicked(product.type)
}}
+ data-attr="onboarding-subscribe-button"
>
{featureFlags[FEATURE_FLAGS.BILLING_UPGRADE_LANGUAGE] === 'subscribe'
? 'Subscribe to paid plan'
@@ -93,7 +94,11 @@ export const OnboardingBillingStep = ({
- setShowPlanComp(!showPlanComp)}>
+ setShowPlanComp(!showPlanComp)}
+ >
{showPlanComp ? 'Hide' : 'Show'} plans
{currentPlan?.initial_billing_limit && (
diff --git a/frontend/src/scenes/onboarding/OnboardingProductIntroduction.tsx b/frontend/src/scenes/onboarding/OnboardingProductIntroduction.tsx
index 5402f8fe7d728..0daad6c18d479 100644
--- a/frontend/src/scenes/onboarding/OnboardingProductIntroduction.tsx
+++ b/frontend/src/scenes/onboarding/OnboardingProductIntroduction.tsx
@@ -96,7 +96,7 @@ const GetStartedButton = ({ product }: { product: BillingProductV2Type }): JSX.E
{(!hasSnippetEvents || multiInstallProducts.includes(product.type as ProductKey)) && (
{
setTeamPropertiesForProduct(product.type as ProductKey)
reportOnboardingProductSelected(
diff --git a/frontend/src/scenes/onboarding/OnboardingStep.tsx b/frontend/src/scenes/onboarding/OnboardingStep.tsx
index c4cd544e7a38d..ddb081b343919 100644
--- a/frontend/src/scenes/onboarding/OnboardingStep.tsx
+++ b/frontend/src/scenes/onboarding/OnboardingStep.tsx
@@ -96,6 +96,7 @@ export const OnboardingStep = ({
onSkip && onSkip()
!hasNextStep ? completeOnboarding() : goToNextStep()
}}
+ data-attr="onboarding-skip-button"
>
Skip {!hasNextStep ? 'and finish' : 'for now'}
@@ -106,6 +107,7 @@ export const OnboardingStep = ({
{
continueAction && continueAction()
!hasNextStep ? completeOnboarding() : goToNextStep()
diff --git a/frontend/src/scenes/onboarding/sdks/SDKs.tsx b/frontend/src/scenes/onboarding/sdks/SDKs.tsx
index d885e94ea6fcf..33555a1f17ca9 100644
--- a/frontend/src/scenes/onboarding/sdks/SDKs.tsx
+++ b/frontend/src/scenes/onboarding/sdks/SDKs.tsx
@@ -86,6 +86,7 @@ export function SDKs({
) : (
<>
: null}
type="primary"
status="alt"
diff --git a/frontend/src/scenes/products/Products.tsx b/frontend/src/scenes/products/Products.tsx
index 0a37ab2c57b8e..3eade1085f70e 100644
--- a/frontend/src/scenes/products/Products.tsx
+++ b/frontend/src/scenes/products/Products.tsx
@@ -77,6 +77,7 @@ export function ProductCard({
e.stopPropagation()
router.actions.push(getProductUri(product.type as ProductKey))
}}
+ data-attr={`return-to-${product.type}`}
>
diff --git a/frontend/src/types.ts b/frontend/src/types.ts
index 1193a25f62a08..74d8ca7db1748 100644
--- a/frontend/src/types.ts
+++ b/frontend/src/types.ts
@@ -144,6 +144,9 @@ export enum AvailableFeature {
PRODUCT_ANALYTICS_SQL_QUERIES = 'product_analytics_sql_queries',
TWOFA_ENFORCEMENT = '2fa_enforcement',
AUDIT_LOGS = 'audit_logs',
+ HIPAA_BAA = 'hipaa_baa',
+ CUSTOMM_MSA = 'custom_msa',
+ TWOFA = '2fa',
PRIORITY_SUPPORT = 'priority_support',
}
@@ -1403,7 +1406,7 @@ export interface BillingProductV2Type {
unit: string | null
unit_amount_usd: string | null
plans: BillingV2PlanType[]
- contact_support: boolean
+ contact_support: boolean | null
inclusion_only: any
features: BillingV2FeatureType[]
addons: BillingProductV2AddonType[]
@@ -1424,7 +1427,7 @@ export interface BillingProductV2AddonType {
subscribed: boolean
// sometimes addons are included with the base product, but they aren't subscribed individually
included_with_main_product?: boolean
- contact_support?: boolean
+ contact_support: boolean | null
unit: string | null
unit_amount_usd: string | null
current_amount_usd: string | null
@@ -1477,10 +1480,10 @@ export interface BillingV2PlanType {
product_key: ProductKeyUnion
current_plan?: boolean | null
tiers?: BillingV2TierType[] | null
- unit_amount_usd?: string
+ unit_amount_usd: string | null
included_if?: 'no_active_subscription' | 'has_subscription' | null
initial_billing_limit?: number
- contact_support?: boolean
+ contact_support: boolean | null
}
export interface PlanInterface {
diff --git a/posthog/temporal/data_imports/__init__.py b/posthog/temporal/data_imports/__init__.py
index c6a142c712d39..e4d5887f22d15 100644
--- a/posthog/temporal/data_imports/__init__.py
+++ b/posthog/temporal/data_imports/__init__.py
@@ -1,10 +1,10 @@
from posthog.temporal.data_imports.external_data_job import (
ExternalDataJobWorkflow,
create_external_data_job_model,
- update_external_data_job_model,
+ create_source_templates,
run_external_data_job,
+ update_external_data_job_model,
validate_schema_activity,
- create_source_templates,
)
WORKFLOWS = [ExternalDataJobWorkflow]