Events and property groups
1 - Reusable property groups
Section titled “1 - Reusable property groups”The goal is to set up a group of properties that can be reused across events. This way:
- property values can be kept constant across events in (SQL or Mixpanel) queries, which is useful to calculate conversion rates
- easier and less prone to error when creating new events to just list groups of properties instead of individual properties
- any change (e.g. new property) to a property group has to be made from just one place in the code and will modify all events in the scope
Subscriber-side
Friend-side
2 - Events
Section titled “2 - Events”Visual flow here: https://miro.com/app/board/uXjVOW_-LT8=/?moveToWidget=3458764526345077822&cot=14
2.1. Subscriber
Section titled “2.1. Subscriber”| Event name | Sent from | Always sent | Also in Db | Property groups | Additional properties | Implemented? |
|---|---|---|---|---|---|---|
load_gift_button |
Front (Partner app) | Only with toolkit | Partner, content, Subscriber | Component not live yet | ||
view_gift_button |
Front (Partner app) | Only with toolkit | Partner, content, Subscriber | Assessing feasibility | ||
click_generate_share_link |
Front (Partner app) | Only with toolkit | Partner, content, Subscriber | Component not live yet | ||
generate_share_link |
Back (no system properties) | Yes | Yes | Partner, content, Friend, share link | partner_extra_properties mapping trigger_source: partner-api | simulator |
Live |
view_share_details_modal |
Front (Partner app) | Only with toolkit | Partner, content, share link, Subscriber | number_credits_left |
Component not live yet | |
view_exceeded_quota_error |
Front (Partner app) | Only with toolkit | Partner, content, Subscriber | Component not live yet | ||
click_choose_share_medium |
Front (Partner app) | Only with toolkit | Partner, content, share link, Subscriber | share_medium |
Component not live yet |
2.2. Friend (web landing)
Section titled “2.2. Friend (web landing)”| Event name | Description | Sent from | Always sent | Also in Db | Property groups | Additional properties | Implemented? |
|---|---|---|---|---|---|---|---|
request_load_web_landing |
Request is received from the backend | Back (no system properties) | Yes | Yes | Partner, Content, Share link, Friend | issuer_user_agent |
Live |
load_web_landing |
Page is loaded: user sees logo (end of sprint 12 scope) | Front (Browser) | Yes | Partner, Content, Share link, Friend | link_trigger_source: partner-api | simulator | social-media |
Live | |
view_web_landing |
Content is loaded: player is initialised | Front (Browser) | Yes | Partner, content, Share link, Multiple offers, Friend | link_trigger_source: partner-api | simulator | social-media |
Live | |
click_start_content |
Front (Browser) | Yes | Partner, content, Share link, Multiple offers, Friend | autoplay link_trigger_source: partner-api | simulator | social-mediaelapsed_time, adjusted_media_length, total_media_length |
Live | ||
click_pause_content |
Front (Browser) | Yes | Partner, content, Share link, Multiple offers, Friend | link_trigger_source: partner-api | simulator | social-mediaelapsed_time, adjusted_media_length, total_media_length |
Live | ||
click_leaves_browser |
Front (Browser) | Yes | Partner, content, Share link, Multiple offers, Friend | link_trigger_source: partner-api | simulator | social-media |
Live | ||
view_content_end |
Only for audio and video (not HTML) | Front (Browser) | Yes | Partner, content, Share link, Multiple offers, Friend | link_trigger_source: partner-api | simulator | social-mediaelapsed_time, adjusted_media_length, total_media_length |
Live | |
click_reshare |
not live in prod now | Front (Browser) | Yes | Partner, content, Share link, Multiple offers, Friend | [let’s maybe catch the new share link info here as well?]link_trigger_source: partner-api | simulator | social-media |
Live | |
view_offers |
Only if on mobile user clicks to view all the offers - ES to create ticket | Front (Browser) | Yes | Partner, content, Share link, Multiple offers, Friend | link_trigger_source: partner-api | simulator | social-mediaelapsed_time, adjusted_media_length, total_media_lengthreason:pause_modal | end_modal | user_expand_offers_list |
Live | |
click_offer |
Front (Browser) | Yes | Partner, content, Share link, Single offer, Friend | elapsed_time, adjusted_media_length, total_media_lengthis_primary:booleancta_textbutton_location : pause_modal | bottom_sheet | end_modal | regular_position button_type: offer_text | cta_with_icon for new type of ticktock content reason: pause_modal | end_modal | user_expand_offers_list displayType: standalone_button| banner| small_modal | big_modal | screenshot_modal DisplayMoment: active_state | watch | pause | end | middle_scroll | bottom_scroll | |
Live |
3. User-implemented events (Pixel)
Section titled “3. User-implemented events (Pixel)”| Event name | Description | Sent from | Always sent | Also in DB | Property groups | Additional properties | Implemented? |
|---|---|---|---|---|---|---|---|
other_partner_event |
Pixel feature ! | Partner App | Partner-triggered | Partner | partner_event_name, partner_event_props |
not for now | |
load_gift_button |
user_id, content_id, extra.. | source: envoy_pixel |
|||||
click_generate_share_link |
4. Error events
Section titled “4. Error events”| Event name | Description | Sent from | Always sent | Also in DB | Additional properties | Implemented? |
|---|---|---|---|---|---|---|
view_error_page |
Whenever custom error page is seen by a user | Front (browser) | yes | • reason (can be link_expired and link_broken) • share_link_hash • share_link_url • org_name • subscriber_partner_user_id |
yes | |
error_player_container |
On error occurred when player failed to play or load | Front(browser) | yes | • error_code • org_id • org_name • user_id • user_type • content_id • content_name • content_type • share_link_hash • share_link_url • subscriber_user_id • subscriber_partner_user_id • version • testing • offer_title_list • offer_type_list • offer_external_link_list • offer_id_list |
yes | |
error_player_supported |
Whenever player is not supported by user’s browser | Front(browser) | yes | error_code org_id org_name user_id user_type content_id content_name content_type share_link_hash share_link_url subscriber_user_id subscriber_partner_user_id version testing offer_title_list offer_type_list offer_external_link_list offer_id_list |
yes |
error_player_container
error_player_content_not_supported
property is error_code
5. Envoy main page
Section titled “5. Envoy main page”| Event name | Description | Send from | Always sent | Also in DB | Property groups | Additional properties | Implemented | Visual | Event type |
|---|---|---|---|---|---|---|---|---|---|
view_main_landing |
Whenever landing page is seen by a user | Front(browser) | yes | source property: if utm_code passes value, like envoy.is?source=from_somewhwre |
yes | ![]() |
passive (view event) | ||
click_get_started |
User clicks on one of the ‘get started’ buttons | Front(browser) | yes | location property: values set to top or body |
yes | ![]() |
active (click event) | ||
click_contact_us |
Triggered both when Contact Us is clicked and when the message gets sent (step property varies) |
yes | • step property, set to value open (first screen) and sent (second screen) • source property set to either landing_page or pricing_page_biggest_plan based on the page modal is trigerred from |
yes | ![]() |
active (click event) | |||
view_pricing_page |
User sees pricing page after clicking get started | yes | source property: if utm_code passes value, like envoy.is/pricing?source=from_somewhwre |
yes | ![]() |
passive (click event) | |||
click_start_trial |
User clicks on the Start Free Trial button on pricing page | yes | source property: if utm_code passes value, like envoy.is/pricing?source=from_somewhwre | yes | ![]() |
active (click event) |
6. Dashboard panel
Section titled “6. Dashboard panel”| Event name | Description | Send from | Always sent | Also in DB | Property groups | Additional properties | Implemented | Visual | Event type |
|---|---|---|---|---|---|---|---|---|---|
At each step of the signup flow, if click is successful signup_step_completed |
Here let’s please give each screens explicit screen names. | Front(browser) | yes | step property with explicit names: email_and_password then address for address info, slug for slug, credit_card_info for the last, etc. (i might have forgotten a screen) |
yes | For screen 1 : ![]() |
all active (click events) | ||





