Automate WooCommerce Product Management with Google Sheets & Drive API

Streamline your WooCommerce product management using the Google Sheets API and Google Drive API. This workflow automates the synchronization of product data, allowing you to effortlessly update and manage inventory in real-time. Features include automatic data updates from WooCommerce to Google Sheets, integration with Google Drive for seamless file storage, and conditional logic to manage product listings. Perfect for e-commerce stores processing hundreds of products daily, this solution requires 3 accounts: WooCommerce API, Google Sheets OAuth, and Google Drive OAuth. Save up to 10 hours a week by minimizing manual updates and ensuring accurate inventory tracking.

1 Trigger
3,442 views20 nodesAug 2025Charlotte Hayes

Categories

Content CreationMultimodal AI

APIs

Google Sheets APIGoogle Drive API

Credentials

3 required

Quick Actions

Copy or download to import into your n8n instance

Workflow JSON
{
  "id": "HQcHQhEaig6JXOH4",
  "meta": {
    "instanceId": "a4bfc93e975ca233ac45ed7c9227d84cf5a2329310525917adaf3312e10d5462"
  },
  "name": "AI Virtual TryOn for WooCommerce Nano Banana",
  "tags": [],
  "nodes": [
    {
      "id": "614bb588-3180-47e7-8dd6-fd61883d6042",
      "name": "When clicking ‘Test workflow’",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -480,
        1600
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "9f15348f-8e76-43d7-a17a-3efb1b9d5724",
      "name": "Get File image",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        448,
        1872
      ],
      "parameters": {
        "url": "={{ $json.images[0].url }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "44d01abf-6b54-432a-a21c-a4b94c1487c7",
      "name": "Get Url image",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        224,
        1872
      ],
      "parameters": {
        "url": "=https://queue.fal.run/fal-ai/nano-banana/requests/{{ $json.request_id }}",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "daOZafXpRXLtoLUV",
          "name": "Fal.run API"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "d9e88f7a-dc2b-4470-87ae-92919b5c28d2",
      "name": "Get status",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        864,
        1616
      ],
      "parameters": {
        "url": "=https://queue.fal.run/fal-ai/nano-banana/requests/{{ $('Create Image').item.json.request_id }}/status ",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "daOZafXpRXLtoLUV",
          "name": "Fal.run API"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "722f45bd-a779-43ba-9c36-8bba1d5fc421",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -464,
        320
      ],
      "parameters": {
        "color": 6,
        "width": 340,
        "height": 540,
        "content": "## Model\n![image](https://n3wstorage.b-cdn.net/n3witalia/model.jpg)"
      },
      "typeVersion": 1
    },
    {
      "id": "2bb4598f-801e-4730-a15f-e006db7699ac",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -80,
        320
      ],
      "parameters": {
        "color": 6,
        "width": 360,
        "height": 540,
        "content": "## Product\n![image](https://n3wstorage.b-cdn.net/n3witalia/tshirt.jpg)"
      },
      "typeVersion": 1
    },
    {
      "id": "62a9183c-9201-4843-9d2e-c845b8dcbf7d",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        576,
        320
      ],
      "parameters": {
        "color": 4,
        "width": 340,
        "height": 540,
        "content": "## Result\n![image](https://n3wstorage.b-cdn.net/n3witalia/result_sport.jpeg)"
      },
      "typeVersion": 1
    },
    {
      "id": "ab7daa1a-2494-4dee-af0d-c19d28adf3f0",
      "name": "WooCommerce",
      "type": "n8n-nodes-base.wooCommerce",
      "position": [
        1104,
        1872
      ],
      "parameters": {
        "imagesUi": {
          "imagesValues": [
            {
              "alt": "",
              "src": "={{ $('Get File image').item.json.images[0].url }}",
              "name": ""
            }
          ]
        },
        "resource": "product",
        "operation": "update",
        "productId": "={{ $('Loop Over Items').item.json['PRODUCT ID'] }}",
        "metadataUi": {},
        "dimensionsUi": {},
        "updateFields": {}
      },
      "credentials": {
        "wooCommerceApi": {
          "id": "vYYrjB5kgHQ0XByZ",
          "name": "WooCommerce (wp.test.7hype.com)"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "e8e4c772-b11e-404a-b581-5710c680d853",
      "name": "Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -256,
        1600
      ],
      "parameters": {
        "options": {
          "returnFirstMatch": false
        },
        "filtersUI": {
          "values": [
            {
              "lookupValue": "=",
              "lookupColumn": "IMAGE RESULT"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/11ebWJvwwXHgvQld9kxywKQUvIoBw6xMa0g0BuIqHDxE/edit#gid=0",
          "cachedResultName": "Foglio1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "11ebWJvwwXHgvQld9kxywKQUvIoBw6xMa0g0BuIqHDxE",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/11ebWJvwwXHgvQld9kxywKQUvIoBw6xMa0g0BuIqHDxE/edit?usp=drivesdk",
          "cachedResultName": "AI Virtual TryOn for WooCommerce"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "JYR6a64Qecd6t8Hb",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "86a83c5c-616a-498a-a844-8b689fea7c4a",
      "name": "Wait 60 sec.",
      "type": "n8n-nodes-base.wait",
      "position": [
        672,
        1616
      ],
      "webhookId": "351bd496-a9cc-445c-86f6-a56189df0028",
      "parameters": {
        "amount": 10
      },
      "typeVersion": 1.1
    },
    {
      "id": "ff15269e-472e-4c65-872c-d24dac05739f",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -464,
        -176
      ],
      "parameters": {
        "color": 3,
        "width": 740,
        "height": 424,
        "content": "# AI Virtual TryOn for WooCommerce\nThis Workflow is designed to streamline the process of creating realistic images of clothing products worn by models, eliminating the need for expensive photoshoots. The primary goal is to automate the generation of virtual try-on images for an eCommerce store selling clothing, using advanced image processing technologies.\n\nStarting from a Google Sheets document or a database containing the URLs of a model image and a clothing product, the AI Agent generates an image of the model wearing the selected clothing item (Virtual TryOn).\n\nOnce the URL of the resulting image is obtained, the system downloads the final image file. This image is then uploaded to Google Drive, archived via FTP in a dedicated folder, or directly added to the WooCommerce product page.\n\nBy offering realistic images of clothing items worn by models, this automation process saves time and resources, making product catalog management more efficient. This approach not only enhances the competitiveness of the eCommerce store but also provides greater flexibility in creating high-quality visual content adaptable to various digital marketing campaigns.\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "d223fd2a-6590-47e3-b197-a2fc9934c070",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -464,
        944
      ],
      "parameters": {
        "width": 740,
        "height": 260,
        "content": "## STEP 1 - GOOGLE SHEET\nCreate a [Google Sheet like this](https://docs.google.com/spreadsheets/d/11ebWJvwwXHgvQld9kxywKQUvIoBw6xMa0g0BuIqHDxE/edit?usp=sharing).\n\nPlease insert:\n- in the \"IMAGE MODEL\" column the basic image of the model to dress\n- in the \"IMAGE PRODUCT\" column the image of the item of clothing to wear\n- in the \"PRODUCT ID\" column the ID of the product on your WooCommerce\n\nLeave the \"IMAGE RESULT\" column unfilled. It will be inserted by the system once the image has been created"
      },
      "typeVersion": 1
    },
    {
      "id": "8018008c-f420-498b-8762-4acab6af295d",
      "name": "Completed?",
      "type": "n8n-nodes-base.if",
      "position": [
        1040,
        1616
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "383d112e-2cc6-4dd4-8985-f09ce0bd1781",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.status }}",
              "rightValue": "COMPLETED"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "78d4b56e-0b29-40cb-a1fc-e51b5c092a93",
      "name": "Upload Image",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        656,
        1872
      ],
      "parameters": {
        "name": "={{ $now.format('yyyyLLddHHmmss') }}-{{ $json.images[0].file_name }}",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "1aHRwLWyrqfzoVC8HoB-YMrBvQ4tLC-NZ",
          "cachedResultUrl": "https://drive.google.com/drive/folders/1aHRwLWyrqfzoVC8HoB-YMrBvQ4tLC-NZ",
          "cachedResultName": "Fal.run"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "HEy5EuZkgPZVEa9w",
          "name": "Google Drive account (n3w.it)"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "a0a4b685-b46e-400c-b8c7-863d0dfa518b",
      "name": "Update result",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        896,
        1872
      ],
      "parameters": {
        "columns": {
          "value": {
            "row_number": "={{ $('Loop Over Items').item.json.row_number }}",
            "IMAGE RESULT": "={{ $('Get File image').item.json.images[0].url }}"
          },
          "schema": [
            {
              "id": "IMAGE MODEL",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "IMAGE MODEL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "IMAGE PRODUCT",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "IMAGE PRODUCT",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "PRODUCT ID",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "PRODUCT ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "IMAGE RESULT",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "IMAGE RESULT",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "row_number"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/11ebWJvwwXHgvQld9kxywKQUvIoBw6xMa0g0BuIqHDxE/edit#gid=0",
          "cachedResultName": "Foglio1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "11ebWJvwwXHgvQld9kxywKQUvIoBw6xMa0g0BuIqHDxE",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/11ebWJvwwXHgvQld9kxywKQUvIoBw6xMa0g0BuIqHDxE/edit?usp=drivesdk",
          "cachedResultName": "AI Virtual TryOn for WooCommerce"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "JYR6a64Qecd6t8Hb",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "0e09b903-fd2a-4109-86eb-22ce23065c2f",
      "name": "Set data",
      "type": "n8n-nodes-base.set",
      "position": [
        224,
        1616
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "c713d31f-9abd-496a-ac79-e8e2efe60aa0",
              "name": "model",
              "type": "string",
              "value": "={{ $json['IMAGE MODEL'] }}"
            },
            {
              "id": "58fb5e76-6576-4d16-8b25-b931c7935c01",
              "name": "shirt",
              "type": "string",
              "value": "={{ $json['IMAGE PRODUCT'] }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "f7b63738-d131-4c85-894f-b18e1cd93884",
      "name": "Create Image",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        464,
        1616
      ],
      "parameters": {
        "url": "https://queue.fal.run/fal-ai/nano-banana/edit",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n     \"prompt\": \"make a photo of the model wearing the submitted clothing item and creating the themed background\",\n     \"image_urls\": [\n       \"{{ $json.model }}\",\n       \"{{ $json.shirt }}\"\n     ]\n   }",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "daOZafXpRXLtoLUV",
          "name": "Fal.run API"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "ddf4b966-f1e3-4e55-8282-5146f91d7242",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -464,
        1248
      ],
      "parameters": {
        "width": 740,
        "height": 156,
        "content": "## STEP 2 - GET API KEY (YOURAPIKEY)\nCreate an account [here](https://fal.ai/) and obtain API KEY.\nIn the node \"Create Image\" set \"Header Auth\" and set:\n- Name: \"Authorization\"\n- Value: \"Key YOURAPIKEY\""
      },
      "typeVersion": 1
    },
    {
      "id": "d5410953-da60-446a-8e79-9eab1aecd6ea",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -48,
        1600
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "ddbaa607-7da6-4865-b362-3b482a326399",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -464,
        1440
      ],
      "parameters": {
        "width": 740,
        "height": 92,
        "content": "## STEP 3 - WOOCOMMERCE\n- Set WooCommerce API"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "32487dc5-f108-4e1b-af68-dc5d66d2cfef",
  "connections": {
    "Set data": {
      "main": [
        [
          {
            "node": "Create Image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Completed?": {
      "main": [
        [
          {
            "node": "Get Url image",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait 60 sec.",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get status": {
      "main": [
        [
          {
            "node": "Completed?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "WooCommerce": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Image": {
      "main": [
        [
          {
            "node": "Wait 60 sec.",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload Image": {
      "main": [
        [
          {
            "node": "Update result",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait 60 sec.": {
      "main": [
        [
          {
            "node": "Get status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Url image": {
      "main": [
        [
          {
            "node": "Get File image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update result": {
      "main": [
        [
          {
            "node": "WooCommerce",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get File image": {
      "main": [
        [
          {
            "node": "Upload Image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [],
        [
          {
            "node": "Set data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking ‘Test workflow’": {
      "main": [
        [
          {
            "node": "Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Related Workflows

Automate Social Media Content Creation with Google Gemini & OpenAI

Streamline your social media content strategy with an automated workflow using Google Gemini and OpenAI GPT. This solution allows social media managers to generate, schedule, and publish posts across Facebook, Instagram, and LinkedIn seamlessly, saving hours of manual work each week. Features real-time content generation, intelligent scheduling, and integration with Facebook Graph API and Twitter API for effective outreach. Perfect for social media managers handling multiple accounts and needing consistent, engaging content for their audience. Requires 9 accounts: Google Palm API, OpenAI API, Facebook Graph API, and more. Experience up to 70% faster content creation and manage over 30 posts daily with AI-driven insights.

271,771 views
Social MediaMultimodal AI

Automate AI Video Creation with Google Sheets and OpenAI for TikTok

Automate the generation of AI videos for TikTok, YouTube, and Instagram using the Google Sheets API and OpenAI GPT. Leverage structured data from Google Sheets to create engaging video content effortlessly. Features seamless integration with multiple platforms, automatic content generation, and real-time video uploads. Perfect for digital marketers, content creators, and social media managers looking to enhance their video production workflow. Requires 3 accounts: Google Sheets OAuth, OpenAI API, and Blotato API. Save up to 10 hours weekly by automating video creation and uploads, allowing you to focus on strategy and engagement.

220,234 views
Content CreationMultimodal AI

Automate Video Creation with Google Sheets & OpenAI for YouTube Uploads

Automate your video creation process using Google Sheets and OpenAI GPT to generate content, then seamlessly upload videos to YouTube via the Google Drive API. This workflow simplifies the video production cycle from concept to publication. Features include real-time content generation with GPT, automated scheduling for uploads, and integration with Google Sheets for data management. Perfect for content creators managing multiple video projects or marketing teams needing consistent video output. Requires 3 accounts: Google Sheets OAuth, Google Drive OAuth, OpenAI API Key. Save up to 10 hours weekly by automating video creation and uploads, enabling you to focus on strategy and engagement.

196,068 views
Content CreationMultimodal AI

Automate Short-Form Video Creation with OpenAI, Google Drive, and Discord

Automate the generation of short-form videos using AI with OpenAI and seamlessly upload them to social networks using Google Drive API. This workflow integrates automated video creation, storage, and distribution to save your team time and streamline content production. Features include real-time video rendering, automatic uploads to multiple platforms, and integration with Google Sheets for analytics tracking. Perfect for marketing teams and content creators looking to enhance their social media presence without manual effort. Requires 4 accounts: OpenAI API Key, Google Drive OAuth, Discord Webhook, and more. Save up to 10 hours a week by producing and distributing engaging video content effortlessly.

160,687 views
Content CreationMultimodal AI

How to Use This Workflow

1Import to n8n

  1. Copy the JSON using the button above
  2. Open your n8n instance
  3. Click “Import workflow” or press Ctrl+V
  4. Paste the JSON and click “Import”

2Before Running

Configure credentials and update service-specific settings before executing the workflow. Review required credentials in the Technical Details section above.

3.4K