AIRTABLE BATCH CREATE - Criar Múltiplos Registros no Airtable
O que é este Node?
O AIRTABLE BATCH CREATE é o node responsável por criar múltiplos registros de uma só vez no Airtable de forma eficiente.
Por que este Node existe?
Criar múltiplos registros individualmente é lento e ineficiente. O AIRTABLE BATCH CREATE existe para:
- Performance: Criar vários registros em uma única requisição API
- Importação em Massa: Importar listas de dados de uma vez
- Eficiência: Reduzir número de chamadas à API do Airtable
- Processamento em Lote: Criar múltiplos registros resultantes de um processo
Como funciona internamente?
Quando o AIRTABLE BATCH CREATE é executado, o sistema:
- Coleta Credenciais: Obtém API Key, Base ID e nome da tabela
- Prepara Array: Processa array de registros, substituindo variáveis
- Formata Dados: Converte cada item em formato
{ fields: {...} } - Faz Requisição POST: Envia todos os registros em batch
- Se falha: Lança erro (limite excedido ou dados inválidos)
- Se sucesso: Armazena array com todos os registros criados (com IDs)
- Continua Execução: Passa para próximo node com resultados
Código interno (airtable.executor.ts:72-77):
case 'batchCreate': {
const records = JSON.parse(this.replaceVariables(JSON.stringify(node.data.records), context.variables));
const response = await axios.post(baseUrl, { records: records.map((r: any) => ({ fields: r })) }, { headers });
result = response.data;
break;
}
Quando você DEVE usar este Node?
Use AIRTABLE BATCH CREATE sempre que precisar de criar múltiplos registros:
Casos de uso
- Importação de Lista: "Criar múltiplos leads de uma lista fornecida"
- Processamento em Lote: "Após processar pedidos, criar vários registros de log"
- Carga Inicial: "Popular tabela com dados iniciais"
- Sincronização: "Importar registros de outra fonte em lote"
Quando NÃO usar AIRTABLE BATCH CREATE
- Um único registro: Use
AIRTABLE CREATEao invés - Mais de 10 registros: API do Airtable limita a 10 por requisição
Parâmetros
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| operation | string | Sim | Deve ser "batchCreate" |
| config.apiKey | string | Sim | Token de autenticação do Airtable |
| config.baseId | string | Sim | ID da base do Airtable |
| config.tableName | string | Sim | Nome da tabela |
| records | array | Sim | Array de objetos com campos (máx 10 registros) |
| responseVariable | string | Não | Nome da variável de resposta (padrão: "airtableResult") |
Exemplo 1: Importar Lista de Leads
Objetivo: Criar múltiplos leads de uma vez
JSON para Importar
{
"name": "Importar Leads em Lote",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "variable_1",
"type": "variable",
"position": { "x": 250, "y": 100 },
"data": {
"label": "Definir Lista",
"parameters": {
"name": "listaLeads",
"value": "[{\"Nome\": \"João Silva\", \"Email\": \"joao@exemplo.com\"}, {\"Nome\": \"Maria Santos\", \"Email\": \"maria@exemplo.com\"}, {\"Nome\": \"Pedro Costa\", \"Email\": \"pedro@exemplo.com\"}]"
}
}
},
{
"id": "airtable_1",
"type": "airtable",
"position": { "x": 400, "y": 100 },
"data": {
"label": "Criar Leads em Lote",
"operation": "batchCreate",
"config": {
"apiKey": "patABC123456789xyz",
"baseId": "appXYZ123456",
"tableName": "Leads"
},
"records": "{{listaLeads}}",
"responseVariable": "leadsCriados"
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 550, "y": 100 },
"data": {
"label": "Confirmar",
"parameters": {
"message": "✅ {{leadsCriados.records.length}} leads criados com sucesso!"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 700, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "variable_1" },
{ "source": "variable_1", "target": "airtable_1" },
{ "source": "airtable_1", "target": "message_1" },
{ "source": "message_1", "target": "end_1" }
]
}
Saída esperada:
Sistema: ✅ 3 leads criados com sucesso!
Exemplo 2: Criar Registros de Atividades
Objetivo: Registrar múltiplas atividades após processo
JSON para Importar
{
"name": "Registrar Atividades em Lote",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "airtable_1",
"type": "airtable",
"position": { "x": 250, "y": 100 },
"data": {
"label": "Criar Logs",
"operation": "batchCreate",
"config": {
"apiKey": "patABC123456789xyz",
"baseId": "appXYZ123456",
"tableName": "Atividades"
},
"records": [
{
"Tipo": "Login",
"Usuario": "{{nomeUsuario}}",
"Data": "{{agora}}",
"Status": "Sucesso"
},
{
"Tipo": "Visualizacao",
"Usuario": "{{nomeUsuario}}",
"Data": "{{agora}}",
"Pagina": "Dashboard"
},
{
"Tipo": "Acao",
"Usuario": "{{nomeUsuario}}",
"Data": "{{agora}}",
"Descricao": "Exportou relatório"
}
],
"responseVariable": "atividadesCriadas"
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 400, "y": 100 },
"data": {
"label": "Confirmar",
"parameters": {
"message": "Atividades registradas!"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 550, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "airtable_1" },
{ "source": "airtable_1", "target": "message_1" },
{ "source": "message_1", "target": "end_1" }
]
}
Saída esperada:
Sistema: Atividades registradas!
Resposta do Node
{
"records": [
{
"id": "recABC123",
"createdTime": "2025-01-15T10:00:00.000Z",
"fields": {
"Nome": "João Silva",
"Email": "joao@exemplo.com"
}
},
{
"id": "recDEF456",
"createdTime": "2025-01-15T10:00:00.000Z",
"fields": {
"Nome": "Maria Santos",
"Email": "maria@exemplo.com"
}
}
]
}
Boas Práticas
✅ SIM:
- Limite a 10 registros por batch (limite da API Airtable)
- Use variáveis dinâmicas nos campos dos registros
- Valide dados antes de criar em lote
- Trate erros - um registro inválido falha todo o batch
❌ NÃO:
- Não tente criar mais de 10 registros por vez
- Não use BATCH CREATE para 1 registro (use CREATE normal)
- Não esqueça de validar array de registros antes
Dicas
💡 Dica 1: API do Airtable limita a 10 registros por batch - para mais, use LOOP com BATCH CREATE
💡 Dica 2: Formato do array: [{campo1: valor1}, {campo2: valor2}] - cada objeto vira um registro
💡 Dica 3: Todos os registros são criados ou nenhum - operação é atômica
💡 Dica 4: Use com VARIABLE ou resultado de outro node que retorne array
Próximo Node
→ AIRTABLE CREATE - Criar registro único → AIRTABLE BATCH UPDATE - Atualizar múltiplos registros → LOOP - Processar array antes de criar