{
    "id": "4nBQyhwqDqmXY2AL",
    "meta": {
        "instanceId": "558d88703fb65b2d0e44613bc35916258b0f0bf983c5d4730c00c424b77ca36a",
        "templateCredsSetupCompleted": true
    },
    "name": "Automated Image Metadata Tagging (Community Node)",
    "tags": [],
    "nodes": [
        {
            "id": "b0b030f5-8a8c-4254-bc18-a2790748248e",
            "name": "Trigger: New file added to Google Drive Folder",
            "type": "n8n-nodes-base.googleDriveTrigger",
            "position": [
                -760,
                120
            ],
            "parameters": {
                "event": "fileCreated",
                "options": [],
                "pollTimes": {
                    "item": [
                        {
                            "mode": "everyMinute"
                        }
                    ]
                },
                "triggerOn": "specificFolder",
                "folderToWatch": {
                    "__rl": true,
                    "mode": "list",
                    "value": "1WaIRWXcaeNViKmpW5IyQ3YGARWYdMg47",
                    "cachedResultUrl": "https:\/\/drive.google.com\/drive\/folders\/1WaIRWXcaeNViKmpW5IyQ3YGARWYdMg47",
                    "cachedResultName": "EXIF"
                }
            },
            "credentials": {
                "googleDriveOAuth2Api": {
                    "id": "L47XiMFzcjUgBp2i",
                    "name": "Google Drive account"
                }
            },
            "typeVersion": 1
        },
        {
            "id": "1df51279-b3bd-49bd-9711-951eb4164290",
            "name": "Download Image File",
            "type": "n8n-nodes-base.googleDrive",
            "position": [
                -540,
                120
            ],
            "parameters": {
                "fileId": {
                    "__rl": true,
                    "mode": "id",
                    "value": "={{ $json.id }}"
                },
                "options": [],
                "operation": "download"
            },
            "credentials": {
                "googleDriveOAuth2Api": {
                    "id": "L47XiMFzcjUgBp2i",
                    "name": "Google Drive account"
                }
            },
            "typeVersion": 3
        },
        {
            "id": "50a59e8e-ca95-4594-b8a9-0ba709795d42",
            "name": "Analyze Image Content",
            "type": "@n8n\/n8n-nodes-langchain.openAi",
            "position": [
                -340,
                200
            ],
            "parameters": {
                "text": "=Deliver a comma separated list describing the content of this image.",
                "modelId": {
                    "__rl": true,
                    "mode": "list",
                    "value": "chatgpt-4o-latest",
                    "cachedResultName": "CHATGPT-4O-LATEST"
                },
                "options": [],
                "resource": "image",
                "inputType": "base64",
                "operation": "analyze"
            },
            "credentials": {
                "openAiApi": {
                    "id": "niikB3HA4fT5WAqt",
                    "name": "OpenAi account"
                }
            },
            "typeVersion": 1.8
        },
        {
            "id": "456164cc-ed41-4482-adb4-4ed00682153d",
            "name": "Merge Metadata and Image File",
            "type": "n8n-nodes-base.merge",
            "position": [
                -140,
                120
            ],
            "parameters": {
                "mode": "combine",
                "options": [],
                "combineBy": "combineByPosition"
            },
            "typeVersion": 3
        },
        {
            "id": "ddd6aef5-4dae-48e3-a806-3c58adea6552",
            "name": "Write Metadata into Image",
            "type": "n8n-nodes-exif-data.exifData",
            "position": [
                40,
                120
            ],
            "parameters": {
                "options": [],
                "operation": "write",
                "exifMetadata": {
                    "metadataValues": [
                        {
                            "name": "Subject",
                            "value": "={{$json.content}}"
                        },
                        {
                            "name": "Keywords",
                            "value": "={{$json.content}}"
                        }
                    ]
                }
            },
            "typeVersion": 1
        },
        {
            "id": "9c531288-7fca-4cca-9717-6dd059266f47",
            "name": "Update Image File",
            "type": "n8n-nodes-base.googleDrive",
            "position": [
                220,
                120
            ],
            "parameters": {
                "fileId": {
                    "__rl": true,
                    "mode": "id",
                    "value": "={{ $('Download Image File').item.json.id }}"
                },
                "options": [],
                "operation": "update",
                "changeFileContent": true,
                "newUpdatedFileName": "={{ $('Download Image File').item.json.name }}"
            },
            "credentials": {
                "googleDriveOAuth2Api": {
                    "id": "L47XiMFzcjUgBp2i",
                    "name": "Google Drive account"
                }
            },
            "typeVersion": 3
        },
        {
            "id": "70b6bb63-fedf-42eb-a6a0-30faae883f2c",
            "name": "Sticky Note1",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                -1080,
                320
            ],
            "parameters": {
                "width": 660,
                "height": 680,
                "content": "# Welcome to my Automated Image Metadata Tagging Workflow!\n\nThis workflow automatically analyzes the image content with the help of AI and writes it directly back into the image file as keywords.\n\n## This workflow has the following sequence:\n\n1. Google Drive trigger (scan for new files added in a specific folder)\n2. Download the added image file\n3. Analyse the content of the image\n4. Merge Metadata and image file\n5. Write the Keywords into the Metadata (dc:subject\/keywords) and create new image file\n6. Update the original file in the Google Drive folder\n\n## The following accesses are required for the workflow:\n- You have to install the [n8n-nodes-exif-data Community Node](https:\/\/www.npmjs.com\/package\/n8n-nodes-exif-data)\n- Google Drive: [Documentation](https:\/\/docs.n8n.io\/integrations\/builtin\/credentials\/google)\n- AI API access (e.g. via OpenAI, Anthropic, Google or Ollama)\n\nYou can contact me via LinkedIn, if you have any questions: https:\/\/www.linkedin.com\/in\/friedemann-schuetz"
            },
            "typeVersion": 1
        }
    ],
    "active": false,
    "pinData": [],
    "settings": {
        "executionOrder": "v1"
    },
    "versionId": "c4d1520b-6df4-4e76-98ba-4d7555aec35d",
    "connections": {
        "Download Image File": {
            "main": [
                [
                    {
                        "node": "Analyze Image Content",
                        "type": "main",
                        "index": 0
                    },
                    {
                        "node": "Merge Metadata and Image File",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Analyze Image Content": {
            "main": [
                [
                    {
                        "node": "Merge Metadata and Image File",
                        "type": "main",
                        "index": 1
                    }
                ]
            ]
        },
        "Write Metadata into Image": {
            "main": [
                [
                    {
                        "node": "Update Image File",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Merge Metadata and Image File": {
            "main": [
                [
                    {
                        "node": "Write Metadata into Image",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Trigger: New file added to Google Drive Folder": {
            "main": [
                [
                    {
                        "node": "Download Image File",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        }
    }
}