What we collect
Account
Your email address. You sign in with a magic link sent to that email, or with an email and password if you set one. We do not ask for your name, date of birth, phone number, or location. Sign-in emails are sent by our authentication provider, Supabase.
Coaching profile (entered by you)
- Optional display name, fitness goals, experience level, and body weight.
- Your coach persona, and the free-text coaching preferences you type: motivational notes, humour preferences, custom phrases, and the “roast me” setting.
- Your training preferences: the equipment you have, your preferred style, your usual session length, and anything you enter under injuries and limitations so the coach knows what to work around.
Workout data
- Workouts and their exercise blocks, whether you typed them, pasted them, or had the AI generate them from a goal.
- Sessions, the sets you log (weight, reps, skipped), completion summaries, and the personal records and achievements the app derives from them.
- The narration script generated for each session, the audio-generation job record, and the finished MP3 file. Audio files are stored in a private storage bucket that is not publicly reachable.
Usage and billing
- A credit ledger recording each AI action (for example “workout intake” or “session narrate”) and how many credits it used.
- An event log of app actions such as “workout created” and “session completed”, tied to your account ID.
- If you subscribe, the Stripe customer and subscription identifiers for your account. Stripe holds your payment details; we never see your card number.
Share links
If you share a completed session, we store the shared card: workout title, duration, sets, total volume, and any personal-record exercise names. See “Public share links” below.
Technical data
Our hosting provider (Vercel) and database provider (Supabase) keep standard server and authentication logs, which can include your IP address, browser details, and account ID, for the limited retention periods those providers set. We do not run analytics, advertising SDKs, or third-party tracking of any kind in the app.
Stored on your device
Your browser keeps your sign-in session, your chosen coach persona, an unsaved workout draft while you are typing one, and a flag noting you have finished onboarding. The app also caches its own pages and static files so it opens quickly; it does not cache your data responses.
What we do not collect
The current product does not collect sleep, nutrition, or biomarker data, and no screen in the app asks for it. The one health-related thing we do ask for is the injuries and limitations field in Preferences, because a coach that does not know what to avoid is no use — it is optional, and you can clear it at any time. The app does not access your location, contacts, camera, microphone, or health apps.
How we use it
To run the app: generate workouts and coaching audio, keep your history, meter and bill AI usage, answer support requests, and find and fix errors. We do not sell your data, share it with advertisers, or use it to build profiles for anyone else.
AI processing (OpenAI and ElevenLabs)
The AI features run on OpenAI’s API. What we send to OpenAI:
- The text you type when creating a workout (a pasted program or a goal description).
- Your workout structure: title, exercises, sets, reps, rest, and notes.
- Your coach persona and the coaching preferences you typed (motivational notes, humour preferences, custom phrases).
- When you ask it to build a workout: your training preferences — equipment, injuries and limitations, experience level, preferred style, usual session length — and up to three of your fitness goals.
- The generated narration text, for text-to-speech and for content-safety screening.
We do not send your email address, display name, or account identifiers to OpenAI. Anything you type into the free-text fields is sent as written, so do not put personal details in them. OpenAI states that data submitted through its API is not used to train its models by default and may be retained briefly for abuse monitoring; see OpenAI’s API data-usage policies for the current terms.
If you pick the character voice for a session, that session’s narration script is sent to ElevenLabs to be spoken. The script is the coach’s lines, written from your workout and your coaching preferences. The standard voice uses OpenAI instead. We send ElevenLabs no email address, display name, or account identifier either.
Narration, and the coaching preferences you save, are screened automatically for a narrow set of extreme content, described in the Terms. That check is automated and nothing more: no person reads what you write, nothing is flagged to anyone, and nothing is reported outside the app. Text that fails is refused with a reason so you can edit it.
Service providers
- Supabase: database, authentication, sign-in emails, and file storage. Our project is hosted in Supabase’s United States (us-east-1) region, so your data is stored in the United States.
- Vercel: application hosting and server logs.
- OpenAI: workout generation, narration text, text-to-speech, and content moderation.
- ElevenLabs: text-to-speech for the character voice, on the sessions where you choose it.
- Stripe: subscription payments. Stripe receives your email address and payment details under its own privacy policy.
- Google Play: if you installed the Android app, Google’s own policies govern the store and the install.
Public share links
When you choose to share a session, the app creates a public link. Anyone who has the link can view the card (workout title, duration, sets, volume, and PR exercise names) with no sign-in, and the page shows a view count. Links expire 30 days after they are created. The app does not yet have a screen to list or revoke your links early; to remove one before it expires, email us. Deleting your account removes all of your share links.
Export and deletion
Export
Settings → Your Data → “Download my data” gives you a JSON file with the rows the app stores under your account: profile, workouts and blocks, sessions and set logs, personal records, achievements, share links, the credit ledger, and the event log. The export includes the narration scripts and the records for each audio file; it does not include the MP3 files themselves, which you can download from each workout’s page.
Deletion
Settings → Your Data → “Delete my account” (you must type a confirmation phrase) does the following, immediately and without a waiting period:
- Deletes your rows from every Worksong table, including workouts, sessions, logs, narration scripts, audio records, share links, the credit ledger, and the event log.
- Cancels any active Stripe subscription.
- Deletes your workspace record if you were its only member.
- Removes your generated audio files (the coaching MP3s, their cue clips, and manifests) from storage.
- Deletes your sign-in account, which ends all sessions.
One thing account deletion does not do, and we want to be direct about it:
- Stripe keeps its own customer and transaction records for as long as its policies and financial-record laws require. We do not delete the Stripe customer record.
Provider server logs expire on the providers’ own schedules. If any step of deletion fails on our side, we log the failure and you can email us to have it completed by hand.
Retention
We keep your data for as long as your account exists. Share links expire after 30 days. Delete your account at any time from Settings.
Your rights
We are a Canadian company and follow the Personal Information Protection and Electronic Documents Act (PIPEDA) and Alberta’s Personal Information Protection Act (PIPA). You can ask to access or correct your personal information, withdraw consent, or ask questions about this policy by emailing greg@oldmanaisolutions.com. We respond within 30 days. If you are not satisfied, you may complain to the Office of the Information and Privacy Commissioner of Alberta or the Office of the Privacy Commissioner of Canada.
Children
Worksong is for adults. It is not directed at anyone under 18, and we do not knowingly collect information from anyone under 18. If you believe a minor has an account, email us and we will delete it.
Security
Data moves over TLS. Audio files live in a private bucket, database tables use row-level security, and the app’s server code is the only thing that writes to your records. No system is perfectly secure; if we learn of a breach affecting you, we will tell you.
Changes
When we change this policy we update the effective date at the top. If a change materially affects how we handle your data, we will tell you in the app or by email before it takes effect.
Contact
Oldman AI Solutions Inc., Coaldale, Alberta, Canada. greg@oldmanaisolutions.com. See also our Terms of Service.