Le récap du lundi, sur Telegram ou WhatsApp
Chaque lundi à 8 h, reçois sur Telegram le récap de ta semaine : nouveaux élèves, séances, bilans et habitudes, avec n8n ou Make.
Chaque lundi à 8 h, tu reçois sur Telegram le récap de la semaine écoulée : nouveaux élèves, séances terminées, bilans reçus, habitudes cochées. Le cas pratique ne fait que lire : le message part du nœud Telegram de ton outil, pas de l'API. Il te faut une clé avec Élèves › Lire (students:read), Entraînement › Lire (training:read), Bilans › Lire (bilans:read) et Habitudes › Lire (habits:read). Si tu n'en as pas, crée-la dans l'app.
Ce que fait ce cas pratique
- Déclencheur : chaque lundi à 8 h. La fenêtre commence le lundi précédent, à la même heure.
- Lectures :
GET /students, toute la liste, puis/workouts?status=done,/bilanset/habits/entriesavecsince, chacune aveclimit=50, toutes les pages.sinceporte surupdated_at, que bouge aussi une modification ultérieure, un commentaire par exemple : on ne compte que les lignes dontended_at,submitted_atoucompleted_atest dans la fenêtre, et les nouveaux élèves sont ceux dontjoined_atl'est. - Texte : les quatre comptes, les trois élèves qui ont le plus de séances et le prénom des nouveaux. Le récap donne les nouveaux de la semaine, pas le total d'élèves. Un élève qui a quitté ta liste n'est pas cité.
- Envoi : un message sur ton 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"Si ton outil est éteint un lundi, la semaine manquée n'est pas rattrapée.
Ce que ça coûte
Une page lue coûte un crédit, débité avant l'appel : une page pour 50 élèves, plus une page par liste de séances, de bilans et d'habitudes, soit au moins 4 crédits par lundi, et une de plus à chaque tranche de 50 lignes. L'envoi sur Telegram ou WhatsApp ne coûte rien côté API. Un paramètre refusé coûte quand même un crédit ; un 401, un 403 ou un 429 ne coûtent rien.
Créer le bot Telegram
- Écris à @BotFather :
/newbot, un nom, puis copie le jeton. - Ouvre ton bot, envoie-lui
/start, puis ouvrehttps://api.telegram.org/bot<TON_JETON>/getUpdatesdans ton navigateur : tonchat_idest le champiddechat.
Ne partage pas ce jeton : il donne la main sur ton bot. S'il a fuité, génère-en un nouveau avec /token chez @BotFather.
Dans n8n
- Choisis Import from URL… et colle
https://fitdistance.io/documentation/api/cas-pratiques/recap-du-lundi.n8n.json, ou télécharge le workflow et choisis Import from File…. Choisis l'identifiantFit'Distance APIde Brancher n8n dans chaque nœud HTTP Request. - Dans Send recap, crée l'identifiant Telegram avec le jeton du bot et nomme-le
Fit'Distance alerts, puis remplaceta_conversationpar tonchat_id. - Exécute le workflow et lis le texte de Build the recap, puis active-le.
Le texte est en haut du code de Build the recap. Chaque liste est une boucle de Brancher n8n, avec un nœud Code qui garde les pages lues, par exemple Collect workouts. Les heures et les fenêtres suivent le fuseau horaire du workflow (Timezone dans ses paramètres, New York par défaut).
WhatsApp, en variante
Le fichier envoie sur Telegram. Pour WhatsApp, remplace Send recap par WhatsApp Business Cloud › Send Template. Hors des 24 heures qui suivent un message de ton correspondant, WhatsApp n'accepte qu'un modèle de message approuvé par Meta : crée un modèle avec une variable pour le texte et fais-le approuver. Il te faut un compte Meta Business et un numéro WhatsApp Business vérifié. WhatsApp refuse en général les sauts de ligne dans une variable : remplace-les par des · dans le code, et retire aussi esc(), qui échappe &, < et > pour Telegram : WhatsApp afficherait le texte échappé tel quel. Meta facture chaque modèle envoyé.
Dans Make
- HTTP › Make a request (planning : chaque lundi à 8 h) :
GETsurhttps://api.fitdistance.io/api/partner/v1/students,limit=200, Parse response surYes, puis un Iterator surdata, un filtrejoined_atpostérieur ou égal à{{addDays(now; -7)}}et un Flow Control › Array aggregator. - Trois autres HTTP › Make a request,
GETsur/workouts(status=done),/bilanset/habits/entries, aveclimit=200,since={{addDays(now; -7)}}et Parse response surYes. - Tools › Set variables : un compte par liste,
lengthdu tableau agrégé et dudatade chaque module. - Telegram Bot › Send a Text Message or Reply : ton Chat ID et un Text qui assemble les quatre comptes. Pour WhatsApp, WhatsApp Business Cloud › Send a Template Message.
Make compte les séances, bilans et habitudes mis à jour depuis sept jours, un peu plus que n8n, s'arrête à 200 lignes par liste et ne cite ni les prénoms ni les élèves les plus actifs. Référence : élèves, entraînement, bilans, habitudes.