SethCalkins
10/14/2014 - 1:48 AM

gistfile1.js

// Sample File for Interaction with the Base CRM API via Google Apps Scripts for Spreadsheet
// The below script is getting a Token based on email and password authentification from the base API
// and is writing in the active spreadsheets all the deals with the described status
// I'm not a programmer, so see it as a prototype to checkout the possibilities. 
// 2012 Christian Leu - www.leumund.ch 

function deals() {

 
var email = "base crm e-mail adress";
var password = "base crm password";
  
  var token = authorize(email, password);
  
var month = Utilities.formatDate(new Date(), "GMT", "MM_yyyy");
var header = {'X-Pipejump-Auth':authorize(email, password)};

var options = {"headers":header};
// aktuelles Spreadsheet
//var sheet = SpreadsheetApp.getActiveSheet();
  var sheet = SpreadsheetApp.create("CL Status Quotes & Tenders " + month);
// Kopfzeilen schreiben
 sheet.appendRow(["Account","Beschreibung","Erstellt","Umsatz","Status"]);  

  var index;
var stage = ["incoming", "qualified", "quote", "closure", "unqualified"];
for (index = 0; index < stage.length; ++index) {
  //  console.log(a[index]);
var page="1";
 
  
  
  while (page > 0){
  var result = UrlFetchApp.fetch("https://sales.futuresimple.com/api/v1/deals.json?stage=" + stage[index] +"&page=" + page, options);
  var o  = Utilities.jsonParse(result.getContentText());
   var data = o.value;
//return o[0].deal.name; 
 // return o; 
Logger.log("check" + o.length);

    if (o.length < "20") { page = "0"}  else { page++ }
  for (var i in o) {
  

   
sheet.appendRow([o[i].deal.deal_account.name,o[i].deal.name,o[i].deal.created_at.substring(0,10),o[i].deal.scope +"€",o[i].deal.stage_name]);
}

}
}
  
}

// Authorize the client 
function authorize(email, password) {
var payload =    {
      "email" : email,
      "password": password,
    };
  
  var options =
    {
      "method" : "post",
     "payload" : payload
    };
  
   var result = UrlFetchApp.fetch("https://sales.futuresimple.com/api/v1/authentication.json",options);
var token  = Utilities.jsonParse(result.getContentText());
  return token.authentication.token;
}