Kaizen #86 - PHP SDK [Part III]

Kaizen #86 - PHP SDK [Part III]

Hey there!
Welcome back to yet another insightful post in our Kaizen series!

In this post, we will continue the journey of PHP SDK sample codes for Record Operations from last week. Let us delve into a new set of use-cases and expand your horizons with additional examples in the Record and Send Mail Operations. 

1. Subforms

To add subform details of a record during a record create/update, use the following format.

$subformVar = new Record();
$subformVar->addKeyValue("Subform_Field_API_Name", "FieldValue");
$record->addKeyValue("Subform_API_Name", [$subformVar]);

Repeat the second line of the above code to add as many fields as you have in your subform layout. To add multiple subform records, you will have to map the fields within a new object for each subform record. 

Here is a sample code to update the details of a custom subform in Contacts. 

<?php

use com\zoho\crm\api\HeaderMap;
use com\zoho\crm\api\record\BodyWrapper;
use com\zoho\crm\api\record\RecordOperations;
use com\zoho\crm\api\record\Contacts;
use com\zoho\crm\api\util\Choice;
use com\zoho\crm\api\record\Record;

require_once "vendor/autoload.php";

class UpdateRecord
{
   public static function initialize()        
   {
 // add initialisation code
 // refer to the previous post for details and examples 
   }

public static function updateRecord1(string $moduleAPIName, string $recordId)
    {
        $recordOperations = new RecordOperations();

        $request = new BodyWrapper();

        $record = new Record();
        $record->addFieldValue(Contacts::LastName(), "Boyle");
        $subformRec1 = new Record();
        $subformRec1->addKeyValue("Language_Proficiency", new Choice("English"));
        $subformRec1->addKeyValue("Personal_Email", "patricia.boyle@zylker.com");
        $subformRec1->addKeyValue("Secondary_Phone", "9876543210");
        $record->addKeyValue("Proficiency_and_Others", [$subformRec1]);
        $request->setData([$record]);
        $headerInstance = new HeaderMap();
        $response = $recordOperations->updateRecord($recordId, $moduleAPIName, $request, $headerInstance);
 //Add your code to handle the response received in $response
 // For more details, see here.
    }
}

UpdateRecord::initialize();
$moduleAPIName = "Contacts";
$recordId = "5545974000002858001";
UpdateRecord::updateRecord1($moduleAPIName, $recordId);
?>

2. Line Items and Line Taxes in Inventory Modules

2.1 Product Line Items and Product Line Taxes

To add or update product line items and their product line taxes in the Inventory module, use the following format.

$lineItemVar = new Record();
$lineItemProductVar = new LineItemProduct();
$lineItemProductVar->setId("product_id");
$lineItemVar->addKeyValue("Product_Name", $lineItemProductVar);
$lineItemVar->addKeyValue("Quantity", Value);
$lineItemVar->addKeyValue("ListPrice", Value);
$lineItemVar->addKeyValue("Discount", Value);
$productLineTaxVar = new LineTax();
$productLineTaxVar->setName("Tax_Name");
$productLineTaxVar->setPercentage(Value);
$lineItemVar->addKeyValue('Line_Tax',  [$productLineTaxVar]);

Repeat this code to add multiple products to the inventory record.
Note that when you update any one of the line items in the inventory records, the remaining line items will become null and have to be re-added to the list. 

2.2 Inventory Record Line Taxes

To add line taxes to an inventory record, use the following format.

$lineTaxVar = new LineTax();
$lineTaxVar->setName("Tax_Name");
$lineTaxVar->setPercentage(Value);
$record->addKeyValue('$line_tax', [$lineTaxVar]);

The 'line_tax' represents the tax amount specific to each line item. Whereas, the '$line_tax' represents the tax applied to the overall products in the line item list.

Following is a sample code to create a record in the Quotes module.

<?php

use com\zoho\crm\api\HeaderMap;
use com\zoho\crm\api\record\BodyWrapper;
use com\zoho\crm\api\record\LineTax;
use com\zoho\crm\api\record\LineItemProduct;
use com\zoho\crm\api\record\RecordOperations;
use com\zoho\crm\api\record\{Accounts, Contacts, Quotes, Deals};
use com\zoho\crm\api\record\Record;

require_once "vendor/autoload.php";

class CreateRecords
{
    public static function initialize()
    {
 // add initialisation code
 // refer to the previous post for details and examples 
   }

   public static function createRecords(string $moduleAPIName)
    {
        $recordOperations = new RecordOperations();
        $bodyWrapper = new BodyWrapper();
        $record = new Record();
        $record->addFieldValue(Quotes::Subject(), "Quote No 1");
        $AccountName = new Record();
        $AccountName->addFieldValue(Accounts::id(), "55459742858119");
        $record->addFieldValue(Quotes::AccountName(), $AccountName);
        $dealName = new Record();
        $dealName->addFieldValue(Deals::id(), "55459742858125");
        $record->addFieldValue(Quotes::DealName(), $dealName);
        $contactName = new Record();
        $contactName->addFieldValue(Contacts::id(), "55459742858122");
        $record->addFieldValue(Quotes::ContactName(), $contactName);

         //product 1
        $inventoryLineItem1 = new Record();
        $lineItemProduct1 = new LineItemProduct();
        $lineItemProduct1->setId("55459742897004");
        $inventoryLineItem1->addKeyValue("Product_Name", $lineItemProduct1);
        $inventoryLineItem1->addKeyValue("Quantity", 2.0);
        $inventoryLineItem1->addKeyValue("ListPrice", 150.0);
        $inventoryLineItem1->addKeyValue("Discount", "5%");
        $productLineTax = new LineTax();
        $productLineTax->setName("Sales Tax");
        $productLineTax->setPercentage(2.0);
        $inventoryLineItem1->addKeyValue('Line_Tax', [$productLineTax]);

         //product 2
        $inventoryLineItem2 = new Record();
        $lineItemProduct2 = new LineItemProduct();
        $lineItemProduct2->setId("55459742897009");
        $inventoryLineItem2->addKeyValue("Product_Name", $lineItemProduct2);
        $inventoryLineItem2->addKeyValue("Quantity", 1.0);
        $inventoryLineItem2->addKeyValue("ListPrice", 100.0);
        $inventoryLineItem2->addKeyValue("Discount", "3%");
        $productLineTax1 = new LineTax();
        $productLineTax1->setName("Sales Tax");
        $productLineTax1->setPercentage(2.0);
        $productLineTax2 = new LineTax();
        $productLineTax2->setName("Vat");
        $productLineTax2->setPercentage(4.0);
        $inventoryLineItem2->addKeyValue('Line_Tax', [$productLineTax1, $productLineTax2]);
        $record->addKeyValue("Quoted_Items", [$inventoryLineItem1, $inventoryLineItem2]);

         //line taxes
        $lineTax1 = new LineTax();
        $lineTax1->setName("Sales Tax");
        $lineTax1->setPercentage(2.0);
        $lineTax2 = new LineTax();
        $lineTax2->setName("Vat");
        $lineTax2->setPercentage(2.0);
        $record->addKeyValue('$line_tax', [$lineTax1, $lineTax2]);

        $bodyWrapper->setData([$record]);
        $headerInstance = new HeaderMap();
        $response = $recordOperations->createRecords($moduleAPIName, $bodyWrapper, $headerInstance);
 //Add your code to handle the response received in $response
 // For more details, see here.
    }
}

CreateRecords::initialize();
$moduleAPIName = "Quotes";
CreateRecords::createRecords($moduleAPIName);
?>

3. Events and Tasks Module Operations

3.1 Add and Update Participants in Events

There are two methods to add participants to an event. In the first method, use the record ID of the contact, lead or user. 

$participantVar = new Participants();
$participantVar->addKeyValue("participant", "record_id");
$participantVar->addKeyValue("type", "record_module");
$record->addFieldValue(Events::Participants(), [$participantVar]);

In the second method, mention the participant's email ID with the type key specified as email

$participantVar = new Participants();
$participantVar->setParticipant("name@domain.com");
$participantVar->setType("email");
$record->addFieldValue(Events::Participants(), [$participantVar]);

In the above code snippet, setParticipant() is a method used to assign a new value to the participant field. 

3.2 Reminder in Events

To create/update reminders for any event, use the following format. 

$reminderVar = date_create("YYYY-MM-DDThh:mm:ss.sssZ", new \DateTimeZone(date_default_timezone_get()));
$record->addFieldValue(Events::FieldName(), $reminderVar);

Here date_create() function is used to create the DateTime object with two parameters. The first parameter represents for the DateTime string and the following represents for the time zone

3.3. Reminder in Tasks

To create/update reminder for a task, use the following format.

$remindAtVar = new RemindAt();
$remindAtVar->setAlarm("ACTION=Value;TRIGGER=Condition;TRIGGER_TIME=hh:mm");
$record->addFieldValue(Tasks::FieldName(), $remindAtVar);

In the above code, the setAlarm() method is used to set the reminder properties. The multiple key-value pairs in the string argument denote the properties of your reminder. Following are the representation of keys for this field type.
  • ACTION - Specifies the notification type of the reminder.
  • TRIGGER - Defines the trigger condition that activates the reminder.
  • TRIGGER_TIME - Indicates the time at which the alarm should be triggered.
Refer to this document, to learn more about these key-value pairs and their possible values.

3.4 Recurring Activity in Events and Tasks

Use the following format to create a recurring event.

$recurringActivityVar = new RecurringActivity();
$recurringActivityVar->setRrule("FREQ=value;INTERVAL=value;BYMONTH=mm;BYMONTHDAY=dd;
DTSTART=yyyy-mm-dd;UNTIL=yyyy-mm-dd");
$record->addFieldValue(Module_API_Name::FieldName(), $recurringActivityVar);

Here, the setRrule() method is used to define the elements that determine the recurrence of the activity. This format is common for all the activity modules. To know more about the Rrule elements, refer to this post.

Below is a sample code to create an event using the above field types.

<?php

use com\zoho\crm\api\HeaderMap;
use com\zoho\crm\api\record\BodyWrapper;
use com\zoho\crm\api\record\Participants;
use com\zoho\crm\api\record\RecordOperations;
use com\zoho\crm\api\record\RecurringActivity;
use com\zoho\crm\api\record\Events;
use com\zoho\crm\api\record\Record;

require_once "vendor/autoload.php";

class CreateRecords
{
    public static function initialize()
    {
 // add initialisation code
 // refer to the previous post for details and examples 
    }

    public static function createRecords1(string $moduleAPIName)
    {
        $recordOperations = new RecordOperations();
        $BodyWrapper = new BodyWrapper();
        $record = new Record();
        $record->addFieldValue(Events::EventTitle(), "Test Events");
        $startdatetime = date_create("2023-05-16T23:03:06+05:30", new \DateTimeZone(date_default_timezone_get()));
        $record->addFieldValue(Events::StartDateTime(), $startdatetime);
        $enddatetime = date_create("2023-05-16T23:45:06+05:30", new \DateTimeZone(date_default_timezone_get()));
        $record->addFieldValue(Events::EndDateTime(), $enddatetime);

         //add participants 
        $participant1 = new Participants();
        $participant1->setParticipant("patricia.boyle@zylker.com");
        $participant1->setType("email");
        $participant2 = new Participants();
        $participant2->addKeyValue("participant", "5545974000002858122");
        $participant2->addKeyValue("type", "contact");
        $record->addFieldValue(Events::Participants(), [$participant1, $participant2]);

         //event reminder
        $remindAt = date_create("2023-05-16T21:00:06+05:30", new \DateTimeZone(date_default_timezone_get()));
        $record->addFieldValue(Events::RemindAt(), $remindAt);

         //recurring event
        $recurringActivity = new RecurringActivity();
        $recurringActivity->setRrule("FREQ=YEARLY;INTERVAL=1;BYMONTH=5;BYMONTHDAY=16;DTSTART=2023-05-16;UNTIL=2026-05-16");
        $record->addFieldValue(Events::RecurringActivity(), $recurringActivity);

        $BodyWrapper->setData([$record]);
        $headerInstance = new HeaderMap();
        $response = $recordOperations->createRecords($moduleAPIName, $BodyWrapper, $headerInstance);
 //Add your code to handle the response received in $response
 // For more details, see here.
    }
}

CreateRecords::initialize();
$moduleAPIName = "Events";
CreateRecords::createRecords1($moduleAPIName);
?>

Here is a sample code for creating a recurring task with a reminder.

<?php

use com\zoho\crm\api\HeaderMap;
use com\zoho\crm\api\record\BodyWrapper;
use com\zoho\crm\api\record\RecordOperations;
use com\zoho\crm\api\record\RecurringActivity;
use com\zoho\crm\api\record\RemindAt;
use com\zoho\crm\api\record\Tasks;
use com\zoho\crm\api\record\Record;

require_once "vendor/autoload.php";

class CreateRecords
{
    public static function initialize()
    {
 // add initialisation code
 // refer to the previous post for details and examples 
   }

    public static function createRecords1(string $moduleAPIName)
    {
        $recordOperations = new RecordOperations();
        $bodyWrapper = new BodyWrapper();
        $record = new Record();
        $record->addFieldValue(Tasks::Subject(), "Follow-up call");

         //task reminder
        $remindAt = new RemindAt();
        $remindAt->setAlarm("ACTION=EMAIL;TRIGGER=-P0D;TRIGGER_TIME=14:20");
        $record->addFieldValue(Tasks::RemindAt(), $remindAt);

         // recurring task
        $recurringActivity = new RecurringActivity();
        $recurringActivity->setRrule("FREQ=WEEKLY;INTERVAL=1;UNTIL=2023-06-01;BYDAY=TH;DTSTART=2023-06-01");
        $record->addFieldValue(Tasks::RecurringActivity(), $recurringActivity);

        $bodyWrapper->setData([$record]);
        $headerInstance = new HeaderMap();
        $response = $recordOperations->createRecords($moduleAPIName, $bodyWrapper, $headerInstance);
 //Add your code to handle the response received in $response
 // For more details, see here.
    }
}

CreateRecords::initialize();
$moduleAPIName = "Tasks";
CreateRecords::createRecords1($moduleAPIName);
?>

5. Send Email

You can either use an email or inventory template to send mail or write your own HTML/text body for the email. Refer to this sample code on GitHub to know how to fetch the inventory template IDs.  To use a template in your email follow the below structure.

$mail = new Mail();
$templateVar = new EmailTemplate();
$templateVar->setId(template_id);
$mail->setTemplate($templateVar);

Use the following format to write your own email body.

$mail = new Mail();
$mail->setContent("your_html_content");
$mail->setMailFormat("html");

To specify plain text as the value for the setContent() method, you have to set text as the value for the setMailFormat() method.

Here is a sample code of send mail using email template for your reference.

<?php

use com\zoho\crm\api\sendmail\SendMailOperations;
use com\zoho\crm\api\sendmail\Mail;
use com\zoho\crm\api\emailtemplates\EmailTemplate;
use com\zoho\crm\api\sendmail\BodyWrapper;
use com\zoho\crm\api\sendmail\UserAddress;
//use com\zoho\crm\api\inventorytemplates\InventoryTemplate;

require_once "vendor/autoload.php";

class SendMail
{
    public static function initialize()
    {
 // add initialisation code
 // refer to the previous post for details and examples 
   }

    public static function sendMail1(string $recordId, string $moduleAPIName)
    {
        $sendMailOperations = new SendMailOperations();
        $mail = new Mail();
        $from = new UserAddress();
        $from->setUserName("Patricia Boyle");
        $from->setEmail("patricia.boyle@zylker.com");
        $mail->setFrom($from);
        $to = new UserAddress();
        $to->setUserName("Carissa Kidman");
        $to->setEmail("carissa-kidman@yahoo.com");
        $mail->setTo([$to]);
        $mail->setSubject("Mail subject");

         //use this for customized email body
        //$mail->setContent("Hello! Thank you for shopping with us!");
        //$mail->setMailFormat("text");

         //use this for inventory template
        //$template = new InventoryTemplate();
        //$template->setId("55459741230768");
        //$mail->setTemplate($template);

        $template = new EmailTemplate();
        $template->setId("55459741230058");
        $mail->setTemplate($template);
        $mail->setConsentEmail(true);
        $wrapper = new BodyWrapper();
        $wrapper->setData([$mail]);
        $response = $sendMailOperations->sendMail($recordId, $moduleAPIName, $wrapper);
 //Add your code to handle the response received in $response
 // For more details, see here.
    }
}

SendMail::initialize();
$recordId = "5545974000002935001";
$moduleAPIName = "Contacts";
SendMail::sendMail1($recordId, $moduleAPIName);
?>

We hope you found this post useful and engaging! 

If you have any queries, feel free to drop them in the comments section below or reach out to us directly at support@zohocrm.com. We eagerly await your thoughts and feedback on this!

Keep an eye out for future posts packed with similar content!

Cheers!

Additional Reading


    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 #197: Frequently Asked Questions on GraphQL APIs

                                                            🎊 Nearing 200th Kaizen Post – We want to hear from you! 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 #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.
                                                          • Celebrating 200 posts of Kaizen! Share your ideas for the milestone post

                                                            Hello Developers, We launched the Kaizen series in 2019 to share helpful content to support your Zoho CRM development journey. Staying true to its spirit—Kaizen Series: Continuous Improvement for Developer Experience—we've shared everything from FAQs
                                                          • Kaizen #193: Creating different fields in Zoho CRM through API

                                                            🎊 Nearing 200th Kaizen Post – We want to hear from you! 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.
                                                          • Client Script | Update - Introducing Commands in Client Script!

                                                            Have you ever wished you could trigger Client Script from contexts other than just the supported pages and events? Have you ever wanted to leverage the advantage of Client Script at your finger tip? Discover the power of Client Script - Commands! Commands


                                                          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 Writer

                                                                                            Get Started. Write Away!

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

                                                                                              Zoho CRM コンテンツ





                                                                                                Nederlandse Hulpbronnen


                                                                                                    ご検討中の方




                                                                                                          • Recent Topics

                                                                                                          • Upload API

                                                                                                            I'm trying to use the Upload API to upload some images and attach them to comments (https://desk.zoho.com/DeskAPIDocument#Uploads#Uploads_Uploadfile) - however I can only ever get a 401 or bad request back. I'm using an OAuth token with the Desk.tickets.ALL
                                                                                                          • ZOHO Creator subform link

                                                                                                            Dear Community Support, I am looking for some guidance on how to add a clickable link within a Zoho Creator subform. The goal is for this link to redirect users to another Creator form where they can edit the data related to the specific row they clicked
                                                                                                          • Adding Overlays to Live Stream

                                                                                                            Hello folks, The company I work for will host an online event through Zoho Webinar. I want to add an overlay (an image) at the bottom of the screen with all the sponsors' logos. Is it possible to add an image as an overlay during the live stream? If so,
                                                                                                          • Email Sending Failed - SMTP Error: data not accepted. - WHMCS Not sending emails due to this error

                                                                                                            I have been trying to figure out a fix for about a week now and I haven't found one on my own so I am going to ask for help on here.  After checking all the settings and even resetting my password for the email used for WHMCS it still says: Email Sending Failed - SMTP Error: data not accepted.  I have no clue how to fix it at this point. Any insight would be lovely. 
                                                                                                          • FSM setup

                                                                                                            So we have been tinkering with FSM to see if it is going to be for us. Now is the time to bite the bullet and link it to our zoho books and zoho crm. The help guides are good but it would really help if they were a bit more in depth on the intergrations.
                                                                                                          • Does Zoho Learn integrate with Zoho Connect,People,Workdrive,Project,Desk?

                                                                                                            Can we propose Zoho LEarn as a centralised Knowledge Portal tool that can get synched with the other Zoho products and serve as a central Knowledge repository?
                                                                                                          • Zoho Flow - Update record in Trackvia

                                                                                                            Hello, I have a Flow that executes correctly but I only want it to execute once when a particular field on a record is updated in TrackVia. I have the trigger filters setup correctly and I want to add an "update record" action at the end of the flow to
                                                                                                          • Add Comprehensive Accessibility Features to Zoho Desk Help Center for End Users

                                                                                                            Hello Zoho Desk Team, We hope you're doing well. We’d like to submit a feature request to enhance the client-facing Help Center in Zoho Desk with comprehensive accessibility features, similar to those already available on the agent interface. 🎯 Current
                                                                                                          • Filtering repport for portal users

                                                                                                            Salut, I have a weird problem that I just cannot figure out : When I enter information as administrator on behalf of a "supplier" portal user (in his "inventory" in a shared inventory system), I can see it, "customer" portal users can see it, but the
                                                                                                          • How to add application logo

                                                                                                            I'm creating an application which i do not want it to show my organization logo so i have changed the setting but i cannot find where to upload/select the logo i wish to use for my application. I have seen something online about using Deluge and writing
                                                                                                          • Zoho Projects - Q2 Updates | 2025

                                                                                                            Hello Users, With this year's second quarter behind us, Zoho Projects is marching towards expanding its usability with a user-centered, more collaborative, customizable, and automated attribute. But before we chart out plans for what’s next, it’s worth
                                                                                                          • Rename Record Summary PDF in SendMail task

                                                                                                            So I've been tasked with renaming a record summary PDF to be sent as part of a sendmail task. Normally I would offer the manual solution, a user exports the PDF and uploads it to a file upload field, however this is not acceptable to the client in this
                                                                                                          • Option to Empty Entire Mailbox or Folder in Zoho Mail

                                                                                                            Hello Zoho Mail Team, How are you? We would like to request an enhancement to Zoho Mail that would allow administrators and users to quickly clear out entire folders or mailboxes, including shared mailboxes. Current Limitation: At present, Zoho Mail only
                                                                                                          • Create new Account with contact

                                                                                                            Hi I can create a new Account and, as part of that process, add a primary contact (First name, last name) and Email. But THIS contact does NOT appear in Contacts. How can I make sure the Contact added when creating an Account is also listed as a Contact?
                                                                                                          • BUTTONS SHOWN AS AN ICON ON A REPORT

                                                                                                            Hi Is there any way to create an action button but show it as an icon on a report please? As per the attached example? So if the user clicks the icon, it triggers an action?
                                                                                                          • in zoho creator Sales Returns form has sub form Line Items return quantity when i upate the or enter any values in the sub form that want to reflect in the Sales Order form item deail sub form field Q

                                                                                                            in zoho creator Sales Returns form has sub form Line Items return quantity when i upate the or enter any values in the sub form that want to reflect in the Sales Order form item deail sub form field Quantity Returned\ pls check the recording fetch_salesorder
                                                                                                          • Estimates with options and sub-totals

                                                                                                            Hi It seems it would be great to be able to show multiple options in an estimate. For instance I have a core product to which I can add options, and maybe sub-options... It would be great to have subtotals and isolate the core from the not compulsory items. Thanks
                                                                                                          • Rate Limiting in Zoho Flow (OpenAI API)

                                                                                                            Hi Everyone, We are facing some issues when using Zoho Flow as we have a deluge script running which is making external calls to OpenAI endpoint. Sometimes the response takes more than 30 seconds meaning the script will timeout. We want to implement a
                                                                                                          • Optional Items Estimate

                                                                                                            How do you handle optional items within an estimate? In our case we have only options to choose with. (Like your software pricing, ...standard, professional, enterprise) How can we disable the total price? Working with Qty = 0 is unprofessional....
                                                                                                          • Important Update : Zendesk Sell announced End of Life

                                                                                                            Hello Zendesk users, Zendesk has officially announced that Zendesk Sell will reach its End of Life (EOL) on August 31, 2027 (Learn more). In line with this deprecation, Zoho Analytics will retire its native Zendesk Sell connector effective October 1,
                                                                                                          • Zoho Sheets

                                                                                                            Hi, I am trying to transition into Zoho sheets, I have attached the issues encountered. Server issues, file trying to upload for more than 30 mins, even once uploaded my data aren't loaded. Simple calculations are not working I have attached the sample.
                                                                                                          • Create static subforms in Zoho CRM: streamline data entry with pre-defined values

                                                                                                            Last modified on (9 July, 2025): This feature was available in early access and is currently being rolled out to customers in phases. Currently available for users in the the AU, CA, and SA DCs. It will be enabled for the remaining DCs in the next couple
                                                                                                          • Zoho CRM + Zoho FSM : alignez vos équipes commerciales et techniques

                                                                                                            La vente est finalisée, mais le parcours client ne fait que commencer ! Dans les entreprises orientées service, conclure une vente représente seulement la première étape. Ce qui suit — installation, réparation ou maintenance régulière — influence grandement
                                                                                                          • Top Bar Shifting issue still not fixed yet

                                                                                                            I mentioned in a previous ticket that on Android, the top bar shifts up when you view collections or when you're in the settings. That issue still hasn't been fixed yet. I don't wanna have to reinstall the app as I've noticed for some reason, reinstalling
                                                                                                          • Power of Automation:: Automate the process of updating project status based on a specific task status.

                                                                                                            Hello Everyone, Today, I am pleased to showcase the capabilities of a custom function that is available in our Gallery. To explore the custom functions within the Gallery, please follow the steps below. Click Setup in the top right corner > Developer
                                                                                                          • Celebrating Connections with Zoho Desk

                                                                                                            September 27 is a special day marking two great occasions: World Tourism Day and Google’s birthday. What do these two events have in common (besides the date)? It's something that Zoho Desk celebrates, too: making connections. The connect through tourism
                                                                                                          • Attention API Users: Upcoming Support for Renaming System Fields

                                                                                                            Hello all! We are excited to announce an upcoming enhancement in Zoho CRM: support for renaming system-defined fields! Current Behavior Currently, system-defined fields returned by the GET - Fields Metadata API have display_label and field_label properties
                                                                                                          • Billing Management: #3 Billing Unbilled Charges Periodically

                                                                                                            We had a smooth sail into Prorated Billing, a practice that ensures fairness when customers join, upgrade, or downgrade a service at any point during the billing cycle. But what happens when a customer requests additional limits or features during the
                                                                                                          • No bank feeds from First National Bank South Africa since 12 September

                                                                                                            I do not know how Zoho Books expects its customers to run a business like this. I have contacted Zoho books numerous times about this and the say it is solved - on email NO ONE ANSWERS THE SOUTH AFRICAN HELP LINE Come on Zoho Books, you cannot expect
                                                                                                          • Zoho CRM Calendar | Custom Buttons

                                                                                                            I'm working with my sales team to make our scheduling process easier for our team. We primary rely on Zoho CRM calendar to organize our events for our sales team. I was wondering if there is a way to add custom button in the Calendar view on events/meeting
                                                                                                          • Sync desktop folders instantly with WorkDrive TrueSync (Beta)

                                                                                                            Keeping your important files backed up and accessible has never been easier! With WorkDrive desktop app (TrueSync), you can now automatically sync specific desktop folders to WorkDrive Web, ensuring seamless, real-time updates across devices. Important:
                                                                                                          • Citation Problem

                                                                                                            I had an previous ticket (#116148702) on this subject. The basic problem is this; the "Fetch Details" feature works fine on the first attempt but fails on every subsequent attempt, Back in July after having submitted information electronically and was
                                                                                                          • Open Sans Font in Zoho Books is not Open Sans.

                                                                                                            Font choice in customising PDF Templates is very limited, we cannot upload custom fonts, and to make things worse, the font names are not accurate. I selected Open Sans, and thought the system was bugging, but no, Open Sans is not Open Sans. The real
                                                                                                          • Does Zoho Sheet Supports https://n8n.io ?

                                                                                                            Does Zoho Sheet Supports https://n8n.io ? If not, can we take this as an idea and deploy in future please? Thanks
                                                                                                          • Failing to generate Access and Refresh Token

                                                                                                            Hello.  I have two problems: First one when generating Access and Refresh Token I get this response:  As per the guide here : https://www.zoho.com/books/api/v3/#oauth (using server based application) I'm following all the steps. I have managed to get
                                                                                                          • Zeptomail 136.143.188.150 blocked by SpamCop

                                                                                                            Hi - it looks like this IP is being blocked, resulting in hard bounces unfortunately :( "Reason: uncategorized-bounceMessage: 5.7.1 Service unavailable; Client host [136.143.188.150] blocked using bl.spamcop.net; Blocked - see https://www.spamcop.net/bl.shtml?136.143.188.150
                                                                                                          • Apply transaction rules to multiple banks

                                                                                                            Is there any way to make transaction rules for one bank apply to other banks? It seems cumbersome to have to re-enter the same date for every account.
                                                                                                          • How to bulk update records with Data Enrichment by Zia

                                                                                                            Hi, I want to bulk update my records with Data Enrichment by Zia. How can I do this?
                                                                                                          • Need Guidance on SPF Flattening for Zoho Mail Configuration

                                                                                                            Hi everyone, I'm hoping to get some advice on optimizing my SPF record for a Zoho Mail setup. I use Zoho Mail along with several other Zoho services, and as a result, my current SPF record has grown to include multiple include mechanisms. My Cloudflare
                                                                                                          • Is there an equivalent to the radius search in RECRUIT available in the CRM

                                                                                                            We have a need to find all Leads and/or Contacts within a given radius of a given location (most likely postcode) but also possibly an address. I was wondering whether anyone has found a way to achieve this in the CRM much as the radius search in RECRUIT
                                                                                                          • Next Page