Save Gmail Files to Google Drive

The Google Script will save file attachments from Gmail threads marked with a particular label to a specific folder in Google Drive. It takes the last email message in a thread and saves the first attachment to Drive. Credit: S. Dolidze

Also see: Save Gmail Attachments to Google Drive

function main() {
  var label = 'Clients/New York/Design';
  var folder = 'design-assets';

  folder = DriveApp.createFolder(folder);

  GmailApp.getUserLabelByName(label).getThreads().map(lastMessage).map(extractAttachment).forEach(saveFile(folder));
}

function lastMessage(thread) {
  return thread.getMessages().pop();
}

function extractAttachment(message) {
  var blob = message.getAttachments()[0].copyBlob();
  var filename = message.getFrom() + '.' + extension(blob.getName());
  blob.setName(filename);
  return blob;
}

function extension(filename) {
  return filename.split('.').pop();
}

function saveFile(folder) {
  return function (blob) {
    folder.createFile(blob);
    Logger.log('Saved file ' + blob.getName());
  };
}

Amit Agarwal is a web geek, solo entrepreneur and loves making things on the Internet. Google recently awarded him the Google Developer Expert and Google Cloud Champion title for his work on Google Workspace and Google Apps Script.

Awards & Recognition

Google Developer Expert

Google Developer Expert

Google awarded us the Developer Expert title recogizing our work in Workspace

ProductHunt Golden Kitty

ProductHunt Golden Kitty

Our Gmail tool won the Lifehack of the Year award at ProductHunt Golden Kitty Awards

Microsoft MVP Alumni

Microsoft MVP Alumni

Microsoft awarded us the Most Valuable Professional title for 5 years in a row

Google Cloud Champion

Google Cloud Champion

Google awarded us the Champion Innovator award for technical expertise

Want to stay up to date?
Sign up for our email newsletter.

We will never send any spam emails. Promise 🫶🏻