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 |
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 |
| 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.