For Zoho Services only:


I'm actually part of something bigger at Ascent Business Solutions recognized as the top Zoho Premium Solutions Partner in the United Kingdom.

Ascent Business Solutions offer support for smaller technical fixes and projects for larger developments, such as migrating to a ZohoCRM.  A team rather than a one-man-band is always available to ensure seamless progress and address any concerns. You'll find our competitive support rates with flexible, no-expiration bundles at http://ascentbusiness.co.uk/zoho-support-2.  For larger projects, check our bespoke pricing structure and receive dedicated support from our hands-on project consultants and developers at http://ascentbusiness.co.uk/crm-solutions/zoho-crm-packages-prices.

The team I manage specializes in coding API integrations between Zoho and third-party finance/commerce suites such as Xero, Shopify, WooCommerce, and eBay; to name but a few.  Our passion lies in creating innovative solutions where others have fallen short as well as working with new businesses, new sectors, and new ideas.  Our success is measured by the growth and ROI we deliver for clients, such as transforming a garden shed hobby into a 250k monthly turnover operation or generating a +60% return in just three days after launch through online payments and a streamlined e-commerce solution, replacing a paper-based system.

If you're looking for a partner who can help you drive growth and success, we'd love to work with you.  You can reach out to us on 0121 392 8140 (UK) or info@ascentbusiness.co.uk.  You can also visit our website at http://ascentbusiness.co.uk.

What?
This is an article to document how to receive a JSON response from a webhook created in Shopify. See my article: Zoho Deluge: Push Item to Shopify API if you want information on setting up an integration from Zoho Creator to Shopify API.

Why?
In this example, we want a webhook that whenever an order is made in Shopify, it tells our Zoho Creator app. Note that at the time of this article, API v1 is deprecated (so no authtokens) and API OAuth2.0 is in full swing... we're still going to cheat.

How?
1,2,3 steps really. First we're going to set up a Creator form to receive the JSON. Secondly, we'll create the endpoint URL for the webhook. And thirdly, we'll create the Shopify webhook.

What?
This is an article to document how to include a subform and rows while you are creating a record containing the subform.

Why?
The use case here is for a Quote Builder in Zoho Creator: Create a quote record and include a subform containing the line items. You may have tried code where you add a record first and then add the subform afterwards (insert into <form>[...]) but it can be done all in one go.

How?
Here's a use case example which you will need to adapt to your own but It should do enough (spacing has been added for demo purposes and to make it clearer).

What?
This is an article of code snippets to query a Zoho Bookings instance from within Creator. This one focuses on getting the available slots.

Why?
This is for a Creator app which had a form to allow customers to make a booking based on the configuration and appointments in a ZohoBookings instance.

How?
The getAvailableSlots function requires as parameters according to documentation

What?
A super quick article to demonstrate an example where we create a project with custom fields.

Why?
At time of print, the documentation on the Projects API would only show responses rather than requests. Sure it lists fields that are required in the request but not a sample request packaged to be sent.

How?
Let's assume that my custom fields have as identifiers UDF_CHAR8 (which is a Zoho ID) and UDF_CHAR7 (which is a text/string name field).

What?
A super quick article to remind me how to generate and send a CSV as an attachment to an email.

Why?
Because I often get casually asked "oh and can you archive the data and email it to me every month"...

How?
Rather than just babble on about it, here's the code, replace what you need just noting that I'm enclosing each value with double-quotes because the values might have commas and someone may want to open this in Google Sheets or Microsoft Excel:

What?
This is an article to show you how to use triggers but also how to stop them. We only found this an issue when using REST API v2.1 but also to show you how to configure triggers when using createRecord or updateRecord.

Why?
We had a Creator app updating a CRM record which in turn had a workflow to update the Stage in Creator (so a user can change the stage in CRM and it would reflect this in the equivalent Creator record). There was also a workflow that ran when the Creator record was updated to update its changes to CRM. It was actually causing a loop which used up all the API calls.

How?
You might already be familiar with some of the trigger options below but one that worked was initially guessed as "none" but then later found in the documentation could also be an empty list [].

What?
This is a quick article documenting how to update custom fields in a line items or product details section of a transactional module such as Quotes, Sales Orders or Invoices using code: Zoho Deluge.

Why?
At time of print, Zoho had recently introduced the ability to have custom fields in your line items, alongside the product name, list price, quantity, tax, etc. In the example below, we have added a column called "Group Name" in the CRM Quote module as per the following screenshot:
Populating Custom Field in a Quote Line Item

How?
Again at the time of this article, this is only modifiable when using REST API v2.1. We are going to update the field with label "Group Name" but API name "Grouping" in a list item column.

What?
This is an article to demonstrate how to log a time event under a Zoho Projects Issue using code (Zoho Deluge) rather than the graphical user interface (GUI). Note this would probably be similar to when trying to enter a time against a project Task but this article is focused on getting this working against Project Issues. Also note, we will refer to Project Issues in this article, but in the backend code, Zoho refer to Issues as "Bugs".

Why?
At time of this article (Apr-2021), we could not find a working example that could allow us to do this. I have provided some links at the end of this article for you which we tried to use but only helped us out about half-way, the rest we guessed on our own:
Zoho Projects - Add Time Log to an Issue Using Deluge - Projects Issue Time Log
Our use case, is that we are developing a Zoho Creator app that will help staff log time and then push the creator record to Zoho Projects.

How?
For the following example, you will need to have setup a Zoho Oauth Connection with the appropriate authorized scopes and have access to all related systems such as Zoho Projects and the originating app (in this example, Zoho Creator).

What?
This is a very quick article with examples of managing a multi-user or multi-lookup field in CRM using Zoho Deluge.

Why?
Sometimes you might need this when data mapping fields from one module to another, sometimes you need to manage existing multi-lookups/users in a record.

How?
So the key point to remember is that all multi-select lookup and multi-user lookup fields are held in temporary CRM modules called a "LinkingModule" (as opposed to standard modules and custom modules).

What?
This is an article documenting how to send a Zoho Deluge Map request to an API which is expecting nested/2d/multi-dimensonal arrays. In the example below, we are posting to a PHP script for testing but I have since sent something similar to an API expecting nested arrays (not sure if they were PHP) and it works.

Why?
This took me several days and in the end only going through various forums and documentation, I found a solution which worked for me. Note that usually I could customize the receiving PHP script to receive a JSON request and process it that way but my usage was to send data to a Third-Party API over which I had no control.

What I need to send to the 3rd-party API:
copyraw
{
  "auth": {
    "secret": "can_you_keep_a_secret",
    "key": "aaabbbbccccddddeeeeffff11112222"
  },
  "data": {
    "member_id": "123456",
    "channel_name": "shopify",
    "item_name": "Joel's Awesome Life",
    "item_price": "priceless"
  }
}
  1.  { 
  2.    "auth": { 
  3.      "secret": "can_you_keep_a_secret", 
  4.      "key": "aaabbbbccccddddeeeeffff11112222" 
  5.    }, 
  6.    "data": { 
  7.      "member_id": "123456", 
  8.      "channel_name": "shopify", 
  9.      "item_name": "Joel's Awesome Life", 
  10.      "item_price": "priceless" 
  11.    } 
  12.  } 
What Zoho sends to the 3rd-party API:
Sending a map request using the invokeUrl() function, the odd thing is that Zoho's request adds double-quotes to the request and escapes the other double-quotes sending something like this:
copyraw
{
  "auth": "{\"secret\": \"can_you_keep_a_secret\",\"key\":\"aaabbbbccccddddeeeeffff11112222\"}",
  "data": "{\"member_id\": \"123456\",\"channel_name\": \"shopify\",\"item_name\": \"Joel's Awesome Life\",\"item_price\": \"priceless\"}"
}
  1.  { 
  2.    "auth": "{\"secret\": \"can_you_keep_a_secret\",\"key\":\"aaabbbbccccddddeeeeffff11112222\"}", 
  3.    "data": "{\"member_id\": \"123456\",\"channel_name\": \"shopify\",\"item_name\": \"Joel's Awesome Life\",\"item_price\": \"priceless\"}" 
  4.  } 
What I have in Deluge
copyraw
m_Auth = Map();
m_AuthSub = Map();
m_AuthSub.put("secret","can_you_keep_a_secret");
m_AuthSub.put("key","aaabbbbccccddddeeeeffff11112222");
m_Auth.put("auth",m_AuthSub);
m_Data = Map();
m_DataRecord = Map();
m_DataRecord.put("member_id","123456");
m_DataRecord.put("channel_name","shopify");
m_DataRecord.put("item_name","Joel's Awesome Life");
m_DataRecord.put("item_price","priceless");
m_Data.put("data", m_DataRecord);
  1.  m_Auth = Map()
  2.  m_AuthSub = Map()
  3.  m_AuthSub.put("secret","can_you_keep_a_secret")
  4.  m_AuthSub.put("key","aaabbbbccccddddeeeeffff11112222")
  5.  m_Auth.put("auth",m_AuthSub)
  6.  m_Data = Map()
  7.  m_DataRecord = Map()
  8.  m_DataRecord.put("member_id","123456")
  9.  m_DataRecord.put("channel_name","shopify")
  10.  m_DataRecord.put("item_name","Joel's Awesome Life")
  11.  m_DataRecord.put("item_price","priceless")
  12.  m_Data.put("data", m_DataRecord)

How?
So this is more of an annoyance then an impossible task... because it is possible, the technique above is simply wrong. The trick and solution is a lot simpler than you might think...
Category: Zoho :: Article: 740

What?
This is an article to demo some Deluge code on how to download a file that was uploaded in CRM in a custom module in field that was of type "File Upload".

Why?
Just to remind me where I went wrong, I have a client with ZohoCRM who upload a PDF (can be any file but is usually a PDF) to a custom module in their CRM; I then need the customer from the customer portal in a ZohoCreator app to be able to download this file.

How?
The trick to doing this is that actually

What?
This is a quick article to template some code to me on sorting a map variable in Zoho Deluge, specifically Zoho Creator.

Why?
I do this a lot but in the following example, I want to sort a list of records by their date in descending order. Yes this functionality exists in reports but I want to do it in code so as to display it in a HTML table.

What I have:
copyraw
id      name        date
---------------------------------------------
46498   Joel        1977-11-14T12:30:00+00:00
8949    Anonymouse  1923-10-16T15:00:00+00:00
335448  Amazing     1997-07-05T23:15:00+00:00
  1.  id      name        date 
  2.  --------------------------------------------- 
  3.  46498   Joel        1977-11-14T12:30:00+00:00 
  4.  8949    Anonymouse  1923-10-16T15:00:00+00:00 
  5.  335448  Amazing     1997-07-05T23:15:00+00:00 
What I want:
copyraw
id      name        date
---------------------------------------------
335448  Amazing     1997-07-05T23:15:00+00:00
46498   Joel        1977-11-14T12:30:00+00:00
8949    Anonymouse  1923-10-16T15:00:00+00:00
  1.  id      name        date 
  2.  --------------------------------------------- 
  3.  335448  Amazing     1997-07-05T23:15:00+00:00 
  4.  46498   Joel        1977-11-14T12:30:00+00:00 
  5.  8949    Anonymouse  1923-10-16T15:00:00+00:00 

How?
So to give you a gist of what the following snippet of code is doing, let me give an overview:
  1. Build up a map with sample data (you won't need to this, use your own data, this one is for this demonstration only)
  2. Initialize a list to hold the keys which we will use to sort in ascending/descending order and a map created to hold all the records.
  3. Loop through the sample map to create the new map we can sort as well as to add keys to the list declared previously.
  4. Sort the list of keys in ascending/descending order.
  5. Loop through the list of keys, retrieving each record
Category: Zoho :: Article: 738

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

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