I would like to (keep) using Google Contacts as my primary hub for contact info. However, I would benefit greatly from the ability to link with a URL to a particular person directly from various other apps. To aid in various "CRM" activities too.

There is no immediate way to see a URL when opening a person. Does anyone know of another way? (I would be willing to even make a regular export of contacts via Zapier or something to get the URL, if that is what it takes.)

10 Answers 10


In the "old" Contacts, if you click a contact, you'll get a string added to the URL like so:


That'll bring you directly to the contact record if you put it in a link.

With the Contact Preview turned on, the same link will bring you into Contacts with the modal window for that contact brought up. However, I don't see an easy way to get that ID. Even viewing the source doesn't really offer any clues. That's not surprising, however, as it is still a product preview.


To have a link that opens a specific contact in the new version of Google Contacts the URL needs to be:


such as: https://www.google.com/contacts/u/0/?cpreview=1#contact/1a184eb8b1105cc

the old contacts url would be in this example: https://www.google.com/contacts/u/0/?cplus=1#contact/1a184eb8b1105cc

?cplus needs to be changed to ?cpreview


Go to https://contacts.google.com/

Search for specific contact required

Click contact to open contact modal window

Right click modal window

Select Inspect element from drop down menu

in Element code, select the element string (without quotes) following "data-sourceid" EXAMPLE ...

add string at end of this modified G Contacts URL: https://contacts.google.com/contact/ EXAMPLE https://contacts.google.com/contact/12a34bc56789de

This link will direct link to contacts and open the modal window for that specific Contact


The new contacts interface is all you have now, so I used the answer from Indy. In Chrome: right click the contact's display and choose "Inspect"

The edit window comes up; use the key command "Ctrl + F" to initiate find in that window.
Type "data-so"... which is all that's needed to focus on the "data-sourceid".

Double clicking on the number following allows you to copy the id number; append it to https:contacts.google.com/contact/

I'm using it in google spreadsheets, allowing the contacts to be called up simply by clicking on the cell to which the link is.

By making "blank" or unfinished contacts, and list them in google spreadsheets, allows ease of entering new numbers upon arrival, to which then more powerful web and programming access is given to the simple built in contacts database.


Try using the link to the old google contacts site. Then it's easy to see the contact ID.


  • To clarify, you go to the above URL (or click "Switch to old version" at the bottom of the new version's left-hand menu), click on a contact and then get their URL from the address bar. You can convert that to open them in the new version by removing the ?cplus=0
    – Denis Howe
    Jan 19 '19 at 13:46

This question accumulated quite a lot of answers over time, so I think maybe an up-to-date recap would be useful.

Current Google Contacts App (https://contacts.google.com/)

If you already have a contact ID, you can build a URL with the following structure -


Thing is, Google is phasing out the Contacts API in favor of the People API - so I imagen that many people are facing (like me) the need to build a link using the person ID. Turns out the idea is the same -


Notice that the People API returns a field called resourceName, and that the value is the person ID prefixed with people/ (e.g. people/c858934384269370260). So by splitting the resourceName and taking the last part you can extract the ID you need to build the URL.

Similar to how the data-sourceid HTML attribute contains the contact ID and can be used to extract the ID and manually build a link (see Indy's answer), there's also the data-id attribute containing the person ID, which can be used to do the same. I don't care for manual labour, so I created a TamperMonkey script that can be used to add a little "open link" button to every contact entry. Looks something like this -

This is how the resulting buttons look

Old Google Contacts App (https://www.google.com/contacts)

The past happened. Things were different, and today they are even differenter.

If you are

  • interested in history


  • a person from the past that somehow got delorean-esque access to modern-day internet and you're trying to build a link for a platform that in the current time is not available anymore

feel free to read the many other answers that explain how things used to be.


This worked for me https://www.google.com/contacts/u/0/?cpreview=1#contact/[contactid]

Example https://www.google.com/contacts/u/0/?cpreview=1#contact/286E4A310F1EEADC

Note the [contactid] is the Hexadecimal conversion of the Contact ID that you will find if you inspect the contact link c2913347583522826972 (see HTML snippet below) I ran that through this Hex converter tool to get 286E4A310F1EEADC which works in the URL above to show the correct contact.

Zapier gives you the Decimal Contact ID, so if you want to create a URL you will need to convert it to Hex first with a tool. I am asking a question on this as the contactid is a 19 digit decimal number.

<div jscontroller="wkbIcc" jsaction="focus:AHmuwe; blur:O22p3e;Z2AmMb:AHmuwe;RdYeUb:O22p3e; keydown:I481le; click:hGTXTe,vfCptd(xvr5H);dSoSef:Dyk2eb;KOkf9c:vwqntf;hoZCle:bktBec;Zzrnsb:CyvlAb;GSinV:vRl2ie;a1IbFd:yB1n4c;o2zUId:k9KYye;Q1kxb:O1htCb;" jslog="24330; track:click,impression" data-id="c2913347583522826972" class="zYQnTe" tabindex="-1" id="ow188" __is_owner="true"><div class="E6Tb7b psZcEd"><img width="36" height="36" src="https://lh3.googleusercontent.com/-XdUIqdMkCWA/AAAAAAAAAAI/AAAAAAAAAAA/4252rscbv5Me9XEgESDyfq8qVu7oFeWKwIhkKAU0Q____________ARjCr_n7______8B/s72-p-k-rw-no/photo.jpg" alt="" class="HfynVe"><div tabindex="0" class="v2jl3d" role="checkbox" aria-labelledby="c133" jsaction="KamsZ" jsname="MPu53c"><svg width="24" height="24" viewBox="0 0 24 24" class="NSy2Hd RTiFqe wBLdZd"><path fill="none" d="M0 0h24v24H0V0z"></path><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM17.99 9l-1.41-1.42-6.59 6.59-2.58-2.57-1.42 1.41 4 3.99z"></path></svg><svg width="24" height="24" viewBox="0 0 24 24" class="NSy2Hd RTiFqe IRJKEb"><path fill="none" d="M0 0h24v24H0V0z"></path><path d="M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"></path></svg></div></div><div class="E6Tb7b iMwYAb"><span class="PDfZbf" tabindex="0" data-focus-id="V1ur5d" jsname="GYDesb" id="c133" role="button">Name</span></div><div class="E6Tb7b Fnzcme"></div><div class="E6Tb7b b62A4e"><span aria-label="Phone number" aria-describedby="c133" dir="ltr">+44777777777</span></div><div class="E6Tb7b ZAFZMe">Business name</div><div class="E6Tb7b OxwIJc"><div class="eQMted"><a class="L8jIaf" aria-describedby="c133" href="./label/2ababe5e0b945140" jslog="25559; track:click">UK</a></div><div class="eQMted"><a class="L8jIaf" aria-describedby="c133" href="./label/72cb1c2c89358651" jslog="25559; track:click">property services</a></div></div><div class="E6Tb7b FB0g7"><div class="RANAid jaWtS NUNxae" role="button" tabindex="0" jsaction="xXNnsd" data-tooltip="Star contact" aria-label="Star contact" aria-describedby="c133" jslog="24339; track:click" data-focus-id="fI6EEc"><svg width="20" height="20" viewBox="0 0 24 24" class="NSy2Hd RTiFqe P5kiYb"><path fill="none" d="M0 0h24v24H0V0z"></path><path d="M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z"></path></svg></div><div class="RANAid jaWtS undefined" role="button" tabindex="0" jsaction="DyVDA" data-tooltip="Edit contact" aria-label="Edit contact" aria-describedby="c133" jslog="24335; track:click" data-focus-id="DyVDA"><svg width="20" height="20" viewBox="0 0 24 24" class="NSy2Hd RTiFqe P5kiYb"><path fill="none" d="M0 0h24v24H0V0z"></path><path d="M14.06 9.02l.92.92L5.92 19H5v-.92l9.06-9.06M17.66 3c-.25 0-.51.1-.7.29l-1.83 1.83 3.75 3.75 1.83-1.83c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.2-.2-.45-.29-.71-.29zm-3.6 3.19L3 17.25V21h3.75L17.81 9.94l-3.75-3.75z"></path></svg></div><div class="RANAid jaWtS undefined" role="button" tabindex="0" aria-haspopup="true" aria-expanded="false" jsaction="Al9X7b" data-tooltip="More actions" aria-label="More actions" aria-describedby="c133" jslog="24338; track:click" data-focus-id="z5C9Gb"><svg width="20" height="20" viewBox="0 0 24 24" class="NSy2Hd RTiFqe P5kiYb"><path fill="none" d="M0 0h24v24H0V0z"></path><path d="M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"></path></svg></div></div></div>'

Previous URLs posted here have stopped working sometime recently. Through trial and error, I found that the new URL format is this:


Edit: I just noticed that others here have posted this already. Don't know how I missed them.

I'll add something else I discovered, in case anyone needs it. If you have multiple accounts signed in, and don't want to rely on the order of sign-in to link to a contact in the correct account, use this format:


Note that even though the URL contains /u/0/, depending on what follows "authuser", it may get re-written to something like /u/1/ or /u/2/ , etc.


This will do it as long as the modal is visible. Would really like this to be a simple Chrome Extension that adds a copy-to-clipboard button to the modal when it loads.

Right click anywhere and inspect the modal, copy paste, press enter, and the url should show up. Type url if it doesn't.

// https://stackoverflow.com/questions/18626844/convert-a-large-integer-to-a-hex-string-in-javascript
// Collin Anderson (https://stackoverflow.com/users/131881/collin-anderson)
const dec2hex = (str) => { // .toString(16) only works up to 2^53
    var dec = str.toString().split(''), sum = [], hex = [], i, s
        s = 1 * dec.shift()
        for(i = 0; s || i < sum.length; i++){
            s += (sum[i] || 0) * 10
            sum[i] = s % 16
            s = (s - sum[i]) / 16
    return hex.join('')

const url = `https://contacts.google.com/contact/${dec2hex(contactModal.getAttribute('data-personid').slice(1))}`

Apparently, in the new version of Google Contacts, you can use the contact id in the URL, like this:


(1 being the identifier associated with my own contact, opening this URL displays my contact info directly.)

Another example:

https://contacts.google.com/1210af2108fe8811, for the following contact info (JSON):

  "gd$etag": "\"QX05eDVSLit7I2A9XRBbFkoIQA0.\"",
  "id": {
    "$t": "http://www.google.com/m8/feeds/contacts/myemailaddress%40gmail.com/base/1210af2108fe8811"
  [ ... ]
  • Doesn't work for me in either the old Contacts or in Contacts Preview.
    – ale
    May 16 '17 at 17:12
  • Doesn't work for me either.. May 16 '17 at 17:40
  • @ale I added more details in my answer. Can you make sure that you're using the right id? May 26 '17 at 8:37
  • @sumitchauhan I added more details in my answer. Can you make sure that you're using the right id? May 26 '17 at 8:37
  • Obviously I don't have the same contacts as you, but contact id 1 gives me "contact not found".
    – ale
    May 26 '17 at 10:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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