Fetch Hierarchical Data Records from Airtable with Multi-level Relationships

Go to Workflow
4 views
Built by digi-stud.io digi-stud.io
Created on June 07, 2026

Description

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

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| base_id | string | Yes | Airtable base identifier |
| table_id | string | Yes | Airtable table identifier for the main record |
| record_id | string | Yes | Airtable record identifier to fetch |
| level_3 | array | No | Array of field IDs from level 2 records for which to fetch level 3 children |
| to_html | boolean | No | Convert 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": ...,
},
...
]
},
...
]
}
`

Nodes Used (3)

Airtable
n8n-nodes-base.airtable
Code
n8n-nodes-base.code
HTTP Request
n8n-nodes-base.httpRequest