Create Trello Cards from a Google Form with Google Scripts

C
Published in: Google Forms - Google Apps Script

Trello provides you a unique email address (like xyz@boards.trello.com) for any board in you account and any email message sent to this address is added as a new card to the Trello Board. @jezhou has written a Google Scripts that redirects Google Form submissions to a Trello using this email option.

When a Google Form is submitted, the onFormSubmit() event is triggered which then forwards the Google Form data to Trello via the GmailApp service. The subject is the title of the card while the email body goes in the description field. The script may be extended to forward Google Form entries to other services like WordPress, Evernote, Pocket, Tumblr, etc. since they too allow posting via Email.

// Credit: https://gist.github.com/jezhou/

// Fire off this function in the script editor to enable.

// Fire off this function in the script editor to enable.
function init() {

  var triggers = ScriptApp.getProjectTriggers();
  var form = FormApp.getActiveForm();

  // Delete all triggers before making a brand new one.
  for(var i in triggers) {
    ScriptApp.deleteTrigger(triggers[i]);
  }

  // Set up a new trigger
  ScriptApp.newTrigger('submitToTrello')
           .forForm(form)
           .onFormSubmit()
           .create();

  Logger.log('Successful creation of new submitToTrello trigger.');

}

function submitToTrello(e) {

  var form = FormApp.getActiveForm();
  var latestItemResponses = form.getResponses().pop().getItemResponses();

  if (MailApp.getRemainingDailyQuota() > 0) {

    // Trello email address goes here
    var email = "ctrlq@boards.trello.com";

    // Subject line will be the title of the event on Trello card
    var subject = latestItemResponses[3].getResponse();

    // Intial empty body
    var body = "";

    // Loop through recent responses and format them into string
    latestItemResponses.forEach(function (value, index, array) {
      var formatted = Utilities.formatString("**%s**\n %s\n\n", value.getItem().getTitle(), value.getResponse());
      body = body.concat(formatted);
    });

    MailApp.sendEmail(email, subject, body);
  }

}
Published in: Google Forms - Google Apps Script

Looking for something? Find here!

Meet the Author

Web Geek, Tech Columnist
A
Amit Agarwal

Amit Agarwal is a Google Developer Expert in GSuite and Google Apps Script. He holds an engineering degree in Computer Science (I.I.T.) and is the first professional blogger in India. Read more on Lifehacker and YourStory

Get in touch