Perché collegare Airtable ai social media
Airtable e probabilmente il miglior strumento disponibile per i calendari editoriali. Ha viste, filtri, record collegati, codifica colori e la giusta quantita di struttura. La maggior parte dei team marketing pianifica gia li i propri contenuti. Il problema e l\'ultimo miglio: una volta che un post e approvato in Airtable, qualcuno deve ancora aprire uno strumento di programmazione, incollare la didascalia, caricare il video, selezionare le piattaforme e premere pubblica. Per ogni singolo post.
L'API per social media di Upload-Post colma questo divario. Accetta un URL video, una didascalia e un elenco di piattaforme, poi pubblica su tutte in una sola richiesta. Combinata con l\'estensione Scripting integrata di Airtable o le Automazioni, puoi passare da "Approvato" nella tua base a "Live su 10 piattaforme" senza uscire dal browser.
Configurare la tua base Airtable
Inizia con una tabella chiamata "Calendario Editoriale" (o qualsiasi nome si adatti al tuo workflow). Ecco la struttura di colonne consigliata:
| Colonna | Tipo di Campo | Scopo |
|---|---|---|
| URL Video | URL | Link pubblico al file video (Google Drive, Dropbox, S3, ecc.) |
| Didascalia | Long text | Didascalia del post / titolo per tutte le piattaforme |
| Piattaforme | Selezione multipla | tiktok, instagram, youtube, linkedin, facebook, x, threads, pinterest |
| Data Programmata | Data (con orario) | Quando il post deve andare online (lascia vuoto per pubblicazione immediata) |
| Stato | Selezione singola | Bozza / Pronto / Approvato / Pubblicato / Fallito |
| ID Lavoro | Testo su una sola riga | Restituito dall\'API dopo l\'upload (per il tracciamento) |
Il campo Stato e il driver principale. Il tuo team lo cambia in "Approvato" quando un post e pronto, e l\'automazione lo raccoglie da li. Usa il calendario delle festivita per i social media per pianificare i contenuti in base alle date chiave.
Pubblica da Airtable usando l\'estensione Scripting
Airtable include un\'estensione Scripting che esegue JavaScript direttamente nella tua base. Nessuno strumento esterno necessario. Apri la tua base, clicca su Estensioni, aggiungi "Scripting" e incolla il seguente codice:
// Airtable Scripting Extension
let table = base.getTable('Calendario dei contenuti');
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: { 'Autorizzazione': 'Apikey your-api-key-here' },
body: formData
});
let result = await response.json();
await table.updateRecordAsync(record, {
'Status': { name: 'Pubblicato' },
'Job ID': result.job_id
});
output.text('Published! Job ID: ' + result.job_id);
} Questo script trova il primo record con Stato "Ready", invia l\'URL del video e la didascalia all'API per la pubblicazione social, poi aggiorna il record con l\'ID job restituito. Puoi eseguirlo manualmente quando vuoi, oppure collegarlo a un\'automazione (sezione successiva).
Per la pubblicazione multi-piattaforma, leggi il campo Piattaforme dinamicamente invece di usare valori fissi nel codice. Consulta la nostra guida su come pubblicare su piu piattaforme contemporaneamente per tutti i valori di piattaforma disponibili.
Attivare con le Automazioni Airtable
Gli script manuali sono utili, ma la vera automazione Airtable per i social media significa pubblicazione senza intervento. Le Automazioni Airtable ti permettono di attivare uno script ogni volta che un record soddisfa determinate condizioni. Ecco come configurarle:
- Vai su Automazioni nella tua base Airtable
- Crea una nuova automazione
- Trigger: "Quando il record soddisfa le condizioni" con Stato = "Approvato"
- Azione: "Esegui script"
- Nello script, usa
input.config()per ricevere l\'ID del record dal trigger
// Airtable Automation Script
let inputConfig = input.config();
let table = base.getTable('Calendario dei contenuti');
let record = await table.selectRecordAsync(inputConfig.recordId);
let platforms = record.getCellValue('Piattaforme');
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: { 'Autorizzazione': 'Apikey your-api-key-here' },
body: formData
});
let result = await response.json();
await table.updateRecordAsync(record.id, {
'Status': { name: 'Pubblicato' },
'Job ID': result.job_id
}); Ora, ogni volta che qualcuno cambia lo stato di un record in "Approvato", l\'automazione si attiva, chiama l\'API di Upload-Post e aggiorna il record. Questo crea un workflow di approvazione dei contenuti: il tuo team prepara le bozze in Airtable, un responsabile approva, e il post va online automaticamente. Nessun passaggio manuale, niente strumenti di programmazione, niente copia-incolla.
Schedule posts from Airtable
Se vuoi pubblicare a una data e ora specifica invece che immediatamente, leggi il campo Data Programmata e passalo come scheduled_date all\'API. Ecco come trasformare Airtable in uno strumento completo di programmazione social media.
// 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');
Il parametro add_to_queue=true indica a Upload-Post di scegliere il prossimo slot temporale disponibile, cosi i tuoi post sono distribuiti nel tempo invece di andare tutti online contemporaneamente. Per saperne di piu sulle opzioni di programmazione consulta la nostra guida alla programmazione. Puoi anche consultare le nostre guide dedicate per programmare post su TikTok e automatizzare i post su Instagram.
Usare n8n come ponte per workflow complessi
Per i team che necessitano di piu logica tra Airtable e la pubblicazione (approvazioni via Slack, didascalie generate dall\'AI, rimozione watermark), n8n e lo strumento giusto. n8n puo monitorare la tua base Airtable per record nuovi o aggiornati, elaborarli attraverso un numero qualsiasi di passaggi, e poi chiamare l\'API di Upload-Post.
Abbiamo un template pronto all\'uso che fa esattamente questo:
- Da Google Drive a Instagram, TikTok e YouTube con descrizioni AI e tracciamento Airtable
- Programma e pubblica automaticamente video da Google Sheets su Instagram, LinkedIn e TikTok.
Esplora la libreria completa di template n8n per altri workflow. Se preferisci i builder visuali, le nostre integrazioni con Make.com e Zapier funzionano anche con Airtable come trigger.
Publish a whole editorial calendar in batch
Invece di pubblicare un record alla volta, puoi scorrere ogni record con Stato "Pronto" e pubblicarli tutti in una singola esecuzione dello script. Questo e utile per i caricamenti settimanali in batch o quando hai un arretrato da smaltire.
// Batch publish all Ready records
let table = base.getTable('Calendario dei contenuti');
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('Piattaforme');
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: { 'Autorizzazione': 'Apikey your-api-key-here' },
body: formData
});
let result = await response.json();
await table.updateRecordAsync(record, {
'Status': { name: 'Pubblicato' },
'Job ID': result.job_id
});
output.text('Published: ' + record.getCellValue('Caption'));
} catch (err) {
await table.updateRecordAsync(record, {
'Status': { name: 'Fallito' }
});
output.text('Failed: ' + record.getCellValue('Caption'));
}
} Per grandi volumi, consulta la nostra guida sul caricamento in blocco di video sui social media. Se preferisci Python per le operazioni batch, la guida all\'automazione con Python copre la creazione di uno script che legge dall\'API REST di Airtable.
Tracciare lo stato dell\'upload in Airtable
Dopo aver inviato un upload, il video potrebbe impiegare alcuni secondi per essere elaborato e distribuito su ogni piattaforma. Puoi interrogare l\'endpoint di stato e scrivere il risultato nel tuo record Airtable:
// Check upload status and update Airtable
let table = base.getTable('Calendario dei contenuti');
let query = await table.selectRecordsAsync();
let pendingRecords = query.records.filter(
r => r.getCellValue('Status')?.name === 'Pubblicato'
&& 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: { 'Autorizzazione': 'Apikey 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: 'Fallito' }
});
}
} Esegui questo come pulsante separato nell\'estensione Scripting o impostalo come automazione a tempo (es. ogni 10 minuti) per mantenere la tua base Airtable sincronizzata con lo stato effettivo dei post. Questo ti da un audit trail completo senza dover controllare la dashboard di ogni piattaforma individualmente.
Consigli specifici per piattaforma
Quando colleghi il tuo calendario editoriale Airtable ai social media, ogni piattaforma ha le sue particolarita:
- TikTok: Includi gli hashtag nella didascalia. L\'API gestisce automaticamente il flusso di upload di TikTok, incluse le impostazioni di divulgazione.
- Instagram: Funziona per Reels (video) e caroselli di foto. Usa
/api/upload_photosper i post di immagini. - YouTube: Aggiungi
youtube_descriptionper una descrizione piu lunga separata dalla didascalia principale. - LinkedIn: Il tono professionale e importante. Considera una colonna separata "Didascalia LinkedIn" in Airtable.
Confronta questo approccio con strumenti tradizionali come Hootsuite: hai il pieno controllo, zero limiti per piattaforma, e tutto resta in Airtable dove il tuo team lavora gia.
Domande frequenti
Funziona con il piano gratuito di Airtable?
Si. L\'estensione Scripting e le Automazioni sono entrambe disponibili nel piano gratuito di Airtable. Il piano gratuito ti limita a 100 esecuzioni di automazione al mese, che sono sufficienti per piccoli team. I piani a pagamento di Airtable aumentano significativamente questo limite.
Posso allegare video direttamente in Airtable invece di usare URL?
L\'estensione Scripting puo leggere i campi allegato, ma e piu semplice usare una colonna URL che punta a un file ospitato nel cloud (Google Drive, Dropbox, S3). L\'API di Upload-Post accetta sia upload diretti di file che URL, ma gli URL sono piu facili da gestire negli script Airtable.
Quanti record posso elaborare in un batch?
Non c\'e un limite rigido dal lato Upload-Post. Tuttavia, le estensioni Scripting di Airtable hanno un timeout di 30 secondi per i piani gratuiti. Per batch di grandi dimensioni (50+ record), considera l\'uso di n8n o dell'approccio Python per elaborare i record al di fuori dei vincoli di timeout di Airtable.
Posso usare Google Sheets invece di Airtable?
Assolutamente. Se preferisci i fogli di calcolo, segui la nostra guida alla pubblicazione da Google Sheets. Utilizza la stessa API di Upload-Post con n8n o Make.com come ponte. I concetti sono identici; cambia solo la fonte dei dati.
E per le foto e i caroselli?
Per i post di immagini (singole foto o caroselli), usa l\'endpoint /api/upload_photos invece di /api/upload. Aggiungi una colonna separata in Airtable per gli URL delle immagini. La logica dello script e la stessa; basta cambiare l\'endpoint e usare photos[] invece di video_url.