Ce que tu vas obtenir
Un workflow complet, reproductible, pour produire un batch de carrousels Instagram cohérents — chacun avec son propre logo, bg, et contenu adapté — en pilotant Canva via le langage naturel.
Pas de code à écrire. Pas de plugin à installer. Pas de clé API à gérer.
Juste Claude Desktop, un compte Canva, et les bons prompts. Tu copies, tu colles, tu modifies. Ça marche.
Le sommaire
- Pré-requis : 5 minutes de setup
- Connecter Canva à Claude Desktop
- Préparer ta maquette template
- Cadrer ton brief contenu
- Prompt #1 : modifier ton premier post
- Dupliquer 30 fois en 5 minutes
- Prompt #2 : renommer 30 designs en bulk
- Prompt #3 : lancer 10 agents en parallèle
- Hack tunneling pour uploader des assets
- Prompt #4 : remplacer logos + bgs
- Prompt #5 : exporter tout en PNG local
- Programmer dans Buffer / Publer
- Cheat sheet : tous les prompts
- FAQ
Ce qu'il te faut avant
Claude Desktop installé
Télécharge l'app sur claude.ai/download (Mac, Windows, Linux). Compte gratuit suffit pour démarrer, mais Pro recommandé pour un usage intensif (limites de messages).
Compte Canva
Free ou Pro. Le MCP Canva fonctionne avec les deux, mais Pro débloque les exports lossless et les templates premium.
Une maquette de carrousel déjà créée
Dans Canva, prépare 1 design Instagram (1080×1350px) avec ta structure narrative complète. C'est le template qu'on va dupliquer 30 fois et remplir automatiquement.
Tes assets en local (optionnel)
Si tu veux changer logos/bgs en lot : un dossier avec tes 30 logos PNG et tes 8 bgs JPG, prêts à uploader.
Connecter Canva à Claude Desktop
Le MCP (Model Context Protocol) permet à Claude d'agir directement dans Canva. Pas de code, pas de clé API. Juste OAuth, comme Google ou Slack.
Ouvre Claude Desktop
Lance l'app. Connecte-toi à ton compte Claude.
Va dans Settings → Connectors
Clique sur ton avatar en bas à gauche → Settings → onglet Connectors (ou Integrations selon la version).
Cherche Canva, clic Connect
Dans la liste, trouve Canva. Clic Connect. Une fenêtre OAuth Canva s'ouvre. Tu autorises Claude à lire et modifier tes designs.
Vérifie la connexion
De retour dans Claude, tape ce prompt :
Liste mes 5 designs Canva les plus récents.
Si Claude répond avec une liste de tes designs (titres, IDs, dates), c'est bon — la connexion marche.
Ce que Claude peut faire dans Canva
Une fois connecté, ~30 outils sont accessibles. Les principaux que tu vas utiliser :
| Action | Ce que ça fait |
|---|---|
search-designs | Trouver tes designs par nom ou contenu |
get-design-content | Lire les textes de toutes les pages |
perform-editing-operations | Modifier textes, images, titres en lot |
upload-asset-from-url | Importer un logo ou bg depuis une URL |
export-design | Exporter en PNG / JPG / PDF |
Tu n'as pas besoin de connaître ces noms — Claude les utilise tout seul. Mais c'est utile de savoir ce qui est dispo pour cadrer tes prompts.
Préparer ta maquette une fois pour toutes
Ta maquette est le squelette qu'on va dupliquer 30 fois. Investis 1h à la designer parfaitement — tu rentabilises sur les 30 itérations suivantes.
Structure narrative recommandée
Pour un carrousel produit / outil / méthode, voici un schéma qui fonctionne bien :
| Page | Rôle | Contenu type |
|---|---|---|
| P1 Cover | Hook visuel | Nom + n° de série + catégorie + visuel fort |
| P2 C'est quoi | Orientation | 1 phrase de définition + 1 paragraphe |
| P3 Ce qu'il fait | Capacités | 4 bullets concrets |
| P4 Pour qui | Qualification | Niveaux ou profils utilisateurs |
| P5 Exemple | Tangible | Un cas d'usage en 4 étapes |
| P6 Le prix | Tarif | Free + tarif principal |
| P7 CTA | Action | Abonne-toi + signature |
3 règles à respecter
- Format Instagram 1080×1350px (4:5) — c'est le format qui prend le plus de place dans le feed.
- Calibre les longueurs de texte sur ta maquette dès le départ. Si un sous-titre tient sur 1 ligne avec 30 caractères, note-le. C'est la limite que tes prompts devront respecter.
- Distingue les éléments fixes des éléments variables. Le footer (@ton-handle, www.tonsite) reste pareil sur tous les posts. Le titre, le body, le logo et le bg changent à chaque fois.
Cadrer ton brief contenu
Sans brief, l'IA génère du contenu correct mais générique. Avec un brief précis, elle écrit comme toi.
Le template de brief à remplir
# MON BRIEF CONTENU ## Audience cible (ICP) - Profil : [ex: dirigeants TPE/PME 10-50 salariés où le boss vend lui-même] - Pain principal : [ex: pas le temps pour les tâches admin] - Plateforme : Instagram (carrousel 7 pages) ## Ton et voix - Style : [ex: SOBRE, FACTUEL — pas de punchline marketing] - Personne : [tutoiement / vouvoiement] - Langue : français - Phrases types : [ex: "Cet outil sert à ça. Il fait ça. Il fait pas ça."] ## Structure des slides - P1 Cover : [ce qui doit y figurer] - P2 C'est quoi : 1 sous-titre 30 chars + body 100-200 chars - P3 Ce qu'il fait : 1 sous-titre 30 chars + 4 bullets, 150-220 chars total - P4 Pour qui : 1 sous-titre 30 chars + 3 niveaux + punchline (180-240 chars) - P5 Exemple : 1 sous-titre 30 chars + workflow 4 steps + punchline (200-280 chars) - P6 Prix : pre + main (max 20 chars chacun) - P7 CTA : inchangé ## Exemples obligatoires - Toujours [ex: business / sales-driven / non-technique] - Jamais [ex: jargon dev / acronymes obscurs] - Mesure la valeur en [ex: temps libéré, pas en lignes de code]
Ce brief, tu le mets en tête de chaque prompt donné à Claude. C'est lui qui garantit la cohérence sur 30 posts.
Prompt #1 : remplir ton premier post
Avant de paralléliser sur 30 designs, on valide la mécanique sur un seul. C'est ce qui te donne la base solide pour tout le reste.
Le prompt complet
# BRIEF [Colle ici ton brief de l'étape 04] # OBJECTIF Tu modifies le carrousel Canva ci-dessous pour le sujet suivant : [ex: "l'outil Make.com"]. URL du design : https://www.canva.com/design/[ID-DE-TON-DESIGN]/edit # INSTRUCTIONS 1. Récupère le contenu actuel du design via get-design-content. 2. Drafte un nouveau contenu pour les 6 slides P2 à P6, en respectant strictement les longueurs définies dans le brief. 3. Avant de pousser dans Canva, montre-moi le draft texte par texte. 4. Quand je valide, ouvre une transaction d'édition, applique tous les replace_text en une passe, puis commit. 5. Ne touche pas à la cover P1 ni au CTA P7 — ils restent tels quels. # SUJET DE CE POST Outil : [Nom outil] Ce qu'il fait : [3 phrases descriptives] Pour qui : [ICP cible] Prix : [free + paid] Exemple business : [scénario concret]
Ce que Claude va faire
- Lire ton design avec
get-design-content - Identifier les element IDs de chaque texte (chaque texte a un identifiant unique stable)
- Te proposer un draft du contenu pour validation
- Une fois validé, ouvrir
start-editing-transaction - Appliquer 12 à 15 opérations
replace_texten une passe viaperform-editing-operations - Faire
commit-editing-transactionpour sauvegarder
Total : ~2 minutes. Tu auras ton premier post complet dans Canva, prêt à être inspecté.
Dupliquer 30 fois en 5 minutes
L'API Canva n'a pas de "duplicate-design". C'est la seule étape manuelle du process. Mais c'est rapide.
Ouvre Canva home
Va sur canva.com, tri "Modifié récemment" pour avoir ton design en premier.
Clic-droit → Faire une copie
Sur ton design dans la grille, clic-droit (ou les 3 points) → Faire une copie. Répète 30 fois.
Chaque copie sera nommée automatiquement "Copie de [TonDesign]". Pas grave — on les renomme ensuite.
Vérifie l'ordre
Tri "Modifié récemment" → tu devrais voir tes 30 copies en haut de liste, dans l'ordre où tu les as cliquées. Cet ordre va servir au mapping.
Prompt #2 : renommer les 30 designs
Une fois dupliqués, tu vas renommer les 30 designs en lot. Plus jamais de "Copie de Copie de design final v2 final.psd".
Cherche tous mes designs nommés "Copie de [NomDeTonDesign]" (sortés par created_at ascending). Tu en trouveras [N] (idéalement 30). Voici la liste des nouveaux titres dans l'ordre, du plus ancien au plus récent : 1. [Premier titre] 2. [Deuxième titre] 3. ... 30. [Dernier titre] Pour chaque design, ouvre une transaction d'édition, applique l'opération update_title avec le nouveau titre, puis commit. Lance les 30 renames en parallèle. À la fin, donne-moi un récap : quel ID correspond à quel titre. Pas besoin de me citer les réponses Canva (elles sont énormes).
Ce que tu obtiens
Claude va lancer 30 transactions en parallèle, chacune avec une seule opération update_title. Ça prend ~30 secondes total. Tes 30 designs ont maintenant les bons noms.
Prompt #3 : 10 agents en parallèle
Là où ça devient intéressant : Claude peut déléguer à des sous-agents qui bossent en parallèle. 10 agents, 3 designs chacun = 30 designs traités en 3 minutes.
Le pattern
Chaque agent reçoit :
- Sa liste assignée (3 designs)
- Le brief complet (ICP, ton, contraintes)
- Le template d'opérations Canva avec placeholders
- Les contraintes de longueur
Et il bosse seul jusqu'à finir ses 3 designs. Pendant ce temps, les 9 autres agents font pareil.
Je veux que tu lances 10 agents Task en parallèle pour
modifier le contenu de 30 designs Canva.
Voici le mapping :
Agent 1 → designs [ID1] [ID2] [ID3] sujets [A] [B] [C]
Agent 2 → designs [ID4] [ID5] [ID6] sujets [D] [E] [F]
... (10 agents au total)
Chaque agent doit :
1. Charger les tools Canva via ToolSearch :
"select:mcp__claude_ai_Canva__start-editing-transaction,
mcp__claude_ai_Canva__perform-editing-operations,
mcp__claude_ai_Canva__commit-editing-transaction"
2. Pour chaque de ses 3 designs :
a. Drafter le contenu (Quoi/Fait/PourQui/Exemple/Prix)
en respectant le brief ci-dessous et les longueurs.
b. start-editing-transaction(designId)
c. perform-editing-operations avec toutes les ops
replace_text en une passe.
d. commit-editing-transaction
3. Renvoyer un résumé concis :
"✅ [DesignID] [Sujet] — APPLIED"
Sans citer les réponses Canva (elles sont énormes).
Lance-les en background avec run_in_background:true et
notifie-moi quand chacun finit.
# BRIEF À TRANSMETTRE AUX AGENTS
[Ton brief complet de l'étape 04]
# CONTRAINTES DE LONGUEUR (CRITIQUE)
- Sous-titres P2-P5 : max 30 caractères, 1 ligne
- Body P2 (définition) : 100-200 caractères
- Body P3 (4 bullets, format "• X.") : 150-220 caractères
- Body P4 (3 niveaux + punchline) : 180-240 caractères
- Body P5 (workflow 4 steps + punchline) : 200-280 caractères
- Prix pre + main : max 20 caractères chacun
Pourquoi déléguer aux agents
Chaque transaction Canva renvoie ~50KB de JSON (toutes les pages, fills, thumbnails). 30 designs × 3 calls = ~4.5 MB de réponses. Si tu fais ça depuis ton agent principal, tu satures le contexte.
En sous-agents, chaque agent a son propre contexte de 1M tokens et te renvoie juste un résumé concis ("✅ APPLIED"). Tu paies 10 fois moins en tokens et c'est 10 fois plus rapide.
Le bottleneck n'est pas l'IA. C'est la friction entre les outils.
Hack tunneling : uploader des assets externes
Tu as 30 logos sur ton ordi. Tu veux les balancer dans Canva via l'API. Petit problème : upload-asset-from-url demande une URL publique HTTPS. Pas de chemin local. Voilà le hack.
Les 3 options
- Drag-drop dans Canva manuellement — OK pour 5 fichiers, pénible pour 30+
- Hébergement temporaire via tunnel SSH — c'est ce qu'on va faire, ~2 minutes
- Service de fichiers public (file.io, transfer.sh) — souvent rate-limited ou désactivé
Le hack en 4 étapes
Pré-requis : un VPS quelconque
Tu as besoin d'un serveur Linux avec accès SSH. Un VPS à 5€/mois (Hetzner, OVH, DigitalOcean) suffit. Si tu en as déjà un pour autre chose, c'est parfait.
SCP tes fichiers vers le serveur
# Crée un dossier temporaire sur le serveur ssh ton-serveur 'mkdir -p /tmp/canva-assets' # Copie tous tes fichiers en un coup scp /chemin/vers/tes/logos/*.png \ /chemin/vers/tes/bgs/*.jpg \ ton-serveur:/tmp/canva-assets/
Lance un serveur HTTP simple
# Sur le serveur, dans /tmp/canva-assets cd /tmp/canva-assets # Lance python http server en background nohup python3 -m http.server 8888 > /tmp/http.log 2>&1 &
Tes fichiers sont maintenant servis en local sur le port 8888. Mais le firewall cloud bloque souvent ce port — il faut un tunnel public.
Tunnel HTTPS public via localhost.run
Le truc magique : localhost.run expose ton localhost en HTTPS sans inscription, sans clé. Juste une commande SSH.
# Lance le tunnel en background nohup ssh -o StrictHostKeyChecking=accept-new \ -R 80:localhost:8888 \ nokey@localhost.run > /tmp/lr.log 2>&1 & # Attends 5 secondes, puis récupère l'URL publique sleep 5 grep -oE "https://[a-z0-9-]+\.lhr\.life" /tmp/lr.log
Tu obtiens une URL du genre https://abc123.lhr.life. Cette URL pointe sur ton dossier /tmp/canva-assets.
Demande à Claude d'uploader tout
Mes 37 fichiers sont exposés sur :
https://abc123.lhr.life/{filename}
Liste des fichiers :
- logo-tool1.png
- logo-tool2.png
- ... (toute ta liste)
- bg-categorie1.jpg
- bg-categorie2.jpg
- ...
Pour chaque fichier, appelle upload-asset-from-url
en parallèle avec un nom descriptif (ex: "Tool1 logo",
"Bg Catégorie 1").
À la fin, donne-moi le mapping :
nom_fichier → asset_id Canva.
Pas besoin de me citer les réponses entières.
ssh ton-serveur 'pkill -f localhost.run; \ pkill -f "http.server 8888"; \ rm -rf /tmp/canva-assets'
Prompt #4 : remplacer logos + bgs
Mêmes patterns d'agents qu'avant, mais avec update_fill au lieu de replace_text. Les asset_ids viennent du mapping uploadé à l'étape précédente.
Pour chaque de mes 30 designs (mapping designId → sujet ci-dessous), je veux remplacer 2 images sur la cover P1 : - Le logo principal (élément avec asset image actuel remplaçable) - Le background de la page Voici le mapping : | DesignID | Logo asset_id | Bg asset_id | |----------|---------------|-------------| | [ID1] | [logo asset 1] | [bg cat 1] | | [ID2] | [logo asset 2] | [bg cat 1] | | ... | ... | ... | Lance 10 agents Task en parallèle. Chaque agent traite 3 designs et fait pour chacun : 1. start-editing-transaction 2. perform-editing-operations avec 2 ops update_fill : - Page bg (element_id = page id de la cover) - Logo image (element_id = rectangle du logo) 3. commit-editing-transaction Output concis : ✅ [DesignID] — assets APPLIED.
Trouver les bons element IDs
Le premier coup, tu ne sais pas quel element_id est le logo et lequel est le bg. Demande à Claude :
Ouvre une transaction d'édition sur le design [ID]. Liste-moi tous les éléments image (fills) de la cover P1, avec leur element_id, leurs dimensions approximatives et leur position. Indique-moi clairement lequel correspond au logo et lequel au background. Cancel la transaction ensuite (pas besoin de modifier).
Une fois que tu as les element IDs, ils sont les mêmes sur les 30 duplicates (Canva préserve les IDs lors de la duplication). Tu peux donc les hardcoder dans tes prompts d'agents.
Prompt #5 : exporter tout en local
Pour planifier dans Buffer, Publer ou directement sur Instagram, tu as besoin des fichiers en local. Export PNG quality pro, lossless, 7 pages par design.
Pour chacun de mes 30 designs (liste IDs ci-dessous),
exporte en PNG quality=pro lossless toutes les pages,
puis télécharge les fichiers en local.
Liste designs :
- [ID1] → folder local "01-Sujet1"
- [ID2] → folder local "02-Sujet2"
- ... 30 lignes
Pour chaque design, fais :
1. Crée le folder :
mkdir -p ~/Documents/exports/[FOLDER]
2. Appelle export-design avec :
format = {"type":"png","export_quality":"pro",
"lossless":true}
3. La réponse contient une URL par page (7 pages).
Télécharge chacune avec curl :
curl -s -o ~/Documents/exports/[FOLDER]/page-[N].png
"[URL]"
4. Vérifie que les 7 fichiers sont bien présents.
⚠️ Canva rate-limit ~3 exports en parallèle. Lance par
batches de 3 séquentiels. Retry les exports rate-limited.
À la fin : récap "✅ [folder] 7/7 pages OK" pour chaque.
Programmer dans Buffer ou Publer
Maintenant que tu as 30 dossiers de 7 PNG chacun, il faut les pousser sur ton planificateur préféré.
Option A : Buffer (manuel mais visuel)
- Connecte ton compte Instagram Business à Buffer
- Pour chaque post : New Post → drag-drop les 7 PNG du folder → reconnaissance automatique du carrousel
- Copie-colle ta caption (préparée à part dans un CSV)
- Schedule à H+24, H+48, etc.
Pour 30 posts : ~30 minutes de manipulation. Visuel, rassurant.
Option B : Publer (bulk + API)
Publer supporte le bulk schedule via CSV. Tu importes un CSV avec les chemins de fichiers + captions + dates. Plus rapide pour des batchs importants.
Option C : Canva Content Planner (intégré)
Canva a un planificateur intégré. Avantage : pas d'export à faire. Inconvénient : programmation 1 par 1, pas de bulk possible via leur UI.
Tous les prompts en 1 endroit
Récap de tous les prompts du tuto. Copy-paste ready.
Prompt 1 — Test connexion Canva
Liste mes 5 designs Canva les plus récents.
Prompt 2 — Premier post complet
[Brief complet ICP + ton + structure] Modifie le carrousel Canva ci-dessous pour le sujet [SUJET] : [URL design]. 1. Récupère le contenu via get-design-content. 2. Drafte le nouveau contenu pour P2 à P6 en respectant les longueurs définies dans le brief. 3. Montre-moi le draft avant de pousser. 4. Au feu vert, transaction d'édition + replace_text en lot + commit. 5. Ne touche pas P1 ni P7.
Prompt 3 — Bulk rename
Cherche "Copie de [nom design]" sortés par created_at ascending. Renomme-les avec update_title selon la liste : 1. [titre 1] 2. [titre 2] ... Lance les renames en parallèle. Récap final ID → titre.
Prompt 4 — Agents parallèles texte
Lance 10 agents Task en parallèle pour modifier le contenu de mes 30 designs. Mapping : Agent 1 → [ID1] [ID2] [ID3] sujets [A] [B] [C] ... (10 agents) Chaque agent : ToolSearch tools Canva, puis pour chaque design : start-transaction, perform-operations avec toutes les replace_text, commit. Output concis sans citer les réponses. Brief commun : [colle ton brief] Contraintes longueurs : [colle tes contraintes] run_in_background:true
Prompt 5 — Upload assets via tunnel
Mes fichiers sont exposés sur https://[tunnel].lhr.life/ Liste : logo1.png, logo2.png, bg-cat1.jpg, ... Pour chaque fichier, upload-asset-from-url en parallèle avec un nom descriptif. Mapping final fichier → asset_id.
Prompt 6 — Replace assets en lot
Lance 10 agents pour update_fill 2 images sur la cover P1 de mes 30 designs (logo + bg). Mapping designId → logo_asset_id + bg_asset_id : [ton mapping] Element IDs (constants) : - Logo : [element_id] - Bg page : [page_id] run_in_background:true. Output concis.
Prompt 7 — Export local
Lance 3 agents pour exporter mes 30 designs en PNG pro
lossless et télécharger en local dans
~/Documents/exports/[NN-Sujet]/page-{1..7}.png.
Mapping designId → folder name : [liste]
Batches de 3 séquentiels (rate-limit Canva). Retry sur
429. Output : ✅ folder 7/7 pour chaque.
Questions fréquentes
Combien ça coûte au total ?
- Claude : Free tier suffit pour tester. Pro à 20$/mois pour usage intensif (40h+/semaine).
- Canva : Free fonctionne. Pro à 12€/mois pour exports lossless + templates premium.
- VPS : 5-10€/mois pour le tunnel SSH (si tu n'en as pas déjà un).
Total : ~30€/mois en setup pro. Pour comparer : 1 graphiste freelance facture en moyenne 50-100€ par carrousel custom.
Est-ce que ça marche sur Mac et Windows ?
Oui, Claude Desktop est dispo sur les deux. Le hack tunneling SSH demande un terminal — natif sur Mac, sur Windows utilise WSL ou Git Bash.
Puis-je utiliser ChatGPT à la place de Claude ?
Pas pour ce workflow précis. Le MCP (Model Context Protocol) Canva est officiellement supporté par Claude (Anthropic). ChatGPT n'a pas d'équivalent officiel à date. Il existe des Custom GPTs Canva mais ils sont limités à la génération, pas à l'édition de designs existants.
Mes textes wrappent et débordent. Comment faire ?
Ton template a des placeholders calibrés sur des longueurs précises. Si ton nouveau texte est plus long, il déborde. Solution : ajoute des contraintes de longueur strictes dans ton brief (ex: "max 30 caractères pour les sous-titres") et donne-les explicitement à chaque agent. Si ça déborde quand même, demande à Claude un format_text avec un font_size réduit sur l'élément concerné.
Et si je n'ai pas de VPS pour le tunnel ?
Trois alternatives :
- ngrok en local sur ton Mac (gratuit avec limites). Tu lances
ngrok http 8000pour exposer un python http.server local. - Cloudflare Tunnel avec
cloudflared --url http://localhost:8000(gratuit sans compte). - Drag-drop manuel dans Canva — pénible pour 30+ fichiers mais ça marche toujours.
Mes prompts marchent une fois et plus la fois suivante. Pourquoi ?
3 raisons possibles :
- Canva a renommé un tool (rare mais arrive). Demande à Claude de relister les tools dispos.
- Rate-limit Canva dépassé — attends 5 minutes ou réduis la parallélisation.
- Element IDs ont changé — si tu as modifié manuellement la maquette entre temps, certains IDs peuvent avoir bougé. Re-demande à Claude de scan le design.
Comment éviter de me faire bannir par Canva ?
Tu utilises l'API officielle via OAuth. Tu n'es pas en train de scraper. Le seul cas où Canva pourrait te limiter : usage massivement parallèle (50+ requêtes simultanées). Reste en dessous de 10 calls parallèles, fais des batches, et tu es safe. Le rate-limit de Canva s'arrête à du throttling temporaire — pas de ban.
Combien de temps pour la première fois ?
Plan budget temps :
- Setup Claude Desktop + Canva : 5 min
- Création maquette template : 1h (boring mais nécessaire)
- Brief + premier prompt : 30 min (apprendre le pattern)
- Duplication 30 fois : 5 min
- Lancer les agents (texte + assets) : 15 min de prompts + 10 min d'attente
- Export + planning : 30 min
Total première session : ~3h. Sessions suivantes : ~1h chrono.
Et si Claude se trompe et casse mes designs ?
Aucun risque. Toutes les modifications passent par des transactions start → operations → commit. Si tu n'as pas dit "commit", rien n'est sauvegardé côté Canva. Et même après commit, Canva garde un historique des versions — tu peux toujours revenir en arrière.
Bonus : duplique toujours ta maquette template avant de la donner à Claude. Comme ça l'original reste intact si quelque chose se passe mal.
Tu veux le suivant ?
1 outil par jour pour automatiser ton business sans coder. Prompts, hacks, échecs. Direct dans ton feed.
Suis @alexis.gatuingt