How to Setup Email Marketing using Google Apps Scripts
Tags: googleappsscript, marketing, automation, marketingstrategies
Published: 2020-08-28 14:43:14

---
title: How to Setup Email Marketing using Google Apps Scripts
published: true
date: 2020-08-28 12:10:42 UTC
tags: googleappsscript,marketing,automation,marketingstrategies
canonical_url: https://www.ravsam.in/how-to-setup-email-marketing-using-google-apps-scripts/
---

![](https://cdn-images-1.medium.com/max/1024/1*bCuGv5CYLadYp6f-AnDLpA.png)

Recently, we have been writing a lot of stuff related to Web Design and Development, like [collecting form responses](http://www.ravsam.in/blog/collect-form-responses-using-google-apps-script/), that can be implemented using **Google Apps Scripts** and Serverless Architecture. In this blog, we will talk about **email marketing**. We will set up custom email marketing purely using Google Apps Script. The advantage is we can take control of our email marketing campaign and create our own automated workflows.

#### Contents

1. Creating a new Spreadsheet
2. Creating a new Google Apps Project
3. Writing code
4. Running the script
5. Results

#### 1. Creating a new Spreadsheet

First of all, we need a Google Sheet where we store all of our email addresses to whom we want to send the emails. Let’s [create a new spreadsheet](https://docs.google.com/spreadsheets/).

![Enter the user details in Google Sheet](https://cdn-images-1.medium.com/max/960/0*3bYykmprCVl8O_CC.png)<figcaption>Enter the user details in Google Sheet</figcaption>

#### 2. Creating a new Google Apps Project

Now is the time to connect our Google sheet to a Google Apps Script. From _Tools_, we select the _Script Editor_.

![Connect Google Sheet to Google Apps Script project](https://cdn-images-1.medium.com/max/960/0*iDxWXP2ZdsWmQQqP.png)<figcaption>Connect Google Sheet to Google Apps Script project</figcaption>

#### 3. Writing code

Finally, it is time to write some code.

a.) **Main.gs**

Add the following the code to the file:

```
function sendEmails(mail_template='content',
                    subject='Testing my Email Marketing') {

  // get the active spreadsheet and data in it
  var id = SpreadsheetApp.getActiveSpreadsheet().getId();
  var sheet = SpreadsheetApp.openById(id).getActiveSheet();
  var data = sheet.getDataRange().getValues();

  // iterate through the data, starting at index 1
  for (var i = 1; i < data.length; i++) {
    var row = data[i];
    var email = row[0];
    var name = row[1];

    // check if we can send an email
    if (MailApp.getRemainingDailyQuota() > 0) {

      // populate the template
      var template = HtmlService.createTemplateFromFile(mail_template);
      template.name = name;
      var message = template.evaluate().getContent();

      GmailApp.sendEmail(
        email, subject, '',
        {htmlBody: message, name: 'RavSam Team'}
      );
    }
  }
}
```

The comments have been included in the file for a proper description of the above function.

> Always use _GmailApp.sendEmail_ instead of _MailApp.sendEmail_. It is a more stable and reliant function.

b.) **content.html**

Since the above script uses an HTML file and populates it, we need to create an HTML template file. Add the following the code to the file:

```
<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
    Hi <?= name ?>. We are testing our beta features for email marketing.
  </body>
</html>
```

The <?= name ?> template variable gets auto-filled by the email marketing script.

#### 4. Running the script

We have done all the necessary setup to start a successful email marketing campaign. Before we run our code, we need to grant

![Setup the Google Apps Script Authorization](https://cdn-images-1.medium.com/max/960/0*EJPqe2zcd5_0ksbG.png)<figcaption>Authorize the Google Apps Script to send an email on your behalf</figcaption>

#### Results

Let us check our email to see if the email was received. Awesome! We can clearly see that email was delivered successfully to the user’s inbox.

![Email Delivered successfully to the inbox](https://cdn-images-1.medium.com/max/960/0*fankTTBeUG80uXK2.png)<figcaption>Email Delivered successfully to the inbox</figcaption>

We can create more beautiful and custom HTML templates and manage our email marketing campaigns around them. In our next blog, we will be talking about **how to track whether a user opens our emails or not**. If you any doubts or appreciation for our team, let us know in the comments below.