Un programme se termine cette semaine → une alerte
Chaque lundi, reçois sur Telegram la liste des programmes qui se terminent dans la semaine, avec n8n ou Make.
Chaque lundi à 8 h, tu reçois sur Telegram la liste des programmes qui se terminent dans la semaine : l'élève, le programme, le jour de fin. Tu as le temps de préparer le suivant. 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 Entraînement › Lire (training:read) et Élèves › Lire (students: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 est la semaine, du lundi au dimanche compris.
- Programmes :
GET /programsaveclimit=50, toutes les pages. On garde ceux dontstatusvautin_progresset dont le dernier jour, la date deend_at, est dans la fenêtre. Un programme sans élève (student_idànull) est ignoré. - Élèves : s'il reste un programme,
GET /students, toutes les pages, pour afficher prénom et nom. Si l'élève n'est pas dans la liste (parti, ou pas encore accepté), son programme est ignoré. - Envoi : un message, une ligne par programme ; rien si aucun programme ne se termine.
curl "https://api.fitdistance.io/api/partner/v1/programs?limit=50" \
-H "Authorization: Bearer fd_live_xxxxxxxx"Le message
Programmes qui se terminent cette semaine :
— Léa Martin · Prise de masse · fin le mardi 27 octobre
— Tom Durand · Sèche été · fin le vendredi 30 octobreLe jour affiché est le dernier jour du programme. Les fenêtres se suivent sans se recouvrir : un programme n'est annoncé qu'une fois, le lundi de la semaine de son dernier jour. Si ton outil est éteint un lundi, les programmes de la semaine ne sont pas rattrapés.
Ce que ça coûte
Une page lue coûte un crédit, débité avant l'appel. GET /programs rend tous les programmes, finis et brouillons compris, 50 par page. Un lundi sans programme à annoncer coûte ces pages ; sinon, s'y ajoute au moins une page d'élèves, une par tranche de 50. 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.
Dans n8n
- Choisis Import from URL… et colle
https://fitdistance.io/documentation/api/cas-pratiques/programme-fin-semaine.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 alert, crée l'identifiant Telegram
Fit'Distance alertsavec le jeton du bot, ou choisis-le s'il existe déjà, et remplaceta_conversationpar tonchat_id. Le bot, son jeton et lechat_ids'obtiennent comme dans le récap du lundi. - Exécute le workflow et lis le texte de Build the alert, puis active-le. Lancé à la main un autre jour, il montre la semaine en cours.
Chaque liste est une boucle de Brancher n8n. Programs ending garde, à chaque page lue, les programmes dont le dernier jour est dans la semaine : end_at vaut ce jour à 23 h 59 UTC, et le nœud en lit la date sans la décaler. Anything to say? arrête le workflow s'il n'y en a aucun. Le texte et la langue des jours sont en haut du code de Build the alert. Les heures et les fenêtres suivent le fuseau horaire du workflow (Timezone dans ses paramètres, New York par défaut).
Le fichier envoie sur Telegram. Pour WhatsApp, remplace Send alert par WhatsApp Business Cloud › Send Template. WhatsApp n'accepte qu'un modèle de message approuvé par Meta hors des 24 heures qui suivent un message de ton correspondant : le détail est dans le récap du lundi, où tu retires aussi esc() du code de Build the alert. Meta facture chaque modèle envoyé.
Dans Make
- HTTP › Make a request (planning : chaque lundi à 8 h) :
GETsurhttps://api.fitdistance.io/api/partner/v1/programs,limit=200, Parse response surYes. - Iterator sur
data, puis un filtre :statuségal àin_progress,end_atpostérieur ou égal à{{now}}et antérieur à{{addDays(now; 7)}}. Puis un Flow Control › Array aggregator surname. - Un filtre :
lengthdu tableau agrégé supérieur à0. Puis Telegram Bot › Send a Text Message or Reply, avec ton Chat ID etjoin(map(<tableau agrégé>; name); ", ")dans Text. Pour WhatsApp, WhatsApp Business Cloud › Send a Template Message.
Make compte sept jours à partir du passage, s'arrête à 200 programmes et cite le programme sans le nom de l'élève. Référence : entraînement, élèves.