What?
This is a quick article I use to list step by step on how to set up a custom domain for a Zoho Creator customer portal. In this example, we are going to use a subdomain of a company which has the domain joellipman.com.

Why?
This took me a bit of going backwards and forwards to Zoho rather than getting my client to do this. The aim is to take up as little time as possible of the third-parties involved, plus the documentation online was in parts and requires going to several pages across the Internet. Here I have 1 page and 1 article documenting the process.

How?
I'm breaking this down into 3 stages:
  1. Zoho Creator: Specify Custom Domain
  2. Domain Registrar: Setup subdomain and add CNAME
  3. Zoho Support: Get Zoho to setup SSL

What?
So I thought I'd write a quick article to remind me and to develop a simple notification system that will popup for any user on the submit of a form, or on the click of a button or on the click of a link on a page.

Why?
Because alert (alert task) can only be used on a load of a form, on a change of a field or on the validate process. And because info can only be displayed to an admin and even in some cases only as an additional link in the form. The example below is for use in a customer portal on the click of a report button (report workflow).

How?
This will create a popup using the built-in popup of Zoho creator and gives you the freedom to style the notification as any modal would.

What?
This is an article documenting how to create a Zoho Creator Widget which includes the Bootstrap and jQuery frameworks as well as other JavaScript functionality.

Why?
Quite simply that at time of print (2020-10-24), Zoho Creator does not allow you to use JavaScript anywhere in its app. HTML and CSS are mostly allowed but JavaScript automatically gets removed from any of your code.

How?
As someone who's been using Zoho services and programming in Zoho Deluge for a few years now, even I thought of Zoho Widgets as a daunting task. But after doing some, I realize this is actually very quick to do and much easier than first thought. The article below documents how to create your first widget in a MacOS environment. I aim to create a WindowsPC version of this document at some point for my colleagues. The below instructions follow a fresh install as if this is the first time this computer has created a Zoho Creator Widget.

What?
So this is an article documenting how to create an on/off toggle switch that hides and displays between 2 div layers in a Zoho Creator Page (so not a form or report but a page).

Why?
This is written at a time when Javascript or interactive pages that change on the fly based on a mouse event in Zoho Creator automatically get removed on Save/Update of the page. The following uses the built-in functionality of Zoho Creator and could be seen as a 'Pure CSS' feature. I'm aiming to make a list of capabilities that can be done without loading another framework considering that Zoho Creator has their own version of Bootstrap and jQuery. This is the first example I have where you would want dynamic content in a Zoho Creator page without the use of JavaScript or 'Widgets JS'.

How?
Here are some screenshots to preview what the code below will do, simply copy the code and paste into a Zoho Creator Page.

What?
A very quick article as I couldn't find anything on the WWW to document this error.

Why?
During a data migration, I was using a custom function to copy all the data from one app to another. The specific form was for "Leads" which contained a subform with a product line item list. If I run this code, I would get the error:
copyraw
Expecting ZC_SUBFORM_250 expression found COLLECTION expression
  1.  Expecting ZC_SUBFORM_250 expression found COLLECTION expression 
Another error you may get when using the deluge script is:
copyraw
LIST value cannot be assigned to 'mySubform'
-- or --
COLLECTION value cannot be assigned to 'mySubform'
  1.  LIST value cannot be assigned to 'mySubform' 
  2.  -- or -- 
  3.  COLLECTION value cannot be assigned to 'mySubform' 
or
copyraw
expecting ZC_SUBFORM_70 expression found COLLECTION expression
  1.  expecting ZC_SUBFORM_70 expression found COLLECTION expression 

How?
Quite simply the error is because the Creator Deluge syntax I was using to insert subform rows was wrong.
Category: Zoho :: Article: 730

What?
This is an article to remind me how to search for CRM records by a value that may contain an ampersand or parenthesis.

Why?
I wrote this article because some searches will work for me and sometimes it won't. Escaping the ampersand with a backslash or url encoding to %26 wasn't working for me. I spent several hours trying to write a script that could search for the existing records by company name. The issue is that if you use zoho.crm.searchRecords() this will work fine for company names without special characters such as the ampersand or parentheses. But what if amongst your records you may want to find:
copyraw
Company Name: Father & Sons (Incorporated)
Contact Name: O'Reilly
  1.  Company Name: Father & Sons (Incorporated) 
  2.  Contact Name: O'Reilly 

How?
Well I've tried various replace methods with regular expressions but the only method reliable enough I have found to work each time is using the CRM Object Query Language or Zoho's COQL. Similar to SQL but subject to similar issues of escaping special characters...
Category: Zoho :: Article: 729

What?
This is slightly different to my article Zoho Deluge: Get Refresh/Access Token API v2 (Zoho to Zoho service) and different to my Zoho CRM: APIv2 using PHP & cURL (3rd-Party to Zoho), in that this details how to setup a connection to use in an invoke URL statement. Specifically for Zoho Books, Subscriptions or Inventory.

Why?
Setting up a connection avoids the hassle of having to generate access/refresh tokens using OAuth2.0. Usually used with an invokeUrl:
copyraw
response = invokeUrl
[ 
	url: "https://books.zoho.com/api/v3/estimates?organization_id=12346789" 
	type: GET
	connection: "joelconnector" 
];
  1.  response = invokeUrl 
  2.  [ 
  3.      url: "https://books.zoho.com/api/v3/estimates?organization_id=12346789" 
  4.      type: GET 
  5.      connection: "joelconnector" 
  6.  ]

How?
So in the following example, we are going to setup a connection in Zoho Books on an EU datacenter:
  1. First determine what datacenter your client is using
  2. Register the App
  3. Setup the Connector
Category: Zoho :: Article: 728

What?
So this is an article to document the methods I use to get an image uploaded in a form to display in a report or on another page.

Why?
There might be different articles out there and discussion forums that do cover this but it takes me so long to find the solution with the right syntax.

How?
So I'm going to start with 1 method and then update this article with other methods.

What?
This is an article to document how to use Zoho Deluge to download a file that was uploaded into a Zoho Creator form and then to attach it to a Sales Order in Zoho Books.

Why?
Because it took me so long to find out how to do this even after reading the official documentation and going through the online discussion forums to build this solution. As of May 2020, this is how I do it.

How?
So the trick is, go over the official documentation, but don't take it as gospel. You only really need the syntax for attaching a document to a Sales Order in Books and the documentation leaves certain bits out. Just getting the syntax right and using the . setParamName is key.

What?
So this is a super quick note that I'll probably remember anyway but just in case, I'm writing this article so I don't spend time researching it later.

Why?
I'm synchronizing Xero Invoices with Zoho CRM Invoices and noticed that Xero stores its dates in Unix Timestamps.

How?
We're going to filter out the unix seconds from the date provided by Xero then apply a toTime() function to it.

What?
A very quick article on how to push a multi-select picklist from CRM to Creator.

Why?
We're trying to create a record in Creator off a button on the CRM Potential/Deal record. The CRM module has a multi-select picklist which will use commas to delimit but one of the options has a comma in its value.
copyraw
// What I have in CRM:
{"My_MultiPicklist":["Option1","Options 2, 3"]}

// What Creator understands: FAILS
{"My_MultiPicklist":["["Option1","Options 2, 3"]"]}
  1.  // What I have in CRM: 
  2.  {"My_MultiPicklist":["Option1","Options 2, 3"]} 
  3.   
  4.  // What Creator understands: FAILS 
  5.  {"My_MultiPicklist":["["Option1","Options 2, 3"]"]} 
With workaround .toString()
copyraw
// What Creator understands: FAILS
{"My_MultiPicklist":["Option1","Options 2"," 3"]}
  1.  // What Creator understands: FAILS 
  2.  {"My_MultiPicklist":["Option1","Options 2",3"]} 

How?
So the way to push this value over to Creator is by converting the list to a string... notably comma delimited:
Category: Zoho :: Article: 719

Zoho Deluge - Connect to Xero API

What?
This is an article to document a standalone function which generates an access token from within Zoho CRM so you can access your Xero instance. There are 3rd-party API libraries and SDKs out there but as usual with financial technologies (fintech), I don't trust them. Here's how to do it in pure Deluge with a Zoho CRM custom function.

Why?
It is quite a common request so I'm using this article to refine a generic method of connecting to any client's Xero. The aim is to have a function that initializes a valid connection and then append code to do what we want to do in Xero such as synchronizing invoices or contacts.

How?
So the key thing to remember here is that a Refresh Token in Xero expires immediately after use. You use a Refresh Token to generate a new Access Token which can be reused over the next 30 minutes. In the response, you will also get a new Refresh Token which you should store away for later use when you want to generate a new Access Token.


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

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