Facebook Pixel
Fit'DistanceDocumentation
Ouvrir l'app
Sur cette page

Brancher n8n

Lis tes élèves dans n8n avec un identifiant Header Auth et un nœud HTTP Request, puis suis les pages avec un nœud If.

Tu vas lire la liste de tes élèves dans n8n, sans écrire de code : un identifiant qui porte ta clé, un nœud HTTP Request, puis une boucle pour lire toutes les pages.

Il te faut une clé qui peut lire les élèves, avec Élèves › Lire (students:read) coché. Si tu n'en as pas, crée-la dans l'app, sous Paramètres › Intégrations › Clés API : elle ne s'affiche qu'une fois.

1. Crée l'identifiant Header Auth

Dans n8n, ouvre Credentials et crée un identifiant de type Header Auth. Donne-lui un nom que tu reconnaîtras, puis remplis :

ChampValeur
NameAuthorization
ValueBearer fd_live_xxxxxxxx

Remplace fd_live_xxxxxxxx par ta clé. Garde le mot Bearer, une espace, puis ta clé entière. n8n garde la clé dans l'identifiant : elle n'apparaît pas dans le nœud.

2. Règle le nœud HTTP Request

Ajoute un nœud HTTP Request à ton workflow, après un déclencheur manuel pour commencer, et remplis :

ChampValeur
MethodGET
URLhttps://api.fitdistance.io/api/partner/v1/students
AuthenticationGeneric Credential Type › Header Auth
Send Query Parameterslimit = 50

Pour Authentication, choisis l'identifiant de l'étape 1. Pour Send Query Parameters, active l'option, puis ajoute un paramètre limit qui vaut 50.

3. Exécute le nœud

Exécute le nœud. Il demande le périmètre students:read et coûte un crédit, débité avant l'appel. La sortie contient trois champs à connaître :

  • data : les élèves de cette page, 50 au plus.
  • has_more : true quand il reste des pages.
  • next_cursor : le repère de la page suivante, que tu passes dans cursor.
{
  "data": [{ "id": 1, "first_name": "Léa", "last_name": "Dupont" }],
  "next_cursor": "xxxxxxxx",
  "has_more": true
}

Un 401 UNAUTHORIZED veut dire que la clé est absente, mal recopiée ou révoquée : vérifie le mot Bearer. Un 403 SCOPE_MISSING veut dire qu'il manque un périmètre, et details.scope le nomme. Ni l'un ni l'autre ne coûte un crédit. Un paramètre refusé, comme limit=500, donne un 400 VALIDATION et coûte un crédit.

4. Lis toutes les pages

Une page coûte un crédit, quel que soit son nombre d'élèves. Pour suivre next_cursor de page en page, ajoute d'abord un nœud If après le premier HTTP Request. Sa condition est que {{ $json.has_more }} soit vrai.

Sur la sortie true, ajoute un second nœud HTTP Request, réglé comme le premier avec un paramètre de plus :

ChampValeur
MethodGET
URLhttps://api.fitdistance.io/api/partner/v1/students
AuthenticationGeneric Credential Type › Header Auth
Send Query Parameterslimit = 50, cursor = {{ $json.next_cursor }}

Relie enfin la sortie de ce second nœud à l'entrée du If. La boucle s'arrête quand has_more vaut false. Pour dépenser moins, passe limit à 200, le maximum, dans les deux nœuds HTTP Request.

Les doubles accolades disent à n8n de lire la valeur dans l'élément qui arrive : ici, la page précédente. Si tu ajoutes un filtre comme since, garde-le identique d'une page à l'autre : le repère n'est valable qu'avec les mêmes filtres. Relie la suite de ton workflow aux deux nœuds HTTP Request pour traiter chaque page. Une boucle rapide peut dépasser la cadence de ta clé, 10 appels par seconde et 300 par minute : un 429 porte Retry-After, le nombre de secondes à attendre, et ne coûte rien.

La suite

Pour une automatisation complète, suis un cas pratique : un e-mail à chaque nouvel élève, une relance pour les élèves sans bilan, une relance pour les élèves inactifs ou un autre cas pratique de l'accueil. Les cas pratiques qui écrivent le disent en tête de page : leur clé doit pouvoir écrire. Les champs des élèves sont décrits dans la référence.

Page suivanteBrancher MakeLis tes élèves dans Make avec le module HTTP Make a request, sépare-les avec un Iterator et lis la page suivante avec un second module.