AI Trainer Chat Parameters
Parameters specific to the AI Trainer Chat view. Applies to: AI Trainer only — every other integration option ignores them.
| Parameter | Type | Default | Applies to | What it does internally |
| isSubscribed | boolean | true | AI Trainer | Missing 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 |
| subscriptionReturnUrl | string | — | AI Trainer | For 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 |
| aiTrainerName | string | — | AI Trainer | Renames the AI trainer everywhere it's labelled (header title, reply labels). Shown verbatim in every language |
| aiTrainerColor | string | — | AI Trainer | Recolors the trainer's star icon — any CSS color, e.g. "#7C3AED". Missing = the theme's brand color |
| aiTrainerGreeting | string | - | AI Trainer | Your 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 |
| aiTrainerOnboardingGreeting | string | - | AI Trainer | Opening line when a user with no chat history starts onboarding. Falls back to aiTrainerGreeting |
| aiTrainerOnboardingCompleteMessage | string | - | AI Trainer | Line typed once when onboarding ends and the first plan starts generating |
| customProfileAction | boolean | false | AI Trainer | The "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 |
| customCalendarAction | boolean | false | AI Trainer | The calendar button in the header sends trainer_calendar_clicked instead of opening the My Progress screen |
| hideCalendarButton | boolean | false | AI Trainer | Hides the calendar button in the header |
| hideProfileButton | boolean | false | AI Trainer | Hides 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 |
| captureDateOfBirth | boolean | false | AI Trainer | The 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_birth | string | - | 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):
| Field | Accepted values |
| fitness_goals | string[] 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 |
| injuries | Array 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_conditions | string[] — 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_cardio | One of the cardio self-assessment sentences shown in the trainer wizard (unrecognized values make the wizard re-ask) |
| other_preferences | Free 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.