8
n8n 한국어amn8n.com

Google Slides 프레젠테이션 자동 번역

고급

이것은Document Extraction, Multimodal AI분야의자동화 워크플로우로, 18개의 노드를 포함합니다.주로 Set, Code, Wait, SplitOut, GoogleDrive 등의 노드를 사용하며. Gemini 기반 AI를 활용하여 Google Slides 프레젠테이션을 원하는 언어로 자동 번역

사전 요구사항
  • Google Drive API 인증 정보
  • Google Gemini API Key
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
  "id": "RsBtAMu8K66veIXY",
  "meta": {
    "instanceId": "a4bfc93e975ca233ac45ed7c9227d84cf5a2329310525917adaf3312e10d5462",
    "templateCredsSetupCompleted": true
  },
  "name": "Auto-Translate Google Slides Presentation",
  "tags": [],
  "nodes": [
    {
      "id": "ebcadd07-05d8-4697-a3f7-e26c4bd45209",
      "name": "워크플로우 '실행' 클릭 시",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -624,
        -80
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "2b24ed35-54ec-4bbe-9679-727a7628c0ac",
      "name": "프레젠테이션에서 슬라이드 가져오기",
      "type": "n8n-nodes-base.googleSlides",
      "position": [
        80,
        -80
      ],
      "parameters": {
        "operation": "getSlides",
        "presentationId": "={{ $json.id }}"
      },
      "credentials": {
        "googleSlidesOAuth2Api": {
          "id": "HuT9vQXbjmHQ0YQD",
          "name": "Google Slides account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "a1ccda01-d0b1-4434-a1dd-ca17c2a1179e",
      "name": "Google Gemini 채팅 모델",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        400,
        384
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "googlePalmApi": {
          "id": "AaNPKXAphyMzRgfA",
          "name": "Google Gemini(PaLM) (Eure)"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "9185e2de-fd63-47a6-b2b9-79d251a85140",
      "name": "Google Slides 번역",
      "type": "n8n-nodes-base.googleSlidesTool",
      "position": [
        752,
        416
      ],
      "parameters": {
        "textUi": {
          "textValues": [
            {
              "text": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('textValues0_Search_For', ``, 'string') }}",
              "matchCase": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('textValues0_Match_Case', ``, 'boolean') }}",
              "replaceText": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('textValues0_Replace_With', ``, 'string') }}",
              "pageObjectIds": "={{ $('When Executed by Another Workflow').item.json.objectId }}"
            }
          ]
        },
        "options": {},
        "operation": "replaceText",
        "presentationId": "={{ $('When Executed by Another Workflow').item.json.presentationId }}"
      },
      "credentials": {
        "googleSlidesOAuth2Api": {
          "id": "HuT9vQXbjmHQ0YQD",
          "name": "Google Slides account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "5ee73a74-b554-489b-8ca2-861ae5afaea9",
      "name": "분할",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        816,
        -64
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "extractTexts"
      },
      "typeVersion": 1
    },
    {
      "id": "b2c99a24-48af-45e2-9420-a76a147e0f61",
      "name": "워크플로우 실행",
      "type": "n8n-nodes-base.executeWorkflow",
      "position": [
        1008,
        -64
      ],
      "parameters": {
        "options": {},
        "workflowId": {
          "__rl": true,
          "mode": "id",
          "value": "RsBtAMu8K66veIXY"
        },
        "workflowInputs": {
          "value": {
            "lang": "={{ $('Set Language').item.json.lang }}",
            "objectId": "={{ $('Extract Text').item.json.objectId }}",
            "extractTexts": "={{ $json.extractTexts }}",
            "presentationId": "={{ $('Duplicate presentation').item.json.id }}"
          },
          "schema": [
            {
              "id": "objectId",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "objectId",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "lang",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "lang",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "presentationId",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "presentationId",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "extractTexts",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "extractTexts",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": true,
          "convertFieldsToString": true
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "a9682dde-b5d5-46de-92b3-861a459d9e16",
      "name": "다른 워크플로우에 의해 실행될 때",
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "position": [
        16,
        208
      ],
      "parameters": {
        "inputSource": "jsonExample",
        "jsonExample": "{\n  \"objectId\": \"a string\",\n  \"lang\": \"a string\",\n  \"presentationId\": \"a string\",\n  \"extractTexts\": \"a string\" \n}\n\n"
      },
      "typeVersion": 1.1
    },
    {
      "id": "bd0f34c0-414f-43ac-b30c-751e21bd7f92",
      "name": "프레젠테이션 복제",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -176,
        -80
      ],
      "parameters": {
        "name": "=Presentation_{{ $json.lang }}_{{$now.format('yyyyLLddHHii')}}",
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "=XXXXXXX"
        },
        "options": {},
        "operation": "copy"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "HEy5EuZkgPZVEa9w",
          "name": "Google Drive account (n3w.it)"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "4d75421a-ee3a-4d80-9e8d-d42de564d879",
      "name": "항목 반복",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        352,
        -80
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "bb40c6fc-7f6e-401d-b8f1-e2240890b936",
      "name": "텍스트 추출",
      "type": "n8n-nodes-base.code",
      "position": [
        608,
        -64
      ],
      "parameters": {
        "jsCode": "// Estrai i testi e restituisci anche l'objectId della slide\nconst results = [];\n\nfor (const item of $input.all()) {\n  const objectId = item.json.objectId;\n  const texts = [];\n\n  const pageElements = item.json.pageElements || [];\n\n  for (const element of pageElements) {\n    const textElements = element?.shape?.text?.textElements || [];\n\n    for (const textElement of textElements) {\n      if (textElement.textRun?.content) {\n        texts.push(textElement.textRun.content);\n      }\n    }\n  }\n\n  results.push({\n    json: {\n      objectId,\n      extractTexts: texts\n    }\n  });\n}\n\nreturn results;\n"
      },
      "typeVersion": 2
    },
    {
      "id": "475c9fef-ceb0-4cf6-a50f-568dd9fa8f56",
      "name": "10초 대기",
      "type": "n8n-nodes-base.wait",
      "position": [
        1184,
        -64
      ],
      "webhookId": "5ee20223-84d9-4812-8919-f189ac93f841",
      "parameters": {
        "amount": 10
      },
      "typeVersion": 1.1
    },
    {
      "id": "09f07da1-e3e0-4193-8444-26d08d36687b",
      "name": "3초 대기",
      "type": "n8n-nodes-base.wait",
      "position": [
        832,
        208
      ],
      "webhookId": "9152728c-a3a1-4f0e-8571-b636b72acd5a",
      "parameters": {
        "amount": 3
      },
      "typeVersion": 1.1
    },
    {
      "id": "07a95504-11c9-4aeb-b033-e97ea6b1959e",
      "name": "번역 전문가",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        432,
        208
      ],
      "parameters": {
        "text": "=Text to translate:\n{{ $json.extractTexts }}",
        "options": {
          "systemMessage": "=You are an expert Google Slides translator. Your primary function is to translate slides sent to you to {{ $json.lang }} (Code ISO-639) using the tool \"Translate language\" for better performs and then use the \"Translate Google Slide\" tool.\n\n## Translation Guidelines:\n\n**TRANSLATE:**\n- All text content in slides\n\n**DO NOT TRANSLATE:**\n- Email addresses (e.g., info@company.com)\n- Website URLs and links (e.g., www.example.it)\n- Physical addresses and locations\n- Phone numbers\n- Company names and brand names\n- Proper nouns (names of people, places, organizations)\n- Any other information that should remain in the original language\n\n## Process:\n1. Receive the Google Slides document\n2. Identify all text elements that require translation\n3. Use the \"Translate Google Slide\" tool to perform the translation from Italian to English\n4. Ensure proper context and professional tone in the English translation\n5. Maintain the original formatting and structure of the slides\n\n## Quality Standards:\n- Provide accurate, contextually appropriate translations\n- Maintain professional terminology and tone\n- Preserve the original meaning and intent\n- Ensure readability and flow in English"
        },
        "promptType": "define"
      },
      "typeVersion": 2.1
    },
    {
      "id": "56236111-f91a-457b-a209-6ddd561fce2d",
      "name": "언어 설정",
      "type": "n8n-nodes-base.set",
      "position": [
        -416,
        -80
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "534bdd67-f789-4064-9da5-f958a73c9f89",
              "name": "lang",
              "type": "string",
              "value": "zh-CN"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "c4b91198-16a8-4f74-a014-77ace950442c",
      "name": "언어 번역",
      "type": "n8n-nodes-base.googleTranslateTool",
      "position": [
        592,
        416
      ],
      "parameters": {
        "text": "={{ $json.extractTexts }}",
        "translateTo": "={{ $json.lang }}"
      },
      "credentials": {
        "googleTranslateOAuth2Api": {
          "id": "182fiZUZeAOHI9Y5",
          "name": "Google Translate account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "26e239f5-2035-4baa-a934-991f12ae82d2",
      "name": "스티커 메모",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -640,
        -688
      ],
      "parameters": {
        "color": 3,
        "width": 784,
        "height": 240,
        "content": "## AI-Powered Auto-Translate Google Slides Presentation to any language\n\nThis workflow automates the **translation of Google Slides presentations** from **any languages**, while preserving the original formatting and slide structure. It leverages **Google APIs**, **AI translation (Gemini/PaLM)**, and modular execution for high flexibility and accuracy.\n\n**DISCLAIMER**: texts are split by Google Slides APIs into small blocks, so the translation will not always be contextualized."
      },
      "typeVersion": 1
    },
    {
      "id": "d7fccf24-7d3a-45d8-b7cc-d33f63ec0219",
      "name": "스티커 메모1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -640,
        -416
      ],
      "parameters": {
        "width": 784,
        "height": 112,
        "content": "## STEP 1\nIMPORTANT: Set the \"Set Language\" node with the language you want to translate the presentation into, with the format [ISO-639](https://cloud.google.com/translate/docs/languages)"
      },
      "typeVersion": 1
    },
    {
      "id": "263322f3-2059-41cd-88ec-4ccd5003c03c",
      "name": "스티커 메모2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -640,
        -272
      ],
      "parameters": {
        "width": 784,
        "height": 112,
        "content": "## STEP 2\nIn the node \"Duplicate presentation\" set up the presentation you want to translate"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "3b5ab2a4-83cc-4cd2-b0f3-e67088417c8e",
  "connections": {
    "5ee73a74-b554-489b-8ca2-861ae5afaea9": {
      "main": [
        [
          {
            "node": "b2c99a24-48af-45e2-9420-a76a147e0f61",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "09f07da1-e3e0-4193-8444-26d08d36687b": {
      "main": [
        []
      ]
    },
    "475c9fef-ceb0-4cf6-a50f-568dd9fa8f56": {
      "main": [
        [
          {
            "node": "4d75421a-ee3a-4d80-9e8d-d42de564d879",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "bb40c6fc-7f6e-401d-b8f1-e2240890b936": {
      "main": [
        [
          {
            "node": "5ee73a74-b554-489b-8ca2-861ae5afaea9",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "56236111-f91a-457b-a209-6ddd561fce2d": {
      "main": [
        [
          {
            "node": "bd0f34c0-414f-43ac-b30c-751e21bd7f92",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "4d75421a-ee3a-4d80-9e8d-d42de564d879": {
      "main": [
        [],
        [
          {
            "node": "bb40c6fc-7f6e-401d-b8f1-e2240890b936",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b2c99a24-48af-45e2-9420-a76a147e0f61": {
      "main": [
        [
          {
            "node": "475c9fef-ceb0-4cf6-a50f-568dd9fa8f56",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c4b91198-16a8-4f74-a014-77ace950442c": {
      "ai_tool": [
        [
          {
            "node": "07a95504-11c9-4aeb-b033-e97ea6b1959e",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "07a95504-11c9-4aeb-b033-e97ea6b1959e": {
      "main": [
        [
          {
            "node": "09f07da1-e3e0-4193-8444-26d08d36687b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "bd0f34c0-414f-43ac-b30c-751e21bd7f92": {
      "main": [
        [
          {
            "node": "2b24ed35-54ec-4bbe-9679-727a7628c0ac",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9185e2de-fd63-47a6-b2b9-79d251a85140": {
      "ai_tool": [
        [
          {
            "node": "07a95504-11c9-4aeb-b033-e97ea6b1959e",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "a1ccda01-d0b1-4434-a1dd-ca17c2a1179e": {
      "ai_languageModel": [
        [
          {
            "node": "07a95504-11c9-4aeb-b033-e97ea6b1959e",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "2b24ed35-54ec-4bbe-9679-727a7628c0ac": {
      "main": [
        [
          {
            "node": "4d75421a-ee3a-4d80-9e8d-d42de564d879",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a9682dde-b5d5-46de-92b3-861a459d9e16": {
      "main": [
        [
          {
            "node": "07a95504-11c9-4aeb-b033-e97ea6b1959e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ebcadd07-05d8-4697-a3f7-e26c4bd45209": {
      "main": [
        [
          {
            "node": "56236111-f91a-457b-a209-6ddd561fce2d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
자주 묻는 질문

이 워크플로우를 어떻게 사용하나요?

위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.

이 워크플로우는 어떤 시나리오에 적합한가요?

고급 - 문서 추출, 멀티모달 AI

유료인가요?

이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.

워크플로우 정보
난이도
고급
노드 수18
카테고리2
노드 유형15
난이도 설명

고급 사용자를 위한 16+개 노드의 복잡한 워크플로우

저자

Full-stack Web Developer based in Italy specialising in Marketing & AI-powered automations. For business enquiries, send me an email at info@n3w.it or add me on Linkedin.com/in/davideboizza

외부 링크
n8n.io에서 보기

이 워크플로우 공유

카테고리

카테고리: 34