n8nflow.net logo

Fetch Hierarchical Data Records from Airtable with Multi-level Relationships

by digi-stud.ioUpdated: Last update 3 months agoSource: n8n.io
Loading workflow viewer...

Getting Started

Airtable Hierarchical Record Fetcher

Description

This n8n workflow retrieves an Airtable record along with its related child records in a hierarchical structure. It can fetch up to 3 levels of linked records and assembles them into a comprehensive JSON object, making it ideal for complex data relationships and nested record structures.

Features

  • Multi-level Record Fetching : Retrieves parent record, linked child records (level 2), and optionally grandchild records (level 3)
  • API Call Optimization : Uses Airtable's filterByFormula to minimize API calls by fetching multiple related records in single requests
  • Selective Level 3 Fetching : Only fetches level 3 records for specified linked fields to optimize performance
  • Rich Text Processing : Converts Airtable's pseudo-markdown rich text fields to HTML format
  • Hierarchical JSON Output : Organizes all data in a structured, nested JSON format
  • Flexible Configuration : Customizable depth and field selection per execution

Input Parameters

The workflow accepts a JSON array with the following structure:

[
  {
    "base_id": "appN8nPMGoLNuzUbY",
    "table_id": "tblLVOwpYIe0fGQ52", 
    "record_id": "reczMh1Pp5l94HdYf",
    "level_3": [
      "fldRaFra1rLta66cD",
      "fld3FxCaYk8AVaEHt"
    ],
    "to_html": true
  }
]

Parameter Details

ParameterTypeRequiredDescription
base_idstringYesAirtable base identifier
table_idstringYesAirtable table identifier for the main record
record_idstringYesAirtable record identifier to fetch
level_3arrayNoArray of field IDs from level 2 records for which to fetch level 3 children
to_htmlbooleanNoConvert rich text fields from pseudo-markdown to HTML (default: false). This requires marked npm package.

Output Structure

The workflow returns a hierarchical JSON object with the following structure:

{
   "id": "recXXXXXXX",
   "field_1": ...,
   "field_2": ...,
   "level2_child": [
      {
         "id": "recXXXXXXX",
         "field_a": ...,
         "field_b": ...,
         "level3_child": [
            {
               "id": "recXXXXXXX",
               "field_y": ...,
               "field_z": ...,
            },
            ...
         ]
      },
      ...
   ]
}