Kaizen #64 - External Fields and Records APIs

Kaizen #64 - External Fields and Records APIs

Hello everyone!
Welcome back to another exciting post in the Kaizen series!
In this post, we will talk about external fields in Zoho CRM and how they are used in Records APIs.

What is an external field?

While you integrate a third-party application, you may want to associate your own primary key in your DB(or an external system) to Zoho CRM's records, and use them in create/update API rather than CRM's "record ID". To meet this requirement, we have introduced external fields.

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

This is useful when you want to upsert records to maintain data sync between Zoho CRM and the external system, and also search for records using their external IDs instead of Zoho CRM's record IDs.
External fields negate the need to maintain two unique IDs in your external system.

Types of External Fields

  1. User-based external fields
    User-based external fields allow values to be stored with respect to each user. So, each user can make use of their corresponding external values(say contact1 and contact2) to manipulate CRM records.
    When data sync happens between the external system and Zoho CRM, these users can update the corresponding record with their respective external values(contact1 and contact2). For example, consider that two users have saved the same contact with different IDs c1 and c2, respectively in their external systems. When data sync happens with Zoho CRM from these systems, there will be one contact in CRM. But, the users can use their external contact IDs c1 and c2 to update the record in CRM.
    Note that the external value for this type is unique to each user.
  2. Org-based external fields
    In contrast to user-based external field, for org-based external fields, there is no association between the external ID stored and the user who configured it. Instead, all users can manipulate the CRM records with that same external ID. Consider that you have a native ERP system to manage finances for your org. The employees(users) will deal with the same clients(leads or contacts). When you integrate this external system with Zoho CRM, the lead/contact ID in the external system becomes the external field value in CRM. Now this integration can use this external ID for any data sync and other actions with Zoho CRM.

How to create an external field in CRM?

  1. Go to Setup > Customization > Modules and Fields > Choose a module.
  2. Create a single line field and provide a name.
  3. Click the more options icon and select Edit Properties.
  4. In the Single Line Properties pop up, specify the field label, and check the Set External Field box.
  5. Choose the field's visibility and the type of the external field.


  6. Click Done. Click Save and Close in the module builder.

Note
  • The external ID feature is available only from the Enterprise edition and up.
  • You can create a single line field of the type "external" only through the UI.
  • A module can have a maximum of 10 external fields for the Enterprise edition and 15 for the Ultimate edition.

In this post, we will discuss using external ID fields in create, update, upsert, delete, and search records APIs.

Mandatory Header in the API Requests

X-EXTERNAL: {module_API_name}.{external_field_API_name}

Note that this header is required only when there are references like lookup fields, line items in the inventory modules, subforms, but not when inserting records directly. 

Here is an example of creating a contact while adding a value to the external field.

Module: Contacts
External field's API name: External_Contact_ID, Value: externalcontact1
Input body:

{
    "data": [
        {
            "Last_Name": "ext contact 1",
            "External_Contact_ID":"externalcontact1"
        }
    ]
}

Creating records using external values

Associating a lookup record through an external field

Base Module: Contacts
Lookup Module: Accounts
Lookup field's API name in base module: Account_Name
External field's API name in the lookup module: External_Account_ID; Value: externalaccount1 
Header: X-EXTERNAL: Contacts.Account_Name.External_Account_ID 
Input body:

{
    "data": [
        {
            "Last_Name": "ext contact 2",
            "Account_Name": {
                "External_Account_ID": "externalaccount1"
            }
        }
    ]
}


Inserting a subform lookup record through an external field in the associated module

Base Module: Contacts
API name of the subform in the base module: ExternalSubform
API name of the lookup field in the subform: Deal_Lookup
API name of the external field in the lookup module: External_Deal_ID
Header: X-EXTERNAL: Contacts.ExternalSubform.Deal_Lookup.External_Deal_ID
Input body:


{
    "data": [
        {
            "Last_Name": "Contact with a Subform and external Deal lookup",
            "ExternalSubform": [
                {
                    "Deal_Lookup": {
                        "External_Deal_ID": "extDeal1"
                    }
                }
            ]
        }
    ]
}


Creating an inventory module's record with external fields in the line items

You can create a record in the inventory module by using the external fields and their values in the line items. For example, creating a quote using the external values of the product and the price book in the Quoted_Items line item.

Inventory Module: Quotes
External field's API name in Products: External_Product_ID; Value: extprod1
External field's API name in Price_Books: External_Price_Book_ID; Value: extpricebook1
Header: X-EXTERNAL: Quotes.Quoted_Items.Product_Name.External_Product_ID,Quotes.Quoted_Items.Price_Book_Name.External_Price_Book_ID

Input body:


{
    "data": [
        {
            "Subject": "Quote 1",
            "Quoted_Items": [
                {
                    "Product_Name": {
                        "External_Product_ID": "extprod1"
                    },
                    "Price_Book": {
                        "External_Price_book_ID": "extpricebook1"
                    },
                    "quantity": 100
                }
            ]
        }
    ]
}


Inserting an Event and associating the What_Id through an external field

When you insert an event related to an account, the What_Id takes the name of the account(Account_Name). We can use the external field's value in the Accounts module, instead of the account name while inserting an event.

Base Module: Events
External field's API name in Accounts: External_Account_ID; Value: extAccount1
Header: X-EXTERNAL: Events.What_Id->Accounts.External_Account_ID
Input body:

{
    "data": [
        {
            "se_module": "Accounts",
            "What_Id": {
                "External_Account_ID": "externalaccount1"
            },
            "Event_Title": "Event Kaizen",
            "Start_DateTime": "2023-01-01T10:10:10+05:30",
            "End_DateTime": "2023-01-01T11:10:10+05:30"
        }
    ]
}

You can also add participants(Leads or Contacts) to an event through their external IDs. Here is an example.
Header: X-EXTERNAL : Events.What_Id->Accounts.External_Account_ID,Events.Participants.participant->Contacts.External_Contact_ID


{
    "data": [
        {
            "Participants": [
                {
                    "type": "contact",
                    "participant": {
                        "External_Contact_ID": "extenalcontact3"
                    }
                }
            ],
            "What_Id": {
                "External_Account_ID": "externalaccount1"
            },
            "$se_module": "Accounts",
            "Event_Title": "Kaizen 1",
            "Start_DateTime": "2023-05-10T10:10:10+05:30",
            "End_DateTime": "2023-05-10T11:10:10+05:30"
        }
    ]
}


Note
You can use the same logic for updating records in Zoho CRM through external fields.

Upserting records using external values

Normally, in an upsert API call, the system checks for duplicates based on the system-defined duplicate check fields and user-defined duplicate check fields.

While upserting through external fields, the system considers the external field as a system-defined unique field, checks for the following:
  • If the external value is unique and the other duplicate checks are done, the system inserts the record if no matching record is found.
  • If the external value already exists in a record, the system updates the other fields given in the input to the matching record.
  • If the external value does not exist, the system checks for the system-defined and user-defined duplicate check fields. If a match is found, the system updates the record with the new external value along with other fields in the input.

How upsert works for org-based and user-based external fields?
  • Org-based external fields
    Consider that a user inserts a record using the external value. Now, when another user tries to create a record with the same external value as the previous user's, the system throws the DUPLICATE_DATA error.
  • User-based external fields
    Consider that a user creates a record with an external value. When the same user upserts using the same external value, the system updates the record.

Note that you need not pass the X-EXTERNAL header for upsert operation as the system considers external field to be unique, anyway, and performs duplicate check.

Deleting records using external fields

You can use the external field's value in the request URL and in the "ids" parameter, instead of CRM's record ID.

Here are the sample requests:

Header: X-EXTERNAL: Contacts.External_Contact_ID

Header: X-EXTERNAL: Contacts.External_Contact_ID
  1. https://www.zohoapis.com/crm/v3/Contacts?ids=extcontact3,extcontact4

Searching for records in a module using external values

You can use the external field's API name and its value in the "criteria" parameter of the search Records API.
The supported operators are "equals" and "in".
Here are the sample requests:

Header: X-EXTERNAL: Contacts.External_Contact_ID
  1. https://www.zohoapis.com/crm/v3/Contacts/search?criteria=(External_Contact_ID:in:usercontact2,usercontact123)&fields=External_Contact_ID,Email

Header: X-EXTERNAL: Contacts.External_Contact_ID
  1. https://www.zohoapis.com/crm/v3/Contacts/search?criteria=(External_Contact_ID:equals:usercontact2)&fields=External_Contact_ID,Email


We hope you found this post useful. Let us know your questions in the comment section or write to us at support@zohocrm.com.

Cheers!
Shylaja


    Access your files securely from anywhere







                            Zoho Developer Community




                                                  • Desk Community Learning Series


                                                  • Digest


                                                  • Functions


                                                  • Meetups


                                                  • Kbase


                                                  • Resources


                                                  • Glossary


                                                  • Desk Marketplace


                                                  • MVP Corner


                                                  • Word of the Day


                                                  • Ask the Experts



                                                            • Sticky Posts

                                                            • Kaizen #217 - Actions APIs : Tasks

                                                              Welcome to another week of Kaizen! In last week's post we discussed Email Notifications APIs which act as the link between your Workflow automations and you. We have discussed how Zylker Cloud Services uses Email Notifications API in their custom dashboard.
                                                            • Kaizen #216 - Actions APIs : Email Notifications

                                                              Welcome to another week of Kaizen! For the last three weeks, we have been discussing Zylker's workflows. We successfully updated a dormant workflow, built a new one from the ground up and more. But our work is not finished—these automated processes are
                                                            • Kaizen #152 - Client Script Support for the new Canvas Record Forms

                                                              Hello everyone! Have you ever wanted to trigger actions on click of a canvas button, icon, or text mandatory forms in Create/Edit and Clone Pages? Have you ever wanted to control how elements behave on the new Canvas Record Forms? This can be achieved
                                                            • Kaizen #142: How to Navigate to Another Page in Zoho CRM using Client Script

                                                              Hello everyone! Welcome back to another exciting Kaizen post. In this post, let us see how you can you navigate to different Pages using Client Script. In this Kaizen post, Need to Navigate to different Pages Client Script ZDKs related to navigation A.
                                                            • Kaizen #210 - Answering your Questions | Event Management System using ZDK CLI

                                                              Hello Everyone, Welcome back to yet another post in the Kaizen Series! As you already may know, for the Kaizen #200 milestone, we asked for your feedback and many of you suggested topics for us to discuss. We have been writing on these topics over the


                                                            Manage your brands on social media



                                                                  Zoho TeamInbox Resources



                                                                      Zoho CRM Plus Resources

                                                                        Zoho Books Resources


                                                                          Zoho Subscriptions Resources

                                                                            Zoho Projects Resources


                                                                              Zoho Sprints Resources


                                                                                Qntrl Resources


                                                                                  Zoho Creator Resources



                                                                                      Zoho CRM Resources

                                                                                      • CRM Community Learning Series

                                                                                        CRM Community Learning Series


                                                                                      • Kaizen

                                                                                        Kaizen

                                                                                      • Functions

                                                                                        Functions

                                                                                      • Meetups

                                                                                        Meetups

                                                                                      • Kbase

                                                                                        Kbase

                                                                                      • Resources

                                                                                        Resources

                                                                                      • Digest

                                                                                        Digest

                                                                                      • CRM Marketplace

                                                                                        CRM Marketplace

                                                                                      • MVP Corner

                                                                                        MVP Corner







                                                                                          Design. Discuss. Deliver.

                                                                                          Create visually engaging stories with Zoho Show.

                                                                                          Get Started Now


                                                                                            Zoho Show Resources

                                                                                              Zoho Writer

                                                                                              Get Started. Write Away!

                                                                                              Writer is a powerful online word processor, designed for collaborative work.

                                                                                                Zoho CRM コンテンツ



                                                                                                  Nederlandse Hulpbronnen


                                                                                                      ご検討中の方




                                                                                                              • Recent Topics

                                                                                                              • Include Suggested Articles in New Ticket Email

                                                                                                                When someone creates a new ticket, is there any way to include recommended knowledge base articles (like the ones Zia Suggests) in the email notification to the user? When they're waiting for a reply, it would be nice to have sent them some recommended
                                                                                                              • Zoho Flow + QuickBooks Estimates – Line items not created from CRM subform

                                                                                                                Hi everyone, I’m trying to create QuickBooks Estimates from Zoho CRM Quotes using Zoho Flow. I’m aware that Zoho Flow’s native “Create Estimate” action does not support multiple line items, so I followed the community guidance for Invoices using a custom
                                                                                                              • SAP S/4 HANA Integration via ZOHO Flow

                                                                                                                Hi How do I change the SAP Client ID while creating a new connection ? MY client ID is 421. I believe the client id should be an input field for length 3 numbers rather then a drop down to select from a fixed set of values. Thanks
                                                                                                              • VLOOKUP FUNCTION PROBLEM

                                                                                                                   Hello, i have a problem with the VLOOKUP  function in my sheet http://public.sheet.zoho.com/public/tonimoreno/indicemasacorporal2 in cell D2. This function doesn't work correctly and always returns the last content of the range. Can you help me?
                                                                                                              • Why am I seeing deleted records in Zoho Analytics syncing with Zoho CRM?

                                                                                                                I have done a data sync between Zoho CRM and Zoho Analytics, and the recycle bin is empty. Why do I see deleted leads/deals/contacts in Zoho Analytics if it doesn't exist in Zoho CRM? How can I solve this problem? Thanks
                                                                                                              • CRM x WorkDrive: We're rolling out the WorkDrive-powered file storage experience for existing users

                                                                                                                Release plan: Gradual rollout to customers without file storage add-ons, in this order: 1. Standalone CRM 2. CRM Plus and Zoho One DCs: All | Editions: All Available now for: - Standalone CRM accounts in Free and Standard editions without file storage
                                                                                                              • Zoho Flow Completely Broken?

                                                                                                                Since December 13th, 100% of our flows have stopped working completely. Nothing is working or triggering??? I called support & sat on the line with them for 2 HOURS until they finally concluded it was a back-end problem on their end?? Now i'm calling
                                                                                                              • Print / Export full Dashboard page

                                                                                                                Hello Zoho team, It is currently only possible to print/export one component of a dashboard at a time. Requesting the option to print/export a full dashboard page with all components to a pdf or picture. Doing through the browser doesn't give good results.
                                                                                                              • emails duplicated in my outlook client

                                                                                                                Hello I am just new here and I have a litle problem that I do not find how to solve. I sumarise here after. Your help would be very appreciated. I have just recently contracted this zoho mail servicesservices as an initial evaluation yesterday night. I then:   - opened a free account  - created 1 initial email address ..........@domain.com  - created a second email address ..........@domain.com - proceeded with the config instructions (checking the ownership of my domain, changing MX etc... ) as
                                                                                                              • How to check task starting time in zoho mobile app?

                                                                                                                I am using the Zoho mobile app on my iPhone, and I am not able to see the task's starting and finishing times. When opening the Task information / Details, I can only see the Task start date and due date, but not the time. Is there any way to check a
                                                                                                              • Creating an extension in Sigma: Zoho CRM isn't selectable as a service

                                                                                                                I have 2 Zoho accounts which are part of 2 different workplaces. One workplace is able to select 'Zoho CRM' as a service option when creating a new extension, the other one is not. I'm not sure what the exact differences are between them. What do I need
                                                                                                              • List of packaged components and if they are upgradable

                                                                                                                Hello, In reference to the article Components and Packaging in Zoho Vertical Studio, can you provide an overview of what these are. Can you also please provide a list of of components that are considered Packaged and also whether they are Upgradable?
                                                                                                              • Cliq iOS can't see shared screen

                                                                                                                Hello, I had this morning a video call with a colleague. She is using Cliq Desktop MacOS and wanted to share her screen with me. I'm on iPad. I noticed, while she shared her screen, I could only see her video, but not the shared screen... Does Cliq iOS is able to display shared screen, or is it somewhere else to be found ? Regards
                                                                                                              • Knowledgebase SEO

                                                                                                                We have a custom-domain mapped help center that is not restricted via login. I have some questions: a) will a robots.txt file still allow us to control indexing? b) do we have the ability to edit the sitemap? c) do category URLs get indexed by search
                                                                                                              • RouteIQ for Zoho FSM

                                                                                                                Beste, Zou wel top zijn dat we een RouteIQ hebben voor FSM aangezien we constant moeten zien wat de beste route is voor onze monteurs. Nu moeten we een speciale aparte programma hebben om de beste route te berrekenen voor onze monteurs aangezien de planning
                                                                                                              • Export Tickets from the Help Center

                                                                                                                Hello everyone! We are now allowing end users to export tickets directly from the help center. The ticket export allows users to: Filter tickets by Department, Priority, and Account before exporting. Download files from Export History (Setup > Data administration
                                                                                                              • Zoho Books Sandbox environment

                                                                                                                Hello. Is there a free sandbox environment for the developers using Zoho Books API? I am working on the Zoho Books add-on and currently not ready to buy a premium service - maybe later when my add-on will start to bring money. Right now I just need a
                                                                                                              • Super Admin Logging in as another User

                                                                                                                How can a Super Admin login as another user. For example, I have a sales rep that is having issues with their Accounts and I want to view their Zoho Account with out having to do a GTM and sharing screens. Moderation Update (8th Aug 2025): We are working
                                                                                                              • Is it possible to remove filtering options?

                                                                                                                My CRM has a lot of custom fields that should not be used in filters or views. Fields that are automated and exist only to store temporary values that get used in functions. These create a lot of noise in the list of fields to filter. Isn't there any
                                                                                                              • Function #18: Associate invoice templates automatically based on customer language

                                                                                                                For businesses dealing with a diverse linguistic clientele, it becomes crucial to send out invoices in the customer's preferred language to ensure effective communication. This requirement can be handled in Zoho Books by creating invoice templates in
                                                                                                              • Changing field types

                                                                                                                Question im a Zoho CRM user and curious, if I change a flied type from single or multi line text to a URL field type will i lose the data in the field or will it be converted to website link automatically. Thanks
                                                                                                              • Quote PDF – Header image stopped rendering suddenly

                                                                                                                Hello Zoho Support Team, We are facing an issue with Quote PDF templates in Zoho Books. Previously, images added inside the Quote header HTML were rendering correctly. However, recently the header image is no longer appearing, while header text still
                                                                                                              • Changing Default PDF Name

                                                                                                                Is it possible to change the default name of a PDF? As of right now, all of my quotes are named 'QT_$QuoteNumber' (i,e: 'QT_19803471298374) - would it be possible to change this to: '$CompanyName - $AccountName - $QuoteNumber' for instance?
                                                                                                              • Tip 2: Recursive functions in Deluge: How to dynamically run a function for a specified number of times.

                                                                                                                Hi folks, As part of the Zoho Creator - Tips and Tricks series every fortnight, we are back today with a new tip on Recursive functions.  Let us first quickly understand what Recursive functions are: A function that calls itself one or more times is known as a Recursive function. That is, you can execute a function to perform a particular action a specific number of times. And, at the end of each iteration, a new output is generated. Recursive functions are commonly used by programmers as it enables
                                                                                                              • Removing "Products" as mandatory field from Sales Order creation page

                                                                                                                Hello, friends According to our workflow, we should: 1) create Sales Order (Stage "New") 2) call and discuss the Products with a customer (Stage "Communication") 3) add the Products to the Sales Order during the call However, "Products" is mandatory to
                                                                                                              • Function #48: Manage fixed installment payments using Zoho Books

                                                                                                                Hello everyone, and welcome back to our series! Businesses offer installment payment options to their customers, particularly for expensive purchases, to ease the financial burden on them. By breaking down the total cost into smaller, more manageable
                                                                                                              • Function #1: Convert an accepted Estimate to Sales Order automatically in Zoho Books

                                                                                                                As you’re aware, Zoho Books provides a default option to have the estimates automatically converted to invoices once your customer accepts them. Many of you wanted a similar option for sales orders, so here’s a workflow that converts accepted estimates
                                                                                                              • Spotlight series #6: The Show app for Android TV has a new look!

                                                                                                                Hello everyone! We are delighted to introduce our revamped and redesigned Show app for Android TV.  Smart TVs are exploding in popularity. Android TV alone has over 110 million active monthly devices. Zoho Show, as part of a constant effort to improve
                                                                                                              • Employee Appraisal Applicability - Why is Date of Joining Hard-Coded?

                                                                                                                In the new (to me, at least) Performance Appraisal Cycle wizard, it's possible to set criteria to determine for whom the appraisal process should apply. This makes sense on its face. However, one MUST use the Date of Joining criterion as a filter. Why
                                                                                                              • WorkDrive for Excel Add on

                                                                                                                Dear Sir/Madam Have installed Workdrive for Microsoft add on But unable to view the same added in Excel
                                                                                                              • Zoho Books integration sync from Zoho CRM does not work

                                                                                                                Hi Zoho Community & Zoho Support We just tried to get a sync some products into Zoho Books from CRM using the native sync and we're getting an error: "It looks like some mandatory fields you're trying to map are empty. Please provide valid field names
                                                                                                              • Appraisals - Order of Previous Reviews Should Be Newest to Oldest

                                                                                                                The new Zoho People layout generally does a decent job at providing the necessary information for performing appraisals of employee performance. One example of this is the Previous Reviews section: This information is helpful when conducting a review.
                                                                                                              • Referencing a cell from another sheet

                                                                                                                My workbook has multiple sheets. Each sheet has some calcluated totals in certain cells. The front master sheet has a list of everything that is detailed on the other sheets, with the totals. These could change at any time, so the totals need to be references to the other cell's value, not a fixed number. So on the master sheet, I put in =, then go the other sheet and choose the cell and hit Enter. In regular Excel, this works. But in the Zoho sheet, it doesn't work. I have to edit the result by
                                                                                                              • auto close automated alert tickets which are similar

                                                                                                                Hello ZOHO Community, we are using ZOHO Desk to process automated monitoring alerts. Scenario: Our monitoring system creates a ticket when a threshold is exceeded, e.g. Subject: Computer 1 – CPU usage 100% – Error A few minutes later, once the issue resolves
                                                                                                              • Paging through API results. a major gap in your documentation.

                                                                                                                There is no way for me. to get all of my data through a single API call. Typically REST APis have mechanisms for paging through API results. But the documentation for the API I am using: https://desk.zoho.com/DeskAPIDocument#Introduction Has no mention
                                                                                                              • Recurring invoices were generated with old template...

                                                                                                                I have recurring invoices setup. Ones generated on 10.20.2025 used the modified template I had used. But for some reason, on the ones created on 11/20/2025, it seems the invoices created reverted to the previous version of the invoice template. Notably,
                                                                                                              • How do people handle using Outlook and Zoho Project calendar at the same time?

                                                                                                                We have an ongoing problem in our organisation where we use Zoho Projects to plan all of our projects tasks and that also allows us to look forward using the workload report to see which of our consultants are overstretched etc and which are available.
                                                                                                              • Please, make writer into a content creation tool

                                                                                                                I'm tired of relying on Google Docs. I'm actually considering moving to ClickUp, but if Writer were a good content creation tool instead of just a word processor, I would finally be able to move all my development within the Zoho ecosystem, rather than
                                                                                                              • How do I associate pricebooks to a customer?

                                                                                                                I setup a few pricebooks, that worked fine. But now the only thing I can do with it, when I enter a quote or sales order, I can select which pricebook to use, but I have to do this product by product every time I add one. Is there a way to connect a pricebook
                                                                                                              • Write-Off multiple invoices and tax calculation

                                                                                                                Good evening, I have many invoices which are long overdue and I do not expect them to be paid. I believe I should write them off. I did some tests and I have some questions:  - I cannot find a way to write off several invoices together. How can I do that,
                                                                                                              • Next Page