Guide

Comment connecter Airtable aux reseaux sociaux

Airtable est l\'endroit ou la plupart des equipes planifient leur contenu social. Mais la publication implique encore de copier les legendes dans des planificateurs une par une. Ce guide vous montre comment publier directement depuis votre base Airtable vers TikTok, Instagram, YouTube et 7 autres plateformes, en utilisant simplement un script et l\'API Upload-Post.

Pourquoi connecter Airtable aux réseaux sociaux

Airtable est sans doute le meilleur outil de calendrier de contenu disponible. Il dispose de vues, filtres, enregistrements lies, codes couleur et juste la bonne dose de structure. La plupart des equipes marketing planifient deja leur contenu la-bas. Le probleme est le dernier kilometre : une fois qu\'un post est approuve dans Airtable, quelqu\'un doit encore ouvrir un planificateur, coller la legende, uploader la video, choisir les plateformes et cliquer sur publier. Pour chaque publication.

L'Social media API Upload-Post comble ce vide. Elle accepte une URL de video, une legende et une liste de plateformes, puis publie sur toutes en une seule requete. Combinee avec l\'extension Scripting integree d\'Airtable ou les Automations, vous pouvez passer de "Approuve" dans votre base a "En ligne sur 10 plateformes" sans quitter votre navigateur.

Configurer votre base Airtable

Commencez avec une table appelee "Calendrier de contenu" (ou ce qui convient a votre workflow). Voici la structure de colonnes recommandee :

Colonne Type de champ Objectif
URL VidéoURLLien public vers le fichier vidéo (Google Drive, Dropbox, S3, etc.).
LégendeTexte longLégende / titre de la publication pour toutes les plateformes.
PlateformesSélection multipletiktok, instagram, youtube, linkedin, facebook, x, threads, pinterest
Date planifiéeDate (avec heure)Quand le post doit-il être publié (laissez vide pour immédiat) ?
StatutSélection uniqueBrouillon / Prêt / Approuvé / Publié / Échoué
ID de tâcheTexte simpleRetourne par l\'API après l\'upload (pour le suivi)

Le champ Statut est le moteur principal. Votre equipe le change en "Approuve" quand un post est pret, et l\'automatisation prend le relais. Utilisez le calendrier des evenements reseaux sociaux pour planifier du contenu autour des dates cles.

Publiez depuis Airtable avec l\'extension Scripting

Airtable est livre avec une extension Scripting qui execute du JavaScript directement dans votre base. Aucun outil externe necessaire. Ouvrez votre base, cliquez sur Extensions, ajoutez "Scripting", et collez le code suivant :

// Airtable Scripting Extension
let table = base.getTable('Calendrier de contenu');
let query = await table.selectRecordsAsync();
let record = query.records.find(r => r.getCellValue('Status')?.name === 'Ready');

if (!record) {
  output.text('No records with Status = Ready');
} else {
  let formData = new FormData();
  formData.append('video_url', record.getCellValue('Video URL'));
  formData.append('title', record.getCellValue('Caption'));
  formData.append('user', 'mybrand');
  formData.append('platform[]', 'tiktok');
  formData.append('platform[]', 'instagram');

  let response = await fetch('https://api.upload-post.com/api/upload', {
    method: 'POST',
    headers: { 'Autorisation': 'Clé API your-api-key-here' },
    body: formData
  });

  let result = await response.json();
  await table.updateRecordAsync(record, {
    'Status': { name: 'Publié' },
    'Job ID': result.job_id
  });
  output.text('Published! Job ID: ' + result.job_id);
}

Ce script trouve le premier enregistrement avec le Statut "Ready", envoie l\'URL de la video et la legende a l'Social media publishing API, puis met a jour l\'enregistrement avec l\'ID de tâche retourné. Vous pouvez l\''executer manuellement quand vous le souhaitez, ou le connecter a une automation (section suivante).

Pour la publication multi-plateforme, lisez le champ Plateformes dynamiquement au lieu de le coder en dur. Consultez notre guide sur la publication sur plusieurs plateformes en une fois pour toutes les valeurs de plateformes disponibles.

Déclencher avec les Automatisations Airtable

Les scripts manuels sont utiles, mais la veritable automatisation Airtable pour les reseaux sociaux signifie une publication sans intervention. Les Automations Airtable vous permettent de declencher un script chaque fois qu\'un enregistrement correspond a certaines conditions. Voici comment le configurer :

  1. Allez dans Automations dans votre base Airtable
  2. Créez une nouvelle automatisation
  3. Déclencheur : "When a record meets the conditions" avec Statut = "Approuvé"
  4. Action : "Exécuter un script"
  5. Dans le script, utilisez input.config() pour recevoir l\'ID de l\'enregistrement depuis le declencheur
// Airtable Automation Script
let inputConfig = input.config();
let table = base.getTable('Calendrier de contenu');
let record = await table.selectRecordAsync(inputConfig.recordId);

let platforms = record.getCellValue('Plateformes');
let formData = new FormData();
formData.append('video_url', record.getCellValue('Video URL'));
formData.append('title', record.getCellValue('Caption'));
formData.append('user', 'mybrand');

for (let p of platforms) {
  formData.append('platform[]', p.name.toLowerCase());
}

let response = await fetch('https://api.upload-post.com/api/upload', {
  method: 'POST',
  headers: { 'Autorisation': 'Clé API your-api-key-here' },
  body: formData
});

let result = await response.json();
await table.updateRecordAsync(record.id, {
  'Status': { name: 'Publié' },
  'Job ID': result.job_id
});

Desormais, chaque fois que quelqu\'un change le statut d\'un enregistrement en "Approuve", l\'automation se declenche, appelle l\'API Upload-Post et met a jour l\'enregistrement. Cela cree un workflow d\'approbation de contenu : votre equipe redige dans Airtable, un responsable approuve, et la publication est mise en ligne automatiquement. Pas d\'etapes manuelles, pas de planificateurs, pas de copier-coller.

Planifiez des publications depuis Airtable

Si vous souhaitez publier a une date et une heure specifiques plutot qu\'immediatement, lisez le champ Date planifiee et passez-le comme scheduled_date a l\'API. C\'est ainsi que vous transformez Airtable en un veritable outil de planification de reseaux sociaux.

// Add scheduling support
let scheduledDate = record.getCellValue('Scheduled Date');

if (scheduledDate) {
  formData.append('scheduled_date', new Date(scheduledDate).toISOString());
  formData.append('timezone', 'America/New_York');
}

// Or use the queue for automatic optimal timing
formData.append('add_to_queue', 'true');

Le parametre add_to_queue=true indique a Upload-Post de choisir le prochain creneau disponible, pour que vos publications soient espacees plutot que publiees toutes en meme temps. Pour en savoir plus sur les options de planification, consultez notre guide de planification. Vous pouvez aussi consulter nos guides dedies pour planifier des publications TikTok et automatiser les publications Instagram.

Utiliser n8n comme pont pour les workflows complexes.

Pour les equipes qui ont besoin de plus de logique entre Airtable et la publication (approbations via Slack, legendes generees par l\'IA, suppression de filigrane), n8n est le bon outil. n8n peut surveiller votre base Airtable pour les enregistrements nouveaux ou mis a jour, les traiter a travers un nombre quelconque d\'etapes, puis appeler l\'API Upload-Post.

Nous avons un template pret a l\'emploi qui fait exactement cela :

Parcourez la bibliotheque complete de templates n8n pour plus de workflows. Si vous preferez les constructeurs visuels, nos integrations Make.com et Zapier fonctionnent aussi avec Airtable comme declencheur.

Bulk publish an entire content calendar

Au lieu de publier un enregistrement a la fois, vous pouvez parcourir chaque enregistrement avec le Statut "Ready" et les publier tous en une seule execution de script. C\'est utile pour les uploads en lot hebdomadaires ou quand vous avez un arrierre a traiter.

// Batch publish all Ready records
let table = base.getTable('Calendrier de contenu');
let query = await table.selectRecordsAsync();
let readyRecords = query.records.filter(
  r => r.getCellValue('Status')?.name === 'Ready'
);

output.text('Found ' + readyRecords.length + ' records to publish');

for (let record of readyRecords) {
  let platforms = record.getCellValue('Plateformes');
  let formData = new FormData();
  formData.append('video_url', record.getCellValue('Video URL'));
  formData.append('title', record.getCellValue('Caption'));
  formData.append('user', 'mybrand');

  for (let p of platforms) {
    formData.append('platform[]', p.name.toLowerCase());
  }

  let scheduledDate = record.getCellValue('Scheduled Date');
  if (scheduledDate) {
    formData.append('scheduled_date', new Date(scheduledDate).toISOString());
  }

  try {
    let response = await fetch('https://api.upload-post.com/api/upload', {
      method: 'POST',
      headers: { 'Autorisation': 'Clé API your-api-key-here' },
      body: formData
    });
    let result = await response.json();
    await table.updateRecordAsync(record, {
      'Status': { name: 'Publié' },
      'Job ID': result.job_id
    });
    output.text('Published: ' + record.getCellValue('Caption'));
  } catch (err) {
    await table.updateRecordAsync(record, {
      'Status': { name: 'Échoué' }
    });
    output.text('Failed: ' + record.getCellValue('Caption'));
  }
}

Pour les gros volumes, consultez notre guide sur le telechargement en masse de videos sur les reseaux sociaux. Si vous preferez Python pour les operations en lot, le guide d\'automatisation Python couvre la construction d\'un script qui lit depuis l\'API REST d\'Airtable.

Suivre le statut de téléchargement dans Airtable

Apres avoir soumis un upload, la video peut prendre quelques secondes a traiter et distribuer sur chaque plateforme. Vous pouvez interroger l\'endpoint de statut et ecrire le resultat dans votre enregistrement Airtable :

// Check upload status and update Airtable
let table = base.getTable('Calendrier de contenu');
let query = await table.selectRecordsAsync();
let pendingRecords = query.records.filter(
  r => r.getCellValue('Status')?.name === 'Publié'
    && r.getCellValue('Job ID')
);

for (let record of pendingRecords) {
  let jobId = record.getCellValue('Job ID');
  let response = await fetch(
    'https://api.upload-post.com/api/uploadposts/status?job_id=' + jobId,
    { headers: { 'Autorisation': 'Clé API your-api-key-here' } }
  );
  let status = await response.json();

  if (status.status === 'completed') {
    await table.updateRecordAsync(record, {
      'Status': { name: 'Live' }
    });
  } else if (status.status === 'failed') {
    await table.updateRecordAsync(record, {
      'Status': { name: 'Échoué' }
    });
  }
}

Executez cela comme un bouton d\'extension Scripting separe ou configurez-le sur une automation temporisee (par exemple, toutes les 10 minutes) pour garder votre base Airtable synchronisee avec les statuts reels des publications. Cela vous donne une trace d\'audit complete sans verifier le tableau de bord de chaque plateforme individuellement.

Platform-specific tips

Lorsque vous connectez votre calendrier de contenu Airtable aux reseaux sociaux, chaque plateforme a ses propres particularites :

  • TikTok : Incluez les hashtags dans la legende. L\'API gere automatiquement le flux d\'upload de TikTok, y compris les parametres de divulgation.
  • Instagram : Fonctionne pour les Reels (video) et les carrousels photo. Utilisez /api/upload_photos pour les publications d\'images.
  • YouTube : Ajoutez youtube_description pour une description plus longue separee de la legende principale.
  • LinkedIn : Le ton professionnel compte. Envisagez une colonne "Légende LinkedIn" separee dans Airtable.

Comparez cette approche avec les outils traditionnels comme Hootsuite : vous obtenez un controle total, zero limite par plateforme, et tout reste dans Airtable ou votre equipe travaille deja.

Questions fréquemment posées

Cela fonctionne-t-il avec le plan gratuit d\'Airtable ?

Oui. L\'extension Scripting et les Automations sont toutes deux disponibles sur le plan gratuit d\'Airtable. Le plan gratuit vous limite à 100 exécutions d\''automation par mois, ce qui est suffisant pour les petites equipes. Les plans Airtable payants augmentent cette limite de maniere significative.

Can I attach videos directly in Airtable instead of using URLs?

L\'extension Scripting peut lire les champs de pieces jointes, mais il est plus simple d\'utiliser une colonne URL pointant vers un fichier heberge dans le cloud (Google Drive, Dropbox, S3). L\'API Upload-Post accepte a la fois les uploads de fichiers directs et les URL, mais les URL sont plus faciles a utiliser dans les scripts Airtable.

Combien d\'enregistrements puis-je traiter en un seul lot ?

Il n\'y a pas de limite stricte du cote d\'Upload-Post. Cependant, les extensions Scripting d\'Airtable ont un delai d\'attente de 30 secondes pour les plans gratuits. Pour les lots importants (50+ enregistrements), envisagez d\'utiliser n8n ou l'approche Python pour traiter les enregistrements en dehors des contraintes de delai d\'Airtable.

Puis-je utiliser Google Sheets au lieu d\'Airtable ?

Absolument. Si vous préférez les tableurs, suivez notre guide de publication depuis Google Sheets. Il utilise la même API Upload-Post avec n8n ou Make.com comme pont. Les concepts sont identiques ; seule la source de données change.

Qu\'en est-il des photos et carrousels ?

Pour les publications d\'images (photos uniques ou carrousels), utilisez l\'endpoint /api/upload_photos au lieu de /api/upload. Ajoutez une colonne separee dans Airtable pour les URL d\'images. La logique du script est la meme ; changez simplement l\'endpoint et utilisez photos[] au lieu de video_url.

Transformez votre base Airtable en moteur de publication

Planifiez dans Airtable. Publiez partout. Creez un compte Upload-Post gratuit et connectez-le a votre calendrier de contenu en quelques minutes.

Pas de carte bancaire requise. 10 uploads gratuits inclus.

Guides associés

Aucune carte de crédit requise. 10 téléchargements gratuits inclus.