Mise à jour en masse CMS
Créer ou mettre à jour plusieurs éléments CMS avec validation complète, approbation granulaire et capacité de restauration.
Note importante
UTILISEZ TOUJOURS les outils Webflow MCP pour toutes les opérations :
- Utilisez
data_sites_toolde Webflow MCP avec l'actionlist_sitespour lister les sites disponibles - Utilisez
data_cms_toolde Webflow MCP avec l'actionget_collection_listpour lister les collections CMS - Utilisez
data_cms_toolde Webflow MCP avec l'actionget_collection_detailspour récupérer les schémas de collection - Utilisez
data_cms_toolde Webflow MCP avec l'actionlist_collection_itemspour récupérer les éléments existants - Utilisez
data_cms_toolde Webflow MCP avec l'actioncreate_collection_itemspour créer des éléments (brouillon ou publiés) - Utilisez
data_cms_toolde Webflow MCP avec l'actionupdate_collection_itemspour mettre à jour des éléments (brouillon ou publiés) - Utilisez
data_cms_toolde Webflow MCP avec l'actionpublish_collection_itemspour publier les éléments en brouillon - Utilisez
webflow_guide_toolpour obtenir les meilleures pratiques avant de commencer - N'UTILISEZ PAS d'autres outils ou méthodes pour les opérations Webflow
- Tous les appels d'outils doivent inclure le paramètre
contextrequis (15-25 mots, perspective à la troisième personne)
Instructions
Phase 1 : Sélection du site et de la collection
- Obtenir le site : Identifier le site cible. Si l'utilisateur ne fournit pas l'ID du site, le demander.
- Lister les collections : Utilisez
data_cms_toolde Webflow MCP avec l'actionget_collection_listpour afficher les collections disponibles - Demander à l'utilisateur de sélectionner une collection : L'utilisateur spécifie la collection avec laquelle travailler
- Récupérer le schéma de collection : Utilisez
data_cms_toolde Webflow MCP avec l'actionget_collection_detailspour récupérer :- Toutes les définitions de champs avec types
- Champs obligatoires vs optionnels
- Validations de champs (longueur max, motifs, etc.)
- Cibles de champs de référence
Phase 2 : Collecte et analyse des données
-
Demander le type d'opération : Clarifier ce que l'utilisateur souhaite faire :
- Créer uniquement de nouveaux éléments
- Mettre à jour uniquement les éléments existants
- Créer et mettre à jour
-
Recevoir les données de l'utilisateur : Accepter les données dans des formats flexibles :
- Format structuré (style JSON)
- Descriptions en langage naturel
- Données de style CSV
- Listes à puces
-
Analyser et normaliser : Convertir les données utilisateur en format structuré
-
Récupérer les éléments existants (si des mises à jour sont impliquées) : Utilisez
data_cms_toolde Webflow MCP avec l'actionlist_collection_itemspour obtenir les données actuellesIMPORTANT - Recherche efficace d'éléments :
- Lors de la recherche d'éléments spécifiques par nom, UTILISEZ TOUJOURS le paramètre
namepour filtrer (par ex.,name: "Pikachu") - Lors de la recherche par slug, utilisez le paramètre
slugpour filtrer - NE récupérez JAMAIS tous les éléments en premier puis ne les recherchez dans les résultats - cela gaspille les appels API et les tokens
- Ne récupérez la liste complète que si vous devez afficher tous les éléments ou ne savez pas quels éléments cibler
- Lors de la recherche d'éléments spécifiques par nom, UTILISEZ TOUJOURS le paramètre
Phase 3 : Validation et analyse
- Valider toutes les données :
- Noms de champs : Vérifier que tous les noms de champs existent dans le schéma
- Champs obligatoires : S'assurer que tous les champs obligatoires sont fournis
- Types de champs : Valider que les types de données correspondent au schéma
- Contraintes : Vérifier les longueurs max, les motifs, les valeurs autorisées
- Slugs : S'assurer que les slugs sont uniques et valides
- Champs de référence : Vérifier que les éléments référencés existent
- Détecter les conflits :
- Slugs en double (dans le lot ou avec les éléments existants)
- Champs obligatoires manquants
- Types de données invalides
- Violations de contraintes
- Analyser l'impact :
- Compter les créations vs les mises à jour
- Identifier les champs qui changeront
- Calculer la taille du lot et le temps de traitement
Phase 4 : Aperçu et approbation granulaire
- Générer un aperçu détaillé :
- Afficher chaque élément avec le statut de validation
- Afficher les avertissements pour tout problème
- Pour les mises à jour, afficher les différences (ancien → nouveau)
- Pour les créations, afficher toutes les valeurs de champs
- Numéroter chaque élément pour l'approbation sélective
- Présenter les options d'approbation granulaire :
- Permettre à l'utilisateur de sélectionner des éléments spécifiques à traiter
- Options : « all » (tous), « none » (aucun), numéros spécifiques, plages de numéros
- Afficher le temps de traitement estimé
- Offrir des options de publication :
- Publier immédiatement (utiliser les endpoints
*_live) - Créer comme brouillons (utiliser les endpoints standard + publication manuelle)
- Publier immédiatement (utiliser les endpoints
Phase 5 : Exécution et rapports
- Stocker les données de restauration : Avant tout changement, enregistrer :
- Les valeurs originales de tous les éléments mis à jour
- Horodatage
- Détails de l'opération
- Traiter par lots :
- Maximum 50 éléments par lot
- Afficher un indicateur de progression
- Gérer les limites de débit avec élégance
- Exécuter les opérations : Utiliser les outils Webflow MCP appropriés selon le choix de l'utilisateur
- Gérer les erreurs avec élégance :
- Continuer le traitement en cas d'échec d'un élément
- Suivre les succès et les échecs séparément
- Fournir des messages d'erreur détaillés
- Générer un rapport complet :
- Résumé (nombre de succès/échecs)
- Résultats détaillés par élément
- IDs d'éléments pour les éléments créés/mis à jour
- Détails d'erreur pour les éléments en échec
- Offrir l'option de restauration : Permettre à l'utilisateur d'annuler les modifications si nécessaire
Exemples
Demande utilisateur :
Ajouter 2 articles de blog sur Webflow MCP et mettre à jour le premier article pour dire "Top" au lieu de "Best"
Étape 1 : Sélection du site et de la collection
📋 Configuration de la mise à jour en masse CMS
Sites disponibles :
1. MCP Demo#1
2. MCP Demo#2
3. MCP Demo#3
Veuillez sélectionner un site (1-3) :
L'utilisateur sélectionne : 1
Collections disponibles dans MCP Demo#1 :
└── Blog Posts (9 éléments)
Champs : name, slug, post-body, post-summary, main-image, thumbnail-image, featured, color
Continuer avec la collection Blog Posts ? (yes/no)
L'utilisateur confirme : yes
Étape 2 : Collecte des données
🔍 Schéma de collection : Blog Posts
Champs obligatoires :
- name (PlainText, max 256 caractères)
- slug (PlainText, max 256 caractères, alphanumériques uniquement)
Champs optionnels :
- post-body (RichText)
- post-summary (PlainText)
- main-image (Image)
- thumbnail-image (Image)
- featured (Switch, true/false)
- color (Color, format hex)
Je vais analyser votre demande :
- Créer 2 nouveaux articles sur Webflow MCP
- Mettre à jour le premier article : "Best" → "Top"
Génération des éléments...
Étape 3 : Validation et aperçu
📋 Aperçu : Mise à jour en masse CMS
Collection : Blog Posts
Opérations : Créer 2 éléments + Mettre à jour 1 élément
---
### 🆕 Éléments à créer (2)
[1] ✓ NOUVEL ARTICLE
name: "Webflow MCP: The Future of Web Development"
slug: "webflow-mcp-future-web-development"
post-summary: "Découvrez comment Webflow MCP révolutionne..."
post-body: "<h1>The Future is Here</h1><p>..."
featured: true
color: "#9B59B6"
✅ Toutes les validations sont passées
[2] ✓ NOUVEL ARTICLE
name: "Why Webflow MCP Will Transform Your Workflow in 2026"
slug: "webflow-mcp-transform-workflow-2026"
post-summary: "Découvrez comment l'intégration Webflow MCP..."
post-body: "<h1>Transform Your Workflow</h1><p>..."
featured: true
color: "#3498DB"
✅ Toutes les validations sont passées
---
### ✏️ Éléments à mettre à jour (1)
[3] ✓ MISE À JOUR EXISTANTE
ID d'élément : 69615f84fc6ce1aa444d24d5
Slug : why-webflow-is-best-2026-ai
Modifications :
name: "Why Webflow is the Best Choice for 2026" → "Why Webflow is the Top Choice for 2026"
✅ Toutes les validations sont passées
---
**Résumé :**
- ✅ 2 éléments seront créés
- ✅ 1 élément sera mis à jour
- ⚠️ 0 avertissement
- ❌ 0 erreur
**Options de publication :**
1. Publier immédiatement (recommandé)
2. Enregistrer comme brouillons
Quels éléments souhaitez-vous traiter ?
- Tapez « all » pour traiter les 3 éléments
- Tapez des numéros à ignorer (par ex., « 2 » pour ignorer l'élément 2)
- Tapez « none » pour annuler
Sélectionner l'option de publication (1/2) : _
Sélectionner les éléments : _
L'utilisateur sélectionne : 1, all
⚠️ Vous êtes sur le point de :
- Créer 2 nouveaux articles de blog (publiés en direct)
- Mettre à jour 1 article de blog existant (modifications publiées en direct)
Tapez « confirm » pour continuer.
L'utilisateur confirme : confirm
Étape 4 : Exécution et résultats
🔄 Traitement de la mise à jour en masse...
Création d'éléments : ██████████ 100% (2/2)
Mise à jour d'éléments : ██████████ 100% (1/1)
✅ Mise à jour en masse CMS terminée !
---
### 🆕 Éléments créés (2)
✓ [1] "Webflow MCP: The Future of Web Development"
ID : 6961640c66de07bed9aacf3e
Slug : webflow-mcp-future-web-development
Publié : 9 janv. 2026, 20:24
✓ [2] "Why Webflow MCP Will Transform Your Workflow in 2026"
ID : 6961640c66de07bed9aacf41
Slug : webflow-mcp-transform-workflow-2026
Publié : 9 janv. 2026, 20:24
---
### ✏️ Éléments mis à jour (1)
✓ [3] "Why Webflow is the Top Choice for 2026"
ID : 69615f84fc6ce1aa444d24d5
Modifié : titre mis à jour
Publié : 9 janv. 2026, 20:24
---
**Résumé :**
- ✅ 2 éléments créés avec succès
- ✅ 1 élément mis à jour avec succès
- ❌ 0 échec
- ⏱️ Complété en 3,2 secondes
**Total d'éléments :** 11 (était 9)
📋 Restauration disponible :
Dernière mise à jour : 3 éléments modifiés à l'instant
Tapez « undo » dans les 5 minutes pour annuler tous les changements
Alternative : Avec avertissements de validation
📋 Aperçu : Mise à jour en masse CMS
[1] ⚠️ NOUVEL ARTICLE
name: "Test Post"
slug: "test"
post-summary: "Salut"
⚠️ Avertissement : post-summary trop court (< 20 caractères) - peut affecter le SEO
⚠️ Avertissement : slug trop générique - envisagez un slug plus descriptif
⚠️ Avertissement : post-body manquant - le contenu sera vide
✅ Champs obligatoires présents (peut continuer)
[2] ❌ NOUVEL ARTICLE
name: "Another Post!!!"
slug: "another post"
❌ Erreur : slug contient des espaces (doit être alphanumériques avec tirets uniquement)
❌ Erreur : name contient des caractères spéciaux non autorisés
🔴 Impossible de continuer - corrigez d'abord les erreurs
---
**Résumé :**
- ✅ 1 élément peut être créé (avec avertissements)
- ❌ 1 élément comporte des erreurs (impossible de créer)
Corriger l'élément 2 ou l'ignorer ? (fix/skip)
Directives
Phase 1 : Exigences critiques
Sélection du site et de la collection :
- Toujours récupérer la liste réelle des sites en utilisant
data_sites_toolavec l'actionlist_sites - Ne jamais supposer les IDs de sites
- Afficher les noms des collections et les nombres d'éléments
- Afficher le schéma de champs avant d'accepter les données
- Confirmer la sélection de la collection avec l'utilisateur
Phase 2 : Analyse des données
Formats d'entrée flexibles : Accepter les données dans plusieurs formats :
- Structuré (style JSON) :
CREATE:
- name: "Post Title"
slug: "post-slug"
featured: true
-
Langage naturel :
"Ajouter un article de blog appelé 'Démarrage' avec slug 'demarrage'" -
Style CSV :
name,slug,featured "Post 1","post-1",true "Post 2","post-2",false -
Listes à puces :
- Post 1 : "Title" (slug: title-slug)
- Post 2 : "Another" (slug: another-slug)
Règles d'analyse :
- Être flexible avec les variations de format
- Déduire les champs optionnels manquants
- Demander une clarification si ambigu
- Ne jamais supposer les valeurs des champs obligatoires
Recherche efficace d'éléments : Lors de la récupération d'éléments existants pour les mises à jour, utiliser les paramètres de filtre pour minimiser les appels API :
# Bon - Filtrer par nom quand vous connaissez le nom de l'élément
data_cms_tool(action: "list_collection_items", collection_id, name: "Pikachu")
# Bon - Filtrer par slug quand vous connaissez le slug
data_cms_tool(action: "list_collection_items", collection_id, slug: "pikachu")
# Mauvais - Récupérer tous les éléments puis les rechercher dans les résultats
data_cms_tool(action: "list_collection_items", collection_id) # Retourne 100 éléments
# Puis recherche manuelle de "Pikachu" dans les résultats...
- UTILISEZ TOUJOURS les paramètres
nameousluglors de la recherche d'éléments spécifiques - Cela réduit les appels API, la taille de la réponse et l'utilisation des tokens
- Ne récupérez la liste non filtrée que si vous devez afficher tous les éléments ou quand la cible est inconnue
Phase 3 : Règles de validation
Validation des noms de champs :
- Vérifier que tous les noms de champs existent dans le schéma
- Correspondance sensible à la casse
- Suggérer des corrections pour les fautes de frappe
- Exemple : « autor » → Vouliez-vous dire « author » ?
Champs obligatoires :
nameetslugsont TOUJOURS obligatoires pour Webflow CMS- Vérifier les champs obligatoires spécifiques à la collection à partir du schéma
- Lister clairement tous les champs obligatoires manquants
- Impossible de continuer si les champs obligatoires manquent
Validation des types de champs :
PlainText :
- Vérifier les contraintes de longueur max
- Valider les motifs s'ils sont spécifiés
- Aucun HTML autorisé
RichText :
- Doit être du HTML valide
- Vérifier les balises non fermées
- Autoriser les éléments HTML courants
Image/Fichier :
- Accepter les IDs de fichier ou les URLs
- Valider que le fichier existe (si possible)
- Texte alternatif optionnel
Switch (Booléen) :
- Accepter : true/false, yes/no, 1/0
- Normaliser en booléen
Color :
- Doit être au format hex (#RRGGBB)
- Valider les caractères hex
- Exemple : #FF5733 ✓, red ✗
Champs de référence :
- Doivent référencer les IDs d'éléments existants
- Valider que les éléments référencés existent
- Afficher les noms d'éléments référencés pour plus de clarté
Validation du slug :
- CRITIQUE : Doit être alphanumériques avec tirets uniquement
- Pas d'espaces, traits de soulignement ou caractères spéciaux
- Max 256 caractères
- Doit être unique (vérifier dans l'existant + lot)
- Suggestion automatique de slugs à partir des titres si manquant
- Exemple :
- ❌ "My Post!" → ⚠️ Contient des caractères spéciaux
- ✅ "my-post" → Valide
Validation des contraintes :
- Longueur max : Avertir si approche limite, erreur si dépasse
- Motifs : Tester les motifs regex du schéma
- Valeurs autorisées : Vérifier par rapport aux options énumérées
Phase 4 : Aperçu et approbation
Format d'aperçu :
Pour les opérations de création :
[1] ✓ NOUVEL ARTICLE
champ1 : "valeur1"
champ2 : "valeur2"
champ3 : "valeur3"
✅ Toutes les validations sont passées
Pour les opérations de mise à jour :
[2] ✓ MISE À JOUR EXISTANTE
ID d'élément : xxx
Slug : slug-existant
Modifications :
champ1 : "ancienne valeur" → "nouvelle valeur"
champ2 : (sans changement)
champ3 : "ancien" → "nouveau"
✅ Toutes les validations sont passées
Pour les éléments avec avertissements :
[3] ⚠️ NOUVEL ARTICLE
name: "Title"
⚠️ Avertissement : Champ optionnel manquant « post-body »
⚠️ Avertissement : Le slug peut être trop générique
✅ Peut continuer (avertissements uniquement)
Pour les éléments avec erreurs :
[4] ❌ NOUVEL ARTICLE
name: "Title!!!"
slug: "bad slug"
❌ Erreur : slug contient des espaces
❌ Erreur : name a des caractères spéciaux
🔴 Impossible de continuer - doit corriger les erreurs
Approbation granulaire :
- Numéroter chaque élément : [1], [2], [3]...
- Permettre le traitement sélectif
- Accepter les formats :
- « all » - traiter tous
- « none » - annuler l'opération
- « 1,3,5 » - traiter les éléments 1, 3 et 5
- « 1-5 » - traiter les éléments 1 à 5
- « 2 » - ignorer uniquement l'élément 2, traiter le reste
Options de publication :
- Publication immédiate : Utiliser les endpoints
*_live(recommandé) - Mode brouillon : Utiliser les endpoints standard, publier plus tard
- Expliquer les implications de chaque choix
Phase 5 : Exécution et rapports
Traitement par lots :
- Maximum 50 éléments par lot
- Afficher la barre de progression :
Traitement : ████████░░ 80% (40/50 éléments) - Temps estimé restant
- Gérer les limites de débit (pause/retry)
Gestion des erreurs :
Pour les échecs d'éléments individuels :
Traitement de l'élément 3/10...
❌ Échec : "Post Title"
Erreur : Le slug existe déjà
→ Passage à l'élément suivant
Continuer le traitement :
- Ne pas échouer le lot entier pour une erreur
- Suivre tous les succès et les échecs
- Rapporter séparément
Pour les échecs critiques :
❌ Erreur critique : Connexion API perdue
Éléments traités avant l'erreur : 7/50
- 5 créés avec succès
- 2 mis à jour avec succès
- 43 non traités
Réessayer les éléments en échec ? (yes/no)
Format du rapport de succès :
✅ Opération terminée
Créés : 25 éléments
- Afficher les 5 premiers avec IDs
- « [+20 autres] » si > 5
Mis à jour : 10 éléments
- Afficher les 5 premiers avec IDs
- « [+5 autres] » si > 5
Échoués : 2 éléments
- "Item Name" : Raison de l'erreur
- "Item Name" : Raison de l'erreur
Temps total : 12,5 secondes
Éléments par seconde : 2,8
Capacité de restauration :
Stocker avant les modifications :
{
"timestamp": "2026-01-09T20:24:44Z",
"operations": [
{
"type": "update",
"itemId": "xxx",
"originalValues": {
"name": "Old Title",
"featured": false
},
"newValues": {
"name": "New Title",
"featured": true
}
}
]
}
Offrir la restauration :
📋 Restauration disponible :
Dernière mise à jour : 15 éléments modifiés il y a 2 minutes
La restauration va :
- Restaurer 10 éléments mis à jour aux valeurs précédentes
- Supprimer 5 éléments nouvellement créés
⚠️ Tapez « undo » pour restaurer tous les changements
⚠️ La restauration expire dans 3 minutes
Optimisation des performances
Taille du lot :
- Par défaut : 50 éléments par lot
- Ajuster selon la complexité des champs
- Images lourdes : 20 éléments par lot
- Champs de texte simples : 100 éléments par lot
Indicateurs de progression :
Création d'éléments...
Lot 1/3 : ████████████████████ 100% (50/50)
Lot 2/3 : ████████████████████ 100% (50/50)
Lot 3/3 : ██████░░░░░░░░░░░░░░ 30% (15/50)
Limitation de débit :
- Respecter les limites de débit de l'API Webflow
- Pause entre les lots si nécessaire
- Expliquer à l'utilisateur pourquoi attendre
- Réessayer automatiquement les requêtes en échec (max 3 tentatives)
Messages d'erreur
Clairs et exploitables :
❌ Mauvais :
"Erreur : validation échouée"
✅ Bon :
"Erreur de validation sur l'élément 3 :
- Le slug « my post » contient des espaces
- Changer en : « my-post » (alphanumériques avec tirets uniquement)"
Catégories d'erreurs :
- 🔴 Critique : Impossible de continuer du tout (API down, auth invalide)
- ❌ Erreur : Cet élément ne peut pas être traité (corriger ou ignorer)
- ⚠️ Avertissement : Peut continuer mais non recommandé (champs optionnels manquants)
- 💡 Suggestion : Meilleures pratiques (slug trop générique, résumé trop court)
Meilleures pratiques
Toujours :
- ✅ Afficher l'aperçu avant tout changement
- ✅ Nécessiter une confirmation explicite
- ✅ Valider complètement toutes les données
- ✅ Traiter par lots pour les opérations importantes
- ✅ Rapporter les succès et les échecs séparément
- ✅ Offrir la restauration pour les changements récents
- ✅ Utiliser l'approbation granulaire pour plus de flexibilité
Jamais :
- ❌ Appliquer des changements sans confirmation utilisateur
- ❌ Échouer le lot entier pour l'erreur d'un seul élément
- ❌ Supposer les noms de champs ou les valeurs
- ❌ Traiter sans valider d'abord
- ❌ Cacher les avertissements de validation à l'utilisateur
Cas limites :
- Slugs en double : Ajouter automatiquement un nombre (post-title-2)
- Champs optionnels manquants : Laisser vide (ne pas inventer les valeurs)
- Lots importants : Avertir sur le temps de traitement
- Champs de référence : Valider que les cibles existent
- Champs image : Accepter les URLs ou les IDs de fichier
Expérience utilisateur :
- Afficher le schéma de collection en premier
- Numéroter les éléments pour faciliter la référence
- Utiliser la hiérarchie visuelle (├── └──)
- Fournir des messages d'erreur exploitables
- Estimer le temps de traitement
- Permettre l'annulation en cours de traitement