--- id: Activate_Auto_Language name: Activate Auto Language version: 1.0.0 summary: | Legacy support/contact flow related to language/auto-detect behavior. --- ## Runtime contract | Field | Current value | | --- | --- | | Runtime event | `Activate_Auto_Language` | | App | ReelPik | | Surface | Settings | | Status | Legacy semantics | | Known custom properties | No stable setting-state property documented. | ## Trigger Legacy support/contact flow related to language/auto-detect behavior. ## Convention / quality note Current event is not reliable evidence that language mode was successfully changed. **Recommended canonical successor:** `language_mode_changed` The canonical name is a migration target only. The current runtime event remains `Activate_Auto_Language` until the producer is changed and downstream Mixpanel reports are migrated. --- id: Activate_Campaign name: Activate Campaign version: 1.0.0 summary: | Merchant requests activation by selecting Active in the UI before persistence completes. --- ## Runtime contract | Field | Current value | | --- | --- | | Runtime event | `Activate_Campaign` | | App | ReelPik | | Surface | Campaign | | Status | Active | | Known custom properties | `source`; `widget_type` may be available by producer. | ## Trigger Merchant requests activation by selecting Active in the UI before persistence completes. ## Convention / quality note Intent event. Keep separate from the successful activation event. **Recommended canonical successor:** `campaign_activation_requested` The canonical name is a migration target only. The current runtime event remains `Activate_Campaign` until the producer is changed and downstream Mixpanel reports are migrated. --- id: Activated_Campaign name: Activated Campaign version: 1.0.0 summary: | A draft-to-active campaign save succeeds after persistence. --- ## Runtime contract | Field | Current value | | --- | --- | | Runtime event | `Activated_Campaign` | | App | ReelPik | | Surface | Campaign | | Status | Active | | Known custom properties | `source` / `widget_type` may be available by producer. | ## Trigger A draft-to-active campaign save succeeds after persistence. ## Convention / quality note This is the current successful campaign-activation event and should be used in historical funnels. **Recommended canonical successor:** `campaign_activated` The canonical name is a migration target only. The current runtime event remains `Activated_Campaign` until the producer is changed and downstream Mixpanel reports are migrated. --- id: Add_to_cart_product_card name: Add to Cart Product Card version: 1.0.0 summary: | Shopper interacts with Add to Cart or the variant flow from the product-card layout. --- ## Runtime contract | Field | Current value | | --- | --- | | Runtime event | `Add_to_cart_product_card` | | App | ReelPik | | Surface | Storefront | | Status | Active / good baseline | | Known custom properties | `product_id`, `variant_id`, `video_id`, `campaign_id`, `action`, `has_multiple_variants`, `page_url`, `timestamp`. | ## Trigger Shopper interacts with Add to Cart or the variant flow from the product-card layout. ## Convention / quality note `action` is `click_atc`, `open_variant_modal`, or `variant_atc`. This is one of the stronger existing event contracts. **Recommended canonical successor:** `storefront_add_to_cart_interaction` The canonical name is a migration target only. The current runtime event remains `Add_to_cart_product_card` until the producer is changed and downstream Mixpanel reports are migrated. --- id: Arrange_Video name: Arrange Video version: 1.0.0 summary: | Merchant reorders videos. --- ## Runtime contract | Field | Current value | | --- | --- | | Runtime event | `Arrange_Video` | | App | ReelPik | | Surface | Video | | Status | Active but coarse | | Known custom properties | No stable custom properties documented. | ## Trigger Merchant reorders videos. ## Convention / quality note Future event should include campaign context and reorder metadata only if analytically useful. **Recommended canonical successor:** `videos_reordered` The canonical name is a migration target only. The current runtime event remains `Arrange_Video` until the producer is changed and downstream Mixpanel reports are migrated. --- id: Auto_sync_insta name: Instagram Auto-sync Interest version: 1.0.0 summary: | Merchant interacts with the Instagram auto-sync coming-soon/fake-door experience. --- ## Runtime contract | Field | Current value | | --- | --- | | Runtime event | `Auto_sync_insta` | | App | ReelPik | | Surface | Feature interest | | Status | Legacy fake-door semantics | | Known custom properties | No stable feature metadata beyond the event name. | ## Trigger Merchant interacts with the Instagram auto-sync coming-soon/fake-door experience. ## Convention / quality note This does not mean Instagram auto-sync was enabled. Prefer generic `feature_interest_opened` with `feature=instagram_auto_sync`. **Recommended canonical successor:** `feature_interest_opened` The canonical name is a migration target only. The current runtime event remains `Auto_sync_insta` until the producer is changed and downstream Mixpanel reports are migrated. --- id: Auto_sync_tiktok name: TikTok Auto-sync Interest version: 1.0.0 summary: | Merchant interacts with the TikTok auto-sync coming-soon/fake-door experience. --- ## Runtime contract | Field | Current value | | --- | --- | | Runtime event | `Auto_sync_tiktok` | | App | ReelPik | | Surface | Feature interest | | Status | Legacy fake-door semantics | | Known custom properties | No stable feature metadata beyond the event name. | ## Trigger Merchant interacts with the TikTok auto-sync coming-soon/fake-door experience. ## Convention / quality note This does not mean TikTok auto-sync was enabled. Prefer generic `feature_interest_opened` with `feature=tiktok_auto_sync`. **Recommended canonical successor:** `feature_interest_opened` The canonical name is a migration target only. The current runtime event remains `Auto_sync_tiktok` until the producer is changed and downstream Mixpanel reports are migrated. --- id: Change_Analytics_Date name: Change Analytics Date version: 1.0.0 summary: | Merchant applies an analytics date change. --- ## Runtime contract | Field | Current value | | --- | --- | | Runtime event | `Change_Analytics_Date` | | App | ReelPik | | Surface | Analytics | | Status | Active but coarse | | Known custom properties | Current event does not reliably capture the chosen preset/range. | ## Trigger Merchant applies an analytics date change. ## Convention / quality note Add normalized date-range metadata when this event is migrated. **Recommended canonical successor:** `analytics_date_range_changed` The canonical name is a migration target only. The current runtime event remains `Change_Analytics_Date` until the producer is changed and downstream Mixpanel reports are migrated. --- id: Click_Create_Campaign name: Click Create Campaign version: 1.0.0 summary: | Merchant clicks an entry point to start creating a campaign. --- ## Runtime contract | Field | Current value | | --- | --- | | Runtime event | `Click_Create_Campaign` | | App | ReelPik | | Surface | Campaign | | Status | Active | | Known custom properties | `source` / `page` may be supplied by individual producers. | ## Trigger Merchant clicks an entry point to start creating a campaign. ## Convention / quality note Intent event; do not treat as successful campaign creation. **Recommended canonical successor:** `campaign_creation_started` The canonical name is a migration target only. The current runtime event remains `Click_Create_Campaign` until the producer is changed and downstream Mixpanel reports are migrated. --- id: Click_Setup_Bundle name: Click Setup Bundle version: 1.0.0 summary: | Merchant opens/starts the product-bundle setup flow. --- ## Runtime contract | Field | Current value | | --- | --- | | Runtime event | `Click_Setup_Bundle` | | App | ReelPik | | Surface | Product bundles | | Status | Active with data-quality caveat | | Known custom properties | No stable custom properties documented. | ## Trigger Merchant opens/starts the product-bundle setup flow. ## Convention / quality note Audit found potential double-fire risk from nested handlers; validate before using for precise counts. **Recommended canonical successor:** `bundle_setup_opened` The canonical name is a migration target only. The current runtime event remains `Click_Setup_Bundle` until the producer is changed and downstream Mixpanel reports are migrated. --- id: Copy_ID name: Copy ID version: 1.0.0 summary: | Merchant copies an ID from the ReelPik UI. --- ## Runtime contract | Field | Current value | | --- | --- | | Runtime event | `Copy_ID` | | App | ReelPik | | Surface | Campaign | | Status | Active / diagnostic | | Known custom properties | No stable custom properties documented. | ## Trigger Merchant copies an ID from the ReelPik UI. ## Convention / quality note Low-priority diagnostic interaction. **Recommended canonical successor:** `campaign_id_copied` The canonical name is a migration target only. The current runtime event remains `Copy_ID` until the producer is changed and downstream Mixpanel reports are migrated. --- id: Create_Campaign name: Create Campaign version: 1.0.0 summary: | Campaign creation is tracked in the current merchant UI. --- ## Runtime contract | Field | Current value | | --- | --- | | Runtime event | `Create_Campaign` | | App | ReelPik | | Surface | Campaign | | Status | Active | | Known custom properties | `widget_type` and `source` may be supplied by individual producers. | ## Trigger Campaign creation is tracked in the current merchant UI. ## Convention / quality note The normalized successor should fire only after a campaign exists successfully. **Recommended canonical successor:** `campaign_created` The canonical name is a migration target only. The current runtime event remains `Create_Campaign` until the producer is changed and downstream Mixpanel reports are migrated. --- id: Created_Bundle name: Created Bundle version: 1.0.0 summary: | Current bundle creation flow emits this event around bundle persistence. --- ## Runtime contract | Field | Current value | | --- | --- | | Runtime event | `Created_Bundle` | | App | ReelPik | | Surface | Product bundles | | Status | Active with data-quality caveat | | Known custom properties | No stable custom properties documented. | ## Trigger Current bundle creation flow emits this event around bundle persistence. ## Convention / quality note Audit found success semantics can be overstated when individual upserts fail; future event should fire only after confirmed success. **Recommended canonical successor:** `bundle_created` The canonical name is a migration target only. The current runtime event remains `Created_Bundle` until the producer is changed and downstream Mixpanel reports are migrated. --- id: Customize_Widget name: Customize Widget version: 1.0.0 summary: | The Save action is triggered from the customization modal. --- ## Runtime contract | Field | Current value | | --- | --- | | Runtime event | `Customize_Widget` | | App | ReelPik | | Surface | Customization | | Status | Active with data-quality caveat | | Known custom properties | `widget_type` (`carousel`, `floating_reel`, `highlight`, `grid`, `product_video`, `player`, `story`). | ## Trigger The Save action is triggered from the customization modal. ## Convention / quality note Current implementation fires without waiting for confirmed persistence, so failed saves can be counted. Do not interpret this as `customization_saved`. **Recommended canonical successor:** `customization_save_requested` The canonical name is a migration target only. The current runtime event remains `Customize_Widget` until the producer is changed and downstream Mixpanel reports are migrated. --- id: Edit_Campaign name: Edit Campaign version: 1.0.0 summary: | Merchant enters or performs campaign editing. --- ## Runtime contract | Field | Current value | | --- | --- | | Runtime event | `Edit_Campaign` | | App | ReelPik | | Surface | Campaign | | Status | Active | | Known custom properties | No stable custom properties documented. | ## Trigger Merchant enters or performs campaign editing. ## Convention / quality note Current semantics are broad; normalize around the meaningful product action. **Recommended canonical successor:** `campaign_edit_opened` The canonical name is a migration target only. The current runtime event remains `Edit_Campaign` until the producer is changed and downstream Mixpanel reports are migrated. --- id: Import_Video name: Import Video version: 1.0.0 summary: | Merchant performs a video import action. --- ## Runtime contract | Field | Current value | | --- | --- | | Runtime event | `Import_Video` | | App | ReelPik | | Surface | Video | | Status | Active but coarse | | Known custom properties | `import_source` (`instagram`, `tiktok`, `device`, `shopify_files`). | ## Trigger Merchant performs a video import action. ## Convention / quality note Current event does not cleanly distinguish started, completed and failed imports. Future tracking should separate outcome semantics. **Recommended canonical successor:** `video_imported` The canonical name is a migration target only. The current runtime event remains `Import_Video` until the producer is changed and downstream Mixpanel reports are migrated. --- id: Installed_App name: Installed App version: 1.0.0 summary: | ReelPik records an app-install lifecycle event. --- ## Runtime contract | Field | Current value | | --- | --- | | Runtime event | `Installed_App` | | App | ReelPik | | Surface | Merchant lifecycle | | Status | Defined / validate producer | | Known custom properties | No custom properties confirmed in the current UI constants. | ## Trigger ReelPik records an app-install lifecycle event. ## Convention / quality note Keep the catalog tied to the current runtime name until instrumentation is normalized. **Recommended canonical successor:** `app_installed` The canonical name is a migration target only. The current runtime event remains `Installed_App` until the producer is changed and downstream Mixpanel reports are migrated. --- id: Link_Product name: Link Product version: 1.0.0 summary: | Merchant updates the product association for a video. --- ## Runtime contract | Field | Current value | | --- | --- | | Runtime event | `Link_Product` | | App | ReelPik | | Surface | Video / product linking | | Status | Active but coarse | | Known custom properties | Current production payload is not consistently enriched with product/campaign context. | ## Trigger Merchant updates the product association for a video. ## Convention / quality note Future event should include `campaign_id`, `campaign_type`, `video_id`, `product_count`, and `action`. **Recommended canonical successor:** `product_linked` The canonical name is a migration target only. The current runtime event remains `Link_Product` until the producer is changed and downstream Mixpanel reports are migrated. --- id: Notify_auto_sync name: Auto-sync Notify Interest version: 1.0.0 summary: | Merchant submits interest/notification intent for an auto-sync feature. --- ## Runtime contract | Field | Current value | | --- | --- | | Runtime event | `Notify_auto_sync` | | App | ReelPik | | Surface | Feature interest | | Status | Legacy fake-door semantics | | Known custom properties | No stable custom properties documented. | ## Trigger Merchant submits interest/notification intent for an auto-sync feature. ## Convention / quality note Prefer `feature_interest_submitted` with a `feature` property. **Recommended canonical successor:** `feature_interest_submitted` The canonical name is a migration target only. The current runtime event remains `Notify_auto_sync` until the producer is changed and downstream Mixpanel reports are migrated. --- id: Open_App name: Open App version: 1.0.0 summary: | Merchant opens the ReelPik admin application. --- ## Runtime contract | Field | Current value | | --- | --- | | Runtime event | `Open_App` | | App | ReelPik | | Surface | Merchant admin | | Status | Active | | Known custom properties | Mixpanel defaults; merchant profile context is attached separately. | ## Trigger Merchant opens the ReelPik admin application. ## Convention / quality note Used as the current admin-engagement event. **Recommended canonical successor:** `app_opened` The canonical name is a migration target only. The current runtime event remains `Open_App` until the producer is changed and downstream Mixpanel reports are migrated. --- id: Publish_Block name: Publish Block version: 1.0.0 summary: | Merchant continues from ReelPik to Shopify Theme Editor to add/enable the app block. --- ## Runtime contract | Field | Current value | | --- | --- | | Runtime event | `Publish_Block` | | App | ReelPik | | Surface | Deployment | | Status | Active with misleading name | | Known custom properties | `source` may be present depending on producer. | ## Trigger Merchant continues from ReelPik to Shopify Theme Editor to add/enable the app block. ## Convention / quality note This is **not** proof that a widget was deployed. Do not use it as the live-widget activation event. **Recommended canonical successor:** `theme_editor_opened` The canonical name is a migration target only. The current runtime event remains `Publish_Block` until the producer is changed and downstream Mixpanel reports are migrated. --- id: Remove_Branding name: Remove Branding version: 1.0.0 summary: | Legacy support/contact flow related to removing ReelPik branding. --- ## Runtime contract | Field | Current value | | --- | --- | | Runtime event | `Remove_Branding` | | App | ReelPik | | Surface | Settings / monetization | | Status | Legacy semantics | | Known custom properties | No stable setting-state property documented. | ## Trigger Legacy support/contact flow related to removing ReelPik branding. ## Convention / quality note Current event is not reliable evidence that branding was actually removed. **Recommended canonical successor:** `remove_branding_changed` The canonical name is a migration target only. The current runtime event remains `Remove_Branding` until the producer is changed and downstream Mixpanel reports are migrated. --- id: Saved_Bundle name: Saved Bundle version: 1.0.0 summary: | Bundle save is represented by this runtime event. --- ## Runtime contract | Field | Current value | | --- | --- | | Runtime event | `Saved_Bundle` | | App | ReelPik | | Surface | Product bundles | | Status | Defined / validate semantics | | Known custom properties | No stable custom properties documented. | ## Trigger Bundle save is represented by this runtime event. ## Convention / quality note Confirm whether this represents a successful persisted result before using as an outcome KPI. **Recommended canonical successor:** `bundle_saved` The canonical name is a migration target only. The current runtime event remains `Saved_Bundle` until the producer is changed and downstream Mixpanel reports are migrated. --- id: Share_video name: Share Video version: 1.0.0 summary: | Shopper shares a ReelPik video. --- ## Runtime contract | Field | Current value | | --- | --- | | Runtime event | `Share_video` | | App | ReelPik | | Surface | Storefront | | Status | Active | | Known custom properties | `video_id`, `campaign_id`, `story_id`, `share_method`, `share_url`, `page_url`, `timestamp`. | ## Trigger Shopper shares a ReelPik video. ## Convention / quality note Storefront event respects Shopify Customer Privacy. Avoid using raw URLs as analysis dimensions unless needed. **Recommended canonical successor:** `storefront_video_shared` The canonical name is a migration target only. The current runtime event remains `Share_video` until the producer is changed and downstream Mixpanel reports are migrated. --- id: Uninstall_App name: Uninstall App version: 1.0.0 summary: | ReelPik records an app-uninstall lifecycle event. --- ## Runtime contract | Field | Current value | | --- | --- | | Runtime event | `Uninstall_App` | | App | ReelPik | | Surface | Merchant lifecycle | | Status | Defined / validate producer | | Known custom properties | No custom properties confirmed in the current UI constants. | ## Trigger ReelPik records an app-uninstall lifecycle event. ## Convention / quality note Keep the catalog tied to the current runtime name until instrumentation is normalized. **Recommended canonical successor:** `app_uninstalled` The canonical name is a migration target only. The current runtime event remains `Uninstall_App` until the producer is changed and downstream Mixpanel reports are migrated. --- id: Unlock_Analytics name: Unlock Analytics version: 1.0.0 summary: | Upgrade/unlock interactions for advanced analytics call this event in the UI. --- ## Runtime contract | Field | Current value | | --- | --- | | Runtime event | `Unlock_Analytics` | | App | ReelPik | | Surface | Analytics / monetization | | Status | Code-defined; production validation required | | Known custom properties | Surface/source varies by producer. | ## Trigger Upgrade/unlock interactions for advanced analytics call this event in the UI. ## Convention / quality note Prefer the shared feature-gate convention with `feature_key=advanced_analytics`. **Recommended canonical successor:** `feature_gate_clicked` The canonical name is a migration target only. The current runtime event remains `Unlock_Analytics` until the producer is changed and downstream Mixpanel reports are migrated. --- id: View_Analytics name: View Analytics version: 1.0.0 summary: | Analytics page mounts for the merchant. --- ## Runtime contract | Field | Current value | | --- | --- | | Runtime event | `View_Analytics` | | App | ReelPik | | Surface | Analytics | | Status | Active | | Known custom properties | No meaningful custom properties required for the page-view event. | ## Trigger Analytics page mounts for the merchant. ## Convention / quality note Useful for analytics-engagement measurement. **Recommended canonical successor:** `analytics_viewed` The canonical name is a migration target only. The current runtime event remains `View_Analytics` until the producer is changed and downstream Mixpanel reports are migrated. --- id: View_recommend name: View Recommend version: 1.0.0 summary: | Shopper views/interacts with a recommended product from ReelPik. --- ## Runtime contract | Field | Current value | | --- | --- | | Runtime event | `View_recommend` | | App | ReelPik | | Surface | Storefront | | Status | Active | | Known custom properties | `product_id`, `video_id`, `campaign_id`, `page_url`, `timestamp`. | ## Trigger Shopper views/interacts with a recommended product from ReelPik. ## Convention / quality note Storefront identity currently lacks reliable shop context for filtering internal stores. **Recommended canonical successor:** `storefront_recommended_product_viewed` The canonical name is a migration target only. The current runtime event remains `View_recommend` until the producer is changed and downstream Mixpanel reports are migrated. --- id: reelpik-analytics name: ReelPik Product Analytics version: 1.0.0 summary: | Analytics contract for events currently emitted by ReelPik merchant and storefront experiences. repository: language: TypeScript url: https://github.com/Fordeer/monorepo sends: - id: Installed_App version: 1.0.0 group: Merchant lifecycle - id: Uninstall_App version: 1.0.0 group: Merchant lifecycle - id: Open_App version: 1.0.0 group: Merchant admin - id: Click_Create_Campaign version: 1.0.0 group: Campaign - id: Create_Campaign version: 1.0.0 group: Campaign - id: Activate_Campaign version: 1.0.0 group: Campaign - id: Activated_Campaign version: 1.0.0 group: Campaign - id: Edit_Campaign version: 1.0.0 group: Campaign - id: Import_Video version: 1.0.0 group: Video - id: Copy_ID version: 1.0.0 group: Campaign - id: Publish_Block version: 1.0.0 group: Deployment - id: Link_Product version: 1.0.0 group: Video / product linking - id: Arrange_Video version: 1.0.0 group: Video - id: Customize_Widget version: 1.0.0 group: Customization - id: View_Analytics version: 1.0.0 group: Analytics - id: Change_Analytics_Date version: 1.0.0 group: Analytics - id: Unlock_Analytics version: 1.0.0 group: Analytics / monetization - id: Auto_sync_insta version: 1.0.0 group: Feature interest - id: Auto_sync_tiktok version: 1.0.0 group: Feature interest - id: Notify_auto_sync version: 1.0.0 group: Feature interest - id: Remove_Branding version: 1.0.0 group: Settings / monetization - id: Activate_Auto_Language version: 1.0.0 group: Settings - id: Click_Setup_Bundle version: 1.0.0 group: Product bundles - id: Saved_Bundle version: 1.0.0 group: Product bundles - id: Created_Bundle version: 1.0.0 group: Product bundles - id: Share_video version: 1.0.0 group: Storefront - id: View_recommend version: 1.0.0 group: Storefront - id: Add_to_cart_product_card version: 1.0.0 group: Storefront --- ## Purpose This service represents ReelPik's product analytics producers. It is a documentation boundary, not a runtime microservice. The catalog includes current legacy event names so engineers, BA/Product, QA, and analysts can verify what is actually emitted. New events should follow the shared `snake_case` conventions and outcome semantics. ## Source locations - Merchant analytics constants: `apps/story_video/ui/src/constants/mixpanel.ts` - Storefront analytics: `packages/reels-player/src/lib/mixpanelAnalytics.ts` --- id: product-analytics name: Product Analytics version: 1.0.0 summary: | Product analytics contracts emitted by ForDeer apps. Each app is modeled as a system so its events stay discoverable without mixing product-specific semantics. systems: - id: reelpik version: 1.0.0 --- ## Overview This domain catalogs product-behavior events across the ForDeer portfolio. ReelPik is the first audited system. Invoice, Label, and future apps will be added as sibling systems when their existing tracking is inventoried. The catalog reflects runtime reality. Legacy event names and known data-quality limitations are documented explicitly, while new events follow the shared analytics conventions.