KinesteX

Session & Upload Events

Events related to workout session saving and motion recording uploads. The saving events are only sent when the session is saved to the backend (shouldSendStats: true, which is the default for the AI Trainer). workout_completion_overlay_dismissed is sent either way.


EventData FieldsDescription
workout_session_saveddata: objectWorkout session successfully saved to backend. May arrive after a delay when the save was recovered by the offline outbox (same payload) — see the offline note under Plans & Programs
session_save_complete-The session and its motion recordings finished uploading (also sent when there was nothing to upload). Not sent for saves recovered by the offline outbox
motion_upload_progressdata: { completed: number, total: number }Motion recording upload progress
motion_upload_errordata: { error: string }Motion recording upload failed or timed out
workout_completion_overlay_dismissed-The workout completion overlay closed (tap or auto-dismiss)

workout_session_saved Data Structure:

typescript
1{
2  session_id: number,            // Backend-assigned session ID
3  content_id: string | null,     // Workout ID
4  content_type: string,          // Integration that ran it: "Workout", "Plan",
5                                 // "PersonalizedPlan", "CustomWorkout", "Challenge",
6                                 // "Trainer", ...
7  workout_title: string,         // Name of the workout
8  accuracy_score: number,        // Overall accuracy (0-100)
9  efficiency_score: number,      // Efficiency score (0-100)
10  completion_percentage: number,  // How much of the workout was completed (0-100)
11  completed_reps_count: number,  // Total reps completed
12  calories_burned: number        // Estimated calories burned
13}

motion_upload_progress Data Structure:

typescript
1{
2  completed: number,  // Number of exercise recordings uploaded so far
3  total: number       // Total number of exercise recordings to upload
4}