Skip to content

[$250] Implement new methods for FullStory tracking #92006

@JS00001

Description

@JS00001

Coming from this thread: https://expensify.slack.com/archives/C07RXNJDMC5/p1779954128210089

We need to add the following data to FullStory.

User Properties

The following should be tracked using FS.setUserVars(...) from the FullStory/index.ts class

Property Name Data Type Description Triggered When Example Values
user_type_path string Dynamic onboarding/user segmentation path Whenever user context updates team_1_10_public
account_type string Type of account / plan Triggered on context update personal, business
user_status string Indicates if user is new or returning Triggered on page load/session start new, returning
has_completed_onboarding boolean Indicates whether onboarding is completed Triggered when onboarding state changes TRUE, FALSE
onb_step string Current onboarding or setup stage associated with the user   registration, accounting, completed
user_role string Defines workspace/account role Triggered when role context is relevant admin, auditor, member
workspace_state string Indicates whether user has existing workspaces Triggered on workspace page load  
workspace_count number Number of workspaces available Triggered on workspace state change 0, 1, 3
workspace_member_count number Number of members added to the workspace during creation/setup   0
free_trial_end_date date Date when the user’s free trial ends   2026-05-31 23:59:59
days_till_trial_end number Number of days remaining until free trial expiration   14, -3
free_trial_status string Current free trial lifecycle status   active, expiring_soon, expired, expired_last30days
plan_type string Account/workspace plan type Triggered on account/workspace context load collect, control
paid_member boolean Indicates whether user converted to a paid plan   TRUE, FALSE
auth_method string Authentication method selected Triggered on login/signup action email, google
reg_method string Registration/signup method used Triggered after successful signup Google signup, email/phone signup
login_status boolean Result of login attempt Triggered after login attempt success, failure

Events

The following should be tracked using FS.event(...) from the FullStory/index.ts class

Property Name Data Type Description Triggered When Events Example Values
screen_name string Logical name of the current screen or major UI state Triggered when screen/view context changes Page_viewed, Component_viewed, clickable_action, Input_field, Error_message, Search_submitted, Chat_opened Pages, overlays, modals, side panels, search views
entry_point string Source from which the user arrived Triggered on entry/navigation Page_viewed, sign_up Registration flow, login flow, homepage entry
location string Broad UI area where interaction occurred Triggered on interaction/view Component_viewed, clickable_action, Input_field, Error_message Header, footer, hero, modal, sidebar, cards
component_name string Name of component/container where interaction occurs Triggered on component interaction Component_viewed, Component_closed, clickable_action, Input_field, Error_message Search bar, modal, onboarding form, wallet section
onb_step string Current onboarding/setup stage Triggered when onboarding context changes Page_viewed, Component_viewed, clickable_action, Input_field, Error_message Registration, onboarding, setup flows
element_label string Label of clicked CTA or selectable item Triggered on click clickable_action Buttons, tiles, links, menu items, search results
checked_box boolean Indicates whether box is checked or not Triggered on checkbox click/state clickable_action Any checkbox
toggle_swith_on boolean Indicates whether the toggle is switched on or off Triggered on toggle switch interaction clickable_action Any toggle switch field
result_type string Type/category of the search result item Triggered on search interaction clickable_action, Search_submitted Search results, recent searches, reports, chats
input_field_name string Name of interacted input field Triggered on field interaction Input_field Search bars, login fields, forms, chat input
input_field_type string Type of input field Triggered on field interaction Input_field Text input, dropdown, checkbox, toggle
input_field_status string Current interaction state of input Triggered when input state changes Input_field Focus, typing, cleared, selected
action_status string Outcome of action or submission Triggered after meaningful action completes clickable_action, Login_submitted, sign_up Save, submit, verify, enable actions
upload_success boolean Indicates upload result Triggered after upload completes File_upload_completed Receipt uploads, attachments, profile uploads
error_location string UI location where error occurred Triggered when error appears Error_message Forms, modals, search bar, chat input
error_code string System-generated error code Triggered on backend/system error Error_message Authentication, upload, validation flows
error_message string Error message displayed to user Triggered when error appears Error_message Validation messages, server errors
error_type string Type/category of error Triggered when error appears Error_message, Chatbot_response_received Validation, network, authentication, timeout
search_results_count number Number of returned search results Triggered after search submission Search_submitted Global search, inbox search
search_type string Type/category of search results Triggered after search submission Search_submitted Chats, reports, mixed results
chat_type string Defines how chat is displayed Triggered when chat opens Chat_opened Full-page chat, side-panel chat
has_attachment boolean Indicates whether message/upload contains attachment Triggered when attachment exists Concierge_message_sent Chat attachments, uploads
attachment_count number Number of attached files Triggered after attachment added Concierge_message_sent Chat uploads, receipt uploads
attachment_types string Types of attached files Triggered after attachment added Concierge_message_sent PDFs, images, spreadsheets
upload_method string Method used to upload file Triggered on upload interaction File_upload_started, Concierge_message_sent Drag-drop, file picker, camera
position number Position of clicked item within list/ranking Triggered on item click clickable_action Search results, dropdowns, ranked lists
expense_type string Type/category of created expense   Expense_created receipt, distance, manual
expense_creation_method string Method used to create the expense   Expense_created manual, scan, import
amount_range string Bucketed range of expense amount   Expense_created 0_50, 50_200
expense_count number Number of expenses included in a report   Report_created, Report_submitted 4
report_type string Type/category of report   Report_created, Report_submitted expense, invoice, trip
approver_count number Number of approvers associated with a report   Report_submitted 2
bank_account_type string Type/category of connected bank account   Bank_account_added personal, business
card_connection_method string Method used to connect a bank account or card   Bank_account_added, Card_added plaid, manual, wallet_import
bank_region string Region/country of connected bank account   Bank_account_added US, EU
card_type string Type/category of added payment card   Card_added virtual, physical, personal
card_provider string Provider/network of the added card   Card_added Visa, Mastercard
card_country string Country/region associated with the card   Card_added US, UK
Upwork Automation - Do Not Edit

Metadata

Metadata

Labels

DailyKSv2ExternalAdded to denote the issue can be worked on by a contributorHelp WantedApply this label when an issue is open to proposals by contributors

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions