This workflow corresponds to n8n.io template #2911 — we link there as the canonical source.
This workflow follows the Chainllm → Form 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 →
{
"id": "B37wvB0tdKgjuabw",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Image to license plate number",
"tags": [],
"nodes": [
{
"id": "a656334a-0135-4d93-a6df-ca97222c9753",
"name": "Basic LLM Chain",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
-140,
-380
],
"parameters": {
"text": "={{ $json.prompt }}",
"messages": {
"messageValues": [
{
"type": "HumanMessagePromptTemplate",
"messageType": "imageBinary",
"binaryImageDataKey": "Image"
}
]
},
"promptType": "define"
},
"typeVersion": 1.5
},
{
"id": "41a90592-2a91-40ff-abf4-3a795733d521",
"name": "FormResultPage",
"type": "n8n-nodes-base.form",
"position": [
220,
-380
],
"parameters": {
"options": {
"formTitle": ""
},
"operation": "completion",
"completionTitle": "Extracted information:",
"completionMessage": "={{ $json.text }}"
},
"typeVersion": 1
},
{
"id": "c23b95d9-b7a2-4e9e-a019-5724a9662abd",
"name": "OpenRouter LLM",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"position": [
-60,
-180
],
"parameters": {
"model": "={{ $json.model }}",
"options": {}
},
"credentials": {
"openRouterApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "8298cd51-8c47-4bc4-af78-2c216207ef76",
"name": "Settings",
"type": "n8n-nodes-base.set",
"position": [
-340,
-380
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "1b8381dc-5b9a-42a2-8a67-cc706b433180",
"name": "model",
"type": "string",
"value": "openai/gpt-4o"
},
{
"id": "72aec130-ab56-4e61-b60b-9a31dd8d02e6",
"name": "prompt",
"type": "string",
"value": "Extract the number of the license plate on the front-most car depicted in the attached image and return only the extracted characters without any other text or structure."
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "fae79fc9-b510-44a4-beec-4dc26dc2a13a",
"name": "FromTrigger",
"type": "n8n-nodes-base.formTrigger",
"position": [
-560,
-380
],
"parameters": {
"options": {},
"formTitle": "Analyse image",
"formFields": {
"values": [
{
"fieldType": "file",
"fieldLabel": "Image",
"requiredField": true,
"acceptFileTypes": ".jpg, .png"
}
]
},
"responseMode": "lastNode",
"formDescription": "To analyse an image, upload it here."
},
"typeVersion": 2.2
}
],
"active": true,
"settings": {
"executionOrder": "v1"
},
"versionId": "5b9c53b9-3998-4676-999d-1ba117bf6695",
"connections": {
"Settings": {
"main": [
[
{
"node": "Basic LLM Chain",
"type": "main",
"index": 0
}
]
]
},
"FromTrigger": {
"main": [
[
{
"node": "Settings",
"type": "main",
"index": 0
}
]
]
},
"OpenRouter LLM": {
"ai_languageModel": [
[
{
"node": "Basic LLM Chain",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Basic LLM Chain": {
"main": [
[
{
"node": "FormResultPage",
"type": "main",
"index": 0
}
]
]
}
}
}
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.
openRouterApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This is a simplistic demo workflow showing how to extract a license plate number from an image of a car submitted via a form – or in more general terms showcasing how you can: use a form trigger to upload files and feed it into an LLM use a changeable LLM model for image-to-text…
Source: https://n8n.io/workflows/2911/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Image to license plate number. Uses chainLlm, form, lmChatOpenRouter, formTrigger. Event-driven trigger; 5 nodes.
This workflow uses AI to automatically generate clear and descriptive names for every node in your n8n workflows. It analyzes each node's type, parameters, and connections to create meaningful names,
This workflow generates a Product Requirements Document (PRD) and test scenarios from structured form inputs. It uses OpenRouter LLMs (GPT/Claude) for natural language generation and APITemplate.io fo
High-Level Service Page SEO Blueprint Report. Uses formTrigger, splitInBatches, httpRequest, lmChatGoogleGemini. Event-driven trigger; 33 nodes.
CV Tailor + Cover Letter (easybits). Uses formTrigger, googleSheets, @easybits/n8n-nodes-extractor, googleGemini. Event-driven trigger; 25 nodes.