Benchmark LLM performance on legal documents with Google Sheets and OpenRouter
Ready for 3.0Ready for 3.0. This template uses no nodes that n8n 3.0 removes. No removed nodes, versions or helpers found. Static check, last run 2026-10-19.
Nodes used (13)
- Manual Trigger
n8n-nodes-base.manualTrigger - Webhook
n8n-nodes-base.webhook - Merge
n8n-nodes-base.merge - Google Sheets
n8n-nodes-base.googleSheets - If
n8n-nodes-base.if - Structured Output Parser
@n8n/n8n-nodes-langchain.outputParserStructured - Basic LLM Chain
@n8n/n8n-nodes-langchain.chainLlm - Google Drive
n8n-nodes-base.googleDrive - Extract from File
n8n-nodes-base.extractFromFile - Edit Fields (Set)
n8n-nodes-base.set - HTTP Request
n8n-nodes-base.httpRequest - OpenRouter Chat Model
@n8n/n8n-nodes-langchain.lmChatOpenRouter - Limit
n8n-nodes-base.limit
What it does
This workflow demonstrates a simple way to run evals on a set of test cases stored in a Google Sheet. The example we are using comes from an info extraction task dataset, where we tested 6 different LLMs on 18 different test cases. This workflow extends the functionality of my simple eval for benchmarking legal tasks here. Rather than running executions sequentially (waiting for each one to respond before making another request), we use parallel processing to fire 2 requests every second. You can see our sample data in this spreadsheet here to get started. Once you have this working for our dataset, you can plug in your own test cases matching different LLMs to see how it works with your own data. How it works - Pull our test cases from Google Sheets. - For each case, fire off an HTTP request to a webhook. - That webhook grabs the relevant source file from Google Drive and converts it to text. - The text gets sent to an LLM via Open Router (so we can easily swap out models). - Results come back and are logged in Google Sheets. Set up steps: - Add your credentials for Google Sheets, Google Drive, and OpenRouter. - Make a copy of the original data spreadsheet so that you can edit it yourself. You will need to plug your version in the Update Results node to see the spreadsheet update on each run of the loop.