Take the 2-minute tour ×
Web Applications Stack Exchange is a question and answer site for power users of web applications. It's 100% free, no registration required.

I have the following code which creates Google Contacts from a Spreadsheet. The problem is whenever I run the code it creates contacts but has no functionality to check if the same Google Contact already exists or not.

share|improve this question
add comment

1 Answer 1

up vote 1 down vote accepted

This piece of code retrieves the contacts of the group first and checks whether an e-mail address corresponds to one of the sheet entries:

Code

function bulk_cdb_one_way_sync(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var cdb = ss.getSheetByName("Bulk_CDB").getDataRange().getValues();
  var group = ContactsApp.getContactGroup("Preview List");
  var groupContacts = ContactsApp.getContactGroup("Preview List").getContacts();

  for (var x=1, xLen=cdb.length; x<xLen; x++) {
    var aContact = [];
    aContact.push(cdb[x][0], cdb[x][1], cdb[x][2], cdb[x][6]);
    var c = 0;  
    if(groupContacts.length > 0) {
      c =+ 1, u = 0;
      for(var i in groupContacts) {
        var emails = groupContacts[i].getEmails();
        for(var j in emails) {
          if(emails[j].getAddress() == aContact[2]) {
            u += 1;
            continue;
          }
        }
      }
    }

    if(c === 0 || u == "undefined" || u === 0) {          
      var c = ContactsApp.createContact("There","Painter", aContact[2]);
        c.addCustomField("Metro 1", aContact[1]);
        c.addCustomField("Status", aContact[0]);
        c.addPhone(ContactsApp.Field.WORK_PHONE, aContact[3]);
        c.addToGroup(group);
    }  
  }
}

Explained

The groupContacts retrieves all available contacts in the group. The x=1 makes sure to skip the header and the array (aContact) is created for easy access. If the group has no entries, then c will remain 0 and the new contacts will be added. Then the script will itterate over the contacts and over the e-mails present. If a match is found, u will be > 0 and no contact is added.

Remark

Make sure the data you about to add contains no duplicates.....

share|improve this answer
    
I tried with your code, still duplicate entries can be added to group. I there is no contact added to group then its not adding contact ? any suggestions –  Noor Aug 24 '13 at 15:26
    
@Noor this was one of my first I did not test in advance scripts. I hope this one works. –  Jacob Jan Tuinstra Aug 24 '13 at 19:07
    
Thanks for the help, work like a charm :) –  Noor Aug 24 '13 at 20:27
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.