Convert 15 to 18 Digit Salesforce IDs with Google Spreadsheets

NOV 26, 2016 – Use the three (3) steps below to convert 15 digit case-sensitive Salesforce.com ids to case-insensitive ids that are 18 digits long.

Step 1. Create a Google Sheet containing the 15 digit Salesforce ids to convert.

Step 2. In the sheet, go to Tools > Script Editor. Paste the below script:

function convertToCaseInsensitiveId(id) {
 var hash = '';
 for (var c = 0; c < 3; c++) {
 var h = 0;
 for (var i = 0; i = 65 && ch  25 ? h + 48 - 26 : h + 65);
 }
 return id + hash;
}

tools-script-editor-in-google-sheets  Open.

google-drive-script-editor  Paste.

Step 3. In Script Editor, click File > Save. Then go to the Sheet and use the script like any built-in spreadsheet function. For example, if A4 contains a 15 digit Salesforce id, in another cell you would type =convertToCaseInsensitiveId(A4).

15-digit-to-18-digit-salesforce-id

Now, you can drag the convertToCaseInsensitiveID() function down each row of your spreadsheet to automatically fill in 18 digit salesforce IDs.

See also: Recording of my Dreamforce 2014 Session
Top 10 Salesforce.com adoption tips for small business success

Original Post (outdated)

JUL 5, 2010 – We’ve made it easy for Salesforce CRM admins to convert 15 digit IDs to 18 digit IDs with Google Spreadsheets.

The Problem:

The Salesforce.com CRM assigns 15 digit IDs to records. This is a problem when integrating Salesforce with windows systems (like SQL server or naming files based on Salesforce IDs). Windows is case insensitive, so duplication often happens when using 15 digit IDs.

Salesforce developed 18 digit IDs to ensure uniqueness across case insensitive, Windows platforms. But, they make you convert the IDs yourself with a complicated formula unless you buy an expensive version of Salesforce.

The Solution:

  1. Generate a report of the records you want to convert in Salesforce
  2. Export the report as a CSV
  3. Import the CSV into Google Spreadsheets
  4. In the Google Spreadsheet, select Tools > Scripts > Insert
  5. Type Salesforce in the search box
  6. Click Install on the script by bluep@quanten….
  7. Select the row containing the IDs you want to convert
  8. Select from the newly created top menu Salesforce ID > ID 15 => ID 18
  9. If you want to convert 18 digit IDs to 15 digit IDs, select the row with IDs and select Salesforce ID > ID 18 => ID 15

To see how the spec was written for this script, see the post, How to Manage Outsourced Developers.

Thank you to Damon Douglas, David Padbury, and Stefan Kuehlechner for donating your valuable time to this project.

21 thoughts on “Convert 15 to 18 Digit Salesforce IDs with Google Spreadsheets

  1. Hey, great script. I am using this to assist with a lot of data conversion. When I tried the script recently, I receive and error “Script function forEachCell15_ could not be found”. Any advice on this?

    Tom

    Like

  2. Hey Tom,

    I ran into the problem myself. Have no idea what causes it but I tried looking into the code (Tools -> Script Manager then Edit) and change the names of the functions. I just searched the code for forEachCell15_ and changed it to forEachCell15 And the same for forEachCell18_ . It worked although it is just a workaround.

    Tomas

    Like

  3. Getting the same “Script function forEachCell15_ could not be found” problem

    Tried Tomas’s workaround but that did not work either.
    Any help?

    Like

  4. FYI – In my case I had to update all references to drop the underscore, then re-add it. In other words, change “forEachCell15_” to “forEachCell15” across all affected scripts, save, then revert (repeating for the 18 character function as well). Runs like a charm now

    Like

  5. Thanks for the blog – after much googling, I keep ending up here but unfortunately with Google docs updating their interface, I can’t seem to find this script. Has anyone had success since the very recent update from Google? While I have added the formula field for CASESAFEID to all of my records in Salesforce, it doesn’t help me with a previously exported list that has been associated to a different database.

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s