KinesteX

AI Trainer Chat Parameters

Parameters specific to the AI Trainer Chat view. Applies to: AI Trainer only — every other integration option ignores them.


ParameterTypeDefaultApplies toWhat it does internally
isSubscribedbooleantrueAI TrainerMissing or true = subscribed. Only an explicit false (string "false" is also accepted for URL launches) gates workout generation and triggers the open_subscription_flow event — see the subscription gating guide. For session-authenticated companies the backend's subscription status overrides this flag entirely — the server is the source of truth and also gates generation server-side
subscriptionReturnUrlstring—AI TrainerFor link/standalone integrations with no host app: non-subscribed users are redirected here at the generation step instead of receiving open_subscription_flow. Accepts https:// URLs or app deep links; script-executing schemes are rejected
aiTrainerNamestring—AI TrainerRenames the AI trainer everywhere it's labelled (header title, reply labels). Shown verbatim in every language
aiTrainerColorstring—AI TrainerRecolors the trainer's star icon — any CSS color, e.g. "#7C3AED". Missing = the theme's brand color
aiTrainerGreetingstring-AI TrainerYour own opening line, typed by the trainer at most once per launch (skipped while another prompt is on screen). Display only, not sent to the AI
aiTrainerOnboardingGreetingstring-AI TrainerOpening line when a user with no chat history starts onboarding. Falls back to aiTrainerGreeting
aiTrainerOnboardingCompleteMessagestring-AI TrainerLine typed once when onboarding ends and the first plan starts generating
customProfileActionbooleanfalseAI TrainerThe "Profile and more settings" row in the header settings menu sends trainer_profile_clicked (with the current profile) instead of opening the KinesteX profile screen. Use it to open your own profile UI
customCalendarActionbooleanfalseAI TrainerThe calendar button in the header sends trainer_calendar_clicked instead of opening the My Progress screen
hideCalendarButtonbooleanfalseAI TrainerHides the calendar button in the header
hideProfileButtonbooleanfalseAI TrainerHides the settings button in the header, which also removes its quick settings (music, AI motion tracking, pose model) and the "Profile and more settings" row. Takes priority over customProfileAction
captureDateOfBirthbooleanfalseAI TrainerThe profile step asks for a full date of birth instead of a birth year. KinesteX stores only the age; the date is sent back to you as date_of_birth in the profile events
date_of_birthstring-AI Trainer"YYYY-MM-DD". Prefills the date of birth. Ignored unless it gives an age between 3 and 120

Runtime subscription reply: after your host handles open_subscription_flow, post { subscription_result: "purchased" } (resumes the parked generation) or { subscription_result: "dismissed" } back to the WebView.


Fitness-profile prefill fields (same names as the trainer_profile_updated event, so you can round-trip the schema; invalid values are silently dropped, never errored):


FieldAccepted values
fitness_goalsstring[] from: weight_loss, muscle_gain, strength, general_fitness, wellness_flexibility, cardio_endurance. weight_loss is not offered to users with an underweight BMI (under 18.5) and is dropped when they save their goals
injuriesArray of { body_part, preference, severity }. body_part: Neck, Shoulders, Chest, Arms, Forearms, Abdomen, Knees, Hips, Ankles, Upper Back, Lower Back, Glutes, Hamstrings, Calves, Heels (case/underscore-insensitive). preference: avoid (default) or include. severity (optional): light, moderate, severe. Empty array = explicitly "no injuries"
health_conditionsstring[] — standard values: Diabetes, Hypertension, Asthma, Osteoporosis, Other. Non-standard strings are kept as free-text "Other" details
fitness_level_pushups"0-5", "6-15", "16+"
fitness_level_squats"0-10", "11-21", "22+"
fitness_level_cardioOne of the cardio self-assessment sentences shown in the trainer wizard (unrecognized values make the wizard re-ask)
other_preferencesFree text

See Pre-filling user data for the full guide. Prefill seeds the wizard's answers — the questions are still shown, pre-answered. Demographics (age/height/weight/gender/lifestyle) also prefill the trainer, but only when explicitly provided at launch.