### Purchase Started Event Example Source: https://funnelfox.com/docs/integrations/analytics/mixpanel This JSON object illustrates a 'purchase_started' event. It captures similar user and device context as other events, along with details relevant to the initiation of a purchase. ```json { "event": "purchase_started", "properties": { "time": 1764157968.403, "distinct_id": "01KB004A83JZZ5C72XR8PYXC79", "$browser": "Chrome", "$browser_version": 142, "$city": "Podgorica", "$current_url": "https://app.funnelfox.com/preview/01K3GQH43MCTKFTJSY4Z6906AV/main/wj1ya9nv?vid=1764157909461_69&fpid=01KB004A83JZZ5C72XR8PYXC79&fsid=01KB004A83GDRTNZS2R11A339M", "$device_id": "19abfc55ad8511-029397ae0b42e38-26061b51-144000-19abfc55ad8511", "$identity_failure_reason": "errAnonDistinctIdAssignedAlready", "$initial_referrer": "https://app.funnelfox.com/funnels/01K4W2T6AVB1A17C8SK7RBQDHC/editor/main?type=default&tab=screens&screen=y9Nk1CAE&config=screen-config&mode=canvas", "$initial_referring_domain": "app.funnelfox.com", "$insert_id": "01KB004M0JMA6VKM1V7NVTZZFW", "$lib_version": "2.59.0", "$mp_api_endpoint": "api.mixpanel.com", "$mp_api_timestamp_ms": 1764157969309, "$os": "Windows", "$referrer": "https://app.funnelfox.com/funnels/01K3GQH43MCTKFTJSY4Z6906AV/editor/main?type=default&tab=screens&screen=QbfqbhE9&config=screen-config&mode=canvas&element=el_pUOS0", "$referring_domain": "app.funnelfox.com", "$region": "Podgorica", "$screen_height": 864, "$screen_width": 1536, "$user_id": "01KB004A83JZZ5C72XR8PYXC79", "currency": "USD", "mp_country_code": "ME", "mp_lib": "web", "mp_processing_time_ms": 1764157971125, "mp_sent_by_lib_version": "2.59.0", "onboarding": "demo-app", "payment_method": "paypal", "payment_provider": "stripe", "price": 1, "price_fact": 1, "product_id": "price_1SXIsO3Yhl9rcCZfMTp4Sx54", "sandbox": true, "vendor_price_id": "price_1SXIsO3Yhl9rcCZfMTp4Sx54", "vendor_product_id": "prod_TUH4pRlAcHxBWr", "vendor_profile_id": "" } } ``` -------------------------------- ### Example onboarding_started Event Source: https://funnelfox.com/docs/integrations/analytics/posthog This JSON object represents an example of the 'onboarding_started' event captured by PostHog. It includes detailed properties about the user's session, device, and environment. ```json { "uuid": "019bb799-c985-7405-bade-1f8209fb172c", "event": "onboarding_started", "properties": { "$window_id": "019bb799-b36d-753d-9f86-6375561c2009", "$lib_rate_limit_remaining_tokens": 99, "$device_type": "Desktop", "$session_recording_network_payload_capture": { "capturePerformance": { "network_timing": true, "web_vitals": true, "web_vitals_allowed_metrics": null } }, "$raw_user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36", "$screen_width": 1536, "$insert_id": "71pvpxb6dr32dj4q", "$replay_script_config": { "script": "posthog-recorder" }, "$timezone": "Europe/Budapest", "$exception_capture_enabled_server_side": false, "$web_vitals_allowed_metrics": null, "$recording_status": "disabled", "$os": "Windows", "$pathname": "/preview/01K3GQH43MCTKFTJSY4Z6906AV/main/QbfqbhE9", "$lib_version": "1.194.2", "$feature_flag_payloads": {}, "token": "", "sandbox": true, "$current_url": "https://app.funnelfox.com/preview/01K3GQH43MCTKFTJSY4Z6906AV/main/QbfqbhE9?vid=1768311833907_157&fpid=01KEVSKCPADAGPYRQQJBFT2PDA&fsid=01KEVSKCPA28HKFC3GY4VVZ9C9", "$browser_language_prefix": "en", "$screen_height": 864, "$lib": "web", "$browser_version": 143, "$web_vitals_enabled_server_side": true, "$session_id": "019bb799-b36d-753d-9f86-637459f42d50", "$initial_person_info": { "r": "https://app.funnelfox.com/funnels/01K3GQH43MCTKFTJSY4Z6906AV/editor/main?type=default&tab=screens&element=el_vt2Mw&screen=QbfqbhE9&config=screen-config&mode=canvas", "u": "https://app.funnelfox.com/preview/01K3GQH43MCTKFTJSY4Z6906AV/main/QbfqbhE9?vid=1768311833907_157&fpid=01KEVSKCPADAGPYRQQJBFT2PDA&fsid=01KEVSKCPA28HKFC3GY4VVZ9C9" }, "$user_id": "01KEVSKCPADAGPYRQQJBFT2PDA", "$console_log_recording_enabled_server_side": true, "$session_recording_canvas_recording": {}, "$referrer": "https://app.funnelfox.com/funnels/01K3GQH43MCTKFTJSY4Z6906AV/editor/main?type=default&tab=screens&element=el_vt2Mw&screen=QbfqbhE9&config=screen-config&mode=canvas", "$is_identified": true, "onboarding": "demo-app", "$os_version": "10", "$viewport_height": 752, "$device_id": "019bb799-b36e-7a8f-ac52-e04de9053f8d", "$browser_language": "en-US", "$referring_domain": "app.funnelfox.com", "$host": "app.funnelfox.com", "$configured_session_timeout_ms": 1800000, "$time": 1768311867.781, "distinct_id": "01KEVSKCPADAGPYRQQJBFT2PDA", "$dead_clicks_enabled_server_side": false, "$autocapture_disabled_server_side": false, "$active_feature_flags": [], "$browser": "Chrome", "$viewport_width": 398, "$replay_sample_rate": null, "$replay_minimum_duration": null }, "timestamp": "2026-01-13T13:44:27.852000Z", "team_id": 274461, "distinct_id": "01KEVSKCPADAGPYRQQJBFT2PDA", "elements_chain": "", "created_at": "2026-01-13T13:44:33.708000Z", "person_mode": "full" } ``` -------------------------------- ### PayPal Subscription Plan Configuration Example Source: https://funnelfox.com/docs/integrations/payments/paypal Example parameters for creating a subscription plan in the PayPal Dashboard. This includes plan name, price, and billing cycle. ```text Plan Name: Premium Monthly Price: $19.99/month Billing Cycle: Monthly Trial: Optional (set days and price) Setup Fee: Optional ``` -------------------------------- ### Progressive Messaging Example Source: https://funnelfox.com/docs/elements/loader This example shows how to change the loader's message at different progress milestones to maintain engagement. ```text 0-33%: "Analyzing your profile..." 34-66%: "Matching preferences..." 67-100%: "Preparing results..." ``` -------------------------------- ### Onboarding Started Webhook Source: https://funnelfox.com/docs/api-reference/webhook-reference/onboardingstarted This webhook is triggered when a user starts the onboarding process. It can be used to initiate follow-up actions or track user engagement. ```APIDOC ## Webhook: onboarding.started ### Description This webhook is triggered when a user starts the onboarding process. It can be used to initiate follow-up actions or track user engagement. ### Method POST ### Endpoint /webhooks/onboarding/started ### Request Body This webhook does not have a request body. The event details are sent in the response. ### Response #### Success Response (200) - **event_type** (string) - The type of the event, which will be "onboarding.started". - **data** (object) - An object containing the details of the onboarding start event. - **user_id** (string) - The unique identifier of the user who started onboarding. - **timestamp** (string) - The time at which the onboarding started, in ISO 8601 format. #### Response Example ```json { "event_type": "onboarding.started", "data": { "user_id": "usr_123abc", "timestamp": "2023-10-27T10:00:00Z" } } ``` ``` -------------------------------- ### Install FunnelFox Billing SDK via NPM Source: https://funnelfox.com/docs/develop/web-sdk-quickstart Install the FunnelFox Billing SDK and Primer's checkout library using npm. ```bash npm install @funnelfox/billing @primer-io/checkout-web ``` -------------------------------- ### Objection Dissolver FAQ Examples Source: https://funnelfox.com/docs/elements/faq Use these examples to address common purchase barriers and build confidence in potential customers. ```text Q: "Is there a money-back guarantee?" A: "Yes! 30-day full refund, no questions asked." Q: "What if I don't have time?" A: "Just 15 minutes a day. Fits any schedule." Q: "Will this work for beginners?" A: "Absolutely! We start from zero." ``` -------------------------------- ### URL Parameter Condition Example Source: https://funnelfox.com/docs/elements/overview This example demonstrates how to set up a condition to show an element when a specific URL parameter is present. The condition checks if the 'utm_campaign' parameter contains the value 'promo'. ```text URL: funnel.com?utm_campaign=promo Condition: ?utm_campaign contains "promo" Result: Element shows ``` -------------------------------- ### Example Events Data Source: https://funnelfox.com/docs/integrations/analytics/posthog This snippet shows the structure of example event data, including initial and current URL, UTM parameters, referrer, browser, device, OS, and screen dimensions. It also includes geoIP information and a timestamp. ```json { "$initial_current_url": "https://app.funnelfox.com/preview/01K3GQH43MCTKFTJSY4Z6906AV/main/QbfqbhE9?vid=1768311833907_157&fpid=01KEVSKCPADAGPYRQQJBFT2PDA&fsid=01KEVSKCPADAGPYRQQJBFT2PDA", "$initial_utm_medium": null, "$initial_fbclid": null, "$initial_referrer": "https://app.funnelfox.com/funnels/01K3GQH43MCTKFTJSY4Z6906AV/editor/main?type=default&tab=screens&element=el_vt2Mw&screen=QbfqbhE9&config=screen-config&mode=canvas", "$initial_host": "app.funnelfox.com", "$initial_browser": "Chrome", "$initial_browser_version": 143, "$initial_device_type": "Desktop", "$initial_os": "Windows", "$initial_os_version": "10", "$initial_screen_height": 864, "$initial_screen_width": 1536, "$initial_viewport_height": 752, "$initial_viewport_width": 398, "$initial_raw_user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" }, "$ip": "", "$sent_at": "2026-01-13T13:45:47.135Z", "$set": { "$geoip_city_name": "Gijón", "$geoip_city_confidence": null, "$geoip_subdivision_2_name": "Asturias", "$geoip_subdivision_2_code": "O", "$geoip_subdivision_1_name": "Principality of Asturias", "$geoip_subdivision_1_code": "AS", "$geoip_country_name": "Spain", "$geoip_country_code": "ES", "$geoip_continent_name": "Europe", "$geoip_continent_code": "EU", "$geoip_postal_code": "33204", "$geoip_latitude": 43.5381, "$geoip_longitude": -5.6604, "$geoip_accuracy_radius": 20, "$geoip_time_zone": "Europe/Madrid", "$browser": "Chrome", "$browser_version": 143, "$device_type": "Desktop", "$current_url": "https://app.funnelfox.com/preview/01K3GQH43MCTKFTJSY4Z6906AV/main/3uy7vijw?vid=1768311833907_157&fpid=01KEVSKCPADAGPYRQQJBFT2PDA&fsid=01KEVSKCPADAGPYRQQJBFT2PDA", "$pathname": "/preview/01K3GQH43MCTKFTJSY4Z6906AV/main/3uy7vijw", "$os": "Windows", "$os_version": "10", "$referring_domain": "app.funnelfox.com", "$referrer": "https://app.funnelfox.com/funnels/01K3GQH43MCTKFTJSY4Z6906AV/editor/main?type=default&tab=screens&element=el_vt2Mw&screen=QbfqbhE9&config=screen-config&mode=canvas", "$screen_height": 864, "$screen_width": 1536, "$viewport_height": 752, "$viewport_width": 398, "$raw_user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" }, "$geoip_city_name": "Gijón", "$geoip_country_name": "Spain", "$geoip_country_code": "ES", "$geoip_continent_name": "Europe", "$geoip_continent_code": "EU", "$geoip_postal_code": "33204", "$geoip_latitude": 43.5381, "$geoip_longitude": -5.6604, "$geoip_accuracy_radius": 20, "$geoip_time_zone": "Europe/Madrid", "$geoip_subdivision_1_code": "AS", "$geoip_subdivision_1_name": "Principality of Asturias", "$geoip_subdivision_2_code": "O", "$geoip_subdivision_2_name": "Asturias", "$transformations_succeeded": [ "GeoIP (019b69c8-3970-0000-a854-45b85b1ff3fd)" ], "$has_recording": false }, "timestamp": "2026-01-13T13:45:44.918000Z", "team_id": 274461, "distinct_id": "01KEVSKCPADAGPYRQQJBFT2PDA", "elements_chain": "", "created_at": "2026-01-13T13:45:51.320000Z", "person_mode": "full" } ``` -------------------------------- ### New Subscription: Conversion Webhook Example Source: https://funnelfox.com/docs/billing/subscription-migration-billing This JSON illustrates the webhook payload for a new subscription that has been converted during a migration. It shows the active status and billing details of the newly started subscription. ```json { "event_timestamp": "2025-12-19T11:00:00.766550", "event_type": "subscription", "subtype": "convertion", // ... other fields }, "subscription": { "subs_id": "73d520ae-42ff-4c52-877a-fa4a82534699", "status": ["RECURRING"], "is_active": true, "started_at": "2025-12-19T11:00:00.759873", "current_period_starts_at": "2025-12-19T11:00:00.759873", "current_period_ends_at": "2025-12-20T11:00:00.759873", "next_check_at": "2025-12-20T09:00:00.759873", "price_point": { "ident": "short_no_trial_migrate", "next_price": "5", "next_period": 1, "next_period_duration": "days" // ... other fields } } ``` -------------------------------- ### onboarding_started Event Example Source: https://funnelfox.com/docs/integrations/analytics/mixpanel This JSON object represents an 'onboarding_started' event. It includes standard event properties and specific details about the user's session and device. ```json { "event": "onboarding_started", "properties": { "time": 1764157641.846, "distinct_id": "01KAZZTK8TEF1QTRVVHAN2TNY5", "$city": "Podgorica", "$device_id": "19abfc55ad8511-029397ae0b42e38-26061b51-144000-19abfc55ad8511", "$identity_failure_reason": "errAnonDistinctIdAssignedAlready", "$insert_id": "01KAZZTNZMKKWZKG6TN3JY2N4M", "$lib_version": "v1.2.0", "$mp_api_endpoint": "api.mixpanel.com", "$mp_api_timestamp_ms": 1764157641846, "$region": "Podgorica", "$user_id": "01KAZZTK8TEF1QTRVVHAN2TNY5", "mp_country_code": "ME", "mp_lib": "go", "mp_processing_time_ms": 1764157641990 } } ``` -------------------------------- ### Track Custom Event Example Source: https://funnelfox.com/docs/editor/coding An example of tracking a 'QuizCompleted' event, including the user's quiz score. ```javascript fox.trackCustom('QuizCompleted', { score: fox.inputs.get('quiz-score') }) ``` -------------------------------- ### Sequential Loaders Example Source: https://funnelfox.com/docs/elements/loader Demonstrates how to use multiple loaders in sequence to provide a comprehensive process feeling for the user. ```text Multiple loaders in sequence: 1. "Analyzing profile..." ✓ 2. "Checking availability..." ✓ 3. "Applying discounts..." ✓ Result: Comprehensive process feeling ``` -------------------------------- ### Loader with Timer Example Source: https://funnelfox.com/docs/elements/loader Shows how to combine a loader with a timer to create a sense of urgency after a user has made an investment. ```text Loader: "Reserving your spot..." Result page: "Spot reserved for {{timer}}" Creates urgency after investment ``` -------------------------------- ### Quiz Start Form Structure Source: https://funnelfox.com/docs/elements/textinput A simple form structure to start a quiz, asking for the user's name and capitalizing it. ```text "First, what's your name?" Input: Text Placeholder: "John" Transform: Capitalize Next page: "Nice to meet you, {{name}}" ``` -------------------------------- ### Processing Element: Technical Feel Messaging Examples Source: https://funnelfox.com/docs/elements/processing Provides examples of technical-sounding labels for the Processing element to create a sophisticated impression. ```text "Initializing algorithm..." "Processing data points..." "Running optimization..." "Generating results..." ``` -------------------------------- ### Example Event: second_screen_presented Source: https://funnelfox.com/docs/integrations/analytics/mixpanel This JSON object logs the 'second_screen_presented' event, detailing user session information, browser, OS, and current URL for the 'demo-app' onboarding. ```json { "event": "second_screen_presented", "properties": { "time": 1764157962.624, "distinct_id": "01KB004A83JZZ5C72XR8PYXC79", "$browser": "Chrome", "$browser_version": 142, "$city": "Podgorica", "$current_url": "https://app.funnelfox.com/preview/01K3GQH43MCTKFTJSY4Z6906AV/main/wj1ya9nv?vid=1764157909461_69&fpid=01KB004A83JZZ5C72XR8PYXC79&fsid=01KB004A83GDRTNZS2R11A339M", "$device_id": "19abfc55ad8511-029397ae0b42e38-26061b51-144000-19abfc55ad8511", "$identity_failure_reason": "errAnonDistinctIdAssignedAlready", "$initial_referrer": "https://app.funnelfox.com/funnels/01K4W2T6AVB1A17C8SK7RBQDHC/editor/main?type=default&tab=screens&screen=y9Nk1CAE&config=screen-config&mode=canvas", "$initial_referring_domain": "app.funnelfox.com", "$insert_id": "01KB004EBH4MF0Q5KECJKPD238", "$lib_version": "2.59.0", "$mp_api_endpoint": "api.mixpanel.com", "$mp_api_timestamp_ms": 1764157964057, "$os": "Windows", "$referrer": "https://app.funnelfox.com/funnels/01K3GQH43MCTKFTJSY4Z6906AV/editor/main?type=default&tab=screens&screen=QbfqbhE9&config=screen-config&mode=canvas&element=el_pUOS0", "$referring_domain": "app.funnelfox.com", "$region": "Podgorica", "$screen_height": 864, "$screen_width": 1536, "$user_id": "01KB004A83JZZ5C72XR8PYXC79", "mp_country_code": "ME", "mp_lib": "web", "mp_processing_time_ms": 1764157971110, "mp_sent_by_lib_version": "2.59.0", "onboarding": "demo-app", "sandbox": true, "screen_cid": "wj1YA9nv", "screen_id": "wj1YA9nv", "screen_index": 1 } } ``` -------------------------------- ### Example Event: products_screen_presented Source: https://funnelfox.com/docs/integrations/analytics/mixpanel This JSON logs the 'products_screen_presented' event, capturing details about the user's session, device, and the current URL for the 'dog-translator' application's paywall. ```json { "event": "products_screen_presented", "properties": { "time": 1764157530.027, "distinct_id": "01KAZZKYENGYTV096Q63759551", "$browser": "Chrome", "$browser_version": 142, "$city": "Podgorica", "$current_url": "https://demo-app.fnlfx.com/dog-translator/paywall/?fpid=01KAZZKYENGYTV096Q63759551&fsid=01KAZZKYEN85PTFAKNAKA2X27E", "$device_id": "19abffa0c56f0e-0df0f253d22403-26061b51-144000-19abffa0c56f0e", "$initial_referrer": "https://app.funnelfox.com/", "$initial_referring_domain": "app.funnelfox.com", "$insert_id": "01KAZZQ7VTDF42AJQSBKD6FA24", "$lib_version": "2.59.0", "$mp_api_endpoint": "api.mixpanel.com", "$mp_api_timestamp_ms": 1764157532546, "$os": "Windows", "$referrer": "https://app.funnelfox.com/", "$referring_domain": "app.funnelfox.com", "$region": "Podgorica", "$screen_height": 864, "$screen_width": 1536, "$user_id": "01KAZZKYENGYTV096Q63759551", "mp_country_code": "ME", "mp_lib": "web", "mp_processing_time_ms": 1764157532734, "mp_sent_by_lib_version": "2.59.0", "onboarding": "dog-translator", "sandbox": false, "screen_cid": "paywall", "screen_id": "0LKgdIxV", "screen_index": 17, "screen_type": "paywall" } } ``` -------------------------------- ### API Pagination Example Source: https://funnelfox.com/docs/develop/api Illustrates how to use the `limit` and `cursor` parameters for paginating through API list endpoints. ```bash # First page GET /funnels?limit=20 # Next page using cursor from previous response GET /funnels?limit=20&cursor=abc123 ``` -------------------------------- ### Example User Event Data Source: https://funnelfox.com/docs/integrations/analytics/amplitude This JSON object represents an example of user event data captured by Amplitude, including user properties and device information. ```json { "is_attribution_event": false, "isChildRow": false, "language": "English", "library": "amplitude-ts/2.11.13", "location_lat": null, "location_lng": null, "os": "Chrome 142", "os_name": "Chrome", "os_version": "142", "partner_id": null, "paying": null, "plan": {}, "platform": "Web", "raw_event_type": "user_email_collected", "region": "North Holland", "sample_rate": null, "server_received_time": "2025-11-13 15:26:19.560000", "server_upload_time": "2025-11-13 15:26:19.565000", "session_id": 1763047575821, "source_id": null, "start_version": null, "user_creation_time": null, "user_id": null, "user_properties": { "email": "test@example.com" }, "uuid": "e2b3debf-68b8-489e-af63-4ee9bb2b4732", "version_name": null } ``` -------------------------------- ### Install FunnelFox Billing SDK via CDN Source: https://funnelfox.com/docs/develop/web-sdk-quickstart Include Primer's Web SDK and CSS first, followed by the FunnelFox Billing SDK script from a CDN. ```html ``` -------------------------------- ### Account Creation Pattern Source: https://funnelfox.com/docs/elements/loader This pattern shows a loader with percentage display during account setup, lasting about 3 seconds before redirecting to the dashboard. ```text Signup: Email/password Loader: "Setting up your account..." Show percentage: Yes Duration: 3 seconds Dashboard: Welcome screen ``` -------------------------------- ### Processing Element: Value Building Messaging Examples Source: https://funnelfox.com/docs/elements/processing Shows examples of messaging for the Processing element that emphasize scale, thoroughness, special treatment, and individual attention. ```text "Checking 500+ products..." → Scale "Comparing 50 providers..." → Thoroughness "Applying exclusive discounts..." → Special treatment "Personalizing for you..." → Individual attention ``` -------------------------------- ### Learning Progress Chart Configuration Source: https://funnelfox.com/docs/elements/chart Example configuration for a chart tracking learning progress, using a step type for milestones and defining start/end badges. ```text Start: 0 End: 100 Duration: 30 days Badge Start: "Beginner" Badge End: "Expert Level" Type: Step (skill milestones) ``` -------------------------------- ### TypeScript: Configure and Create Checkout Source: https://funnelfox.com/docs/develop/types Demonstrates how to configure the SDK and create a type-safe checkout instance. Ensure necessary imports are included. ```typescript import { configure, createCheckout, CheckoutInstance, PaymentResult, CheckoutConfig, PaymentMethod, } from '@funnelfox/billing'; // Configure configure({ orgId: 'your-org-id', }); // Create checkout with type safety const checkout: CheckoutInstance = await createCheckout({ priceId: 'price_123', customer: { externalId: 'user_456', email: 'user@example.com', countryCode: 'US', }, container: '#checkout', clientMetadata: { source: 'web', campaign: 'summer-sale', }, paymentMethodOrder: [ PaymentMethod.PAYPAL, PaymentMethod.PAYMENT_CARD, PaymentMethod.GOOGLE_PAY, PaymentMethod.APPLE_PAY, ], }); // Type-safe event handlers checkout.on('success', (result: PaymentResult) => { console.log('Order:', result.orderId); console.log('Status:', result.status); console.log('Transaction:', result.transactionId); }); ``` -------------------------------- ### Handle AppsFlyer Install Conversion Data Source: https://funnelfox.com/docs/integrations/authentication/deep-links Use this snippet to process install conversion data from AppsFlyer. It checks for 'Non-organic' status and an 'ffkey' to identify the user. ```kotlin override fun onConversionDataSuccess(conversionData: MutableMap?) { val data = conversionData?.get("data") as? MutableMap if (data != null && data["af_status"] == "Non-organic" && data["ffkey"] != null) { // Identify user using the AppsFlyer DDL ffkey from conversion data. } } override fun onConversionDataFail(errorMessage: String?) { Log.e("AppsFlyer", "AppsFlyer DDL failed: $errorMessage") } override fun onAppOpenAttribution(data: Map?) {} override fun onAttributionFailure(errorMessage: String?) {} } ``` -------------------------------- ### Value Stacking Example Source: https://funnelfox.com/docs/elements/list Demonstrates how to present the cumulative value of an offer, breaking down individual components and their total worth before revealing the final price. ```text $97 value - Course materials $47 value - Worksheet templates $197 value - Group coaching $97 value - Lifetime updates = $438 Total Value Your Price: Just $97 ``` -------------------------------- ### Example Link Click Event Data Source: https://funnelfox.com/docs/integrations/analytics/amplitude This JSON object shows an example of data for a 'link_button_clicked' event, including event properties like the URL and onboarding status. ```json { "_time": 1763121069534, "$insert_id": "01KA138ZDR13A8SPW92D4AM3MT", "$schema": 13, "amplitude_attribution_ids": null, "amplitude_id": 1389196450853, "app": 757882, "city": "Amsterdam", "client_event_time": "2025-11-14 11:51:09.534000", "client_upload_time": "2025-11-14 11:51:11.539000", "country": "Netherlands", "data": { "group_first_event": {}, "group_ids": {}, "path": "/2/httpapi" }, "device_carrier": null, "device_family": "Windows", "device_id": "fnlfx_01KA137SQW32AWYM9A263GWKTQ", "device_type": "Windows", "display_name": "link_button_clicked", "dma": null, "event_id": 130, "event_properties": { "cta": false, "onboarding": "demo-app", "sandbox": true, "url": "https://funnelfox.com/docs/getting-started" }, "event_time": "2025-11-14 11:51:09.534000", "event_type": "link_button_clicked", "group_properties": {}, "groups": {}, "ip_address": "193.124.206.155", "language": "English", "library": "amplitude-ts/2.11.13", "location_lat": null, "location_lng": null, "os": "Chrome 142", "os_name": "Chrome", "os_version": "142", "partner_id": null, "paying": null, "plan": {}, "platform": "Web", "processed_time": "2025-11-14 11:51:12.199000", "region": "North Holland", "sample_rate": null, "server_received_time": "2025-11-14 11:51:11.539000", "server_upload_time": "2025-11-14 11:51:11.544000", "session_id": 1763121034056, "source_id": null, "start_version": null, "timeline_hidden": false, "user_id": null, "user_properties": {}, "uuid": "cd4e99de-4333-4f90-a806-839c3cb8f060", "version_name": null } ``` -------------------------------- ### Demo Request Date Picker Setup Source: https://funnelfox.com/docs/elements/datepicker Configuration for scheduling demo requests, specifying the input type as a calendar and setting date constraints. ```text "When would you like your demo?" Type: Input (calendar) Min: Next business day Max: 14 days out Trigger: Send to calendar integration ``` -------------------------------- ### Checkout Impression Event Example Source: https://funnelfox.com/docs/integrations/analytics/mixpanel This JSON object represents an example of a 'checkout_impression' event. It includes user, device, and session details along with specific checkout-related properties. ```json { "event": "checkout_impression", "properties": { "time": 1764157963.489, "distinct_id": "01KB004A83JZZ5C72XR8PYXC79", "$browser": "Chrome", "$browser_version": 142, "$city": "Podgorica", "$current_url": "https://app.funnelfox.com/preview/01K3GQH43MCTKFTJSY4Z6906AV/main/wj1ya9nv?vid=1764157909461_69&fpid=01KB004A83JZZ5C72XR8PYXC79&fsid=01KB004A83GDRTNZS2R11A339M", "$device_id": "19abfc55ad8511-029397ae0b42e38-26061b51-144000-19abfc55ad8511", "$identity_failure_reason": "errAnonDistinctIdAssignedAlready", "$initial_referrer": "https://app.funnelfox.com/funnels/01K4W2T6AVB1A17C8SK7RBQDHC/editor/main?type=default&tab=screens&screen=y9Nk1CAE&config=screen-config&mode=canvas", "$initial_referring_domain": "app.funnelfox.com", "$insert_id": "01KB004F6ZWF88FZRMGDFXP8PB", "$lib_version": "2.59.0", "$mp_api_endpoint": "api.mixpanel.com", "$mp_api_timestamp_ms": 1764157964057, "$os": "Windows", "$referrer": "https://app.funnelfox.com/funnels/01K3GQH43MCTKFTJSY4Z6906AV/editor/main?type=default&tab=screens&screen=QbfqbhE9&config=screen-config&mode=canvas&element=el_pUOS0", "$referring_domain": "app.funnelfox.com", "$region": "Podgorica", "$screen_height": 864, "$screen_width": 1536, "$user_id": "01KB004A83JZZ5C72XR8PYXC79", "currency": "USD", "mp_country_code": "ME", "mp_lib": "web", "mp_processing_time_ms": 1764157971125, "mp_sent_by_lib_version": "2.59.0", "onboarding": "demo-app", "payment_method": "paypal", "payment_provider": "stripe", "price": 1, "price_fact": 1, "product_id": "price_1SXIsO3Yhl9rcCZfMTp4Sx54", "sandbox": true, "vendor_price_id": "price_1SXIsO3Yhl9rcCZfMTp4Sx54", "vendor_product_id": "prod_TUH4pRlAcHxBWr", "vendor_profile_id": "" } } ``` -------------------------------- ### Create a Checkout with FunnelFox Billing SDK Source: https://funnelfox.com/docs/develop/web-sdk-quickstart Initialize a checkout instance with organization ID, price ID, customer details, and a container selector. Primer's checkout form will render in the specified element. ```javascript import { createCheckout } from '@funnelfox/billing'; await createCheckout({ orgId: 'your-org-id', priceId: 'price_123', customer: { externalId: 'user_456', email: 'user@example.com', }, container: '#checkout-container', }); ``` -------------------------------- ### Feature Clarifier FAQ Examples Source: https://funnelfox.com/docs/elements/faq Explain product functionality, plan inclusions, and upgrade options to clarify value for users. ```text Q: "What's included in the premium plan?" A: "All features, unlimited usage, priority support." Q: "Can I upgrade later?" A: "Yes, upgrade anytime and pay the difference." Q: "Do you offer team accounts?" A: "Yes, add unlimited team members." ``` -------------------------------- ### Example Event: translator-app Source: https://funnelfox.com/docs/integrations/analytics/mixpanel This JSON object represents an example event logged for the 'translator-app' onboarding flow. It includes various properties capturing user and session details. ```json { "$region": "Podgorica", "$screen_height": 864, "$screen_width": 1536, "$user_id": "01KBFYK16MHPXRZDAEP7RXDTQ5", "form_cid": "", "mp_country_code": "ME", "mp_lib": "web", "mp_processing_time_ms": 1764693233428, "mp_sent_by_lib_version": "2.59.0", "onboarding": "translator-app", "reply": "Improve my communication", "sandbox": false, "screen_cid": "goals", "screen_id": "jHXsakwR", "screen_index": 1 } } ``` -------------------------------- ### Example Event Payload Source: https://funnelfox.com/docs/integrations/analytics/mixpanel This JSON object represents a generic example event payload. It includes common properties like screen dimensions, user ID, and library information. ```json { "$screen_height": 864, "$screen_width": 1536, "$user_id": "01KAZZKYENGYTV096Q63759551", "mp_country_code": "ME", "mp_lib": "web", "mp_processing_time_ms": 1764157517274, "mp_sent_by_lib_version": "2.59.0", "onboarding": "dog-translator", "sandbox": false, "screen_cid": "auth", "screen_id": "GJQ2wBTp", "screen_index": 15, "screen_type": "auth" } ``` -------------------------------- ### Example Events Data Structure Source: https://funnelfox.com/docs/integrations/analytics/posthog This JSON object represents the structure of example events captured by PostHog. It includes various properties related to the user, device, session, and application state. ```json { "$lib_version": "1.194.2", "$device_type": "Desktop", "$viewport_height": 752, "$user_id": "01KEVSKCPADAGPYRQQJBFT2PDA", "$replay_minimum_duration": null, "$replay_script_config": { "script": "posthog-recorder" }, "$autocapture_disabled_server_side": false, "$exception_capture_enabled_server_side": false, "$configured_session_timeout_ms": 1800000, "$lib_rate_limit_remaining_tokens": 97.33, "$screen_width": 1536, "$lib": "web", "$host": "app.funnelfox.com", "$time": 1768311898.376, "$browser": "Chrome", "$console_log_recording_enabled_server_side": true, "onboarding": "demo-app", "$recording_status": "disabled", "token": "", "$is_identified": true, "$web_vitals_allowed_metrics": null, "screen_type": "finish", "$pathname": "/preview/01K3GQH43MCTKFTJSY4Z6906AV/main/final", "$screen_height": 864, "sandbox": true, "$web_vitals_enabled_server_side": true, "$raw_user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36", "$browser_version": 143, "$timezone": "Europe/Budapest", "$active_feature_flags": [], "$initial_person_info": { "r": "https://app.funnelfox.com/funnels/01K3GQH43MCTKFTJSY4Z6906AV/editor/main?type=default&tab=screens&element=el_vt2Mw&screen=QbfqbhE9&config=screen-config&mode=canvas", "u": "https://app.funnelfox.com/preview/01K3GQH43MCTKFTJSY4Z6906AV/main/QbfqbhE9?vid=1768311833907_157&fpid=01KEVSKCPADAGPYRQQJBFT2PDA&fsid=01KEVSKCPA28HKFC3GY4VVZ9C9" }, "$device_id": "019bb799-b36e-7a8f-ac52-e04de9053f8d" }, "timestamp": "2026-01-13T13:44:58.448000Z", "team_id": 274461, "distinct_id": "01KEVSKCPADAGPYRQQJBFT2PDA", "elements_chain": "", "created_at": "2026-01-13T13:45:03.007000Z", "person_mode": "full" } ```