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());
};
}