Pour une agence web, une montée en charge trop rapide tourne souvent au cauchemar. Lorsqu’elle entraîne une augmentation des tâches répétitives, les ressources disponibles sont épuisées bien avant que le travail ne soit achevé : vos flux de travail sont fragmentés, vos processus sont inefficaces et votre équipe est démotivée.

Une croissance saine et durable exige un changement fondamental d’état d’esprit : travailler plus intelligemment, et non plus durement. Dans ce scénario, l’automatisation n’est pas un luxe ; c’est une exigence stratégique pour la survie et le succès.

Mais comment traduire l’idée de travailler plus intelligemment en un flux de travail fonctionnel ? La réponse rapide est la suivante : connectez votre infrastructure à vos outils de gestion.

Dans ce guide, nous vous montrerons comment connecter votre infrastructure d’hébergement Kinsta et votre système de gestion de projet Trello en construisant une couche de synchronisation personnalisée et automatisée.

Plongeons dans ce guide.

Le fossé entre l’infrastructure et la gestion

Si vous utilisez Trello pour gérer les projets de votre agence, vous connaissez le rituel de l’onboarding : pour chaque site web que vous lancez, vous devez créer et configurer manuellement un tableau Trello, et remplir des listes de contrôle pour toutes les tâches impliquées, de la configuration des DNS à l’optimisation du référencement.

Vient ensuite la maintenance quotidienne – des tâches répétitives et des vérifications effectuées régulièrement pour s’assurer que les sites des clients fonctionnent sans problème, que l’utilisation des ressources reste dans les limites du plan et que les mises à jour sont appliquées sans erreur. Dans un flux de travail manuel, cela signifie qu’il faut se connecter à plusieurs tableaux de bord pour vérifier qu’un site n’est pas en train d’épuiser sa bande passante ou de manquer d’espace disque.

Plus vous prenez en charge de projets clients, plus le risque d’erreur humaine augmente, et plus la « fatigue de la surveillance » devient probable. Considérez le cycle de vie standard d’un site client :

  • Le processus d’intégration : provisionnement des environnements, configuration DNS, déploiement SSL et configuration CI/CD.
  • La phase opérationnelle : suivi de l’état des serveurs et de la consommation des ressources pour éviter les temps d’arrêt ou les surcouts inattendus.

En réalité, ces deux phases nécessitent une coordination organisationnelle constante. Le principal problème est l’effet de silo : l’hébergement et la gestion sont deux écosystèmes isolés. L’information ne circule que si quelqu’un se souvient de vérifier une mesure et d’envoyer un message Slack.

Si un site atteint sa limite de ressources mais que le développeur omet d’en informer le chef de projet, les inefficacités et les retards sont inévitables.

Les agences modernes, orientées vers la croissance, ne peuvent pas s’appuyer sur une coordination manuelle. La communication doit circuler de manière transparente et automatique depuis l’infrastructure (hébergement Kinsta) directement vers l’outil de gestion (Trello).

C’est là que l’API Kinsta devient le membre le plus précieux de votre équipe, en vous aidant à transformer les données brutes de l’hébergement en informations exploitables pour vos chefs de projet.

La pile technologique : Pourquoi Kinsta et Trello ?

Choisir les bons outils est la première étape vers une automatisation efficace. Kinsta et Trello sont parfaitement adaptés car les deux plateformes offrent des API robustes qui vous permettent de créer un pont automatisé entre les aspects techniques et de gestion de vos flux de travail.

  • L’API de Kinsta : Kinsta propose une API RESTful qui permet aux développeurs de votre équipe d’effectuer par programmation des actions techniques et opérationnelles, depuis le provisionnement d’environnements jusqu’à l’extraction d’analyses en temps réel et de journaux de serveur. Kinsta est une infrastructure programmable.
  • Système de gestion de projet Trello : Trello est bien plus qu’une collection de notes et de listes ; c’est une représentation visuelle des processus de votre agence basée sur la logique du tableau Kanban. L’API Trello vous aide à transformer un tableau de bord statique en un environnement dynamique qui réagit aux évènements sur votre serveur.

En intégrant Kinsta et Trello, vous transformez les données brutes de MyKinsta en informations exploitables pour vos équipes. Plus de travail manuel, d’étapes manquées, de frais généraux ou de perte de valeur pour vos développeurs.

Ceci étant dit, il est temps de retrousser vos manches et de rassembler vos outils.

Rassembler vos outils

Avant de commencer à coder, vous devez rassembler les outils nécessaires :

  • Clé API Kinsta
  • Clé API Trello
  • Jeton Trello
  • Un dépôt de code GitHub

Commençons par la clé API Kinsta.

Étape 1 : Générer une clé API Kinsta

La clé API Kinsta vous permet d’accéder à votre service d’hébergement via l’API. Suivez ces étapes pour créer une nouvelle clé API Kinsta:

  1. Allez sur votre tableau de bord MyKinsta.
  2. Naviguez jusqu’à la page des clés API (Votre nom > Réglages de l’entreprise > Clés API).
  3. Cliquez sur Créer une clé API.
  4. Choisissez une date d’expiration ou définissez une date de début personnalisée et un nombre d’heures pour l’expiration de la clé.
  5. Donnez un nom unique à la clé.
  6. Cliquez sur Générer.
Créer une clé API sur MyKinsta.
Créer une clé API sur MyKinsta.

Veillez à copier votre clé API et à la conserver dans un endroit sûr. Vous ne pourrez plus la voir. Si vous la perdez, vous devrez la révoquer et en générer une nouvelle.

Étape 2 : Générer la clé API et le jeton Trello

Pour générer une clé API, Trello vous demande de créer un Trello Power-Up, qui est essentiellement une application Trello. Pour commencer, rendez-vous sur le portail d’administration Power-Up.

Portail d'administration Trello Power-Up
Portail d’administration Trello Power-Up

Cliquez sur Nouveau et remplissez le formulaire qui s’affiche.

Formulaire de nouvelle application Trello
Formulaire de nouvelle application Trello

Une fois vos informations enregistrées, vous serez redirigé vers votre tableau de bord Power-Up. Saisissez les informations nécessaires et enregistrez vos réglages. Ensuite, cliquez sur Clé API dans le menu de gauche, puis sur Générer une nouvelle clé API au milieu de la page.

Générer une nouvelle clé API Trello
Générer une nouvelle clé API Trello

C’est tout ! Vous avez maintenant votre clé API Trello. Veillez à la conserver en lieu sûr.

Copiez et collez votre clé API Trello dans un endroit sûr
Copiez et collez votre clé API Trello dans un endroit sûr

Cependant, une clé API ne suffit pas pour intégrer Trello dans vos applications. Vous devez également générer un jeton. Cliquez sur le lien Token à droite pour afficher une page listant les autorisations que vous accordez à votre Power-Up. Examinez ces permissions, puis autorisez Trello à partager des données.

Copiez et collez le jeton Trello.
Copiez et collez le jeton Trello.

Copiez et collez le jeton Trello dans un endroit sûr.

Étape 3 : Créer un dépôt de code sur GitHub

GitHub n’est pas seulement un dépôt de code. C’est aussi un endroit où vous pouvez mettre en place des tâches répétitives et des automatismes.

Sur GitHub, vous devrez mettre en place les trois éléments suivants :

  • Le dépôt, qui héberge votre code ;
  • Les secrets, utilisés pour stocker vos clés et jetons d’API ; et
  • Le flux de travail, qui contient les instructions d’automatisation.

1. Créer le dépôt GitHub

Sur GitHub, cliquez sur le bouton vert Nouveau.

  1. Donnez un nom à votre dépôt.
  2. Ajoutez une description.
  3. Réglez la visibilité sur Privée.
  4. Cochez l’option Ajouter un README.
  5. Cliquez sur Créer un dépôt.
Créer un nouveau dépôt GitHub
Créer un nouveau dépôt GitHub

2. Configurer vos secrets d’action

Ensuite, vous devez configurer vos secrets. Cette étape est importante car elle vous permet d’éviter d’inclure vos clés d’API directement dans votre code.

Dans votre nouveau dépôt, cliquez sur l’onglet Réglages en haut de la page. Dans le menu de gauche, cliquez sur Secrets et variables, puis sur Actions.

Page de configuration des secrets et variables d'action
Page de configuration des secrets et variables d’action

Cliquez sur Nouveau secret de dépôt et ajoutez vos clés API et votre jeton.

Secrets de dépôt GitHub
Secrets de dépôt GitHub

3. Configurer le flux de travail

Vous devez maintenant accorder des droits d’écriture à GitHub. Toujours dans Réglages, allez dans Actions > Général.

Faites défiler la page jusqu’à la section Autorisations du flux de travail et cochez la case Autorisations de lecture et d’écriture. Cliquez ensuite sur Enregistrer.

Permissions de flux de travail GitHub
Permissions de flux de travail GitHub

Automatiser l’onboarding avec l’API Kinsta et Trello

Vous disposez désormais de vos clés API et de votre jeton Trello. L’étape suivante consiste à intégrer votre hébergement Kinsta à votre système de gestion de projet Trello.

Nous utiliserons les Actions GitHub pour exécuter un script de synchronisation entre Kinsta et Trello périodiquement. Ce processus automatisé interrogera l’API Kinsta à intervalles réguliers pour les nouveaux sites, puis utilisera l’API Trello pour s’assurer que votre tableau Trello reflète parfaitement votre portefeuille de sites Kinsta.

Dans GitHub, vous devez créer un fichier de configuration YAML pour spécifier quand le script doit s’exécuter. Dans notre exemple, le script s’exécutera toutes les 30 minutes.

Retournez dans la section Code de votre dépôt et cliquez sur Ajouter un fichier > Créer un nouveau fichier.

Saisissez .github/workflows/main.yml dans le nom du fichier. GitHub créera automatiquement les dossiers .github et workflows. Collez ensuite le code suivant :

name: Kinsta-Trello Integration
on:
  schedule:
    - cron: '*/30 * * * *' # Run every 30 minutes
  workflow_dispatch:       # Allows to start it manually for testing

jobs:
  run-sync:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20'

      - name: Run automation script
        env:
          KINSTA_API_KEY: ${{ secrets.KINSTA_API_KEY }}
          KINSTA_COMPANY_ID: ${{ secrets.KINSTA_COMPANY_ID }}
          TRELLO_API_KEY: ${{ secrets.TRELLO_API_KEY }}
          TRELLO_TOKEN: ${{ secrets.TRELLO_TOKEN }}
        run: node index.js

Une fois que vous avez terminé, cliquez sur le bouton vert Commit changes….

La configuration initiale est terminée. Vous pouvez maintenant passer à la création du script.

Étape 2. Créer le script

Vous devez créer un nouveau fichier index.js dans le répertoire racine de votre projet GitHub et ajouter le code indiqué dans les sections suivantes.

1. Déclarer des variables

La première étape consiste à déclarer les variables dont le script a besoin pour accomplir ses tâches.

const KINSTA_API_URL = 'https://api.kinsta.com/v2';
const TRELLO_API_URL = 'https://api.trello.com/1';

const secrets = {
	kinsta: process.env.KINSTA_API_KEY,
	company: process.env.KINSTA_COMPANY_ID,
	trelloKey: process.env.TRELLO_API_KEY,
	trelloToken: process.env.TRELLO_TOKEN
};

2. Définir la fonction d’automatisation

L’étape suivante consiste à définir la fonction d’automatisation.

async function startAutomation() {
	try {
		console.log("🚀 Starting Kinsta-Trello automation...");

		const kinstaUrl = `${KINSTA_API_URL}/sites?company=${secrets.company}`;

		const kinstaResponse = await fetch(kinstaUrl, {
			method: 'GET',
			headers: { 
				'Authorization': `Bearer ${secrets.kinsta}` 
			}
		});

		if (!kinstaResponse.ok) throw new Error(`Kinsta API error: ${kinstaResponse.status}`);

		const kinstaData = await kinstaResponse.json();

		const sites = kinstaData.company?.sites || [];

		console.log(`✅ Successfully fetched ${sites.length} sites from Kinsta.`);

		const trelloResponse = await fetch(`${TRELLO_API_URL}/members/me/boards?key=${secrets.trelloKey}&token=${secrets.trelloToken}`);
		
		if (!trelloResponse.ok) throw new Error(`Trello API error: ${trelloResponse.statusText}`);
		
		const trelloBoards = await trelloResponse.json();

		for (const site of sites) {
			const boardExists = trelloBoards.find(board => board.name === site.name);

			if (!boardExists) {
				console.log(`✨ New site found: ${site.name}. Provisioning workflow...`);

				const createBoardUrl = `${TRELLO_API_URL}/boards/?name=${encodeURIComponent(site.name)}&defaultLists=false&key=${secrets.trelloKey}&token=${secrets.trelloToken}`;
				const newBoardResponse = await fetch(createBoardUrl, { method: 'POST' });
				const newBoard = await newBoardResponse.json();

				if (newBoardResponse.ok) {
					console.log(`✅ Board created for ${site.name}. Setting up workflow...`);

					const toDoListId = await createWorkflow(newBoard.id);

					if (toDoListId) {
						await createGoLiveCard(toDoListId);
					}
				} else {
					console.log(`❌ Failed to create board for ${site.name}.`);
				}
			} else {
				console.log(`ℹ️ Site "${site.name}" already has a board. Skipping.`);
			}
		}

		console.log("🏁 Automation workflow finished!");
	
	} catch (error) {
		console.error("❌ Critical error during automation:", error.message);
	}
}

startAutomation();

Analysons cette fonction bloc par bloc.

Le premier console.log indique que le processus a démarré :

console.log("🚀 Starting Kinsta-Trello automation...") ;

Le code suivant récupère les sites de votre entreprise MyKinsta :

const kinstaUrl = `${KINSTA_API_URL}/sites?company=${secrets.company}`;

const kinstaResponse = await fetch(kinstaUrl, {
	method: 'GET',
	headers: { 
		'Authorization': `Bearer ${secrets.kinsta}` 
	}
});

if (!kinstaResponse.ok) throw new Error(`Kinsta API error: ${kinstaResponse.status}`);

const kinstaData = await kinstaResponse.json();

const sites = kinstaData.company?.sites || [];

console.log(`✅ Successfully fetched ${sites.length} sites from Kinsta.`);
  • Si la réponse n’est pas kinstaResponse.ok, un message d’erreur est généré. Si l’API renvoie un résultat valide, la fonction stocke la liste des sites dans le tableau sites et affiche un message de succès.

L’étape suivante consiste à récupérer vos tableaux Trello existants :

const trelloResponse = await fetch(`${TRELLO_API_URL}/members/me/boards?key=${secrets.trelloKey}&token=${secrets.trelloToken}`);

if (!trelloResponse.ok) throw new Error(`Trello API error: ${trelloResponse.statusText}`);

const trelloBoards = await trelloResponse.json();

Passons maintenant à la logique de synchronisation.

for (const site of sites) {
	const boardExists = trelloBoards.find(board => board.name === site.name);

	if (!boardExists) {
		console.log(`✨ New site found: ${site.name}. Provisioning workflow...`);

		const createBoardUrl = `${TRELLO_API_URL}/boards/?name=${encodeURIComponent(site.name)}&defaultLists=false&key=${secrets.trelloKey}&token=${secrets.trelloToken}`;
		const newBoardResponse = await fetch(createBoardUrl, { method: 'POST' });
		const newBoard = await newBoardResponse.json();

		if (newBoardResponse.ok) {
			console.log(`✅ Board created for ${site.name}. Setting up workflow...`);

			const toDoListId = await createWorkflow(newBoard.id);

			if (toDoListId) {
				await createGoLiveCard(toDoListId);
			}
		} else {
			console.log(`❌ Failed to create board for ${site.name}.`);
		}
	} else {
		console.log(`ℹ️ Site "${site.name}" already has a board. Skipping.`);
	}
}
  • La boucle for itère sur les éléments du tableau sites (c’est-à-dire la liste des sites de la société MyKinsta) et vérifie si un forum existe pour chaque site. S’il n’existe pas de forum portant le nom du site, il en crée un.
  • Si le nouveau tableau a été créé avec succès (if (newBoardResponse.ok) {...}), appelez les fonctions createWorkflow() et createGoLiveCard() décrites ci-dessous. Notez que la fonction createGoLiveCard() n’est invoquée que pour votre liste de choses à faire.

3. Définir la fonction createWorkflow()

La fonction createWorkflow() crée trois listes par défaut dans votre espace Trello et renvoie l’ID de la liste des choses à faire.

async function createWorkflow(boardId) {
	const lists = ['To Do', 'Doing', 'Done'];
	let toDoListId = null;

	for (const listName of lists) {
		const url = `${TRELLO_API_URL}/boards/${boardId}/lists?name=${encodeURIComponent(listName)}&key=${secrets.trelloKey}&token=${secrets.trelloToken}`;
		const response = await fetch(url, { method: 'POST' });
		const newList = await response.json();

		console.log(`   - List "${listName}" created.`);

		if (listName === 'To Do') toDoListId = newList.id;
	}
	return toDoListId;
}

4. Définissez la fonction d’aide createGoLiveCard()

Vous devez maintenant définir la fonction qui génère la liste de contrôle du pipeline Go-Live.

async function createGoLiveCard(listId) {
	const cardUrl = `${TRELLO_API_URL}/cards?idList=${listId}&name=${encodeURIComponent('🚀 Go-Live Pipeline')}&desc=${encodeURIComponent('Standard agency tasks for site launch.')}&key=${secrets.trelloKey}&token=${secrets.trelloToken}`;
	const cardResponse = await fetch(cardUrl, { method: 'POST' });
	const card = await cardResponse.json();

	if (cardResponse.ok) {
		const checklistUrl = `${TRELLO_API_URL}/checklists?idCard=${card.id}&name=Launch%20Tasks&key=${secrets.trelloKey}&token=${secrets.trelloToken}`;
		const checklistResponse = await fetch(checklistUrl, { method: 'POST' });
		const checklist = await checklistResponse.json();

		const tasks = [
			'Point DNS to Kinsta',
			'Install & Force SSL (Let\'s Encrypt)',
			'Set up Search Console & Analytics',
			'Performance Test (Kinsta APM)',
			'Final Backup before Launch'
		];

		for (const task of tasks) {
			await fetch(`${TRELLO_API_URL}/checklists/${checklist.id}/checkItems?name=${encodeURIComponent(task)}&key=${secrets.trelloKey}&token=${secrets.trelloToken}`, {
				method: 'POST'
			});
		}
		console.log(`   - Go-Live Pipeline card with checklist created.`);
	}
}

Cette fonction effectue les opérations suivantes :

  • Tout d’abord, elle utilise l’API Trello pour créer la liste Go-Live Pipeline.
  • Ensuite, si la réponse est cardResponse.ok, elle ajoute une liste de 5 éléments à la carte To Do.

5. Exécuter le flux de travail

Il est temps de tester votre code. Commencez par valider vos modifications, puis rendez-vous dans la section Actions (lien dans le menu supérieur).

Valider les modifications dans GitHub.
Valider les modifications dans GitHub.

Une fois cela fait, cliquez sur votre application dans le menu de gauche. Dans notre exemple, il s’agit de l’intégration Kinsta-Trello.

Page GitHub Actions
Page GitHub Actions

Cliquez sur le bouton Run workflow à droite. Cela lancera votre flux de travail. Cliquez sur le flux de travail en cours, puis sur Run automation script. Vous verrez alors les étapes du processus en cours, ainsi que les messages de succès de console.log, ou les messages d’erreur si le processus échoue.

Lancer le script d'automatisation sur GitHub
Lancer le script d’automatisation sur GitHub

Comme le montre l’image ci-dessus, le script a créé un nouveau tableau Trello avec trois listes, dont la liste Go-Live Pipeline. Les images suivantes montrent le nouveau tableau Trello et la liste de contrôle Go-Live Pipeline à l’intérieur de la carte To Do.

Un tableau Trello a été créé automatiquement.
Un tableau Trello a été créé automatiquement.
La liste de contrôle du pipeline
La liste de contrôle du pipeline « Go-Live » a été ajoutée à la liste des choses à faire.

Surveillance proactive avec l’API Kinsta et Trello

L’intégration de l’hébergement Kinsta avec la gestion de projet Trello va bien au-delà de l’onboarding initial. En exploitant leurs API respectives, vous pouvez maintenir un flux continu de communication entre les deux environnements, en veillant à ce que votre équipe reste informée en temps réel de la santé de vos sites.

Par exemple, vous pouvez ajouter automatiquement une carte Trello au tableau de votre équipe lorsqu’un évènement critique se produit, comme une utilisation élevée de la bande passante ou un espace disque réduit. Le système peut générer automatiquement une carte sur le tableau de l’équipe technique, avec une liste de contrôle des tâches.

En utilisant la même logique et les mêmes outils que ceux utilisés pour l’onboarding, vous pouvez également automatiser la surveillance et la gestion des contrôles de santé de vos sites. Cela nécessite un nouveau fichier de configuration et un script dédié : Retournez sur GitHub et créez le fichier .github/workflows/health-check.yml avec le code suivant :

name: Daily Health Check

on:
  schedule:
    - cron: '0 9 * * *' # Runs at 09:00
  workflow_dispatch:    # Start manually

jobs:
  health-check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20'
      - name: Run Health Check
        env:
          KINSTA_API_KEY: ${{ secrets.KINSTA_API_KEY }}
          KINSTA_COMPANY_ID: ${{ secrets.KINSTA_COMPANY_ID }}
          TRELLO_API_KEY: ${{ secrets.TRELLO_API_KEY }}
          TRELLO_TOKEN: ${{ secrets.TRELLO_TOKEN }}
        run: node health-check.js

Voici les points clés de ce script de configuration :

  • Nous avons mis en place une minuterie automatique pour exécuter le script tous les jours à 09:00 UTC ((schedule : - cron : '0 9 * * *').
  • workflow_dispatch exécute le script à tout moment via l’onglet Actions sur GitHub. Ceci est particulièrement utile pendant le développement et le débogage.
  • Ensuite, nous avons défini la séquence des opérations : la dernière commande utilise node pour exécuter le fichier health-check.js.

1. Déclarer des variables

Naviguez jusqu’au répertoire racine de votre référentiel, créez un fichier nommé health-check.js, et déclarez les variables suivantes :

const KINSTA_API_URL = 'https://api.kinsta.com/v2';
const TRELLO_API_URL = 'https://api.trello.com/1';

const secrets = {
	kinsta: process.env.KINSTA_API_KEY,
	company: process.env.KINSTA_COMPANY_ID,
	trelloKey: process.env.TRELLO_API_KEY,
	trelloToken: process.env.TRELLO_TOKEN
};

2. Obtenir des sites Kinsta

Définissez ensuite la fonction getKinstaSites():

async function getKinstaSites() {
	const url = `${KINSTA_API_URL}/sites?company=${secrets.company}`;
	const response = await fetch(url, {
		method: 'GET',
		headers: { 'Authorization': `Bearer ${secrets.kinsta}` }
	});
	if (!response.ok) throw new Error(`Kinsta API error: ${response.status}`);
	const data = await response.json();
	return data.company?.sites || [];
}

Cette fonction retourne soit une liste des sites de l’entreprise dans MyKinsta, soit un tableau vide.

3. Obtenir l’utilisation de la bande passante

Définissez une fonction appelée getBandwidthUsage() qui renvoie l’utilisation de la bande passante d’un site web.

async function getBandwidthUsage(siteId) {
  const url = `${KINSTA_API_URL}/sites/${siteId}/usage/bandwidth/this-month`;
  const response = await fetch(url, {
    method: 'GET',
    headers: { 'Authorization': `Bearer ${secrets.kinsta}` }
  });
  if (!response.ok) return null;
  const data = await response.json();
  const bytes = data.site?.this_month_usage?.bandwidth;
  return bytes !== undefined ? Math.round(bytes / (1024 * 1024)) : 0;
}

4. Créer des cartes Trello

La fonction suivante génère une carte intitulée « ⚠️ Bandwidth Alert : High Traffic » :

async function postTrelloAlert(siteName, message) {
	const boardsResp = await fetch(`${TRELLO_API_URL}/members/me/boards?key=${secrets.trelloKey}&token=${secrets.trelloToken}`);
	const boards = await boardsResp.json();
	const board = boards.find(b => b.name === siteName);

	if (board) {
		const listsResp = await fetch(`${TRELLO_API_URL}/boards/${board.id}/lists?key=${secrets.trelloKey}&token=${secrets.trelloToken}`);
		const lists = await listsResp.json();
		const targetList = lists.find(l => l.name === 'To Do') || lists[0];

		const cardsResp = await fetch(`${TRELLO_API_URL}/lists/${targetList.id}/cards?key=${secrets.trelloKey}&token=${secrets.trelloToken}`);
		const cards = await cardsResp.json();
    
		const alertTitle = `⚠️ Bandwidth Alert: High Traffic`;
		if (!cards.find(c => c.name === alertTitle)) {
			await fetch(`${TRELLO_API_URL}/cards?idList=${targetList.id}&name=${encodeURIComponent(alertTitle)}&desc=${encodeURIComponent(message)}&key=${secrets.trelloKey}&token=${secrets.trelloToken}`, {
				method: 'POST'
			});
		console.log(`📌 Alert posted for ${siteName}`);
		}
	}
}
  • Notez la condition if (!cards.find(...)). Cela évite d’encombrer votre tableau avec des notifications en double.

5. Exécuter le script

Enfin, définissez une fonction qui surveille vos sites.

async function runMonitoring() {
  console.log("📊 Starting standalone Health Check...");
  const sites = await getKinstaSites();
  for (const site of sites) {
    const usage = await getBandwidthUsage(site.id);
    if (usage !== null) {
      console.log(`Site: ${site.name} | Usage: ${usage} MB`);
      if (usage > 100) { // Test threshold
        await postTrelloAlert(site.name, `Bandwidth usage: ${usage} MB.`);
      }
    }
  }
}

runMonitoring().catch(console.error);

Lorsqu’elle est exécutée, cette fonction appelle les fonctions définies précédemment :

  • getKinstaSites() : récupère la liste des sites des entreprises dans MyKinsta ;
  • getBandwidthUsage() : vérifie l’utilisation de la bande passante du mois en cours pour chaque site ;
  • postTrelloAlert() : génère automatiquement une carte Trello uniquement lorsque le seuil est atteint et qu’il n’existe pas de carte précédente.
Une carte Trello créée automatiquement après une vérification de la bande passante
Une carte Trello créée automatiquement après une vérification de la bande passante

Évoluer plus intelligemment, pas plus difficilement avec Kinsta

Augmenter la taille de votre entreprise n’est pas forcément synonyme de surcroît de travail. Avec une stratégie d’automatisation bien conçue, les tâches manuelles répétitives peuvent être éliminées et de nouveaux projets peuvent être ajoutés à votre portefeuille sans surcharger vos opérations.

En comblant le fossé entre l’infrastructure de votre site et la gestion de projet, vous pouvez établir des canaux de communication transparents qui convertissent les données d’hébergement brutes en tâches opérationnelles exploitables.

Grâce aux API de Kinsta et aux actions GitHub, nous avons créé un système d’onboarding automatisé et de surveillance proactive qui réduit le risque d’erreur humaine, allège la charge de travail de votre équipe et vous assure d’être toujours prêt à répondre aux problèmes dès qu’ils surviennent. Cela vous permet de passer d’une lutte réactive contre les incendies à une protection proactive contre l’avenir.

Êtes-vous prêt à automatiser les flux de travail de votre agence ? Consultez nos plans pour trouver celui qui vous convient le mieux.

Carlo Daniele Kinsta

Carlo est un passionné de webdesign et de développement frontend. Il joue avec WordPress depuis plus de 10 ans, notamment en collaboration avec des universités et des établissements d'enseignement italiens et européens. Il a écrit des dizaines d'articles et de guides sur WordPress, publiés à la fois sur des sites web italiens et internationaux, ainsi que dans des magazines imprimés. Vous pouvez trouver Carlo sur X et LinkedIn.