Workflow: Webhook Extractfromfile Automation

Workflow Details

Download Workflow
{
    "id": "YKZBEx4DTf0KGEBR",
    "meta": {
        "instanceId": "f5267db717c7383a3924a6083f6b9950be64cf36e2b4e9421d42eb2121922a14"
    },
    "name": "Image-Based Data Extraction API using Gemini AI",
    "tags": [],
    "nodes": [
        {
            "id": "e3448003-5c62-4da6-8fcc-6817915dcbb8",
            "name": "Webhook",
            "type": "n8n-nodes-base.webhook",
            "position": [
                40,
                40
            ],
            "webhookId": "18118afb-7fd2-47a5-a474-50813c5b20c8",
            "parameters": {
                "path": "data-extractor",
                "options": [],
                "responseMode": "responseNode"
            },
            "typeVersion": 2
        },
        {
            "id": "3682c6bf-3442-4fba-ab6c-ae29e361ef93",
            "name": "Respond to Webhook",
            "type": "n8n-nodes-base.respondToWebhook",
            "position": [
                1180,
                40
            ],
            "parameters": {
                "options": []
            },
            "typeVersion": 1.100000000000000088817841970012523233890533447265625
        },
        {
            "id": "bfa352d0-68a9-4f33-be54-254a5df22664",
            "name": "Get image from URL",
            "type": "n8n-nodes-base.httpRequest",
            "position": [
                280,
                40
            ],
            "parameters": {
                "url": "={{ $json.body.image_url }}",
                "options": []
            },
            "typeVersion": 4.20000000000000017763568394002504646778106689453125
        },
        {
            "id": "c6c8de12-08dc-42e8-9c0e-86e04c7cacc0",
            "name": "Call Gemini API (Flash Lite) with Image",
            "type": "n8n-nodes-base.httpRequest",
            "position": [
                760,
                40
            ],
            "parameters": {
                "url": "=https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-2.0-flash-lite:generateContent",
                "method": "POST",
                "options": [],
                "jsonBody": "={\n  \"contents\": [\n    {\n      \"role\": \"user\",\n      \"parts\": [\n        {\n          \"inlineData\": {\n            \"data\": \"{{$json.data1}}\",\n            \"mimeType\": \"image\/jpeg\"\n          }\n        }\n      ]\n    },\n    {\n      \"role\": \"user\",\n      \"parts\": [\n        {\n          \"text\": \"check this\"\n        }\n      ]\n    }\n  ],\n  \"systemInstruction\": {\n    \"role\": \"user\",\n    \"parts\": [\n      {\n        \"text\": \"{{ $('Webhook').first().json.body.Requirement}}\"\n      }\n    ]\n  },\n  \"generationConfig\": {\n    \"temperature\": 1,\n    \"topK\": 40,\n    \"topP\": 0.95,\n    \"maxOutputTokens\": 8192,\n    \"responseMimeType\": \"application\/json\",\n    \"responseSchema\": {\n      \"type\": \"object\",\n      \"properties\": {{ $('Webhook').first().json.body.properties.toJsonString()}}\n    }\n  }\n}\n",
                "sendBody": true,
                "specifyBody": "json",
                "authentication": "predefinedCredentialType",
                "nodeCredentialType": "googlePalmApi"
            },
            "credentials": {
                "googlePalmApi": {
                    "id": "MhMVz0OkKPSPX2Wn",
                    "name": "Gemini API Srinivasan Online"
                }
            },
            "typeVersion": 4.20000000000000017763568394002504646778106689453125
        },
        {
            "id": "06b0f807-aeba-44d6-bb1d-dfa1d50e1082",
            "name": "Edit fields to output required data alone",
            "type": "n8n-nodes-base.set",
            "position": [
                980,
                40
            ],
            "parameters": {
                "options": [],
                "assignments": {
                    "assignments": [
                        {
                            "id": "4a2f1343-4b5d-4de8-b04b-5640e0a38d27",
                            "name": "result",
                            "type": "string",
                            "value": "={{ $json.candidates[0].content.parts[0].text.parseJson()}}"
                        }
                    ]
                }
            },
            "typeVersion": 3.399999999999999911182158029987476766109466552734375
        },
        {
            "id": "8c69dba2-f67c-4f8b-be18-02a414fd2ead",
            "name": "Sticky Note",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                20,
                280
            ],
            "parameters": {
                "color": 5,
                "width": 820,
                "height": 420,
                "content": "## Sample API Call (cURL) \n```\ncurl --request GET \\\n  --url https:\/\/your_domain.com\/webhook\/data-extractor \\\n  --data '{\n  \"image_url\":\"https:\/\/www.immihelp.com\/nri\/images\/sample-pan-card-front.jpg\",\n  \"Requirement\":\"extract the details from the image\",\n  \"properties\": {\n        \"PAN Number\": {\n          \"type\": \"string\"\n        },\n        \"Name\": {\n          \"type\": \"string\"\n        },\n        \"Date of Birth\": {\n          \"type\": \"string\"\n        },\n        \"Valid\": {\n          \"type\": \"boolean\"\n        }\n      }\n}'\n```"
            },
            "typeVersion": 1
        },
        {
            "id": "8839f0d7-306f-4dc2-aca5-6ca529e1a2ff",
            "name": "Sticky Note1",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                20,
                740
            ],
            "parameters": {
                "color": 5,
                "width": 1240,
                "height": 140,
                "content": "## Sample Output\n```\n{\n  \"result\": \"{\\\"Date of Birth\\\":\\\"23\/11\/1974\\\",\\\"Name\\\":\\\"RAHUL GUPTA\\\",\\\"PAN Number\\\":\\\"ABCDE1234F\\\",\\\"Valid\\\":true}\"\n}\n```"
            },
            "typeVersion": 1
        },
        {
            "id": "df733e11-f194-4878-a514-47ddc9811281",
            "name": "Sticky Note2",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                40,
                -520
            ],
            "parameters": {
                "width": 940,
                "height": 440,
                "content": "## Convert the workflow into an Endpoint\n\nThis n8n workflow provides a ready-to-use API endpoint for extracting structured data from images. The API takes an image URL as input, processes it using an AI-powered OCR model, and returns relevant extracted details in a structured JSON format.\n\n- The workflow converts the image to base64 before processing.\n- It utilizes an AI-powered model (Gemini API) for text extraction.\n- The output is formatted to include only the required fields.\n- You can customize the extraction criteria by modifying the request parameters.\n- Supports integration with various applications for automated data entry and processing.\n\nIt can be used for various use cases, such as:\n\n- Document OCR (ID cards, invoices, receipts)\n- Text Extraction from Images\n- Automated Form Processing\n- Business Card Data Extraction\n\nSimply send a GET request with an image URL, define the extraction requirements, and receive structured JSON data in response.\n\n"
            },
            "typeVersion": 1
        },
        {
            "id": "aecf7331-6341-411e-8906-e42fc0ef264a",
            "name": "Transform image to base64",
            "type": "n8n-nodes-base.extractFromFile",
            "position": [
                520,
                40
            ],
            "parameters": {
                "options": {
                    "encoding": "ascii"
                },
                "operation": "binaryToPropery",
                "destinationKey": "data1"
            },
            "typeVersion": 1
        }
    ],
    "active": true,
    "pinData": [],
    "settings": {
        "executionOrder": "v1"
    },
    "versionId": "b1fad586-998c-47ce-9921-e59527da029a",
    "connections": {
        "Webhook": {
            "main": [
                [
                    {
                        "node": "Get image from URL",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get image from URL": {
            "main": [
                [
                    {
                        "node": "Transform image to base64",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Transform image to base64": {
            "main": [
                [
                    {
                        "node": "Call Gemini API (Flash Lite) with Image",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Call Gemini API (Flash Lite) with Image": {
            "main": [
                [
                    {
                        "node": "Edit fields to output required data alone",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Edit fields to output required data alone": {
            "main": [
                [
                    {
                        "node": "Respond to Webhook",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        }
    }
}
Back to Workflows

Related Workflows

Manual Stickynote Automation Webhook
View
Credentials Transfer
View
Error Slack Send Triggered
View
Receive updates when a subscriber is added through a form in ConvertKit
View
Motion-illustration Workflow Generated with Midjourney and Kling API
View
Gmailtool Splitout Automation Webhook
View
Convert the JSON data received from the CocktailDB API in XML
View
Bitrix24 Open Chanel RAG Chatbot Application Workflow example with Webhook Integration
View
HTTP Respondtowebhook Create Webhook
View
Google analytics template
View