The Monday recap, on Telegram or WhatsApp
Every Monday at 8 am, get your week's recap on Telegram: new students, workouts, check-ins and habits, with n8n or Make.
Every Monday at 8 am, you get the recap of the past week on Telegram: new students, finished workouts, check-ins received, habits ticked. The use case only reads: the message is sent by the Telegram node of your tool, not by the API. You need a key with Students › Read (students:read), Training › Read (training:read), Check-ins › Read (bilans:read) and Habits › Read (habits:read). If you do not have one, create it in the app.
What this use case does
- Trigger: every Monday at 8 am. The window starts the Monday before, at the same time.
- Reads:
GET /students, the whole list, then/workouts?status=done,/bilans(the API calls check-insbilans) and/habits/entrieswithsince, each withlimit=50, every page.sinceapplies toupdated_at, which a later change, a comment for example, also moves: only the rows whoseended_at,submitted_atorcompleted_atis in the window count, and the new students are those whosejoined_atis. - Text: the four counts, the three students with the most workouts and the first name of the new ones. The recap gives the new students of the week, not the total. A student who left your list is not named.
- Send: a message on your Telegram.
curl "https://api.fitdistance.io/api/partner/v1/workouts?status=done&limit=50&since=2026-10-19T06:00:00.000Z" \
-H "Authorization: Bearer fd_live_xxxxxxxx"If your tool is off on a Monday, the missed week is not caught up.
What it costs
A page read costs one credit, debited before the call: one page for 50 students, plus one page per list of workouts, check-ins and habits, so at least 4 credits each Monday, and one more for every 50 rows. Sending on Telegram or WhatsApp costs nothing on the API side. A refused parameter still costs a credit; a 401, a 403 or a 429 costs nothing.
Create the Telegram bot
- Write to @BotFather:
/newbot, a name, then copy the token. - Open your bot, send it
/start, then openhttps://api.telegram.org/bot<YOUR_TOKEN>/getUpdatesin your browser: yourchat_idis theidfield ofchat.
Never share this token: it gives control of your bot. If it leaked, generate a new one with /token at @BotFather.
In n8n
- Choose Import from URL… and paste
https://fitdistance.io/documentation/api/cas-pratiques/recap-du-lundi.n8n.json, or download the workflow and choose Import from File…. Pick theFit'Distance APIcredential from Connect n8n in each HTTP Request node. - In Send recap, create the Telegram credential with the token of the bot and name it
Fit'Distance alerts, then replaceta_conversationwith yourchat_id. - Run the workflow and read the text of Build the recap, then activate it.
The text is at the top of the code of Build the recap, in French: replace it with your own. Each list is a loop of Connect n8n, with a Code node that keeps the pages read, for example Collect workouts. The hours and the windows follow the time zone of the workflow (Timezone in its settings, New York by default).
WhatsApp, as a variant
The file sends on Telegram. For WhatsApp, replace Send recap with WhatsApp Business Cloud › Send Template. Outside the 24 hours after a message from your contact, WhatsApp only accepts a message template approved by Meta: create a template with one variable for the text and have it approved. You need a Meta Business account and a verified WhatsApp Business number. WhatsApp generally refuses line breaks in a variable: replace them with · in the code, and also remove esc(), which escapes &, < and > for Telegram: WhatsApp would show the escaped text as is. Meta charges for each template sent.
In Make
- HTTP › Make a request (schedule: every Monday at 8 am):
GETonhttps://api.fitdistance.io/api/partner/v1/students,limit=200, Parse response set toYes, then an Iterator ondata, a filterjoined_atlater than or equal to{{addDays(now; -7)}}and a Flow Control › Array aggregator. - Three more HTTP › Make a request,
GETon/workouts(status=done),/bilansand/habits/entries, withlimit=200,since={{addDays(now; -7)}}and Parse response set toYes. - Tools › Set variables: one count per list, the
lengthof the aggregated array and of thedataof each module. - Telegram Bot › Send a Text Message or Reply: your Chat ID and a Text that joins the four counts. For WhatsApp, WhatsApp Business Cloud › Send a Template Message.
Make counts the workouts, check-ins and habits updated in the last seven days, a bit more than n8n, stops at 200 rows per list and shows no first names and no most active students. Reference: students, training, check-ins, habits.