Integração Airtable - Lumina Flow Builder
Visão Geral
A integração Airtable permite que seus fluxos do WhatsApp se conectem diretamente com bases de dados do Airtable, possibilitando criar, buscar, atualizar e deletar registros de forma automatizada.
Operações Disponíveis
Operações Básicas (CRUD)
| Operação | Descrição | Arquivo |
|---|---|---|
| CREATE | Criar novo registro | create.md |
| GET | Buscar registro por ID | get.md |
| UPDATE | Atualizar registro existente | update.md |
| DELETE | Deletar registro permanentemente | delete.md |
Operações de Consulta
| Operação | Descrição | Arquivo |
|---|---|---|
| LIST | Listar múltiplos registros | list.md |
| SEARCH | Buscar com filtros complexos | search.md |
Operações em Lote
| Operação | Descrição | Arquivo |
|---|---|---|
| BATCH CREATE | Criar múltiplos registros (máx 10) | batchCreate.md |
| BATCH UPDATE | Atualizar múltiplos registros (máx 10) | batchUpdate.md |
Configuração Inicial
1. Obter API Key do Airtable
- Acesse: https://airtable.com/account
- Clique em "Generate API key"
- Copie o token que começa com
pat...
2. Obter Base ID
- Abra sua base no Airtable
- Veja a URL:
https://airtable.com/appXXXXXXXXXXXXXX/... - O Base ID é o código que começa com
app
3. Nome da Tabela
Use o nome exato da tabela como aparece no Airtable (case-sensitive).
Casos de Uso Comuns
1. Sistema de Cadastro de Leads
START → INPUT (nome) → EMAIL (email) → PHONE (telefone)
→ AIRTABLE CREATE (criar lead) → MESSAGE (confirmação) → END
Usa: CREATE
2. Consulta de Status de Pedido
START → INPUT (ID do pedido) → AIRTABLE GET (buscar pedido)
→ MESSAGE (exibir status) → END
Usa: GET
3. Atualização de Status Após Pagamento
START → WEBHOOK (pagamento aprovado) → AIRTABLE UPDATE (atualizar status)
→ MESSAGE (notificar cliente) → END
Usa: UPDATE
4. Verificar Duplicata Antes de Cadastrar
START → EMAIL (coletar email) → AIRTABLE SEARCH (buscar por email)
→ CONDITION (existe?)
→ TRUE: MESSAGE (já cadastrado)
→ FALSE: AIRTABLE CREATE (criar novo) → MESSAGE (sucesso)
→ END
5. Processamento em Lote
START → AIRTABLE LIST (buscar leads novos) → LOOP (para cada lead)
→ AIRTABLE UPDATE (marcar como processado) → END
6. Cancelamento de Pedido (LGPD)
START → INPUT (ID pedido) → AIRTABLE GET (buscar pedido)
→ MESSAGE (confirmar?) → INPUT (confirmação)
→ CONDITION (confirmou?)
→ TRUE: AIRTABLE DELETE (deletar)
→ FALSE: MESSAGE (cancelado)
→ END
7. Importação em Massa
START → VARIABLE (array de leads) → AIRTABLE BATCH CREATE (criar todos)
→ MESSAGE (confirmação) → END
Usa: BATCH CREATE
Estrutura de um Node Airtable
Exemplo Completo
{
"id": "airtable_1",
"type": "airtable",
"position": { "x": 300, "y": 100 },
"data": {
"label": "Criar Lead",
"operation": "create",
"config": {
"apiKey": "patABC123456789xyz",
"baseId": "appXYZ123456",
"tableName": "Leads"
},
"fields": {
"Nome": "{{nomeUsuario}}",
"Email": "{{emailUsuario}}",
"Data": "{{hoje}}",
"Origem": "WhatsApp"
},
"responseVariable": "leadCriado"
}
}
Campos Comuns
| Campo | Descrição | Obrigatório |
|---|---|---|
operation |
Tipo de operação (create, get, update, etc) | Sim |
config.apiKey |
Token de autenticação do Airtable | Sim |
config.baseId |
ID da base (app...) | Sim |
config.tableName |
Nome da tabela | Sim |
responseVariable |
Nome da variável para armazenar resultado | Não (padrão: "airtableResult") |
Campos Específicos por Operação
CREATE / UPDATE:
- fields: Objeto com campos a criar/atualizar
UPDATE / DELETE / GET:
- recordId: ID do registro (rec...)
SEARCH:
- filterFormula: Fórmula de filtro Airtable
- maxRecords: Limite de resultados (padrão: 100)
LIST:
- maxRecords: Limite de resultados (padrão: 100)
- view: Nome da view (opcional)
BATCH CREATE / BATCH UPDATE:
- records: Array de registros (máx 10)
Acessando Resultados
Após CREATE
{{variavel.id}} // ID do registro criado
{{variavel.fields.Nome}} // Campo específico
{{variavel.createdTime}} // Data de criação
Após GET / UPDATE
{{variavel.id}} // ID do registro
{{variavel.fields.Campo}} // Qualquer campo
Após LIST / SEARCH
{{variavel.records.length}} // Quantidade de registros
{{variavel.records[0].id}} // ID do primeiro registro
{{variavel.records[0].fields.Nome}} // Campo do primeiro registro
Após DELETE
{{variavel.success}} // true se deletado
{{variavel.recordId}} // ID do registro deletado
Após BATCH CREATE / BATCH UPDATE
{{variavel.records.length}} // Quantidade atualizada/criada
{{variavel.records[0].id}} // ID do primeiro registro
{{variavel.records[0].fields.Campo}} // Campo específico
Variáveis Úteis do Sistema
| Variável | Descrição | Exemplo |
|---|---|---|
{{hoje}} |
Data atual (YYYY-MM-DD) | "2025-01-15" |
{{agora}} |
Data e hora atual (ISO) | "2025-01-15T14:30:00Z" |
{{nomeUsuario}} |
Nome do usuário WhatsApp | "José Roberto" |
{{telefoneUsuario}} |
Telefone do usuário | "+5511999999999" |
Fórmulas de Filtro (SEARCH)
Sintaxe Básica
// Igualdade
{Campo} = 'valor'
// Múltiplas condições (AND)
AND({Campo1} = 'A', {Campo2} = 'B')
// Ou (OR)
OR({Status} = 'Novo', {Status} = 'Pendente')
// Busca parcial
FIND('texto', {Campo})
// Comparação numérica
{Valor} > 100
// Data
IS_BEFORE({DataVencimento}, TODAY())
Exemplos Práticos
// Buscar por email
{Email} = 'jose@exemplo.com'
// Buscar leads ativos
AND({Status} = 'Ativo', {Origem} = 'WhatsApp')
// Buscar pedidos pagos
AND({Status} = 'Pago', {Valor} > 500)
// Buscar nome contendo "Silva"
FIND('Silva', {Nome})
// Buscar tickets abertos e urgentes
AND({Status} = 'Aberto', {Prioridade} = 'Alta')
Boas Práticas
✅ FAZER
-
Sempre validar dados antes de enviar
INPUT → EMAIL → AIRTABLE CREATE -
Verificar duplicatas antes de criar
AIRTABLE SEARCH (verificar) → CONDITION → AIRTABLE CREATE -
Usar nomes de campos exatos (case-sensitive)
"fields": { "Nome": "João", // ✅ Correto "nome": "João" // ❌ Errado se o campo é "Nome" } -
Armazenar IDs para operações futuras
"responseVariable": "leadCriado" // Depois: "recordId": "{{leadCriado.id}}" -
Tratar listas vazias
SEARCH → CONDITION (length > 0) → Processar
❌ NÃO FAZER
-
Não expor API Keys em mensagens
// ❌ NUNCA fazer isso "message": "Erro: {{erro}} - API Key: {{apiKey}}" -
Não deletar sem confirmação
// ❌ Perigoso INPUT (ID) → DELETE // ✅ Correto INPUT (ID) → MESSAGE (confirmar?) → INPUT → CONDITION → DELETE -
Não assumir que registro existe
// ❌ Pode falhar GET → UPDATE // ✅ Correto GET → CONDITION (existe?) → UPDATE -
Não criar duplicatas
// ❌ Sem verificação INPUT → CREATE // ✅ Com verificação INPUT → SEARCH → CONDITION → CREATE (se não existe) -
Não exceder limites da API
// ❌ Mais de 10 registros BATCH CREATE com 15 registros // ✅ Usar LOOP LOOP → BATCH CREATE (grupos de 10)
Limites da API Airtable
| Limite | Valor |
|---|---|
| Registros por BATCH CREATE | 10 |
| Registros por BATCH UPDATE | 10 |
| Requisições por segundo | 5 |
| Registros por LIST/SEARCH (padrão) | 100 |
| Registros por LIST/SEARCH (máximo) | 100 por página |
Tratamento de Erros
Erros Comuns
- 401 Unauthorized
- API Key inválida ou expirada
-
Solução: Verificar token no Airtable
-
404 Not Found
- Registro não existe
- Base ID ou Table Name incorreto
-
Solução: Validar IDs e nomes
-
422 Unprocessable Entity
- Fórmula de filtro inválida
- Campos não existem na tabela
-
Solução: Verificar sintaxe e nomes de campos
-
429 Too Many Requests
- Excedeu limite de requisições
- Solução: Adicionar DELAY entre chamadas
Padrão de Tratamento
AIRTABLE NODE → CONDITION (sucesso?)
→ TRUE: Continuar fluxo
→ FALSE: MESSAGE (erro) → END
Exemplos de Fluxos Completos
1. CRM Simples
Objetivo: Gerenciar leads do WhatsApp no Airtable
START
→ MESSAGE (menu: 1-Cadastrar, 2-Consultar)
→ INPUT (escolha)
→ SWITCH
CASE 1: INPUT (nome) → EMAIL → SEARCH (verificar)
→ CONDITION → CREATE ou MESSAGE (existe)
CASE 2: EMAIL → SEARCH → MESSAGE (dados do lead)
→ END
Operações usadas: CREATE, SEARCH
2. Sistema de Pedidos
Objetivo: Gerenciar ciclo completo de pedidos
START
→ LIST (produtos) → MESSAGE (menu)
→ INPUT (escolha produto) → NUMBER (quantidade)
→ CREATE (pedido) → MESSAGE (aguardando pagamento)
→ [webhook pagamento] → UPDATE (status: pago)
→ MESSAGE (confirmação envio) → END
Operações usadas: LIST, CREATE, UPDATE
3. Suporte com Tickets
Objetivo: Sistema de tickets de atendimento
START
→ MESSAGE (descrever problema)
→ INPUT (descrição)
→ CREATE (ticket) → MESSAGE (protocolo: {{ticket.id}})
[Depois, em outro fluxo]
→ INPUT (número protocolo)
→ GET (ticket) → MESSAGE (status atual)
→ [se resolvido] → UPDATE (feedback coletado)
→ END
Operações usadas: CREATE, GET, UPDATE
Recursos Adicionais
Documentação de Cada Operação
- CREATE - Criar registro
- GET - Buscar por ID
- UPDATE - Atualizar registro
- DELETE - Deletar registro
- LIST - Listar registros
- SEARCH - Buscar com filtros
- BATCH CREATE - Criar múltiplos
- BATCH UPDATE - Atualizar múltiplos
Links Úteis
Suporte
Para dúvidas ou problemas:
- Consulte a documentação específica da operação
- Verifique os exemplos de fluxos completos
- Teste com dados de exemplo antes de usar em produção
- Valide API Key, Base ID e Table Name
Última atualização: 2025-01-15 Total de operações documentadas: 8 Status: ✅ Documentação Completa