Kaizen #144 - Assigning values to different field types using Zoho CRM SDKs - Part II

Kaizen #144 - Assigning values to different field types using Zoho CRM SDKs - Part II



Welcome to another week of our Kaizen series! 

In our last week's Kaizen post, we explored the various field types in Zoho CRM and their typical uses. We also discussed the utility of our SDK sample codes available in our GitHub repositories and how they can be tailored to meet your specific needs. For effective implementation, understanding how to assign values to these different field types using the SDK is crucial, which remains our primary focus in this series.

Last week, we covered this topic using our JAVA SDK. This week, we will discuss assigning values using PHP SDK. To make sure you are all caught up, please revisit Part I before proceeding further.

2. PHP SDK

For more details, please refer to the GitHub repository for our latest PHP SDK. Check out the sample codes here.

Standard Fields:

a. Import the Field Class:
  1. use com\zoho\crm\api\record\{module_api_name};
b. Assign Values to Standard Fields: The syntax for assigning values to standard fields uses the addFieldValue method of the Record object:
  1. $record->addFieldValue({module_api_name}::{field_api_name}(), value);
Replace {module_api_name} and {field_api_name} with the appropriate values for your specific use case. 

Assigning values to Standard Fields:

Field Type
JSON Type
Assign Values Assign Null Value
text (single line)
string 
$record->addFieldValue(Leads::LastName(), "Boyle"); $record->addFieldValue(Leads::LastName(), null);
textarea (multiline)
string
$record->addFieldValue(Leads::Description(), "Specify your description") $record->addFieldValue(Leads::Description(), null);
email
string
$record->addFieldValue(Leads::Email(), "abc@zoho.com"); $record->addFieldValue(Leads::Email(), null);
phone
string
$record->addFieldValue(Leads::Phone(), "91(987)654321"); $record->addFieldValue(Leads::Phone(), null);
picklist
string
$record->addFieldValue(Leads::LeadStatus(), new Choice("Not Contacted")); --
date
string
$record->addFieldValue(Products::Sales_Start_Date(), new DateTime(2024, 6, 13).Date); $record->addFieldValue(Products::Sales_Start_Date(), null);
integer (number)
integer
$record->addFieldValue(Accounts::Employees(), 100); $record->addFieldValue(Accounts::Employees(), 100);
currency (double)
double
$record->addFieldValue(Leads::AnnualRevenue(), 10.00); $record->addFieldValue(Leads::AnnualRevenue(), null);
boolean (checkbox) boolean $record->addFieldValue(Leads::EmailOptOut(), true); --
website (URL)
string
$record->addFieldValue(Leads::Website(), "https://www.zoho.com"); $record->addFieldValue(Leads::Website(), null);

Custom Fields:

To manage custom fields using PHP SDK: a. Import the Record Class:
  1. use com\zoho\crm\api\record\Record;
  2. $record = new Record();
b. Assign Values to Custom Fields: The syntax for assigning values to standard fields uses the AddKeyValue method of the Record object:
  1. $record->addKeyValue("{field_api_name}", value);
Replace {field_api_name} with the appropriate values for your specific use case. 

Assigning values to Custom Fields:

Field Type
JSON Type
Assign Value
Assign Null Value
text (single line)
string 
$record->addKeyValue("Single_Line_Field", "Text Single Line");
$record->addKeyValue("Single_Line_Field", null);
textarea (multiline)
string
$record->addKeyValue("Multi_Line_Field", "Text Multi Line");
$record->addKeyValue("Multi_Line_Field", null);
email
string
$record->addKeyValue("Email_Field", "abc@zoho.com");
$record->addKeyValue("Email_Field", null);
phone
string
$record->addKeyValue("Phone_Field", "9900000000");
$record->addKeyValue("Phone_Field", null);
picklist
string
$record->addKeyValue("Pick_List_Field", new Choice("Option 1"));
$record->addKeyValue("Pick_List_Field", null);
multiselectpicklist
JSON array
$record->addKeyValue("Multi_Select_Field", [new Choice("Option 1"), new Choice("Option 2")]);
$record->addKeyValue("Multi_Select_Field", null);
date
string
$record->addKeyValue("Date_Field", (new \DateTime('2024-06-13')));
$record->addKeyValue("Date_Field", null);
datetime
string
$record->addKeyValue("Date_Time_Field", date_create("2024-06-20T11:10:00+05:30")->setTimezone(new \DateTimeZone(date_default_timezone_get())));
$record->addKeyValue("Date_Time_Field", null);
integer (number)
integer
$record->addKeyValue("Number_Field", 12);
$record->addKeyValue("Number_Field", null);
currency (double)
double
$record->addKeyValue("Currency_Field", 10.25);
$record->addKeyValue("Currency_Field", null);
double
double
$record->addKeyValue("Decimal_Field", 12.25);
$record->addKeyValue("Decimal_Field", null);
percent 
double
$record->addKeyValue("Percent_Field", 12.25);
$record->addKeyValue("Percent_Field", null);
bigint (long integer)
string
$record->addKeyValue("Long_Integer_Field", "12345678");
$record->addKeyValue("Long_Integer_Field", null);
boolean (checkbox)
boolean
$record->addKeyValue("Checkbox_Field", true);
--
website (URL)
string
$record->addKeyValue("URL_Field", "https://www.zoho.com");
$record->addKeyValue("URL_Field", null);
lookup
JSON Object
$account = new Record();
$account->setId("3477061000023362051");
$record->addKeyValue("Lookup_Field", $account);
$record->addKeyValue("Lookup_Field", null);
multiselectlookup
JSON array
$record1 = new Record();
$linkingRecord = new Record();
$record1->addKeyValue("id", "3477061000023362051");
$linkingRecord->addKeyValue("Multi_Select_Lookup_Field", $record1);
$record->addKeyValue("Multi_Select_Lookup_Field", [$linkingRecord]);
$linkingRecord = new Record();
$linkingRecord->addKeyValue("_delete", true);
$linkingRecord->addKeyValue("id", "3477061000023557067");
$record->addKeyValue("Multi_Select_Lookup_Field", [$linkingRecord]);
userlookup
JSON object
$user = new MinifiedUser();
$user->setId("3477061000005791024");
$record->addKeyValue("User_Field", $user);
$record->addKeyValue("User_Field", null);
multiuserlookup
JSON array
$record1= new Record();
$linkingRecord = new MinifiedUser();
$linkingRecord->setId("3477061000005791024");
$record1->addKeyValue("MultiUser", $linkingRecord);
$record->addKeyValue("MultiUser", [$record1]);
$record1 = new Record();
$record1->addKeyValue("_delete", true);
$record1->setId("3477061000023553042");
$record->addKeyValue("MultiUser", [$record1]);
subform
JSON array
$subform = new Record();
$subform->addKeyValue("Name", "SDK");
$user1 = new MinifiedUser();
$user1->setId("3477061000018959001");
$subform->addKeyValue("User_Field", $user1);
$record->addKeyValue("Subform_Field", [$subform]);
$subform = new Record();
$subform->addKeyValue("_delete", true);
$subform->setId("3477061000023557086");
$record->addKeyValue("Subform_Field", [$subform]);
imageupload
JSON array
$imageUpload = new ImageUpload();
$imageUpload->setFileIdS("138ef2d9af5");
$record->addKeyValue("Image_Upload", [$imageUpload]);
$imageUpload = new ImageUpload();
$imageUpload->setDelete(null);
$imageUpload->setId("3477061000023579023");
$record->addKeyValue("Image_Upload", [$imageUpload]);
fileupload
JSON array
$fileDetail1 = new FileDetails();
$fileDetail1->setFileIdS("54957bcbc8fa685");
$record->addKeyValue("File_Upload", [$fileDetail1]);
$fileDetail1 = new FileDetails();
$fileDetail1->setDelete(null);
$fileDetail1->setId("3477061000023551042");
$record->addKeyValue("File_Upload", [$fileDetail1]);
multi_module_lookup
JSON Object
$record1 = new Record();
$record1->setId("3477061000021552002");
$module = array();
$module["id"] = "3477061000000002179";
$module["api_name"] = "Contacts";
$record1->addKeyValue("module", $module);
$record->addKeyValue("Appointment_For", $record1);
--


We trust this post has given you a better understanding of managing field data types in Zoho CRM using our PHP SDK. Remember that this learning does not end here. We have more posts coming up where we will explore handling field data types with our remaining SDK offerings. And do not forget to check out our Github for code samples.

As we strive for continuous improvement, we would love to hear your feedback. What topics would you like to see covered in our Kaizen series? Let us know in the comments or reach out to our support team at support@zohocrm.com.

Thank you for joining us this week. Happy coding and until next time!

Recommended Reads:




    Access your files securely from anywhere

        All-in-one knowledge management and training platform for your employees and customers.







                              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 #198: Using Client Script for Custom Validation in Blueprint

                                                                Nearing 200th Kaizen Post – 1 More to the Big Two-Oh-Oh! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone.
                                                              • Kaizen #226: Using ZRC in Client Script

                                                                Hello everyone! Welcome to another week of Kaizen. In today's post, lets see what is ZRC (Zoho Request Client) and how we can use ZRC methods in Client Script to get inputs from a Salesperson and update the Lead status with a single button click. In this
                                                              • Kaizen #222 - Client Script Support for Notes Related List

                                                                Hello everyone! Welcome to another week of Kaizen. The final Kaizen post of the year 2025 is here! With the new Client Script support for the Notes Related List, you can validate, enrich, and manage notes across modules. In this post, we’ll explore how
                                                              • 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


                                                              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

                                                                                                                • Free webinar alert! Seamless Transition with Lossless Migration: Zoho One + Zoho Mail

                                                                                                                  Hello Zoho Mail Community! 🚀 Attention IT Admins and Email Administrators! Are you planning to migrate your organization's email to Zoho Mail within the Zoho One ecosystem? 📧 Join our exclusive webinar, Seamless Transition with Lossless Migration: Zoho
                                                                                                                • Add Resource to Export

                                                                                                                  The Export Data feature does not include a column for the Resource field. Without this column, Zoho Bookings cannot be used by any business for resource-based services or event types e.g. room bookings, equipment bookings. It seems to be an oversight,
                                                                                                                • Mandatory field via deluge code

                                                                                                                  I would like to ask you if it is possible to make a field mandatory via deluge script. For example, if I have a decision box and I click on it then I want a single line field to be mandatory. If uncheck the decision box then to do the single line as optional. I think it is not possible to do that and I have to do it via validation in 'on validate' field. 
                                                                                                                • Revenue Management: #1 What does it mean to "recognize" revenue?

                                                                                                                  Earning revenue isn't just about collecting cash from your customers. It's about recording the income correctly and consistently. Revenue recognition is the process of deciding when and how to record revenue in financial statements so that they reflect
                                                                                                                • Power of Automation :: Auto-Populate Integration Field in Projects with CRM Account Data

                                                                                                                  Hello Everyone, A custom function is a software code that can be used to automate a process and this allows you to automate a notification, call a webhook, or perform logic immediately after a workflow rule is triggered. This feature helps to automate
                                                                                                                • Zoho Forms and ChatGPT - populating a field using AI.

                                                                                                                  I have a form where I would like the user to enter a response or query, and have another field populated using AI. For example, user enters Field 1, AI populates Field 2 in response. I want to be able to wrap some additional instruction text around the
                                                                                                                • campo tag para api

                                                                                                                  debo conectarme a una api de zoho inventory y ocupo tomar el campo tag para poder asi jalar el articulo que cuente con el campo correcto en tag ejemplo que tag existen carro y avion que cuando busque los articulo con tag carro arroje solo estos por mas
                                                                                                                • Uploading file as attachment to Zoho CRM

                                                                                                                         Hi,   I am trying to attach a file to a Zoho CRM contact using Zoho Flow. Right now, I try to do it through the “Upload File” field in Zoho CRM (In my screenshots, it’s called Téléchargement du fichier 1).   Here is what I tried:   Case 1: Webmerge document The Flow is called “Custom Function” (see screenshot 101).   Step  1: Creating a Webmerge document (screenshot 99)   Step 2: I use “Update module entry” to upload the created file. I upload Webmerge’s “Document” in my “Téléchargemet du
                                                                                                                • Zia Answer Bot - Create Ticket

                                                                                                                  Surprisingly, the current iteration of Zia will try to answer a question and unless you have "transfer to SalesIQ chat" enabled, it won't create a ticket for the user or offer them a method to create a ticket. We don't want it to create chats for us,
                                                                                                                • meassure leads phases

                                                                                                                  Hi, I need to create a table to meassure the time that a lead stay in blueprint phases. the phases are first contact, second contact, lead spam, contacted, appointment. any idea? I have attached an example
                                                                                                                • In the Custom Module I have 500 Records , this 500 record only want to view to the specific user only example user A ,

                                                                                                                  In the Custom Module, I have 500 Old records that should only be visible to a specific user, for example, User A. Any new records created from today onwards should be visible to Record owner in the Custom Module. Pls help how i achive this .
                                                                                                                • How to reply to thread via API

                                                                                                                  We have built a webapp for our customers that uses the Zoho Desk API to enable each customer to view their full list of tickets, view individual tickets and raise new tickets. The Zoho Desk API doesn't have the ability to reply to a ticket/thread. Replies
                                                                                                                • Sending merged mail templates for signatures fail since today

                                                                                                                  We have ZOHO one, we use merge templates in CRM to edit in ZOHO Writer, and from there send it for signature through zoho sign. This all worked up until today, suddenly we read in the log that the merge is succesfull but the sending for signature failed.
                                                                                                                • Feature Request - Make Lead List Larger and Adjustable

                                                                                                                  Hi LandingPage team, I recently started using LandingPage and I am happy to share my feedback to help improve the app. I've noticed on the Leads page, there is no option to make the columns wider. It would be great if the comlumns expanded to fit the
                                                                                                                • Zoho Projects - Pin Recent Projects

                                                                                                                  Hi Projects Team, It would be great if I could "pin" projects on the Recent Projects list in Zoho Projects. We have some internal projects which we regularly have to add time and some regular client projects. It would be great if I could pin those projects
                                                                                                                • ZDK Error

                                                                                                                  I get this error when trying to trigger a CRM Function from Client Script: Uncaught (in promise) ZDKError: {"code":"NOT_ACTIVE","details":{"api_name":"activate_client_from_prospect"},"message":"api is inactive for the given custom function","status":"error"}
                                                                                                                • "Disbursing product components in phases, monitoring them, and displaying only the final product."

                                                                                                                  i have a product composed of multiple components, and these components will be delivered to the customer in batches. However, the final invoice should only show the finished product. How can I issue (or release) the components and track their delive
                                                                                                                • Followed Subtasks doesn't show up in the Subtasks Section

                                                                                                                  I have a task assigned to me now in the same task, there's a subtask and I am added as the follower on that task Even though I am a follower I still don't see that in the subtasks section The view permission for the profile is Related It's supposed to
                                                                                                                • Tip #39- Strengthen account security with Multi-factor Authentication (MFA) – ‘Insider Insights’

                                                                                                                  Securing your organization's data begins with verifying that only the correct individuals have access to it. One of the simplest yet most effective ways to accomplish this is to enable Multi-factor Authentication (MFA) within Zoho Assist. MFA introduces
                                                                                                                • Automate timeout chat tracking with Workflows in SalesIQ

                                                                                                                  With our feature-packed Nova release, Workflows has become one of the most powerful tools in Zoho SalesIQ. They let you automate follow-up actions when key events occur, such as when a chat ends, a visitor leaves a bad/good rating, or a lead is updated.
                                                                                                                • Mass edit / Mass update products

                                                                                                                  Hi, Is there any way to mass update or bulk edit product fields in Zoho Inventory?
                                                                                                                • Automatic Verification of IMAP Integration Status

                                                                                                                  Our sales staff have their O365 email integrated with CRM, over time this integration requires re-authentication via the UI. I can manually check the integration status by accessing Settings -> Channels -> Email -> Email Sharing -> "Configuration Type"
                                                                                                                • Tip of the Week #68– Share and access files faster with Zoho WorkDrive extension.

                                                                                                                  Have you ever wasted time searching for the right file to attach to your emails—or worried whether the right people could access it? Without proper sharing settings, files might end up inaccessible to teammates or, worse, visible to people who shouldn’t
                                                                                                                • CV-Library: The Newest Source Booster in Zoho Recruit!

                                                                                                                  We’ve expanded your sourcing toolkit — CV-Library, one of the UK’s largest and most trusted online job boards, is now available as a Source Booster in Zoho Recruit. This gives recruiters instant access to millions of UK-based candidate profiles, all without
                                                                                                                • Is there the possibility to book less than 250 customer portal users?

                                                                                                                  If you use the Creator, which is included in Zoho ONe, you can create a customer portal and give access to a maximum of 3 external people / customers, right? On the Creator website I saw that you can add 250 users for 100€/month. However, we don't need
                                                                                                                • Display Parts custom fields in the Work Order

                                                                                                                  Hello, I see that is it possible to add custom fields in the Parts module. Would it be possible to also add those custom fields in the Work Order Module under Parts? This would be very useful for customer who want to showcase more information about parts.
                                                                                                                • Unable to edit Saved Estimates

                                                                                                                  We are facing issue with editing the price or discount for a saved estimate for nearly 1 week.
                                                                                                                • Translation Blueprint & Picklists with Custom Values

                                                                                                                  Hello everyone, I downloaded the translation file and I'm not finding the blueprint transitions. Does this means that the transitions cannot be translated? Also, the picklist values to be translated in the document are not the same that are actually used the in module. For exemple, for my lead module, the picklist values for Lead Status are : Not-contacted, contacted, junk and lost lead. In the translation document (English to French), this is what I see: PicklistValues.Leads.Lead_Status.Contact
                                                                                                                • How to create a custom sales signal?

                                                                                                                  I want to create a custom sales signal for a custom module. is it possible to create one? If anyone know please let me know
                                                                                                                • Only show products in offers based on lead source

                                                                                                                  We work with several lead sources, each with their own products and different pricing. For example, one product might have two or three different prices. Sometimes, when creating a quote, the wrong product is accidentally selected. Is there a way to only
                                                                                                                • Narrative 7 - The importance of data sharing

                                                                                                                  Behind the scenes of a successful ticketing system - BTS Series Narrative 7 - The importance of data sharing Definition Data sharing requires a commitment to preserving the integrity and dependability of shared data throughout its entire lifecycle. This
                                                                                                                • Check out in Meetings

                                                                                                                  Why there is no check out in Meetings of Zoho CRM, very difficult to track
                                                                                                                • Issue with Zoho Projet

                                                                                                                  Zoho Project on all the cellphones of my customer is crashing. He has mixed brands (Samsung and Pixel). Everything is fine on website and mobile website. Could not reproduce the issue in workshop using Samsung/Pixel/iPhone Uninstallation of Zoho Project
                                                                                                                • SecurePass email English language issue -- please hire someone to correct the English language issues sprinkled throughout your interface

                                                                                                                  I wrote previously about some incorrect English in your SecurePass offering. After about six months it was corrected. I have never revoked permission before today and just discovered another language mistake that was not corrected. When you revoke a SecurePass
                                                                                                                • Published Components

                                                                                                                  @zoho team, Checking if we can add a password for the public links as we have non-licensed users
                                                                                                                • Please Enable Snippets for Agents Adding Comments

                                                                                                                  Snippets and templates are currently enabled for agents when they use the reply functionality. There is currently no way to add a template or snippets when an agent comments. This is really weird. Our agents don't use the reply functionality, only the
                                                                                                                • Tip of the Week - Extracting Data from JSON Columns

                                                                                                                  Let's say you are importing a CSV or Excel file into Zoho Analytics. What if the file contains a few columns in JSON format? This is where Zoho DataPrep, embedded right within Zoho Analytics, comes in handy. This week's tip explains how to extract data
                                                                                                                • Deluge UI Updates

                                                                                                                  Are there any updates planned for the Deluge UI in Zoho Desk? It feels quite dated and lack-lustre after you've spent some time in the CRM Deluge UI.
                                                                                                                • Zia Agents - Follow Ups

                                                                                                                  It would be nice to have Zia Agents do follow ups. A lot of times agents are trying to schedule things with users and they say "can we set your printer up tomorrow?" and the user never says anything. A way to have a personalized reminder to the user automatically
                                                                                                                • Hide Agents name in Ticket Responses in "My Area"

                                                                                                                  We were able to hide the agents name in the emails, however, the customer is able to see which agent has responded to a ticket in the thread of emails by going into their Help Center thread. Is there any way we can hide that information?
                                                                                                                • Next Page