AutomationFlowsEmail & Gmail › Send New Woocommerce Product Notifications to Slack, Gmail and Google Sheets

Send New Woocommerce Product Notifications to Slack, Gmail and Google Sheets

ByWeblineIndia @weblineindia on n8n.io

This workflow automatically detects when a new product is created in WooCommerce and instantly notifies internal teams through Slack and email. At the same time, it logs all product details into Google Sheets for tracking and reporting. A centralized data formatting step ensures…

Event trigger★★★★☆ complexity9 nodesWoo Commerce TriggerSlackGmailGoogle Sheets
Email & Gmail Trigger: Event Nodes: 9 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #12872 — we link there as the canonical source.

This workflow follows the Gmail → Google Sheets recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "FLjJvDCXaYDzkmXk",
  "name": "Retail \u2013 New Product Drop Notifications",
  "tags": [],
  "nodes": [
    {
      "id": "fd3f411c-f5b9-42ea-809b-9824ab16a07c",
      "name": "WooCommerce \u2013 New Product Created",
      "type": "n8n-nodes-base.wooCommerceTrigger",
      "position": [
        384,
        352
      ],
      "parameters": {
        "event": "product.created"
      },
      "credentials": {
        "wooCommerceApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "7f515193-cbd0-4a76-8a04-7f32f73610da",
      "name": "Format Product Details",
      "type": "n8n-nodes-base.set",
      "position": [
        592,
        352
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "499d039d-9fad-4f59-8eb3-a0b3010f234d",
              "name": "body.name",
              "type": "string",
              "value": "={{ $json.body.name }}"
            },
            {
              "id": "1cca1c31-a42e-4e71-b9ef-a8e18d0ca763",
              "name": "body.status",
              "type": "string",
              "value": "={{ $json.body.status }}"
            },
            {
              "id": "f0b852e3-82cd-4495-9cb3-5884148c766e",
              "name": "body.price",
              "type": "string",
              "value": "={{ $json.body.price }}"
            },
            {
              "id": "e7b9c164-c89f-4e6e-bc6a-214d50ecf5d3",
              "name": "body.permalink",
              "type": "string",
              "value": "={{ $json.body.permalink }}"
            },
            {
              "id": "8f5c70bf-961c-4561-b3cd-73954a36fa6c",
              "name": "body.images",
              "type": "array",
              "value": "={{ $json.body.images }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "67cb14fa-7f77-40d8-9c77-a9e0eae1a6ef",
      "name": "Notify Team on Slack",
      "type": "n8n-nodes-base.slack",
      "position": [
        832,
        352
      ],
      "parameters": {
        "text": "=New Product Live!\nName: {{ $json.body.name }}\nPrice: {{ $json.body.price }}\nURL: {{ $json.body.permalink }}\nImages:\n{{ $json.body.images.map(i => i.src).join('\\n') }}",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": ""
        },
        "otherOptions": {}
      },
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "a4203358-3d38-4f86-b4d7-851310d74d73",
      "name": "Send Product Launch Email",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1056,
        352
      ],
      "parameters": {
        "message": "=<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"UTF-8\" />\n  <title>New Product Arrival</title>\n</head>\n\n<body style=\"font-family: Arial, Helvetica, sans-serif; background-color:#f6f6f6; padding:20px;\">\n\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"max-width:600px; margin:auto; background:#ffffff; border-radius:6px;\">\n    <tr>\n      <td style=\"padding:20px;\">\n\n        <h2 style=\"margin-top:0; color:#333;\">\n          New Product Live!\n        </h2>\n\n        <p style=\"font-size:14px; color:#555;\">\n          A new product has just been published and is now available.\n        </p>\n\n        <table width=\"100%\" cellpadding=\"8\" cellspacing=\"0\" style=\"border-collapse:collapse; margin-top:15px;\">\n          <tr>\n            <td style=\"font-weight:bold; width:140px;\">Product Name:</td>\n            <td>{{ $('Format Product Details').item.json.body.name }}</td>\n          </tr>\n\n          <tr>\n            <td style=\"font-weight:bold;\">Price:</td>\n            <td>{{ $('Format Product Details').item.json.body.price }}</td>\n          </tr>\n\n          <tr>\n            <td style=\"font-weight:bold;\">Status:</td>\n            <td><{{ $('Format Product Details').item.json.body.status }}/td>\n          </tr>\n\n          <tr>\n            <td style=\"font-weight:bold;\">Product URL:</td>\n            <td>\n              <a href=\"{{ $('Format Product Details').item.json.body.permalink }}\" target=\"_blank\">\n                View Product\n              </a>\n            </td>\n          </tr>\n        </table>\n\n        <h3 style=\"margin-top:25px; color:#333;\">Product Images</h3>\n\n        <!-- Render ALL images -->\n        {{ $('Format Product Details').item.json.body.images.map(img => `\n          <div style=\"margin-bottom:15px;\">\n            <img \n              src=\"${img.src}\" \n              alt=\"Product Image\" \n              style=\"max-width:100%; border-radius:4px;\" />\n          </div>\n        `).join('') }}\n\n        <hr style=\"margin:25px 0; border:none; border-top:1px solid #eee;\" />\n\n        <p style=\"font-size:12px; color:#999;\">\n          This is an automated notification from your product system.\n        </p>\n\n      </td>\n    </tr>\n  </table>\n\n</body>\n</html>",
        "options": {},
        "subject": "=New Arrival: {{ $('Format Product Details').item.json.body.name }}"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "b10d432d-b850-4540-a00f-878cfe102a3f",
      "name": "Log Product in Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1312,
        352
      ],
      "parameters": {
        "columns": {
          "value": {
            "Price": "={{ $('Format Product Details').item.json.body.price }}",
            "Status": "={{ $('Format Product Details').item.json.body.status }}",
            "Image URL": "={{ $('Format Product Details').item.json.body.images?.map(i => i.src).join('\\n') }}",
            "Created At": "= {{ $now }}",
            "Product URL": "={{ $('Format Product Details').item.json.body.permalink }}",
            "Product Name": "={{ $('Format Product Details').item.json.body.name }}"
          },
          "schema": [
            {
              "id": "Product Name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Product Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Price",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Price",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Product URL",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Product URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Image URL",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Image URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Created At",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Created At",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/16f1RrNM-e_AEUGHApNXnUDxGb_xPSxxZlvtcLowbeg0/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "16f1RrNM-e_AEUGHApNXnUDxGb_xPSxxZlvtcLowbeg0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/16f1RrNM-e_AEUGHApNXnUDxGb_xPSxxZlvtcLowbeg0/edit?usp=drivesdk",
          "cachedResultName": "(Retail) New Product Drop Notifications"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "335693ad-bc49-414f-9ed0-f762bd4cf6e5",
      "name": "Workflow Overview",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -320,
        160
      ],
      "parameters": {
        "color": null,
        "width": 628,
        "height": 436,
        "content": "## Retail \u2013 New Product Drop Notifications\n\n### Purpose\nAutomatically notify teams and log records when a new product is created in WooCommerce, ensuring consistent communication without manual effort.\n\n### How It Works\nThe workflow uses the WooCommerce Trigger to detect newly created products. Product details such as name, price, status, permalink and images are prepared in a single Set node and reused to send Slack notifications, email alerts and log entries in Google Sheets.\n\n### Setup Steps\n1. Configure WooCommerce REST API credentials.\n2. Connect Slack, Gmail and Google Sheets in n8n.\n3. Review the **Format Product Details** node to adjust fields if needed.\n4. Activate the workflow to start processing new products.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "3759deb5-221f-4e00-bc91-0c206c1087a1",
      "name": "Trigger & Data Prep",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        336,
        192
      ],
      "parameters": {
        "color": 7,
        "width": 412,
        "height": 356,
        "content": "### Trigger & Data Preparation\nDetects newly created products in WooCommerce using the WooCommerce Trigger and prepares a standardized product data object in the Set node for reuse across the workflow.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "8537cb43-8556-44d9-8597-31594f28f74e",
      "name": "Notifications",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        784,
        192
      ],
      "parameters": {
        "color": 7,
        "width": 412,
        "height": 356,
        "content": "### Notifications\nSends Slack and email notifications to announce new product creations using the prepared product data.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "8e4eeab1-dc43-46a5-862f-fae7a0675ca6",
      "name": "Logging",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1232,
        192
      ],
      "parameters": {
        "color": 7,
        "width": 348,
        "height": 356,
        "content": "### Logging\nStores product details and creation timestamps in Google Sheets for tracking and reference.\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "2816d66f-e018-4509-ade3-7955e70c182d",
  "connections": {
    "Notify Team on Slack": {
      "main": [
        [
          {
            "node": "Send Product Launch Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format Product Details": {
      "main": [
        [
          {
            "node": "Notify Team on Slack",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Product Launch Email": {
      "main": [
        [
          {
            "node": "Log Product in Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "WooCommerce \u2013 New Product Created": {
      "main": [
        [
          {
            "node": "Format Product Details",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This workflow automatically detects when a new product is created in WooCommerce and instantly notifies internal teams through Slack and email. At the same time, it logs all product details into Google Sheets for tracking and reporting. A centralized data formatting step ensures…

Source: https://n8n.io/workflows/12872/ — original creator credit. Request a take-down →

More Email & Gmail workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Email & Gmail

This workflow automatically detects bounced or invalid email addresses from your Gmail inbox and updates their status in Google Sheets. It fetches bounce notifications, extracts failed email addresses

Google Sheets, Slack, Gmail
Email & Gmail

This workflow automatically handles every resolved Jira bug by verifying the fix, notifying the customer, updating HubSpot, commenting on the Jira issue, alerting the team on Slack, and logging everyt

Jira Trigger, Jira, Gmail +4
Email & Gmail

This workflow runs daily to read chronic care vitals from Google Sheets, merge them into a per-patient record, score risk using AHA/ADA threshold rules, and notify clinicians via Telegram and Gmail wh

Error Trigger, Slack, Google Sheets +2
Email & Gmail

This workflow triggers when a new deal is created in HubSpot, sends a two-step follow-up sequence via Gmail, checks HubSpot for a recent email reply, then updates the deal stage, alerts a Slack channe

HubSpot Trigger, HubSpot, Google Sheets +2
Email & Gmail

📘 Description

HTTP Request, Gmail Trigger, ClickUp +3