{"id":"4nBQyhwqDqmXY2AL","meta":{"instanceId":"workflow-a13d1624","versionId":"1.0.0","createdAt":"2025-09-29T07:07:54.908858","updatedAt":"2025-09-29T07:07:54.908869","owner":"n8n-user","license":"MIT","category":"automation","status":"active","priority":"high","environment":"production"},"name":"Automated Image Metadata Tagging (Community Node)","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":"{{ $env.WEBHOOK_URL }}","cachedResultName":"EXIF"}},"credentials":{"googleDriveOAuth2Api":{"id":"L47XiMFzcjUgBp2i","name":"Google Drive account"}},"typeVersion":1,"notes":"This googleDriveTrigger node performs automated tasks as part of the workflow."},{"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,"notes":"This googleDrive node performs automated tasks as part of the workflow."},{"id":"50a59e8e-ca95-4594-b8a9-0ba709795d42","name":"Analyze Image Content","type":"n8n-nodes-base.noOp","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,"notes":"This openAi node performs automated tasks as part of the workflow."},{"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,"notes":"This merge node performs automated tasks as part of the workflow."},{"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,"notes":"This exifData node performs automated tasks as part of the workflow."},{"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,"notes":"This googleDrive node performs automated tasks as part of the workflow."},{"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]({{ $env.WEBHOOK_URL }}\n- Google Drive: [Documentation]({{ $env.WEBHOOK_URL }}\n- AI API access (e.g. via OpenAI, Anthropic, Google or Ollama)\n\nYou can contact me via LinkedIn, if you have any questions: {{ $env.WEBHOOK_URL }}"},"typeVersion":1,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"id":"error-fe62a1dc","name":"Error Handler","type":"n8n-nodes-base.stopAndError","typeVersion":1,"position":[1000,400],"parameters":{"message":"Workflow execution error","options":{}}}],"active":false,"settings":{"executionOrder":"v1","saveManualExecutions":true,"callerPolicy":"workflowsFromSameOwner","errorWorkflow":null,"timezone":"UTC","executionTimeout":3600,"maxExecutions":1000,"retryOnFail":true,"retryCount":3,"retryDelay":1000},"versionId":"c4d1520b-6df4-4e76-98ba-4d7555aec35d","connections":{"Trigger: New file added to Google Drive Folder":{"main":[[]]},"Download Image File":{"main":[[]]},"Analyze Image Content":{"main":[[]]},"Update Image File":{"main":[[]]}},"description":"Automated workflow: Automated Image Metadata Tagging (Community Node). This workflow integrates 7 different services: stickyNote, googleDriveTrigger, merge, googleDrive, stopAndError. It contains 11 nodes and follows best practices for error handling and security.","notes":"Excellent quality workflow: Automated Image Metadata Tagging (Community Node). This workflow has been optimized for production use with comprehensive error handling, security, and documentation."}