{
  "nodes": [
    {
      "id": "fdb7302d-9319-4861-abab-557a3c1f1493",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2660,
        340
      ],
      "parameters": {
        "color": 7,
        "width": 288.76295784381495,
        "height": 795.272978576365,
        "content": "### Available source and target languages`*`:\n\n`BG` - 🇧🇬 Bulgarian\n`CS` - 🇨🇿 Czech\n`DA` - 🇩🇰 Danish\n`DE` - 🇩🇪 German\n`EL` - 🇬🇷 Greek\n`EN-GB` - 🇬🇧 English (British)\n`EN-US` - 🇺🇸 English (American)\n`ES` - 🇪🇸 Spanish\n`ET` - 🇪🇪 Estonian\n`FI` - 🇫🇮 Finnish\n`FR` - 🇫🇷 French\n`HU` - 🇭🇺 Hungarian\n`ID` - 🇮🇩 Indonesian\n`IT` - 🇮🇹 Italian\n`JA` - 🇯🇵 Japanese\n`KO` - 🇰🇷 Korean\n`LT` - 🇱🇹 Lithuanian\n`LV` - 🇱🇻 Latvian\n`NB` - 🇳🇴 Norwegian (Bokmål)\n`NL` - 🇳🇱 Dutch\n`PL` - 🇵🇱 Polish\n`PT-BR` - 🇧🇷 Portuguese (Brazilian)\n`PT-PT` - 🇵🇹 Portuguese\n`RO` - 🇷🇴 Romanian\n`RU` - 🇷🇺 Russian\n`SK` - 🇸🇰 Slovak\n`SL` - 🇸🇮 Slovenian\n`SV` - 🇸🇪 Swedish\n`TR` - 🇹🇷 Turkish\n`UK` - 🇺🇦 Ukrainian\n`ZH` - 🇨🇳 Chinese (simplified)\n\n`*` For more up-to-date list, please consult the official DeepL [API documentation]({{ $env.API_BASE_URL }}"
      },
      "typeVersion": 1,
      "notes": "This stickyNote node performs automated tasks as part of the workflow."
    },
    {
      "id": "9cad538a-0efb-4186-b588-ef4d764fdf4e",
      "name": "Run manually",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        1100,
        560
      ],
      "parameters": {},
      "typeVersion": 1,
      "notes": "This manualTrigger node performs automated tasks as part of the workflow."
    },
    {
      "id": "242d4895-5b02-46b8-9c87-07fd2e11c9ba",
      "name": "Get files from specified folder",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1780,
        560
      ],
      "parameters": {
        "filter": {
          "folderId": {
            "__rl": true,
            "mode": "url",
            "value": "={{ $json.folder_url }}"
          },
          "whatToSearch": "files"
        },
        "options": {
          "fields": [
            "kind",
            "id",
            "name",
            "mimeType"
          ]
        },
        "resource": "fileFolder"
      },
      "typeVersion": 3,
      "notes": "This googleDrive node performs automated tasks as part of the workflow."
    },
    {
      "id": "1660cf85-af39-4d70-a997-5f4ef2252370",
      "name": "Use only PDF documents",
      "type": "n8n-nodes-base.filter",
      "position": [
        2000,
        560
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "098535fe-164e-4f58-9b35-0628b51ac5d0",
              "operator": {
                "type": "string",
                "operation": "endsWith"
              },
              "leftValue": "={{ $json.name }}",
              "rightValue": ".pdf"
            },
            {
              "id": "a0bb0e8c-25e9-4ee0-a1fd-2d98a7328111",
              "operator": {
                "type": "string",
                "operation": "notContains"
              },
              "leftValue": "={{ $json.name }}",
              "rightValue": "=-{{ $('⚙️ config').first().json.target_lang }}"
            }
          ]
        }
      },
      "typeVersion": 2,
      "notes": "This filter node performs automated tasks as part of the workflow."
    },
    {
      "id": "b7cc611e-81a3-4468-bcab-ca6de564fbeb",
      "name": "Download files",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        2220,
        560
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.id }}"
        },
        "options": {},
        "operation": "download"
      },
      "executeOnce": false,
      "typeVersion": 3,
      "notes": "This googleDrive node performs automated tasks as part of the workflow."
    },
    {
      "id": "f6e2c1e6-b68d-47b3-8582-7772f8b1ee95",
      "name": "Send translate request",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2440,
        560
      ],
      "parameters": {
        "url": "{{ $env.API_BASE_URL }}",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "multipart-form-data",
        "authentication": "{{ $credentials.genericCredentialType }}",
        "bodyParameters": {
          "parameters": [
            {
              "name": "target_lang",
              "value": "={{ $('⚙️ config').first().json.target_lang }}"
            },
            {
              "name": "file",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "data"
            },
            {
              "name": "source_lang",
              "value": "={{ $('⚙️ config').first().json.source_lang }}"
            }
          ]
        },
        "genericAuthType": "httpHeaderAuth"
      },
      "typeVersion": 4.1,
      "notes": "This httpRequest node performs automated tasks as part of the workflow."
    },
    {
      "id": "9fab53d1-dfa8-4b27-892f-884853df1e50",
      "name": "Check translation status",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1320,
        820
      ],
      "parameters": {
        "url": "{{ $env.BASE_URL }}",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "authentication": "{{ $credentials.genericCredentialType }}",
        "bodyParameters": {
          "parameters": [
            {
              "name": "document_key",
              "value": "={{ $('Send translate request').item.json.document_key }}"
            }
          ]
        },
        "genericAuthType": "httpHeaderAuth"
      },
      "typeVersion": 4.1,
      "notes": "This httpRequest node performs automated tasks as part of the workflow."
    },
    {
      "id": "9d320d4c-8398-4af4-8582-bc60ca52b986",
      "name": "Wait a bit",
      "type": "n8n-nodes-base.wait",
      "position": [
        1540,
        820
      ],
      "webhookId": "9fd126e3-203c-4f11-ad50-d00ff55301a2",
      "parameters": {
        "unit": "seconds",
        "amount": 5
      },
      "typeVersion": 1,
      "notes": "This wait node performs automated tasks as part of the workflow."
    },
    {
      "id": "657758b1-a5f5-4b0b-bdd0-ef0cdb518863",
      "name": "file translated?",
      "type": "n8n-nodes-base.if",
      "position": [
        1760,
        820
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "1a7ad415-3d30-4d51-b31e-7a0911391d21",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.status }}",
              "rightValue": "done"
            }
          ]
        }
      },
      "typeVersion": 2,
      "notes": "This if node performs automated tasks as part of the workflow."
    },
    {
      "id": "2018d45b-8922-4a9c-884b-27cc6903d464",
      "name": "Wait between documents",
      "type": "n8n-nodes-base.wait",
      "position": [
        2000,
        800
      ],
      "webhookId": "877870bc-5b29-4ce0-82d6-3202d43e89fd",
      "parameters": {
        "unit": "seconds",
        "amount": 2
      },
      "typeVersion": 1,
      "notes": "This wait node performs automated tasks as part of the workflow."
    },
    {
      "id": "717972fe-45fa-4bd4-acf9-9db2efb45c12",
      "name": "Get translated document from deepL",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2240,
        800
      ],
      "parameters": {
        "url": "{{ $env.BASE_URL }}",
        "method": "POST",
        "options": {
          "timeout": 30000
        },
        "sendBody": true,
        "authentication": "{{ $credentials.genericCredentialType }}",
        "bodyParameters": {
          "parameters": [
            {
              "name": "document_key",
              "value": "={{ $('Send translate request').item.json.document_key }}"
            }
          ]
        },
        "genericAuthType": "httpHeaderAuth"
      },
      "typeVersion": 4.1,
      "notes": "This httpRequest node performs automated tasks as part of the workflow."
    },
    {
      "id": "c9e9b000-8202-410d-9630-b08481ba4e39",
      "name": "Uplad to original folder",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        2460,
        800
      ],
      "parameters": {
        "name": "={{ $('Download files').item.json.name.replace('.pdf', '--' + $('⚙️ config').first().json.target_lang) + '.pdf' }}",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "url",
          "value": "={{ $('⚙️ config').first().json.folder_url }}"
        }
      },
      "executeOnce": false,
      "typeVersion": 3,
      "notes": "This googleDrive node performs automated tasks as part of the workflow."
    },
    {
      "id": "698a33ce-8b33-4b33-8236-190b1013cb0d",
      "name": "⚙️ config",
      "type": "n8n-nodes-base.set",
      "position": [
        1440,
        560
      ],
      "parameters": {
        "fields": {
          "values": [
            {
              "name": "target_lang"
            },
            {
              "name": "source_lang"
            },
            {
              "name": "folder_url"
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2,
      "notes": "This set node performs automated tasks as part of the workflow."
    },
    {
      "id": "aeee03fa-f4a6-48fd-b3ca-ff6a6dc20fb4",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1280,
        367.395398150649
      ],
      "parameters": {
        "color": 5,
        "width": 444.71526152412946,
        "height": 343.02803459456237,
        "content": "### Configure your workflow here by setting these parameters:\n- `folder_url`: URL of your google drive folder\n- `target_lang`: The language into which the text should be translated\n- `source_lang`: Language of the text to be translated (optional, if not specified DeepL will try to auto-detect the source language)"
      },
      "typeVersion": 1,
      "notes": "This stickyNote node performs automated tasks as part of the workflow."
    }
  ],
  "pinData": {},
  "connections": {
    "f6e2c1e6-b68d-47b3-8582-7772f8b1ee95": {
      "main": [
        [
          {
            "node": "error-handler-f6e2c1e6-b68d-47b3-8582-7772f8b1ee95",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "error-handler-f6e2c1e6-b68d-47b3-8582-7772f8b1ee95-073011ac",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "error-handler-f6e2c1e6-b68d-47b3-8582-7772f8b1ee95-079191c2",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "error-handler-f6e2c1e6-b68d-47b3-8582-7772f8b1ee95-1797a284",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "error-handler-f6e2c1e6-b68d-47b3-8582-7772f8b1ee95-b66b4a9f",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "error-handler-f6e2c1e6-b68d-47b3-8582-7772f8b1ee95-f17cd93f",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "error-handler-f6e2c1e6-b68d-47b3-8582-7772f8b1ee95-3b0c9552",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "error-handler-f6e2c1e6-b68d-47b3-8582-7772f8b1ee95-304c6f9c",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "error-handler-f6e2c1e6-b68d-47b3-8582-7772f8b1ee95-695bc2e0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9fab53d1-dfa8-4b27-892f-884853df1e50": {
      "main": [
        [
          {
            "node": "error-handler-9fab53d1-dfa8-4b27-892f-884853df1e50",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "error-handler-9fab53d1-dfa8-4b27-892f-884853df1e50-7fa7a08e",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "error-handler-9fab53d1-dfa8-4b27-892f-884853df1e50-b082a8de",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "error-handler-9fab53d1-dfa8-4b27-892f-884853df1e50-19405f1b",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "error-handler-9fab53d1-dfa8-4b27-892f-884853df1e50-c67d9152",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "error-handler-9fab53d1-dfa8-4b27-892f-884853df1e50-82e646b2",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "error-handler-9fab53d1-dfa8-4b27-892f-884853df1e50-823f5905",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "error-handler-9fab53d1-dfa8-4b27-892f-884853df1e50-495f0c8f",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "error-handler-9fab53d1-dfa8-4b27-892f-884853df1e50-63c7a34f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "717972fe-45fa-4bd4-acf9-9db2efb45c12": {
      "main": [
        [
          {
            "node": "error-handler-717972fe-45fa-4bd4-acf9-9db2efb45c12",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "error-handler-717972fe-45fa-4bd4-acf9-9db2efb45c12-d581f2ab",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "error-handler-717972fe-45fa-4bd4-acf9-9db2efb45c12-c612c618",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "error-handler-717972fe-45fa-4bd4-acf9-9db2efb45c12-d6d833ce",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "error-handler-717972fe-45fa-4bd4-acf9-9db2efb45c12-8e8fe393",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "error-handler-717972fe-45fa-4bd4-acf9-9db2efb45c12-f05b77d8",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "error-handler-717972fe-45fa-4bd4-acf9-9db2efb45c12-d0c132e3",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "error-handler-717972fe-45fa-4bd4-acf9-9db2efb45c12-dc84e866",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "error-handler-717972fe-45fa-4bd4-acf9-9db2efb45c12-d6b44634",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "242d4895-5b02-46b8-9c87-07fd2e11c9ba": {
      "main": [
        [
          {
            "node": "error-handler-242d4895-5b02-46b8-9c87-07fd2e11c9ba-c533eb4d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b7cc611e-81a3-4468-bcab-ca6de564fbeb": {
      "main": [
        [
          {
            "node": "error-handler-b7cc611e-81a3-4468-bcab-ca6de564fbeb-0cc4f281",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c9e9b000-8202-410d-9630-b08481ba4e39": {
      "main": [
        [
          {
            "node": "error-handler-c9e9b000-8202-410d-9630-b08481ba4e39-001a57e9",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "name": "Stickynote Workflow",
  "settings": {
    "executionOrder": "v1",
    "saveManualExecutions": true,
    "callerPolicy": "workflowsFromSameOwner",
    "errorWorkflow": null,
    "timezone": "UTC",
    "executionTimeout": 3600,
    "maxExecutions": 1000,
    "retryOnFail": true,
    "retryCount": 3,
    "retryDelay": 1000
  },
  "description": "Automated workflow: Stickynote Workflow. This workflow integrates 9 different services: stickyNote, httpRequest, filter, wait, googleDrive. It contains 23 nodes and follows best practices for error handling and security.",
  "meta": {
    "versionId": "1.0.0",
    "createdAt": "2025-09-29T07:07:58.314700",
    "updatedAt": "2025-09-29T07:07:58.314736",
    "owner": "n8n-user",
    "license": "MIT",
    "category": "automation",
    "status": "active",
    "priority": "high",
    "environment": "production"
  },
  "tags": [
    "automation",
    "n8n",
    "production-ready",
    "excellent",
    "optimized"
  ],
  "notes": "Excellent quality workflow: Stickynote Workflow. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."
}