External ID - An Overview

We know that Zoho CRM allows you to integrate third-party apps and manipulate data through APIs. While you integrate a third-party application, you may want to store the third-party reference IDs in Zoho CRM's records. To meet this need of storing an external value inside Zoho CRM, we have introduced the External ID field.

What is an External ID field?

An External ID is a custom single line field in a module in Zoho CRM that can hold a record's unique ID in an external system.

When can you use an External field?

When you integrate an application with Zoho CRM, you can use the external field's value to create, update, or delete a record in Zoho CRM instead of Zoho CRM's record ID.
This is particularly useful when you deal with huge data where you can work with just one ID per record instead of two.

  • Integration and data sync - You can simply use the external ID to upsert records instead of the Zoho CRM's record ID, and maintain data sync.

  • Search - When you have an external field, you can search for a record through its external ID instead of the record ID.

Creating an External Field

  • Go to Setup > Customization > Modules and Fields > Choose a module.

  • Create a single line field and provide a name.

  • Click the more options icon and select Edit Properties

  • In the Single Line Properties pop up, specify the field label, and check the Set External Field box.

  • Choose the field's visibility and the type of the external field.

    set as external field option
  • Click Done. Click Save and Close in the module builder.

Types of External Fields

User-based External field

When you set an external field of this type, the external ID of this field is available to each user in CRM. So, each user can manipulate records based on this external value. For example, there are two users in Google "user1" and "user2" that have saved a single Google Contact as "GC1" and "GC2", respectively. Now, when the integration between Google Contacts and Zoho CRM happens, there will be a single Contact record in CRM with a record ID. Now, these users can use their respective Google Contact IDs as an external field's value, and update that record in CRM.

Org-based External field

When you set an external field of this type, the external ID of this field is the same for all users of the org. Consider an example where you have integrated MailChimp with Zoho CRM, and all the email addresses are stored as individual contacts in Zoho CRM. In MailChimp, the Campaign ID is the same for all the email addresses in the list. So, when you set the Campaign ID as the value to an external field, all CRM users can use this external value in CRM to manipulate these contacts.

Mandatory Header in the API Requests

X-EXTERNAL: {module_API_name}.{external_field_API_name}

Possible Values for the Header

  • Simple Reference: {base_module_api_name}.{external_field_api_name}
    Example: Contacts.External_Contact_ID.

  • Associate an external field through a lookup field: {base_module_api_name}.{lookup_field_api_name}.{external_field_api_name}
    Example: Contacts.Account_Name.External_ID.

  • For a Product ID inside a line item: {inventory_module_api_name}.Product_Details.product.{product_external_field_api_name}
    Example: Quotes.Product_Details.product.External_Product_ID.

  • Polymorphic lookup: Events.What_Id->Accounts.External_Account_ID.

  • For a Price Book ID inside a line item: {inventory_module_api_name}.Product_Details.book.{price_book_external_field_api_name}
    Example: Quotes.Product_Details.book.External_ID.

  • For a lookup field in a Subform: {base_module_api_name}.{subform_api_name}.{subform_lookup_field_api_name}.{associated_module_external_field_api_name}
    Example: Contacts.Subform_1.Deal_lookup.External_ID.

  • All the above cases are discussed in various sections of this topic.

  • The External ID feature is available only for the Enterprise and Ultimate editions of Zoho CRM.

  • You can create a single line field of the type "external" only through the UI.

  • You can add or update the value of an external field only via an API.

  • A module can have a maximum of 10 external fields for the Enterprise edition and 15 for the Ultimate edition.