This Google Apps Script project will allow your existing contacts to update their Google Contacts entries using a simple online form. The HTML form is published using Apps Script’s HtmlService.
function go() { var emailNAME = ScriptProperties.getProperty("NAME"); var googleGROUP = ContactsApp.getContactGroup( ScriptProperties.getProperty("GROUP")); if (googleGROUP) { var emailSUBJECT = "Your contact information"; var myContacts = googleGROUP.getContacts(); for (i=0; i<myContacts.length; i++) { var email = myContacts[i].getPrimaryEmail(); var ID = myContacts[i].getId(); ID = ID.substr(ID.lastIndexOf("/") + 1); var emailBody = "Hi,<br /><br />" + "Would you please take a moment and update your contact information in my address book. <br /><br />" + "Please <a href='" + ScriptApp.getService().getUrl() + "?" + Utilities.base64Encode(ID + "#" + email) + "'>click here</a> and fill-in the required details." + "Your information will be directly added to my Google Contacts." + "<br /><br />Thanks,<br />" + emailNAME; var emailTEXT = "Hi,\n\n" + "Would you please take a moment and update your contact information in my address book. \n\n" + ScriptApp.getService().getUrl() + "?" + Utilities.base64Encode(ID + "#" + email) + "\n\nJust click the URL, fill-in the form and your details will be directly added to my Google Contacts." + "\n\nThanks,\n" + emailNAME; GmailApp.sendEmail(email, emailSUBJECT, emailTEXT, {htmlBody:emailBody, name:emailNAME}); } } } function doGet() { var html = HtmlService.createTemplateFromFile("form").evaluate(); html.setTitle("Google Contacts - Digital Inspiration") return html; } function labnolGetContact(q) { var contact = {}; contact.FOUND = 0; try { var id = Utilities.base64Decode(q); var email = ""; for(var i = 0; i<id.length; i++) { email += String.fromCharCode(id[i]); } var contactID = email.substr(0, email.indexOf("#")); email = email.substr(email.indexOf("#")+1); var c = ContactsApp.getContact(email); if (c) { var originalID = c.getId(); originalID = originalID.substr(originalID.lastIndexOf("/") + 1); if (contactID != originalID) return contact; contact.FOUND = 1; if (c.getFullName().length) contact.FULL_NAME = c.getFullName(); if(c.getEmails(ContactsApp.Field.HOME_EMAIL).length) contact.HOME_EMAIL = c.getEmails(ContactsApp.Field.HOME_EMAIL)[0].getAddress(); if(c.getAddresses(ContactsApp.Field.HOME_ADDRESS).length) { contact.HOME_ADDRESS = c.getAddresses(ContactsApp.Field.HOME_ADDRESS)[0].getAddress(); contact.HOME_ADDRESS = contact.HOME_ADDRESS.replace(/\n/g, ", "); } if(c.getPhones(ContactsApp.Field.MOBILE_PHONE).length) contact.MOBILE_PHONE = c.getPhones(ContactsApp.Field.MOBILE_PHONE)[0].getPhoneNumber(); if(c.getIMs(ContactsApp.Field.SKYPE).length) contact.SKYPE = c.getIMs(ContactsApp.Field.SKYPE)[0].getAddress(); if(c.getUrls(ContactsApp.Field.BLOG).length) contact.BLOG = c.getUrls(ContactsApp.Field.BLOG)[0].getAddress(); if(c.getDates(ContactsApp.Field.BIRTHDAY).length) { var months = [ 0, ContactsApp.Month.JANUARY, ContactsApp.Month.FEBRUARY, ContactsApp.Month.MARCH, ContactsApp.Month.APRIL, ContactsApp.Month.MAY, ContactsApp.Month.JUNE, ContactsApp.Month.JULY, ContactsApp.Month.AUGUST, ContactsApp.Month.SEPTEMBER, ContactsApp.Month.OCTOBER, ContactsApp.Month.NOVEMBER, ContactsApp.Month.DECEMBER ]; contact.BIRTHDAY = months.indexOf(c.getDates(ContactsApp.Field.BIRTHDAY)[0].getMonth().toString()) + "/" + c.getDates(ContactsApp.Field.BIRTHDAY)[0].getDay() + "/" + c.getDates(ContactsApp.Field.BIRTHDAY)[0].getYear(); } } return contact; } catch (e) { return contact; } }