Zoho Inventory: Mark a package slip as delivered and shipped
- Category: Zoho Inventory
- Hits: 23299
A quick article on a code snippet to mark a package as shipped and delivered in Zoho Inventory.
Why?
As usual, any task like this that takes me longer than an hour, I'd like to document for future use. The use-case is the client has their own delivery drivers and want them to mark a sales order & package as shipped and delivered.
How?
Here's a code snippet that works for me. It is triggered when a user ticks a decision box in Zoho Creator (on iPad displays as an on/off switch). My connection here called "jl_inventory" has the minimum required scopes:
- ZohoInventory.salesorders.READ
- ZohoInventory.packages.READ
- ZohoInventory.shipmentorders.CREATE
- ZohoInventory.shipmentorders.READ
Zoho Inventory Template Issue: First Page is Blank
- Category: Zoho Inventory
- Hits: 15235
So I thought I'd write an article to help me resolve the particular issue where the organization details and the header of the product line items table would display on the first page, the product line items would then print on the second page, with the terms and conditions or small print notes on a third page.
How?
ZohoRecruit: Create Linking Table for Candidates and Associated Job Openings
- Category: Zoho Recruit
- Hits: 44801
This article is just in case it comes up again (has twice now) where a client wants a report on candidates and associated job openings in Zoho Recruit.
Why?
We're creating a custom module where our client wants to query Zoho Recruit via the API but couldn't find a database table to determine who has been associated to what job. In Zoho Recruit reports (Analytics), you can include the "Associate" module which then allows you to link the Candidates to the Job Openings; but my client needed to be able to query this via API and the "Associate" table or whatever it is, was not visible in API...
How?
So we created a custom module called "Candidates x JobOpenings" (with alternative API name as "CustomModule6"). Just to add to the complexity of the task, the client has their own reference for Candidates which they called "Candidate Ref" and their own reference for the JobOpening called "Vacancy Ref". The below outlines the custom module we created and how we populated with associated candidates:
Zoho Recruit: Rollup Number of Recruit Candidates to CRM Account
- Category: Zoho Recruit
- Hits: 16579
This is a quick article to note down some code used in Zoho Recruit. This particular bit of code will run on a workflow when a Candidate is modified, and it tallies all the candidates belonging to the same school and updates some number fields on the matched CRM account.
Why?
For reporting purposes. Although Zoho Analytics can use data imported from both ZohoCRM and ZohoRecruit, it was helpful on the CRM record to see how many candidates had been placed at this particular CRM Account. We added several fields which get populated when a candidate was modified in ZohoRecruit.
How?
As mentioned, we're going to update several fields called:
ZohoFlow & ZohoSign: Retrieve a Zoho Sign document request and add attachments to CRM record
- Category: Zoho Sign
- Hits: 37190
This is an article describing a custom function built into Zoho Flow that will accept as parameter the document_id and request_id. It then retrieves the Deal Reference (entered by an office signee) on the ZohoSign document and searches for the relevant Deal record in CRM.
Why?
A client wants that when this field is entered and the document signed and returned, it attached the signed document to the Deal record.
How?
The following is the process from registering the app to call on the full API (grant code > refresh token > access token) and then the code to attach the document to the CRM record.
Zoho: Email Deliverability / SPF / DKIM / DMARC / Toolkit
- Category: Zoho Other
- Hits: 32906
A quick article on the SPF & DKIM setup to improve email deliverability from a ZohoApp and methods to check.
Why?
Not sure how I came across it as most of our customers don't use ZohoMail, but there is a Zoho Toolkit to run some checks on the email deliverability for a customer: https://zohomail.tools/#runChecks.
How?
So first I'll outline the steps to set this up in ZohoCRM and then how to troubleshoot issues with this. One important thing to note is that the setup needs to be done by whoever manages the domain for the client.
Zoho Cliq: Integrate OpenAI ChatGPT with Conversation Threads
- Category: Zoho Other
- Hits: 466
What?
A quick follow-on article to my previous article on Zoho Cliq: Integrate OpenAI and ChatGPT 3.5 Turbo.
Why?
Connecting to OpenAI ChatGPT is all very well and good, but this forgets what you were talking about after each chat. So it's good for 1 question and 1 answer. What we need is to train it a little a bit like the standard OpenAI Chat website does in terms of context.
How?
Just a few changes to the previous code of connecting to OpenAI ChatGPT but the exception here is that there needs to be code to loop through all the messages of the chat/conversation thread so that we send the OpenAI ChatGPT bot the full conversation thread.
Zoho Cliq: Integrate OpenAI and ChatGPT 3.5 Turbo
- Category: Zoho Other
- Hits: 57231
A quick article on my adaptation of some code posted by Poorvik Palanikumar on the Zoho Community Forums to connect a ZohoCliq to the OpenAI API and ChatGPT... Note that I have another article for those who want to integrate ChatGPT with ZohoZIA.
Why?
Previously, I would edit the message handlers of a Cliq Bot I created but it would only understand the questions I have programmed it to and respond with the responses I programmed it to answer with. Any variations of the questions it did not understand, it would return a response similar to Siri or Ask Google where it includes the keywords in a "Search the web..." task.
ChatGPT by OpenAI is viral at the time of print
How?
The basics of setting this up would be to setup a bot in ZohoCliq and then to edit either a message handler or participation handler. As for the usage, simply ask the Cliq Bot a question and it will forward the query and respond with the response from the OpenAI API.

