Introduction
Monday.com est une plateforme no-code/low-code pour la gestion de projets, les workflows et la collaboration en équipe. En 2026, elle domine grâce à son interface intuitive, ses automatisations puissantes et son API GraphQL flexible. Pourquoi l'utiliser ? Elle centralise tâches, docs et métriques, réduisant les silos. Imaginez un tableau Kanban qui se met à jour seul via des intégrations.
Ce tutoriel beginner vous guide pas à pas : de l'inscription à la création de boards, en passant par les automatisations UI et l'API pour scaler. Chaque étape est actionable avec captures d'écran mentales et codes copiables. À la fin, vous gérerez un projet réel. Temps estimé : 30 min. Valeur : +50% productivité en équipe.
Prérequis
- Compte gratuit sur monday.com
- Node.js 20+ installé
- Éditeur de code (VS Code recommandé)
- Connaissances basiques en JSON et JavaScript (pas obligatoire pour l'UI)
Installer les dépendances pour l'API
mkdir monday-tutorial
cd monday-tutorial
npm init -y
npm install node-fetch dotenv
mkdir src
touch .env
touch src/query-boards.js
touch src/create-item.js
touch src/update-item.jsCe script initialise un projet Node.js et installe node-fetch pour les requêtes HTTP et dotenv pour gérer les variables d'environnement comme l'API key. Exécutez-le dans un terminal pour préparer l'environnement API. Piège : n'oubliez pas d'ajouter votre API key dans .env plus tard.
Obtenir votre API token Monday.com
- Connectez-vous à monday.com.
- Allez dans Profil > Développeurs > Mon accès API.
- Copiez le token généré (il ressemble à
eyJ0eXAiOiJKV1QiLC...).
.env :
``
MONDAY_API_KEY=votre_token_ici
`
Analogie : Ce token est comme une clé de maison ; gardez-le secret pour éviter les accès non autorisés. Collez-le dans
.env` pour sécurité.Lister vos boards existants
require('dotenv').config();
const fetch = require('node-fetch');
async function queryBoards() {
const apiKey = process.env.MONDAY_API_KEY;
const query = 'query { boards { id name state } }';
const response = await fetch('https://api.monday.com/v2', {
method: 'post',
headers: {
'Content-Type': 'application/json',
'Authorization': apiKey
},
body: JSON.stringify({ query })
});
const data = await response.json();
console.log(JSON.stringify(data, null, 2));
}
queryBoards().catch(console.error);Ce script complet query tous vos boards via GraphQL et affiche ID, nom et état. Exécutez avec node src/query-boards.js. Pourquoi GraphQL ? Moins de requêtes qu'une REST. Piège : Vérifiez les erreurs dans data.errors si le token est invalide.
Créer un board via l'interface
- Cliquez + Nouveau > Board.
- Choisissez template Gestion de tâches.
- Nommez-le Mon Projet 2026.
- Ajoutez colonnes : Statut (People, Status), Personne (People), Date (Date).
Créer un item dans un board
require('dotenv').config();
const fetch = require('node-fetch');
async function createItem() {
const apiKey = process.env.MONDAY_API_KEY;
const boardId = 'VOTRE_BOARD_ID_ICI'; // Remplacez par ID du board du script précédent
const mutation = `mutation ($boardId: Int!, $itemName: String!) {
create_item (board_id: $boardId, item_name: $itemName) {
id
}
}`;
const variables = { boardId: parseInt(boardId), itemName: "Tâche urgente 2026" };
const response = await fetch('https://api.monday.com/v2', {
method: 'post',
headers: {
'Content-Type': 'application/json',
'Authorization': apiKey
},
body: JSON.stringify({ query: mutation, variables })
});
const data = await response.json();
console.log(JSON.stringify(data, null, 2));
}
createItem().catch(console.error);Remplacez VOTRE_BOARD_ID_ICI par l'ID d'un board (du script précédent). Ce code crée un item nommé 'Tâche urgente 2026'. Variables GraphQL rendent ça flexible. Piège : Board ID doit être un entier ; parseInt évite les erreurs.
Configurer des automatisations UI
- Ouvrez votre board > Automatiser.
- Ajoutez : "Quand statut change à 'Fait', notifier @membre".
- Ou : "Quand item créé, assigner à personne".
Mettre à jour un item (statut)
require('dotenv').config();
const fetch = require('node-fetch');
async function updateItem() {
const apiKey = process.env.MONDAY_API_KEY;
const boardId = 'VOTRE_BOARD_ID_ICI';
const itemId = 'VOTRE_ITEM_ID_ICI'; // ID de l'item créé précédemment
const columnId = 'status'; // ID colonne statut, vérifiez via query boards
const mutation = `mutation ($value: JSON!) {
change_simple_column_value (board_id: ${boardId}, item_id: ${itemId}, column_id: "${columnId}", value: $value) {
id
}
}`;
const variables = {
value: JSON.stringify({ label: "Done" })
};
const response = await fetch('https://api.monday.com/v2', {
method: 'post',
headers: {
'Content-Type': 'application/json',
'Authorization': apiKey
},
body: JSON.stringify({ query: mutation, variables })
});
const data = await response.json();
console.log(JSON.stringify(data, null, 2));
}
updateItem().catch(console.error);Mettez l'item à 'Done'. Remplacez IDs. change_simple_column_value est pour Status. JSON.stringify pour valeurs complexes. Piège : Column ID varie ; queryz d'abord votre board pour le trouver.
Query détaillée d'un board
require('dotenv').config();
const fetch = require('node-fetch');
async function queryBoardDetails() {
const apiKey = process.env.MONDAY_API_KEY;
const boardId = 'VOTRE_BOARD_ID_ICI';
const query = `query ($boardId: Int!) {
boards(ids: [$boardId]) {
id
name
columns {
id
title
type
}
items {
id
name
column_values {
id
text
}
}
}
}`;
const variables = { boardId: parseInt(boardId) };
const response = await fetch('https://api.monday.com/v2', {
method: 'post',
headers: {
'Content-Type': 'application/json',
'Authorization': apiKey
},
body: JSON.stringify({ query, variables })
});
const data = await response.json();
console.log(JSON.stringify(data, null, 2));
}
queryBoardDetails().catch(console.error);Affiche détails du board : colonnes, items et valeurs. Utile pour debug. GraphQL permet de spécifier exactement les champs. Piège : Limitez les IDs pour éviter timeouts sur gros boards.
Bonnes pratiques
- Sécurisez le token : Jamais en dur dans le code, toujours
.env+.gitignore. - Utilisez variables GraphQL : Évite injections et optimise perf.
- Rate limiting : Monday limite à 5000/min ; ajoutez delays pour prod.
- Templates boards : Réutilisez pour cohérence équipe.
- Intégrez webhooks : Pour notifs temps réel au-delà de l'API.
Erreurs courantes à éviter
- Token invalide : 'Unauthorized' → régénérez-le.
- IDs manquants : Toujours query avant mutation.
- Colonnes mal typées : Status veut JSON {label: 'Done'}, pas string.
- Pas de try/catch : Ajoutez pour async errors dans prod.
Pour aller plus loin
Explorez le SDK officiel Monday. Intégrez avec Zapier ou Node-RED. Découvrez nos formations Learni sur la productivité pour maîtriser Airtable, Notion et plus.