Saurabh Gandhe I bring your ideas to life!

Quickest way to integrate Google Sheet and Trello to make reports


We needed to submit a report of tasks done during a set period of time.

Of course the Google Sheet was the best option to share, but Trello Free version won’t let you export a list or cards at all. You may opt for plugins, but well, Free Trello.

Technically, all you need is a JSON Parser, but using third party apps and sharing data was not an option. It must travel from TRELLO to Google, no one else involved.

Here is a Free Simple solution I came up with scribbling some Google Script Code.

The Trello JSON API is very easy to use. Go and Grab your key here: (Make sure you are logged in before going to this URL.)

Once you got the key, you can generate the token, right next to it.

Go and create a new Google Sheet.

Click Tools > Script Editor.

Copy this code:

It is basically Parsing JSON data to Google Sheet. 

function onOpen() {

function addMenuOption() {
    var ui = SpreadsheetApp.getUi();
    ui.createMenu('MY CUSTOM MENU')
        .addItem('UPDATE REPORT', 'getTaskReport')
//Refresh The Report by calling Trello and setting up the data.//
function getTaskReport(){
    var trelloAPIKey = 'YOUR TRELLO API KEY';
    var trelloToken = 'ADD YOUR TRELLO TOKEN HERE';
    var json = getTrelloCards('YOUR LIST ID TO PULL',trelloAPIKey, trelloToken);
    var ui = SpreadsheetApp.getUi();
    var dataSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Report'); //This is the sheet where you will see the results.
    setHeaders(dataSheet,json, 1, 1);

//Get Trello Board//
//Returns a list of boards for the account// name,id
//Maybe in future
function getTrelloBoards(accountId, key,token){


//Get Trello Lists for a given Board//
//Returns a list of all the lists in the given board// name,id
//Maybe in future
function getTrelloLists(boardId,key,token){

//Get Trello Board Data//
//Returns all the lists and cards for the given board id.
//Maybe in future//
function getTrelloBoardData(boardId,key,token){

//Get the Json Data from Trello. Call the API.
function getTrelloCards(listId,key,token) {
    var response = UrlFetchApp.fetch(""+listId+"/cards?key="+key+"&token="+token+"&fields=id,name,url,desc");
    var text = response.getContentText();
    return JSON.parse(text);

//Set the Header for the rows based on the Trello Card or Board that you pulled the data for.
function setHeaders(dataSheet, json, dataRow, dataColumn) {
    var headers = Object.keys(json[0]);
    for (header in headers) {
        dataSheet.getRange(dataRow, dataColumn).setValue((headers[header])).setWrap(true);

//Set the Actual JSON Data//
function setJsonData(dataSheet, json, dataRow, startColumn) {
    for (var key in json) {
        dataColumn = startColumn;
        for (var value in json[key]) {
            dataSheet.getRange(dataRow, dataColumn).setValue((json[key][value])).setWrap(true);

All you need to do is set the List you consider as Done Cards.

Pull the report and Archive all the cards.

A quick line of code can archive the cards right from here. That’s for some one to add comment.

What Next: Archive Cards on Report Run.

Setup to run the report at specified time and send an email to you And your manager.

By Saurabh
Saurabh Gandhe I bring your ideas to life!

Contact Hands-on DevOps with Azure/AWS Experience

Recent Posts