KinesteX

Plan Onboarding Prefill

Pre-fill or skip onboarding survey questions for personalized plans. All fields are optional — only provided fields will be pre-filled and their corresponding screens will be skipped. If all answers are provided for a goal-based plan, the user goes straight to results. Applies to: Plan Onboarding only (route "plan-onboarding").


Availability: This parameter is used with createCustomComponentView (Swift, Kotlin, Flutter) or the CUSTOM_COMPONENT integration option (React Native) with route: "plan-onboarding".


ParameterTypeAccepted valuesDescription
routestring"plan-onboarding"Must be "plan-onboarding" for this feature to work
planOnboardingPrefillobjectObject containing prefill values for the onboarding survey
planOnboardingPrefill.goalstring"automatic", "lose_weight", "build_muscle", "get_stronger", "stay_active"The fitness goal. "automatic" runs the assessment-based personalized path (adds the Duration and Assessment steps); the other goals map to fixed goal-based plans and skip the Duration step
planOnboardingPrefill.healthIssuesstring[]"None", "High Blood Pressure", "Diabetes", "High Cholesterol", "Insomnia", "Depression"Pre-selects health issues; the health-issues screen is skipped when provided
planOnboardingPrefill.injuriesstring[]"None", "Shoulder", "Wrist", "Knee", "Hip", "Ankle", "Lower back"Pre-selects injuries (empty array = none); the injuries screen is skipped when provided
planOnboardingPrefill.durationnumber15, 30, 60, 90Preferred workout duration in minutes. Only relevant for the "automatic" goal path
planOnboardingPrefill.lifestylestring"Sedentary", "Lightly active", "Moderately active", "Very active"Activity level (note: capitalized with spaces — this screen's vocabulary differs from the top-level lifestyle parameter)
planOnboardingPrefill.assessmentOnlybooleantrue / falseWhen true, all survey screens (goal, health issues, injuries, duration, lifestyle) are skipped and the user lands directly on the fitness assessment. Any previously stored plan ID is cleared so a fresh personalized plan is generated after the assessment completes. All other prefill fields are ignored when this is set

Gotcha: answers the user already gave in a locally cached, in-progress onboarding session take precedence over prefill values, field by field.


`assessmentOnly` use case: Use this for reassessment flows — when the user already has a profile (goal, lifestyle, etc.) recorded in your host app and you only want them to perform a fresh fitness assessment to regenerate their personalized plan. Don't combine it with the other prefill fields; they will be ignored.


`remind_me_later_clicked` event: When the user is on the Assessment screen inside the plan-onboarding flow and taps "Remind me later", the SDK posts a remind_me_later_clicked PostMessage so your host app can dismiss the SDK and schedule a follow-up prompt. This event is only fired from the plan-onboarding page.

Plan Onboarding Prefill Configuration
Swift example:
1// Use createCustomComponentView with route "plan-onboarding"
2kinestex.createCustomComponentView(
3    route: "plan-onboarding",
4    customParams: [
5        "planOnboardingPrefill": [
6            "goal": "lose_weight",
7            "healthIssues": ["High Blood Pressure"],
8            "injuries": [],
9            "duration": 30,
10            "lifestyle": "Sedentary"
11        ]
12    ]
13)
14
15// Reassessment-only flow (skips the entire survey)
16kinestex.createCustomComponentView(
17    route: "plan-onboarding",
18    customParams: [
19        "planOnboardingPrefill": [
20            "assessmentOnly": true
21        ]
22    ]
23)