See llms.txt for all machine-readable content.

Back to Templates

Fetch hierarchical data records from Airtable with multi-level relationships

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": ..., }, ... ] }, ... ] }