KinesteX

Plan Context

Pass plan progression context so the SDK associates a directly-launched workout with the correct plan. Applies to: Workout view (a workout launched directly that should count toward a plan). After the workout finishes, the SDK posts plan_progression_saved (or plan_progression_failed on error). See Plans & Programs events.


ParameterTypeApplies toWhat it does internally
planIdstringWorkout viewThe ID of the plan the workout belongs to — used on the statistics screen to resolve the plan and record progression against it
planTypestringWorkout view"personalized" or "goal-based". Selects which progression pipeline records the completion
progressWorkoutIdstringWorkout viewThe plan-day workout ID used to record progression when the workout wasn't launched from the in-app plan UI

When to use: Only when you launch a workout directly via the SDK (not through the in-app plan UI) and want it to count toward plan progression. The in-app plan flow handles this automatically — you don't need to pass these fields if the user navigates from the plan dashboard.


Progression is only recorded for a meaningful session: personalized-plan progression requires a minimum efficiency score, and goal-based progression requires some completed work (several reps or ~10s of hold time). A workout abandoned immediately won't advance the plan.


Note: If you launch a workout without these fields, it is treated as a standalone session and won't update plan progression.

Plan Context Configuration
Swift example:
1// Pass plan context when launching a workout directly
2kinestex.createWorkoutView(
3    workout: "Day 3 Workout",
4    customParams: [
5        "planId": "plan_abc123",
6        "planType": "personalized",
7        "progressWorkoutId": "plan_day_3"
8    ]
9)