How to Import MailChimp Subscribers to Google Sheets

The Gmail Mail Merge addon would now be able to import the email locations of supporters from your MailChimp mailing records into Google Sheets. In the event that you wish to send messages to your endorsers straightforwardly from Gmail, rather than utilizing MailChimp mail workers, this is the best approach.

As an engineer, you can utilize Google Apps Script to import endorser records, HTML crusades, execution reports and some other information from MailChimp to Google Sheets for investigation. You can utilize the MailChimp OAuth2 library however in this model, we’ll utilize the designer key straightforwardly to associate with MailChimp.

Get the MailChimp Developer Key

In your Mailchimp account, explore to the Account page. In the drop-down menu, select Extras, and afterward API keys. Snap Create A Key and make a note of it.

Google Apps Script – Get MailChimp Audiences

const MAILCHIMP_API_KEY = '<<API_KEY_HERE>>';

// MailChimp API key includes the data center id
// that your MailChimp account is associated with
const makeHttpRequest = (endpoint, params = {}) => {
  const [, mailchimpDataCenter] = MAILCHIMP_API_KEY.split('-');
  const url = `https://${mailchimpDataCenter}.api.mailchimp.com/3.0/${endpoint}`;
  const qs = Object.keys(params)
    .map((key) => `${key}=${params[key]}`)
    .join('&');
  const apiUrl = qs ? `${url}?${qs}` : url;
  const request = UrlFetchApp.fetch(apiUrl, {
    method: 'GET',
    headers: {
      Authorization: `Basic ${Utilities.base64Encode(
        `labnol:${MAILCHIMP_API_KEY}`
      )}`,
    },
  });
  return JSON.parse(request);
};

const getListMembers = (id, offset) => {
  const { members } = makeHttpRequest(`lists/${id}/members`, {
    count: 100,
    offset,
    fields: 'members.email_address',
    status: 'subscribed',
    sort_field: 'last_changed',
    sort_dir: 'DESC',
  });
  return members.map(({ email_address: email }) => [email]);
};

// Get a list of all subscribers of a specific
// MailChimp mailing list, you can retrieve the email address,
// name and subscription statues of subscribers
const getMailChimpListMembers = (id) => {
  let hasMore = true;
  let data = [];
  do {
    const emails = getListMembers(id, data.length);
    data = [...data, ...emails];
    hasMore = emails.length > 0;
  } while (hasMore);
  return data;
};

// Get a list of all audiences / lists from MailChimp
const getMailChimpLists = () => {
  const params = {
    count: 10,
    fields: 'lists.id,lists.name',
    sort_field: 'date_created',
    sort_dir: 'DESC',
  };
  const { lists = [] } = makeHttpRequest('lists', params);
  return lists.map(({ id, name }) => ({
    id,
    name,
    members: getMailChimpListMembers(id),
  }));
};

The GetMailChimpLists technique will bring all the rundowns and related email addresses in a JSON object that you can without much of a stretch write to Google Sheets utilizing the SpreadsheetApp administration.