AutomationFlowsData & Sheets › Extract HTML to Airtable Records

Extract HTML to Airtable Records

Original n8n title: D18 Airtable

d18-Airtable. Uses httpRequest, airtable, executeWorkflowTrigger. Event-driven trigger; 10 nodes.

Event trigger★★★★☆ complexity10 nodesHTTP RequestAirtableExecute Workflow Trigger
Data & Sheets Trigger: Event Nodes: 10 Complexity: ★★★★☆ Added:

This workflow follows the Airtable → Execute Workflow Trigger recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "createdAt": "2025-09-14T06:57:55.801Z",
  "updatedAt": "2025-09-15T08:58:59.589Z",
  "id": "qpOoI7AaV7jZpgoF",
  "name": "d18-Airtable",
  "active": false,
  "isArchived": false,
  "nodes": [
    {
      "parameters": {},
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [
        192,
        32
      ],
      "id": "6f42cee5-0f0b-4b4b-a036-55af733708c3",
      "name": "When clicking \u2018Execute workflow\u2019"
    },
    {
      "parameters": {
        "operation": "extractHtmlContent",
        "extractionValues": {
          "values": [
            {
              "key": "title",
              "cssSelector": "article > h3 > a",
              "returnValue": "attribute",
              "attribute": "title",
              "returnArray": true
            },
            {
              "key": "url",
              "cssSelector": "article > h3 > a",
              "returnValue": "attribute",
              "attribute": "href",
              "returnArray": true
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.html",
      "typeVersion": 1.2,
      "position": [
        640,
        32
      ],
      "id": "90f55650-a175-4f0d-8d8e-06507211347a",
      "name": "HTML"
    },
    {
      "parameters": {
        "url": "https://books.toscrape.com",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        416,
        32
      ],
      "id": "dc62602b-9dea-484f-a3c3-71577e9d9b2c",
      "name": "HTTP Request"
    },
    {
      "parameters": {
        "mode": "combine",
        "combineBy": "combineByPosition",
        "options": {}
      },
      "type": "n8n-nodes-base.merge",
      "typeVersion": 3.2,
      "position": [
        1088,
        32
      ],
      "id": "b152537b-459f-477e-9966-4d69f8bd00bd",
      "name": "Merge"
    },
    {
      "parameters": {
        "operation": "upsert",
        "base": {
          "__rl": true,
          "value": "app9OzbgVsNaZQ4fI",
          "mode": "list",
          "cachedResultName": "Base",
          "cachedResultUrl": "https://airtable.com/app9OzbgVsNaZQ4fI"
        },
        "table": {
          "__rl": true,
          "value": "tbly1AxVFBHA7dMTG",
          "mode": "list",
          "cachedResultName": "Table",
          "cachedResultUrl": "https://airtable.com/app9OzbgVsNaZQ4fI/tbly1AxVFBHA7dMTG"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "Title": "={{ $json.title }}",
            "URL": "={{ $json.url }}"
          },
          "matchingColumns": [
            "Title"
          ],
          "schema": [
            {
              "id": "id",
              "displayName": "id",
              "required": false,
              "defaultMatch": true,
              "display": true,
              "type": "string",
              "readOnly": true,
              "removed": false
            },
            {
              "id": "Title",
              "displayName": "Title",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "string",
              "readOnly": false,
              "removed": false
            },
            {
              "id": "URL",
              "displayName": "URL",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "string",
              "readOnly": false,
              "removed": false
            },
            {
              "id": "Classification",
              "displayName": "Classification",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "string",
              "readOnly": false,
              "removed": true
            },
            {
              "id": "Price",
              "displayName": "Price",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "string",
              "readOnly": false,
              "removed": true
            },
            {
              "id": "Availability",
              "displayName": "Availability",
              "required": false,
              "defaultMatch": false,
              "canBeUsedToMatch": true,
              "display": true,
              "type": "string",
              "readOnly": false,
              "removed": true
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {}
      },
      "type": "n8n-nodes-base.airtable",
      "typeVersion": 2.1,
      "position": [
        1312,
        32
      ],
      "id": "0cc50649-bfd6-4241-b504-846f7db45512",
      "name": "Create or update a record",
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "fieldToSplitOut": "title",
        "options": {}
      },
      "type": "n8n-nodes-base.splitOut",
      "typeVersion": 1,
      "position": [
        864,
        -64
      ],
      "id": "c1268ad5-f951-4f12-be23-b3f8fdbf1e94",
      "name": "title Split Out"
    },
    {
      "parameters": {
        "fieldToSplitOut": "url",
        "options": {}
      },
      "type": "n8n-nodes-base.splitOut",
      "typeVersion": 1,
      "position": [
        864,
        128
      ],
      "id": "f6caf112-6368-4aa3-a5b4-cb45a8ef6955",
      "name": "url Split Out"
    },
    {
      "parameters": {
        "workflowId": {
          "__rl": true,
          "value": "qpOoI7AaV7jZpgoF",
          "mode": "list",
          "cachedResultName": "d18-Airtable"
        },
        "workflowInputs": {
          "mappingMode": "defineBelow",
          "value": {
            "aNumber": 0
          },
          "matchingColumns": [],
          "schema": [
            {
              "id": "aField",
              "displayName": "aField",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "canBeUsedToMatch": true,
              "type": "string",
              "removed": false
            },
            {
              "id": "aNumber",
              "displayName": "aNumber",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "canBeUsedToMatch": true,
              "type": "number",
              "removed": false
            },
            {
              "id": "thisFieldAcceptsAnyType",
              "displayName": "thisFieldAcceptsAnyType",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "anArray",
              "displayName": "anArray",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "canBeUsedToMatch": true,
              "type": "array",
              "removed": false
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": true
        },
        "options": {}
      },
      "type": "n8n-nodes-base.executeWorkflow",
      "typeVersion": 1.2,
      "position": [
        1536,
        32
      ],
      "id": "93f97985-40e5-4f56-bbd6-fac815791b0a",
      "name": "Execute Workflow"
    },
    {
      "parameters": {
        "inputSource": "passthrough"
      },
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "typeVersion": 1.1,
      "position": [
        192,
        424
      ],
      "id": "aeb94d5d-4a78-47bc-a3c2-0a3fff8e3d70",
      "name": "When Executed by Another Workflow"
    },
    {
      "parameters": {
        "operation": "search",
        "base": {
          "__rl": true,
          "value": "app9OzbgVsNaZQ4fI",
          "mode": "list",
          "cachedResultName": "Base",
          "cachedResultUrl": "https://airtable.com/app9OzbgVsNaZQ4fI"
        },
        "table": {
          "__rl": true,
          "value": "tbly1AxVFBHA7dMTG",
          "mode": "list",
          "cachedResultName": "Table",
          "cachedResultUrl": "https://airtable.com/app9OzbgVsNaZQ4fI/tbly1AxVFBHA7dMTG"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.airtable",
      "typeVersion": 2.1,
      "position": [
        416,
        424
      ],
      "id": "ca99484a-a7f0-48ce-b51e-ac8581a88ece",
      "name": "Search records",
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      }
    }
  ],
  "connections": {
    "When clicking \u2018Execute workflow\u2019": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTML": {
      "main": [
        [
          {
            "node": "title Split Out",
            "type": "main",
            "index": 0
          },
          {
            "node": "url Split Out",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request": {
      "main": [
        [
          {
            "node": "HTML",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge": {
      "main": [
        [
          {
            "node": "Create or update a record",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "title Split Out": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "url Split Out": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Create or update a record": {
      "main": [
        [
          {
            "node": "Execute Workflow",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When Executed by Another Workflow": {
      "main": [
        [
          {
            "node": "Search records",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Search records": {
      "main": [
        []
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  },
  "staticData": null,
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "versionId": "f3576480-caee-4b84-973d-b89f7ac3974b",
  "triggerCount": 0,
  "shared": [
    {
      "createdAt": "2025-09-14T06:57:55.801Z",
      "updatedAt": "2025-09-14T06:57:55.801Z",
      "role": "workflow:owner",
      "workflowId": "qpOoI7AaV7jZpgoF",
      "projectId": "6NV7foKyOeJG8Mz6"
    }
  ],
  "tags": [
    {
      "createdAt": "2025-09-14T06:27:04.834Z",
      "updatedAt": "2025-09-14T06:27:04.834Z",
      "id": "S14KyMmdLj6QsyYh",
      "name": "ithome"
    }
  ]
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

d18-Airtable. Uses httpRequest, airtable, executeWorkflowTrigger. Event-driven trigger; 10 nodes.

Source: https://github.com/021up/n8n-learning/blob/main/ITHome/qpOoI7AaV7jZpgoF.json — original creator credit. Request a take-down →

More Data & Sheets workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Data & Sheets

Lmchatopenai Workflow. Uses noOp, stickyNote, executeWorkflowTrigger, airtable. Event-driven trigger; 41 nodes.

Execute Workflow Trigger, Airtable, HTTP Request
Data & Sheets

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 J

Execute Workflow Trigger, Airtable, HTTP Request
Data & Sheets

d16-Web-Scraper-Data-Flow. Uses httpRequest, airtable, executeWorkflowTrigger. Event-driven trigger; 20 nodes.

HTTP Request, Airtable, Execute Workflow Trigger
Data & Sheets

Web-Scraper-Data-Flow. Uses httpRequest, airtable, executeWorkflowTrigger. Event-driven trigger; 19 nodes.

HTTP Request, Airtable, Execute Workflow Trigger
Data & Sheets

d21-set. Uses httpRequest, airtable, executeWorkflowTrigger. Event-driven trigger; 19 nodes.

HTTP Request, Airtable, Execute Workflow Trigger