Workflow n8n

Automatisation API d'extraction de données avec n8n : traitement d'images

Ce workflow n8n a pour objectif d'automatiser l'extraction de données à partir d'images en utilisant l'API Gemini AI. Il est particulièrement utile pour les entreprises qui traitent de grandes quantités d'images et qui souhaitent extraire des informations précises sans intervention manuelle. Par exemple, ce workflow peut être utilisé par des équipes marketing pour extraire des données de produits à partir d'images de catalogues ou par des entreprises de logistique pour analyser des documents scannés. Le processus commence par un déclencheur de type Webhook qui reçoit une URL d'image. Ensuite, le workflow utilise un nœud HTTP pour récupérer l'image à partir de cette URL. Une fois l'image obtenue, elle est transformée en base64 pour être envoyée à l'API Gemini AI via un autre nœud HTTP. Après réception de la réponse de l'API, les données extraites sont filtrées et formatées grâce à un nœud de traitement. Enfin, le workflow renvoie les résultats au format souhaité. Les bénéfices de cette automatisation n8n sont multiples : elle permet de gagner un temps précieux en éliminant les tâches manuelles, d'améliorer la précision des données extraites et de réduire les risques d'erreurs humaines. En intégrant ce type de workflow, les entreprises peuvent optimiser leurs processus de traitement d'images et se concentrer sur des tâches à plus forte valeur ajoutée. Tags clés : automatisation, API, n8n.

Catégorie: Webhook · Tags: automatisation, API, n8n, extraction de données, traitement d'images0

Vue d'ensemble du workflow n8n

Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.

Détail des nœuds du workflow n8n

  • Webhook

    Ce noeud reçoit des requêtes via un webhook à une URL spécifiée.

  • Respond to Webhook

    Ce noeud envoie une réponse au webhook après le traitement des données.

  • Get image from URL

    Ce noeud récupère une image à partir d'une URL donnée.

  • Call Gemini API (Flash Lite) with Image

    Ce noeud effectue un appel à l'API Gemini avec une image en utilisant une requête HTTP.

  • Edit fields to output required data alone

    Ce noeud modifie les champs pour ne conserver que les données nécessaires à la sortie.

  • Sticky Note

    Ce noeud crée une note autocollante avec des paramètres de couleur, de taille et de contenu spécifiés.

  • Sticky Note1

    Ce noeud crée une autre note autocollante avec des paramètres de couleur, de taille et de contenu.

  • Sticky Note2

    Ce noeud crée une note autocollante avec des paramètres de taille et de contenu.

  • Transform image to base64

    Ce noeud transforme une image en une chaîne de caractères base64.

Inscris-toi pour voir l'intégralité du workflow

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "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.1
    },
    {
      "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.2
    },
    {
      "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.2
    },
    {
      "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.4
    },
    {
      "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
          }
        ]
      ]
    }
  }
}

Pour qui est ce workflow ?

Ce workflow s'adresse aux entreprises de taille moyenne à grande, notamment dans les secteurs du marketing, de la logistique et de l'e-commerce. Les équipes techniques et les responsables de projets digitaux trouveront cet outil particulièrement utile pour automatiser le traitement d'images et l'extraction de données.

Problème résolu

Ce workflow résout le problème de la gestion manuelle des données extraites d'images, un processus souvent long et sujet à des erreurs. En automatisant cette tâche, les entreprises peuvent réduire considérablement le temps consacré à l'extraction de données, minimiser les risques d'erreurs humaines et améliorer l'efficacité globale de leurs opérations. Les utilisateurs bénéficient ainsi d'une solution rapide et fiable pour traiter des volumes importants d'images.

Étapes du workflow

Étape 1 : Le workflow est déclenché par un Webhook qui reçoit une URL d'image. Étape 2 : L'image est récupérée via un nœud HTTP. Étape 3 : L'image est transformée en base64 pour être compatible avec l'API. Étape 4 : Une requête est envoyée à l'API Gemini AI pour l'analyse de l'image. Étape 5 : Les données extraites sont filtrées et formatées pour ne conserver que les informations nécessaires. Étape 6 : Les résultats sont renvoyés au format souhaité.

Guide de personnalisation du workflow n8n

Pour personnaliser ce workflow, commencez par modifier l'URL du Webhook pour l'adapter à vos besoins. Vous pouvez également ajuster les paramètres du nœud HTTP pour récupérer des images à partir de différentes sources. Si vous souhaitez changer l'API utilisée, modifiez les paramètres du nœud d'appel API, notamment l'URL et les données envoyées. Assurez-vous également de configurer correctement les champs de sortie dans le nœud de traitement pour obtenir les données dans le format souhaité. Enfin, il est recommandé de surveiller le flux pour assurer son bon fonctionnement et sa sécurité.