Workflow n8n

Automatisation Google Drive avec n8n : traduction de documents PDF

Ce workflow n8n a pour objectif d'automatiser la traduction de documents PDF stockés sur Google Drive. Dans un contexte professionnel où la gestion de documents multilingues est essentielle, ce processus permet de gagner du temps et d'éviter les erreurs humaines lors de la traduction manuelle. Les utilisateurs peuvent ainsi se concentrer sur des tâches à plus forte valeur ajoutée tout en s'assurant que leurs documents sont traduits de manière efficace et précise.

  • Étape 1 : le workflow commence par un déclencheur manuel qui permet à l'utilisateur de lancer le processus à tout moment.
  • Étape 2 : il récupère les fichiers d'un dossier spécifique sur Google Drive, en filtrant uniquement les documents PDF grâce à un nœud de filtrage.
  • Étape 3 : les fichiers sont ensuite téléchargés pour être traduits.
  • Étape 4 : une requête HTTP est envoyée pour demander la traduction, suivie d'une vérification de l'état de la traduction. Si la traduction est terminée, le document traduit est récupéré et téléchargé dans le dossier d'origine sur Google Drive. Ce workflow offre des bénéfices significatifs en termes de productivité et de réduction des erreurs, permettant aux entreprises de gérer plus efficacement leurs documents multilingues.
Tags clés :Google Driveautomatisationtraductionn8ndocuments PDF
Catégorie: Manual · Tags: Google Drive, automatisation, traduction, n8n, documents PDF0

Workflow n8n Google Drive, traduction, documents PDF : vue d'ensemble

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

Workflow n8n Google Drive, traduction, documents PDF : détail des nœuds

  • Sticky Note

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

  • Run manually

    Ce noeud déclenche manuellement l'exécution du workflow.

  • Get files from specified folder

    Ce noeud récupère des fichiers d'un dossier spécifié sur Google Drive.

  • Use only PDF documents

    Ce noeud filtre les fichiers pour n'utiliser que les documents PDF.

  • Download files

    Ce noeud télécharge des fichiers depuis Google Drive en utilisant leur ID.

  • Send translate request

    Ce noeud envoie une requête HTTP pour demander une traduction.

  • Check translation status

    Ce noeud vérifie le statut de la traduction via une requête HTTP.

  • Wait a bit

    Ce noeud introduit une pause dans le workflow pour une durée spécifiée.

  • file translated?

    Ce noeud évalue une condition pour déterminer si le fichier a été traduit.

  • Wait between documents

    Ce noeud introduit une pause entre le traitement de différents documents.

  • Get translated document from deepL

    Ce noeud récupère le document traduit depuis DeepL via une requête HTTP.

  • Uplad to original folder

    Ce noeud télécharge le fichier traduit dans le dossier d'origine sur Google Drive.

  • ⚙️ config

    Ce noeud configure des champs et options pour le workflow.

  • Sticky Note1

    Ce noeud crée une seconde note autocollante avec des paramètres de couleur, largeur, hauteur et contenu.

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

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "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](https://www.deepl.com/docs-api/documents/translate-document)"
      },
      "typeVersion": 1
    },
    {
      "id": "9cad538a-0efb-4186-b588-ef4d764fdf4e",
      "name": "Run manually",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        1100,
        560
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "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"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "6q7v3i91ZDHQOKx3",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "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
    },
    {
      "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"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "6q7v3i91ZDHQOKx3",
          "name": "Google Drive account"
        }
      },
      "executeOnce": false,
      "typeVersion": 3
    },
    {
      "id": "f6e2c1e6-b68d-47b3-8582-7772f8b1ee95",
      "name": "Send translate request",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2440,
        560
      ],
      "parameters": {
        "url": "https://api.deepl.com/v2/document",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "multipart-form-data",
        "authentication": "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"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "NcB0kuT7IJgHvWlC",
          "name": "Deepl API Header auth"
        }
      },
      "typeVersion": 4.1
    },
    {
      "id": "9fab53d1-dfa8-4b27-892f-884853df1e50",
      "name": "Check translation status",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1320,
        820
      ],
      "parameters": {
        "url": "=https://api.deepl.com/v2/document/{{ $json.document_id }}",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "document_key",
              "value": "={{ $('Send translate request').item.json.document_key }}"
            }
          ]
        },
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "NcB0kuT7IJgHvWlC",
          "name": "Deepl API Header auth"
        }
      },
      "typeVersion": 4.1
    },
    {
      "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
    },
    {
      "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
    },
    {
      "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
    },
    {
      "id": "717972fe-45fa-4bd4-acf9-9db2efb45c12",
      "name": "Get translated document from deepL",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2240,
        800
      ],
      "parameters": {
        "url": "=https://api.deepl.com/v2/document/{{ $json.document_id }}/result",
        "method": "POST",
        "options": {
          "timeout": 30000
        },
        "sendBody": true,
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "document_key",
              "value": "={{ $('Send translate request').item.json.document_key }}"
            }
          ]
        },
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "NcB0kuT7IJgHvWlC",
          "name": "Deepl API Header auth"
        }
      },
      "typeVersion": 4.1
    },
    {
      "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 }}"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "6q7v3i91ZDHQOKx3",
          "name": "Google Drive account"
        }
      },
      "executeOnce": false,
      "typeVersion": 3
    },
    {
      "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
    },
    {
      "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
    }
  ],
  "pinData": {},
  "connections": {
    "Wait a bit": {
      "main": [
        [
          {
            "node": "file translated?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Run manually": {
      "main": [
        [
          {
            "node": "⚙️ config",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "⚙️ config": {
      "main": [
        [
          {
            "node": "Get files from specified folder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download files": {
      "main": [
        [
          {
            "node": "Send translate request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "file translated?": {
      "main": [
        [
          {
            "node": "Wait between documents",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Check translation status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send translate request": {
      "main": [
        [
          {
            "node": "Check translation status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Use only PDF documents": {
      "main": [
        [
          {
            "node": "Download files",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait between documents": {
      "main": [
        [
          {
            "node": "Get translated document from deepL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check translation status": {
      "main": [
        [
          {
            "node": "Wait a bit",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get files from specified folder": {
      "main": [
        [
          {
            "node": "Use only PDF documents",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get translated document from deepL": {
      "main": [
        [
          {
            "node": "Uplad to original folder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Workflow n8n Google Drive, traduction, documents PDF : pour qui est ce workflow ?

Ce workflow s'adresse aux entreprises et équipes qui gèrent régulièrement des documents en plusieurs langues, notamment dans les secteurs de la traduction, de l'édition et du marketing. Les utilisateurs n'ont pas besoin d'un niveau technique avancé pour mettre en place cette automatisation n8n.

Workflow n8n Google Drive, traduction, documents PDF : problème résolu

Ce workflow résout le problème de la gestion manuelle des traductions de documents PDF, qui peut être long et sujet à des erreurs. En automatisant ce processus, les utilisateurs éliminent les frustrations liées à la recherche et à la traduction manuelle, réduisant ainsi le temps consacré à ces tâches. À la fin du processus, les utilisateurs obtiennent des documents traduits de manière fiable et rapide, améliorant ainsi leur efficacité opérationnelle.

Workflow n8n Google Drive, traduction, documents PDF : étapes du workflow

Étape 1 : le workflow est déclenché manuellement.

  • Étape 1 : il récupère les fichiers d'un dossier spécifique sur Google Drive.
  • Étape 2 : un filtre est appliqué pour ne conserver que les documents PDF.
  • Étape 3 : les fichiers sont téléchargés pour être traduits.
  • Étape 4 : une requête HTTP est envoyée pour demander la traduction.
  • Étape 5 : le workflow attend la confirmation de l'état de la traduction.
  • Étape 6 : si la traduction est terminée, le document traduit est récupéré.
  • Étape 7 : enfin, le document traduit est téléchargé dans le dossier d'origine sur Google Drive.

Workflow n8n Google Drive, traduction, documents PDF : guide de personnalisation

Pour personnaliser ce workflow, vous pouvez modifier l'URL de la requête HTTP pour l'adapter à votre service de traduction préféré. Assurez-vous également de spécifier le bon dossier Google Drive dans le nœud de récupération des fichiers. Si vous souhaitez ajouter d'autres types de fichiers, ajustez le filtre en conséquence. Pensez à sécuriser votre workflow en intégrant des authentifications appropriées pour les services utilisés. Enfin, vous pouvez ajuster les temps d'attente entre les traductions pour optimiser le flux selon vos besoins.