KKreatoAI/Documentation API

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.