Guia

Como Conectar Airtable a Redes Sociais

O Airtable e onde a maioria das equipes planeja seu conteudo social. Mas publicar ainda significa copiar legendas para agendadores uma por uma. Este guia mostra como publicar diretamente da sua base do Airtable para TikTok, Instagram, YouTube e mais 7 plataformas, usando apenas um script e a API do Upload-Post.

Por que conectar o Airtable a redes sociais

O Airtable e provavelmente a melhor ferramenta de calendario de conteudo disponivel. Ele tem visualizacoes, filtros, registros vinculados, codificacao por cores e a medida certa de estrutura. A maioria das equipes de marketing ja planeja seu conteudo la. O problema e a ultima milha: quando um post e aprovado no Airtable, alguem ainda precisa abrir um agendador, colar a legenda, fazer upload do video, escolher as plataformas e clicar em publicar. Para cada post.

A API de redes sociais do Upload-Post preenche essa lacuna. Ela aceita uma URL de video, uma legenda e uma lista de plataformas, e depois publica em todas em uma unica requisicao. Combinada com a extensao Scripting ou Automations do Airtable, voce pode ir de "Aprovado" na sua base para "No ar em 10 plataformas" sem sair do navegador.

Configure seu base in Airtable

Comece com uma tabela chamada "Calendario de Conteudo" (ou o que se encaixar no seu fluxo de trabalho). Aqui esta a estrutura de colunas recomendada:

Coluna Tipo de Campo Finalidade
URL do VídeoURLLink público para o arquivo de vídeo (Google Drive, Dropbox, S3, etc.)
LegendaTexto longoLegenda / título do post para todas as plataformas
PlataformasSeleção múltiplatiktok, instagram, youtube, linkedin, facebook, x, threads, pinterest
Data AgendadaData (com hora)Quando a postagem deve ser publicada (deixe em branco para imediata)?
StatusSeleção únicaDraft / Ready / Approved / Published / Failed
ID do TrabalhoTexto de linha únicaRetornado pela API após upload (para rastreamento)

O campo Status e o principal impulsionador. Sua equipe muda para "Aprovado" quando um post esta pronto, e a automacao pega a partir dai. Use o calendario de datas comemorativas para redes sociais para planejar conteudo em torno de datas importantes.

Publique a partir do Airtable usando a extensão Scripting

O Airtable vem com uma extensao Scripting que executa JavaScript diretamente dentro da sua base. Nenhuma ferramenta externa necessaria. Abra sua base, clique em Extensoes, adicione "Scripting" e cole o seguinte codigo:

// Airtable Scripting Extension
let table = base.getTable('Calendário de Conteúdo');
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: { 'Autorização': 'Apikey your-api-key-here' },
    body: formData
  });

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

Este script encontra o primeiro registro com Status "Ready", envia a URL do video e a legenda para a API de postagem em redes sociais, e depois atualiza o registro com o job ID retornado. Voce pode executa-lo manualmente quando quiser, ou conecta-lo a uma automacao (proxima secao).

Para publicacao multiplataforma, leia o campo Plataformas dinamicamente em vez de codificar. Veja nosso guia sobre como publicar em multiplas plataformas de uma vez para todos os valores de plataforma disponiveis.

Acione com Automations do Airtable

Scripts manuais sao uteis, mas automacao real de redes sociais com Airtable significa publicacao automatica. Automations do Airtable permitem acionar um script sempre que um registro atende certas condicoes. Veja como configurar:

  1. Vá em Automations na sua base do Airtable
  2. Crie uma nova automação
  3. Gatilho: "Quando registro corresponde a condições" com Status = "Aprovado"
  4. Ação: "Executar script"
  5. Sem script, use input.config() para receber o ID do registro do trigger
// Airtable Automation Script
let inputConfig = input.config();
let table = base.getTable('Calendário de Conteúdo');
let record = await table.selectRecordAsync(inputConfig.recordId);

let platforms = record.getCellValue('Plataformas');
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: { 'Autorização': 'Apikey your-api-key-here' },
  body: formData
});

let result = await response.json();
await table.updateRecordAsync(record.id, {
  'Status': { name: 'Publicado' },
  'ID do Trabalho': result.job_id
});

Agora, sempre que alguem altera o status de um registro para "Aprovado", a automacao dispara, chama a API do Upload-Post e atualiza o registro. Isso cria um fluxo de aprovacao de conteudo: sua equipe faz o rascunho no Airtable, um gestor aprova, e o post vai ao ar automaticamente. Sem passos manuais, sem agendadores, sem copia e cola.

Agende posts a partir do Airtable

Se voce quer publicar em uma data e hora especificas em vez de imediatamente, leia o campo Data Agendada e passe como scheduled_date para a API. E assim que voce transforma o Airtable em uma ferramenta completa de agendamento de redes sociais.

// 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');

O parametro add_to_queue=true diz ao Upload-Post para escolher o proximo horario disponivel, para que seus posts sejam espacados em vez de todos irem ao ar de uma vez. Leia mais sobre opcoes de agendamento no nosso guia de agendamento. Voce tambem pode conferir nossos guias dedicados para agendar posts no TikTok e automatizar posts no Instagram.

Use o n8n como ponte para workflows complexos

Para equipes que precisam de mais logica entre o Airtable e a publicacao (aprovacoes via Slack, legendas geradas por IA, remocao de marca d\'agua), o n8n e a ferramenta certa. O n8n pode monitorar sua base Airtable para registros novos ou atualizados, processa-los em qualquer numero de etapas, e depois chamar a API do Upload-Post.

Temos um template pronto que faz exatamente isso:

Navegue pela biblioteca completa de templates do n8n para mais workflows. Se voce prefere construtores visuais, nossas integracoes com Make.com e Zapier tambem funcionam com Airtable como trigger.

Batch publish an entire content calendar

Em vez de publicar um registro por vez, voce pode percorrer todos os registros com Status "Pronto" e publicar todos em uma unica execucao de script. Isso e util para uploads semanais em lote ou quando voce tem um acumulo para liberar.

// Batch publish all Ready records
let table = base.getTable('Calendário de Conteúdo');
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('Plataformas');
  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: { 'Autorização': 'Apikey your-api-key-here' },
      body: formData
    });
    let result = await response.json();
    await table.updateRecordAsync(record, {
      'Status': { name: 'Publicado' },
      'ID do Trabalho': result.job_id
    });
    output.text('Published: ' + record.getCellValue('Caption'));
  } catch (err) {
    await table.updateRecordAsync(record, {
      'Status': { name: 'Falhou' }
    });
    output.text('Failed: ' + record.getCellValue('Caption'));
  }
}

Para grandes volumes, veja nosso guia sobre upload em massa de videos para redes sociais. Se voce prefere Python para operacoes em lote, o guia de automacao com Python cobre a construcao de um script que le a API REST do Airtable.

Rastreie o status de upload no Airtable

Apos enviar um upload, o video pode levar alguns segundos para ser processado e distribuido para cada plataforma. Voce pode consultar o endpoint de status e escrever o resultado de volta no seu registro do Airtable:

// Check upload status and update Airtable
let table = base.getTable('Calendário de Conteúdo');
let query = await table.selectRecordsAsync();
let pendingRecords = query.records.filter(
  r => r.getCellValue('Status')?.name === 'Publicado'
    && r.getCellValue('ID do Trabalho')
);

for (let record of pendingRecords) {
  let jobId = record.getCellValue('ID do Trabalho');
  let response = await fetch(
    'https://api.upload-post.com/api/uploadposts/status?job_id=' + jobId,
    { headers: { 'Autorização': '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: 'Falhou' }
    });
  }
}

Execute isso como um botao separado da extensao Scripting ou configure em uma automacao temporizada (por exemplo, a cada 10 minutos) para manter sua base Airtable sincronizada com os status reais dos posts. Isso da a voce um historico completo de auditoria sem verificar o painel de cada plataforma individualmente.

Dicas específicas por plataforma

Ao conectar seu calendario de conteudo do Airtable a redes sociais, cada plataforma tem suas particularidades:

  • TikTok: Inclua hashtags na legenda. A API lida com o fluxo de upload do TikTok automaticamente, incluindo configuracoes de divulgacao.
  • Instagram: Funciona para Reels (video) e carrosseis de fotos. Use /api/upload_photos para posts de imagem.
  • YouTube: Adicione youtube_description para uma descricao mais longa separada da legenda principal.
  • LinkedIn: O tom profissional importa. Considere uma coluna separada "Legenda LinkedIn" no Airtable.

Compare esta abordagem com ferramentas tradicionais como Hootsuite: voce tem controle total, zero limites por plataforma, e tudo permanece no Airtable onde sua equipe ja trabalha.

Perguntas frequentes

Isso funciona com o plano gratuito do Airtable?

Sim. A extensao Scripting e Automations estao disponiveis no plano gratuito do Airtable. O plano gratuito limita a 100 execucoes de automacao por mes, o que e suficiente para equipes pequenas. Os planos pagos do Airtable aumentam esse limite significativamente.

Posso anexar vídeos diretamente no Airtable em vez de usar URLs?

A extensao Scripting pode ler campos de anexo, mas e mais simples usar uma coluna de URL apontando para um arquivo hospedado na nuvem (Google Drive, Dropbox, S3). A API do Upload-Post aceita tanto uploads diretos de arquivo quanto URLs, mas URLs sao mais faceis de trabalhar nos scripts do Airtable.

Quantos registros posso processar em lote?

Nao ha limite rigido do lado do Upload-Post. Porem, as extensoes Scripting do Airtable tem um timeout de 30 segundos nos planos gratuitos. Para lotes grandes (mais de 50 registros), considere usar o n8n ou a abordagem com Python para processar registros fora das restricoes de timeout do Airtable.

Posso usar Google Sheets em vez do Airtable?

Com certeza. Se voce prefere planilhas, siga nosso guia de publicacao com Google Sheets. Ele usa a mesma API do Upload-Post com n8n ou Make.com como ponte. Os conceitos sao identicos; apenas a fonte de dados muda.

E sobre fotos e carrosséis?

Para posts de imagem (fotos unicas ou carrosseis), use o endpoint /api/upload_photos em vez de /api/upload. Adicione uma coluna separada no Airtable para URLs de imagem. A logica do script e a mesma; basta mudar o endpoint e usar photos[] em vez de video_url.

Transforme sua base Airtable em um motor de publicação

Planeje no Airtable. Publique em todos os lugares. Crie uma conta gratuita no Upload-Post e conecte ao seu calendario de conteudo em minutos.

Sem cartão de crédito. 10 uploads gratuitos incluídos.