{
  "name": "Generate n8n forms from Airtable and BaseRow tables",
  "nodes": [
    {
      "id": "266ebce9-540d-4fd8-95c2-2799f0eff8d9",
      "name": "Get Base Schema",
      "type": "n8n-nodes-base.airtable",
      "position": [
        420,
        160
      ]
    },
    {
      "id": "1c33d0db-6eac-4638-8b5e-867ec52abd11",
      "name": "On form submission",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        80,
        160
      ]
    },
    {
      "id": "fef7c4f2-0153-4321-a0a4-700b84f27a0b",
      "name": "Filter Unsupported FieldTypes",
      "type": "n8n-nodes-base.filter",
      "position": [
        1220,
        160
      ]
    },
    {
      "id": "b62f82bd-781b-4b41-83a1-57423e639c5e",
      "name": "Combine Fields",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        1400,
        160
      ]
    },
    {
      "id": "b38ef15c-0098-47d9-964e-50466f4cd7fa",
      "name": "Render Form",
      "type": "n8n-nodes-base.form",
      "position": [
        1800,
        160
      ]
    },
    {
      "id": "00bb7ad8-0457-4c38-a430-d9a1cd41d5fe",
      "name": "Files To List",
      "type": "n8n-nodes-base.code",
      "position": [
        3160,
        160
      ]
    },
    {
      "id": "5f570811-ace9-489b-8889-d9686fe398f7",
      "name": "Fields to List",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        780,
        160
      ]
    },
    {
      "id": "e3d222de-9673-4529-8a7c-8a16071b3ac9",
      "name": "Covert to n8n Form Fields",
      "type": "n8n-nodes-base.code",
      "position": [
        1040,
        160
      ]
    },
    {
      "id": "f88924ed-288a-4790-a092-67bf74866217",
      "name": "Filter Table",
      "type": "n8n-nodes-base.filter",
      "position": [
        600,
        160
      ]
    },
    {
      "id": "262eca82-3488-4a2d-9fc2-fe137253f72c",
      "name": "Baserow List Fields",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        420,
        460
      ]
    },
    {
      "id": "933b8ee7-ec8f-4cca-af29-fb7eab8f581a",
      "name": "Covert to n8n Form Fields1",
      "type": "n8n-nodes-base.code",
      "position": [
        1040,
        460
      ]
    },
    {
      "id": "74dc5acf-0dc9-4898-bff4-3fe27f04fbc8",
      "name": "Combine Fields1",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        1400,
        460
      ]
    },
    {
      "id": "73eccae5-377e-4a8e-91ed-2f24f47eca71",
      "name": "Filter Unsupported FieldTypes1",
      "type": "n8n-nodes-base.filter",
      "position": [
        1220,
        460
      ]
    },
    {
      "id": "702354ad-a138-46b7-93c3-7bb431164c12",
      "name": "Render Form1",
      "type": "n8n-nodes-base.form",
      "position": [
        1800,
        460
      ]
    },
    {
      "id": "158eee94-5ca9-432f-8020-3195eec243ee",
      "name": "Baserow Create Row",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2460,
        460
      ]
    },
    {
      "id": "405030ad-af35-48ce-a1b5-61a7c8dfeb05",
      "name": "On form submission1",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        80,
        460
      ]
    },
    {
      "id": "940e2015-cdfe-4fb9-841b-a25ef5903097",
      "name": "Files To List1",
      "type": "n8n-nodes-base.code",
      "position": [
        2800,
        460
      ]
    },
    {
      "id": "dd18a5ff-230a-4b94-ab6f-a258fbf034e0",
      "name": "Baserow Upload File",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2980,
        460
      ]
    },
    {
      "id": "5679a086-d80d-4d55-89e4-1bea1626f561",
      "name": "Baserow Update Row",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3340,
        460
      ]
    },
    {
      "id": "3a3a2074-5d7d-4f42-bc52-8255f86483c5",
      "name": "Group By FieldName",
      "type": "n8n-nodes-base.code",
      "position": [
        3160,
        460
      ]
    },
    {
      "id": "79480b76-6bc9-4786-9c67-3d0a2c36b8bd",
      "name": "Update Airtable Row",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3340,
        160
      ]
    },
    {
      "id": "94d20c33-d589-43db-aef2-afe3d4a3efcf",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -540,
        -200
      ],
      "parameters": {
        "width": 446.4999999999999,
        "height": 834.0643999999993,
        "content": "## Try It Out!\n### This template is an example of how you could replace Airtable or Baserow forms with n8n forms. Though debateable whether this is actually useful, it is a cool demo of how someone wo"
      }
    },
    {
      "id": "bf89ec64-0524-428a-b087-a563311b02d7",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        338,
        -20
      ],
      "parameters": {
        "width": 600.75,
        "height": 675.625,
        "content": "## 1. Get Table Schema\n\n**Airtable** schema returns all tables with extra metadata whereas **Baserow** has a dedicated list fields endpoint for each table. This means for **Airtable**, we need to filt"
      }
    },
    {
      "id": "c2b77c23-b2d4-46b1-8d59-8f8d950cfc70",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        967.5,
        -20
      ],
      "parameters": {
        "width": 616.40625,
        "height": 677.1875,
        "content": "## 2. Convert To N8N Form Schema\n\nBoth products contain similar schema with only different field labels. This makes it quite simple to convert either to n8n's forms. JSON schema."
      }
    },
    {
      "id": "1cb13171-5682-41e4-8976-1f3f6f5d2cf5",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1600,
        -20
      ],
      "parameters": {
        "width": 483.015625,
        "height": 677.1875,
        "content": "## 3. Render as N8N Form\n\nDid you know you can build forms dynamically from JSON? Well, you can! This flexibility makes working with n8n forms strategic because you can conditionally exclude fields wh"
      }
    },
    {
      "id": "e2603a0c-0c0d-4702-998f-f1e3c2e9955b",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2100,
        -20
      ],
      "parameters": {
        "width": 602.265625,
        "height": 677.1875,
        "content": "## 4. Create New Row\n\nBoth **Airtable** and **Baserow** accept field labels as body param keys when using their API however, files and attachments are handled separately. Here we omit any file fields "
      }
    },
    {
      "id": "42a4b3e1-2b18-4f19-a803-b6ff9ea8133b",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2720,
        -20
      ],
      "parameters": {
        "width": 824.3125,
        "height": 677.1875,
        "content": "## 5. Upload Files & Attachments\n\n**Baserow** requires a 2 step process where the file is first uploaded and the returning reference is used to update the row. **Airtable** API allows upload and updat"
      }
    },
    {
      "id": "356e3852-2268-41d0-ad83-e44d62cb6675",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        20,
        20
      ],
      "parameters": {
        "width": 264.0997209302325,
        "height": 99.50571162790695,
        "content": "### AirTable Example\n### 🚨 Change your Base ID and Table ID here!"
      }
    },
    {
      "id": "1e93967b-792d-4608-b7d3-eec5f84c2c8b",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        20,
        620
      ],
      "parameters": {
        "width": 259.5844837209301,
        "height": 80,
        "content": "### BaseRow Example\n### 🚨 Change your TableId here!"
      }
    },
    {
      "id": "84cf486e-15a5-4bb2-b62f-885056254944",
      "name": "Prep Data for Insert1",
      "type": "n8n-nodes-base.code",
      "position": [
        2240,
        460
      ]
    },
    {
      "id": "68fd3129-7bfd-4d73-80b0-f5af51161dc2",
      "name": "Prep Data for Insert",
      "type": "n8n-nodes-base.code",
      "position": [
        2240,
        160
      ]
    },
    {
      "id": "1a9fe02f-9100-453e-97d5-789d6c0f74dc",
      "name": "Airtable Create Record",
      "type": "n8n-nodes-base.airtable",
      "position": [
        2460,
        160
      ]
    },
    {
      "id": "9e92dcf9-43ca-49df-8e53-8cfaea94ed96",
      "name": "Show Completion!",
      "type": "n8n-nodes-base.form",
      "position": [
        3680,
        460
      ]
    },
    {
      "id": "5dc56f6b-e218-45de-8875-542d9ff0cec3",
      "name": "Show Completion!1",
      "type": "n8n-nodes-base.form",
      "position": [
        3680,
        160
      ]
    }
  ],
  "connections": {
    "Render Form": {
      "main": [
        [
          {
            "node": "Prep Data for Insert",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter Table": {
      "main": [
        [
          {
            "node": "Fields to List",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Render Form1": {
      "main": [
        [
          {
            "node": "Prep Data for Insert1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Files To List": {
      "main": [
        [
          {
            "node": "Update Airtable Row",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Combine Fields": {
      "main": [
        [
          {
            "node": "Render Form",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fields to List": {
      "main": [
        [
          {
            "node": "Covert to n8n Form Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Files To List1": {
      "main": [
        [
          {
            "node": "Baserow Upload File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Combine Fields1": {
      "main": [
        [
          {
            "node": "Render Form1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Base Schema": {
      "main": [
        [
          {
            "node": "Filter Table",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Baserow Create Row": {
      "main": [
        [
          {
            "node": "Files To List1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Baserow Update Row": {
      "main": [
        [
          {
            "node": "Show Completion!",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Group By FieldName": {
      "main": [
        [
          {
            "node": "Baserow Update Row",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On form submission": {
      "main": [
        [
          {
            "node": "Get Base Schema",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Baserow List Fields": {
      "main": [
        [
          {
            "node": "Covert to n8n Form Fields1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Baserow Upload File": {
      "main": [
        [
          {
            "node": "Group By FieldName",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On form submission1": {
      "main": [
        [
          {
            "node": "Baserow List Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Airtable Row": {
      "main": [
        [
          {
            "node": "Show Completion!1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prep Data for Insert": {
      "main": [
        [
          {
            "node": "Airtable Create Record",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prep Data for Insert1": {
      "main": [
        [
          {
            "node": "Baserow Create Row",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Airtable Create Record": {
      "main": [
        [
          {
            "node": "Files To List",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Covert to n8n Form Fields": {
      "main": [
        [
          {
            "node": "Filter Unsupported FieldTypes",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Covert to n8n Form Fields1": {
      "main": [
        [
          {
            "node": "Filter Unsupported FieldTypes1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter Unsupported FieldTypes": {
      "main": [
        [
          {
            "node": "Combine Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter Unsupported FieldTypes1": {
      "main": [
        [
          {
            "node": "Combine Fields1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}