What?
A really quick article on a pretty cool requirement, making 2 fields mandatory but if one is completed then making the other optional.

Why?
My use-case is that the mobile or email field on a Zoho CRM contact record is used to authenticate the contact on a Wordpress portal. OTP or 2FA or MFA or OTC is in effect however; so a contact email OR phone number is required. Both aren't required but at least one should be.

How?
We can do this without code and only using ZohoCRM layout rules. Let's take a contact record for demo purposes:
ZohoCRM: Make either Mobile or Email mandatory: As it appears first

If I enter a phone number:
ZohoCRM: Make either Mobile or Email mandatory: If phone entered

If I enter an email:
ZohoCRM: Make either Mobile or Email mandatory: If email entered


What?
This is an article to document how to get your team folder ID, retrieve information about it, and upload to it via the API.

Why?
The documentation is there but making sense of it, is somewhat difficult, at least for me.

How?
So when I was trying this, I would get either "URL rule not configured" or an unhelpful blank response.

What?
I think I have a similar article on this website but the article below documents the full process to create a button that will map the values/fields from the record into a CRM Mail Merge template and send it off for signing, then return the Signed document attached to the initial record (where the button was).

Why?
If anyone has the envious task of sending a document out for signing by a customer, you will know this takes a while to do:
  1. You have to find the contact record in CRM for example
  2. Click on "Send for Zoho Sign"
  3. Select the template document or upload one
  4. Add the fields that you will complete, and the ones that other recipients will complete
  5. Send it for your end-user to complete and sign it
  6. This comes back to a section called "ZohoSign Documents", download the attachment
  7. Go back to the contact record, and upload the file to the attachment...
Some customers say this is unworkable and takes far too long, especially the part of adding the various field placeholders onto the template document; every time.

What if I told you we can code a single button on the record which does all of that for you; with only you needing to approve the document before it gets sent to the end user, and when they finish signing it, it attaches automatically back on to the record?... It is possible. The article below documents it but as this is a fair bit of coding, you may want to ask us to build this solution for you. It can take a few days but it will save your staff a ton of time per week!

What your staff see:
Zoho CRM & Zoho Sign: Send CRM Merged Template for Zoho Sign: The one button to rule them all

How?
So we're going to create a button. Let's use the example of a credit application you want to send to your customer, and when they complete it, the PDF version gets attached to their contact record... all from one click of a button:

What?
A very quick article on how to check what the statement execution limit is on the Zoho application you are working in.

Why?
Our use-case is that an application we built in Zoho Creator was hitting statement execution limits and rather than proposing an upgrade or add-on to the subscription plan; we wanted some proof using code.

How?
We're going to use a quick snippet of some code. So create a function in the Zoho App you are checking, or somewhere you can write some Zoho Deluge code.

Note that requesting an increase of the limit or an upgrade to the subscription will likely to have to be asked directly to Zoho rather than using the online subscription plan management section.

What?
This is an article to remind me how I did this for a customer and images help visualize the health of the system.

Why?
The use-case here is to build a system which monitors a Zoho App for when records were last modified and if a synchronization process starts to fail, there should be images or icons warning or advising of failures.

How?
The key trick to use here the ability for Zoho Analytics to display different images based on a criteria or a value within a data table. As documented in an earlier article, put the URL of the image, then change it's format to show the image and not the URL text. In this example, we are using images uploaded in the Zoho Analytics image library but you would need images either uploaded in Analytics or a publicly accessible image without a user wall.

What?
A quick article because I couldn't find anything that documented this with a working example.

Why?
The use-case here is that we want to make a ZohoCreator page display events for this month from ZohoProjects.

How?
The bit that stumped me was making a call to the Events endpoint as it would just come back with a blank response...

The reason it was blank was due to my parameters; the key item to remember is that status is a mandatory field and it can either be "closed" or "open".

What?
A quick article to document 2 features in deluge code: a custom related list in ZohoBooks, and a reminder on how to read a table from ZohoAnalytics.

Why?
My use-case here is that we have a client who uses their purchase orders and sales orders as part of a logistics solution where items are purchased from a supplier, sent to another supplier for grading, and then sent on to the end user/customer.

A custom field against the item record has been added which is a lookup to the Sales Order module. This means that on a purchase order, and per line item, the staff can specify which Sales Order the item relates to.

How?
At time of print, adding the lookup to the line item will automatically display a related list on the Sales Order but does not associate any records... not sure why this is. So we have a workaround, by sending all the data including the custom fields per line items to ZohoAnalytics; and in ZohoAnalytics importing a table based on a query which joins the sales orders and purchase order items by the custom lookup field.


What?
A quick article on how to setup an automation that checks if a datasource synchronization between Zoho People and Zoho Analytics failed. This can be adapted to any data source for Zoho Analytics.

Why?
We're assisting a client implement Zoho People as their new HR solution. Zoho Analytics is used to generate specific spreadsheets for a feed into their third-party payroll system. If the data is incorrect in Zoho Analytics, and payroll gets run with these discrepancies, then they will have a fair few disgruntled employees who may have been paid incorrectly. As such this system has to be reliable and the system managers need to be notified in advance of any errors with the intention to be able to correct any inconsistencies themselves.

How?
We're going to add a scheduled workflow on a daily basis at 1am in the morning every day. This will be added to the client's Zoho People instance which will check the datasource metadata via the Analytics API.


What?
A quick article on how to get the pricebook entry using Zoho Deluge for a specific product in your ZohoBooks or ZohoInventory instance.

Why?
This took me the best part of an hour to determine by going through forum posts from 7 years to 2 years ago. The following will work in May 2024 following the API domain change.

The use-case is that the customer wants the item/product rate taken from the item record, if a pricebook is specified and the item exists within it, then it takes the rate from the pricelist. Note that when I refer to pricebook, this is also referred to as the pricelist... and vice-versa.

And in this use-case, my client has added an incredible number of price books/ price lists and then has in excess of 20k items. Previously, the function that would need to get the price book rate post saving a record in Zoho Deluge would fail because it was making too many function statements.

How?
I have this code triggered in a workflow when the sales order is created to do some further calculations based on a surcharge rate held in a custom module. The custom module could only be created in Zoho Books at time of print but Zoho Inventory is where our workflow and code is sitting right now.

What?
An article to ensure I never spend this long on such a request again. The brief is: "Follow up when a lead is created and not converted within 1 day send an email and notification to sales person everyday for 3 days then escalate to a specified user".

Why?
Sorry Zoho! I tried using the interface to set up a workflow or any other mechanisms within ZohoCRM that allowed me to set up a daily reminder to the lead record owner but to no avail. An assignment rule wouldn't work in this case as it had to be the lead owner (there is no owner at assignment rule stage). A workflow email notification doesn't do the popup on the CRM as well. A workflow notify by email didn't give the option to remind daily... only weekly or monthly.

Spent a while trying not to use code but here we are. Code is our friend.

How?
So we'll run a workflow that triggers on the creation of a lead and runs a function which will simultaneously create a task with a reminder both on popup and email which repeats every day until an end date.

We then carry out the last bit of the brief with a separate workflow that runs exactly 4 days after the lead creation time and assigns it to the specified user (full name of user was given in the brief but removed here for privacy).

Finally, we delete any of these tasks when they get transferred to the contact record.


What?
There are already articles out there that document this but I use this more and more and would rather just find it on my site than going through multiple bookmarks.

Why?
This use-case is for a customer who simply wanted a quote template to be rendered for PDF or print format. I have another article for a different client who wants a pretty advanced HTML template (well it's a HTML table with rowspans and the borders need to merge cells). But here we're simply going to use ZohoCreator and its PDF rendering options.

What's wrong with just using CSS? It looks beautiful on ZohoCreator pages but then you hit the PDF button and it pretty much vomits your output back to the 90s. The code snippet below is just for a standard template with a modern design.

How?
Ok, admittedly, when first designing the template, there could have been a fair few improvements right out of the gate. Then the client comes back and says things like "can we add this?", "can it say this instead?", "can it be in a bigger font?"... without pushing back too much, it can end up looking like those old websites with HTML tables. We're going to use a HTML table again but that's because I want to send it to the PDF renderer in ZohoCreator and want all the data to stay aligned. Using only DIV layers can cause a few unexpected layouts in ZohoCreator.

What?
This is an article to show how to setup a scheduled function that checks and restores a missing webhook as well as the snippets when receiving the webhooks and storing them.

Why?
We found that Shopify would intermittently remove our webhooks. This would make the entire synchronization of the system go out of whack and some records would slip through the net while every day, the process to tidy these all up would leave the data more and more unreliable.

So Shopify want your webhooks to respond within 1 second. This is about enough time to store the record but that's it. Processing the record must be done at a later time or in a different process but sometimes it simply will not process it all and respond to Shopify within 1 second.

How?
So let's begin with the code snippets as these might answer your question to begin with and then we'll do the easy bit on how you set this up in the CRM. I'm using ZohoCRM here despite storing the record in ZohoCreator as the app and data processing is mostly done in ZohoCreator. I could have setup webhooks to go directly to Zoho Creator but I don't find Zoho Creator reliable when receiving and responding to webhooks.

Important!: For the REST API to detect what webhooks exist, it can only detect what webhooks it initialized. If you added webhooks via another app or via the Shopify Admin interface, then the following code won't be able to check and restore them.

Credit where Credit is Due:


Feel free to copy, redistribute and share this information. All that we ask is that you attribute credit and possibly even a link back to this website as it really helps in our search engine rankings.

Disclaimer: Please note that the information provided on this website is intended for informational purposes only and does not represent a warranty. The opinions expressed are those of the author only. We recommend testing any solutions in a development environment before implementing them in production. The articles are based on our good faith efforts and were current at the time of writing, reflecting our practical experience in a commercial setting.

Thank you for visiting and, as always, we hope this website was of some use to you!

Kind Regards,

Joel Lipman
www.joellipman.com

RSS Feed

Related Articles

Joes Revolver Map

Joes Word Cloud

using   database   used   create   function   page   form   website   version   source   work   license   parameter   name   creator   case   where   files   data   would   user   deluge   following   report   mysql   joomla   list   note   time   value   windows   file   error   order   system   zoho   added   server   record   client   uploaded   find   date   field   script   code   first   display   need   table   JoelLipman.Com

Accreditation

Badge - Certified Zoho Creator Associate
Badge - Certified Zoho Creator Associate

Donate & Support

If you like my content, and would like to support this sharing site, feel free to donate using a method below:

Paypal:
Donate to Joel Lipman via PayPal

Bitcoin:
Donate to Joel Lipman with Bitcoin bc1qf6elrdxc968h0k673l2djc9wrpazhqtxw8qqp4

Ethereum:
Donate to Joel Lipman with Ethereum 0xb038962F3809b425D661EF5D22294Cf45E02FebF
© 2024 Joel Lipman .com. All Rights Reserved.