AutomationFlowsEmail & Gmail › Automate Birthday Discount Emails for E-commerce Using Google Sheets and Gmail

Automate Birthday Discount Emails for E-commerce Using Google Sheets and Gmail

ByMarth - Business Automation @marth on n8n.io

This workflow is a powerful yet simple automation to delight your customers on their birthdays. It runs every day on a schedule you define and automatically pulls data from your customer list on Google Sheets. The workflow then checks to see if any customer has a birthday on the…

Cron / scheduled trigger★★★★☆ complexity7 nodesGoogle SheetsGmail
Email & Gmail Trigger: Cron / scheduled Nodes: 7 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #7936 — 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": "YvShKs1XBbEEboRO",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Workflow Note: Automated Birthday Discount for E-Commerce with Google Sheet & Gmail",
  "tags": [],
  "nodes": [
    {
      "id": "ce1fb25e-decc-4943-ae7c-cb16d6377344",
      "name": "Daily Schedule",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        224,
        224
      ],
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "6ec3e314-e7d2-4548-936e-07d47a62e400",
      "name": "Get Customer Data",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        464,
        224
      ],
      "parameters": {
        "operation": "getAll",
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "fdce0115-b0c4-4660-81aa-87f83075bf09",
      "name": "Is It Their Birthday?",
      "type": "n8n-nodes-base.if",
      "position": [
        704,
        224
      ],
      "parameters": {
        "conditions": {
          "boolean": [
            {
              "value1": "={{ $json.birthday }}",
              "value2": "={{ $now.toFormat('MM-dd') }}"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "62332fbf-d069-46e3-a19e-0d6c45bd588f",
      "name": "Generate Discount Code",
      "type": "n8n-nodes-base.function",
      "position": [
        944,
        224
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "b93688ae-975a-4278-9fa6-015ab3e9b7d9",
      "name": "Send Birthday Email",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1184,
        224
      ],
      "parameters": {
        "message": "Hi {{ $json.name }},\n\nHappy Birthday! We wanted to celebrate you with a special gift.\n\nHere is your unique discount code for 20% off your next order:\n\n{{ $json.discountCode }}\n\nEnjoy your day!\n\nBest regards,\nYour E-commerce Team",
        "subject": "Happy Birthday! Here's a gift from us!",
        "additionalFields": {}
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "b6f9b241-4f67-47d5-8c26-5a13b1587567",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        160,
        176
      ],
      "parameters": {
        "color": 3,
        "width": 1232,
        "height": 224,
        "content": "## Flow"
      },
      "typeVersion": 1
    },
    {
      "id": "89f14e7e-81a3-4206-b7e4-09cac5daf811",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        160,
        448
      ],
      "parameters": {
        "color": 4,
        "width": 1232,
        "height": 1072,
        "content": "# \u2699 Workflow Note: Automated Birthday Discount for E-Commerce\n\n---\n\n## **Problem**\nMany e-commerce businesses miss the opportunity to create a personal connection with their customers. Sending a special birthday offer is a powerful way to build loyalty and increase sales, but doing this manually for every customer is time-consuming and prone to human error. Without an automated system, these valuable marketing moments are often overlooked.\n\n## **Solution**\nThis simple but effective n8n workflow solves this problem by automating the entire birthday outreach process. The system runs daily, checks your customer database for birthdays, generates a unique discount code, and sends a personalized email to the customer on their special day. This ensures a timely, thoughtful gesture without any manual effort.\n\n## **For Whom**\nThis workflow is perfect for **e-commerce store owners, small businesses, and marketing teams** who want to increase customer retention and sales through personalized marketing. It is especially valuable for those who have a growing customer list and need to scale their customer engagement efforts efficiently.\n\n## **Scope**\n* **What it includes:**\n    * A daily scheduled check to scan your customer list.\n    * Automated lookup of customers celebrating their birthday on the current day.\n    * Automatic generation of a unique, single-use discount code.\n    * Personalized email delivery of the birthday message and discount code.\n\n* **What it excludes:**\n    * Integration with your e-commerce platform's coupon system (the code generation is a placeholder and would require manual creation in your platform's backend).\n    * Advanced segmentation (e.g., sending different offers to different customer tiers).\n    * Follow-up emails or drip campaigns.\n\n## \u2699 **How to Set Up**\n\n1.  **Prerequisites:** You will need an n8n instance, a **Google Sheets** spreadsheet with customer data (including a 'birthday' column in 'MM-dd' format), and a **Gmail** account.\n2.  **Workflow Import:** Import the provided JSON file into your n8n instance.\n3.  **Credential Configuration:**\n    * Set up credentials for **Google Sheets** and **Gmail** within n8n.\n4.  **Node-Specific Configuration:**\n    * **`Daily Schedule`:** No changes needed. It is pre-configured to run every day at 9 AM.\n    * **`Get Customer Data`:** Input the **Spreadsheet ID** and **Sheet Name** of your customer database.\n    * **`Is It Their Birthday?`:** Ensure the value in `value1` `={{ $json.birthday }}` matches the name of your birthday column in Google Sheets.\n    * **`Send Birthday Email`:** Customize the **`fromEmail`** and the body of the email to match your brand's voice.\n5.  **Activation:** After all configurations are complete, click **\"Save\"** and then **\"Active\"**. The workflow will now run every day to delight your customers."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "55533bfd-b195-447d-987c-7f248288c5ae",
  "connections": {
    "Daily Schedule": {
      "main": [
        [
          {
            "node": "Get Customer Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Customer Data": {
      "main": [
        [
          {
            "node": "Is It Their Birthday?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Is It Their Birthday?": {
      "main": [
        [
          {
            "node": "Generate Discount Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Discount Code": {
      "main": [
        [
          {
            "node": "Send Birthday Email",
            "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 is a powerful yet simple automation to delight your customers on their birthdays. It runs every day on a schedule you define and automatically pulls data from your customer list on Google Sheets. The workflow then checks to see if any customer has a birthday on the…

Source: https://n8n.io/workflows/7936/ — 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

YOUR_ID 4. Uses gmail, googleDrive, googleSheets, httpRequest. Scheduled trigger; 53 nodes.

Gmail, Google Drive, Google Sheets +1
Email & Gmail

Looking for a way to track GitHub bounty issues automatically and get notified in real time? This GitHub Bounty Tracker workflow monitors repositories for issues labeled 💎 Bounty, logs them in Google

Google Sheets, HTTP Request, WhatsApp +1
Email & Gmail

This workflow automatically sends a beautifully designed HTML newsletter every Sunday at 8 AM, featuring products currently on sale from your Algolia-powered e-commerce store.

Google Sheets, HTTP Request, Gmail
Email & Gmail

This n8n template demonstrates how to build a Auto Lead Gen & Outreach System for Local Businesses specifically designed to help businesses that don’t have a website yet.

Google Sheets, HTTP Request, Google Drive +1
Email & Gmail

The workflow is triggered automatically every day at 12:00 PM using a Cron node.

RSS Feed Read, Google Sheets, Gmail +1