Carrousel TikTok avec n8n
Objectif : un workflow qui génère des images, les envoie à KreatoAI, crée un brouillon de carrousel TikTok, puis prévient un humain qui relit et publie depuis l'app.
Prérequis
Un compte TikTok connecté à votre espace KreatoAI (dashboard → Canaux), et une clé API — créez-la ici et stockez-la dans un credential n8n (Header Auth : nom x-api-key).
Structure du workflow
Trigger (Schedule / Google Sheets / Webhook)
→ Génération des images (IA, templates…)
→ [Boucle] HTTP Request : POST /v1/media (une requête par image)
→ HTTP Request : POST /v1/publish/tiktok/photo (postMode: MEDIA_UPLOAD)
→ Wait 10 s → HTTP Request : GET /v1/publish/tiktok/status/{publishId}
→ IF status ≠ terminal → reboucler (max 12 fois)
→ Notification (WhatsApp / Slack / email) avec title + descriptionÉtape 1 — Ingérer les images
Nœud HTTP Request, méthode POST, URL https://api.kreatoai.com/v1/media, body JSON. Si vos images sont des URLs publiques : {"url": "{{ $json.imageUrl }}"}. Si elles sont générées en binaire dans n8n, convertissez-les en base64 et envoyez {"base64": "…"}. Conservez le champ url de chaque réponse.
Étape 2 — Publier le brouillon
{
"imageUrls": ["https://media.kreatoai.com/…", "https://media.kreatoai.com/…"],
"title": "{{ $json.titre }}",
"description": "{{ $json.legende }}",
"postMode": "MEDIA_UPLOAD"
}Gardez publishId, title et description de la réponse pour les étapes suivantes.
Étape 3 — Attendre le statut
Nœud Wait (10 s) puis GET /v1/publish/tiktok/status/{{ $json.publishId }}. Bouclez avec un nœud IF tant que le statut n'est ni SEND_TO_USER_INBOX ni FAILED (12 itérations max). En pratique le brouillon arrive en 10-15 secondes. Alternative sans polling : un nœud Webhook + les webhooks KreatoAI.
Étape 4 — Notifier l'humain
Sur SEND_TO_USER_INBOX, envoyez une notification (WhatsApp, Slack, email…) contenant le titre et la légende : la personne ouvre TikTok, retrouve le brouillon pré-rempli dans sa boîte de réception, relit et publie. Sur FAILED, transmettez le failReason sans réessayer automatiquement.
Variante — publier une vidéo
Le même workflow fonctionne pour une vidéo : à l'étape 1, envoyez {"url": "https://…/clip.mp4"} à POST /v1/media (MP4/MOV/WebM, ≤ 128 Mo — la réponse a type: "video") ; à l'étape 2, appelez POST /v1/publish/tiktok/video avec videoUrl et postMode: "MEDIA_UPLOAD". Attention : en brouillon vidéo, TikTok ne pré-remplit pas le titre — incluez-le dans votre notification humaine (il est renvoyé en écho par l'API). Statut de succès identique : SEND_TO_USER_INBOX.