Extract portfolio project credits from web pages with OpenAI and Sheets
Needs changesNeeds changes. This template uses 1 thing(s) that n8n 3.0 removes: AI Agent v1 (old agent modes). 1 breaking item(s) found. Static check, last run 2026-10-19.
What to replace before upgrading
| Removed in 3.0 | Replace with |
|---|---|
| AI Agent v1 (old agent modes) Project Credit Extractor (v1.7) | Latest AI Agent node (Tools Agent). For SQL Agent, use a Postgres or MySQL tool with a recent AI Agent. |
Nodes used (12)
- Manual Trigger
n8n-nodes-base.manualTrigger - Loop Over Items (Split in Batches)
n8n-nodes-base.splitInBatches - HTTP Request
n8n-nodes-base.httpRequest - If
n8n-nodes-base.if - Code
n8n-nodes-base.code - Wait
n8n-nodes-base.wait - Google Sheets
n8n-nodes-base.googleSheets - AI Agent
@n8n/n8n-nodes-langchain.agent - OpenAI Chat Model
@n8n/n8n-nodes-langchain.lmChatOpenAi - Structured Output Parser
@n8n/n8n-nodes-langchain.outputParserStructured - Edit Fields (Set)
n8n-nodes-base.set - Filter
n8n-nodes-base.filter
What it does
Quick Overview This workflow manually scrapes portfolio or case-study pages listed in Google Sheets, converts the HTML into clean text, uses an OpenAI chat model to extract structured project credits (agency, brand, project name), and writes both results and errors back to Google Sheets while marking each input row as processed. How it works 1. Starts when you run the workflow manually. 2. Reads rows from a Google Sheets input tab and filters out any URLs already marked as Done. 3. Loops through each remaining row, sets the company and URL fields, and fetches the portfolio page HTML with browser-like headers. 4. Validates the HTTP response and either logs a fetch error to Google Sheets or strips HTML to plain text (with truncation) for analysis. 5. Sends the cleaned page text to an AI extraction agent powered by an OpenAI chat model to return a structured list of projects and credits. 6. Appends extracted projects to a Google Sheets output tab (or appends an AI error if extraction fails) and updates the input row status to Done, waiting briefly before processing the next URL. Setup 1. Create a Google Sheets spreadsheet with an Input tab (Company, Website, Page URL, Status) and an Output tab (Company, Website, Page URL, Agency, Brand, Project Name, Full Page Content, Error). 2. Add Google Sheets credentials in n8n and select your spreadsheet document and the correct Input/Output sheet names in all Google Sheets nodes. 3. Add an OpenAI (or compatible) chat model credential for the LangChain Chat Model node. 4. Ensure each Input row has a unique Page URL value so the workflow can update the matching row and set Status to Done.