ZohoCRM & Xero: Function to pull most recent quotes
- Category: Zoho
- Hits: 269
A follow-on article from my previous article ZohoCRM & Xero: Function to pull most recent invoices - along with their Contacts and Items (accounts/contact & products respectively).
Why?
This took me so much longer than I thought it would. It was meant to be based on the pull from invoices article I wrote earlier but with quotes from Xero, things panned out differently:
- Date/Time values don't include a timezone
- Issues with tax rates meant replicating a tax list copy from Xero to Zoho
- the Client doesn't use the Items module in Xero and instead puts the product name in the description field
How?
Because my head is a little fried, I'm putting the two functions I used here and I'll document further if I remember. Note that the pre-amble is to generate a Xero access token which I documented in another article - it's behind a userwall because I usually charge for my Xero integration to Zoho CRM but user registration is free; you need to click on "Account" at the top of my website then login, then search for Xero.
ZohoCRM & Xero: Function to pull most recent invoices
- Category: Zoho
- Hits: 875
Thought I already had an article on this and I know my article Zoho Deluge - Connect to Xero API covered a quick query to pull some invoices but this one documents a pull and mapping into CRM invoices.
Why?
This took me a whole afternoon so I wanted a template function I could use in future when I get this request again. The additional benefit of having this template is that it includes creating contacts, accounts, and products on-the-fly as well as recording payments and checks as to which record is more up to date between ZohoCRM and Xero.
How?
The access token is generated by a function documented in my previously mentioned article Zoho Deluge - Connect to Xero API so here's the pull of the first page of invoices by most recent first (invoice date).
Zoho Deluge: Convert Xero Date (Unix Timestamp) to Standard Date String
- Category: Zoho
- Hits: 50734
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.
Zoho CRM Client Script: Map Quote to Invoice
- Category: Zoho
- Hits: 637
This is an article to apply an automation that when creating an invoice in CRM from a related quote, it maps in the fields.
Why?
The process should be that you go to the CRM quote record and click on "Convert" > then select "Invoice", and it should map the fields over. Great! But what if someone skips the process, in other words, goes to the quote record, and clicks on the plus icon next to "Invoices" in the left sidebar?
This script will map over the core fields, address, and line item. This took me a while to get the right syntax for writing to the invoice line items as well as setting the value of lookup fields so I thought it was worth an article and may help someone else (or even myself) in the future.
At time of print (9th October 2025), for some reason, if you click on the plus icon next to Sales Order (creates a new sales order) on the quote record, the fields auto-map. The client script below does the same for invoice as the quote lookup is a custom field on the invoice.
How?
First, we'll setup a client script specifying what triggers it (on load of the page when creating an invoice) then I'll just put the client script I used to map over all the applicable field values from the quote to the invoice within ZohoCRM.
Zoho Survey & Zoho Analytics: Query to generate individual responses and grouped pages
- Category: Zoho
- Hits: 4845
An article on some Zoho ANSI-SQL (in other words, queries that work in Zoho Analytics) as I couldn't find any examples online on how to do this.
Why?
I've been tasked with generating a radar/spider/web chart based on the results from a survey. Apparently this will be done in Zoho Analytics.
The Brief:
We would like the survey data to be generated as a chart and embedded in a PDF brochure we send out to our customers...
How?
Well fulfilling the brief (whether it's the right tool for the job is a different issue), let us synchronize Zoho Surveys into Zoho Analytics. I found I need to edit the setup of the sync every time a new survey is added... but at least it lets me synchronize every hour.
Then I'll write the SQL queries to get the individual responses into a table with labels and columns that can help me group them (and identify which responses belong to which survey attempts).
Then I'll write the SQL to sum up the responses per page per survey attempt.
Finally, I'll see if analytics can be used to generate the radar chart.
Zoho Survey: Zoho CRM Webhook
- Category: Zoho
- Hits: 1313
A separate article as a follow-on from my previous article in this series Zoho Survey & Zoho Analytics: Query to generate individual responses and grouped pages which may have grown a little but just wanted to record how to receive a Zoho Survey response in a Zoho CRM REST API function.
Why?
As above, didn't want to overload a single article with all the answers of one development but this one may be referred to separately. I want a Zoho Survey when submitted to be parsed by a Zoho CRM REST API function.
How?
First, I'll go through the steps of setting up the Zoho CRM function, we'll convert it to a REST API function which will give us a URL and then we'll configure the Zoho Survey to trigger a webhook when submitted.
Zoho People: Get Performance Records over API
- Category: Zoho
- Hits: 5596
Took us a while to find this and perhaps others would have a quicker way but here's the instructions on getting the records from the performance module in Zoho People API.
Why?
Cos it took us a while. The online forums seem to go back over a decade and the documentation seems to have gaps; or simply modules are so custom/bespoke the documentation has started to genericize.
My client has seen the Goals or Objectives report under "Organization Reports" but would like some additional fields/columns added to it. Turns out, it's a system report you can't change. Enter Zoho Analytics... well almost, Analytics will sync with Zoho People but I wasn't able to select the performance modules (Client Review and Placement Tech Survey having been disabled)...
How?
So this might seem obvious but after trying to scan the meta data (snippets at the bottom of this article), the simplest way was right in front of us. We're going to use the interface to find the form where staff have been entering employees goals, then we're going to query it and push it to Zoho Analytics.
Zoho CRM: JS Widget: Generic Script to pass the Record ID to a CRM function
- Category: Zoho
- Hits: 12995
There's documentation out there but as this took me a couple of days to simply install a JS widget hosted by Zoho and pass the record ID via a button to it, I'm adding it here in case I need to refer to it in future.
Why?
We have an Accounts module which holds all the companies we deal with in our Zoho CRM. I want our sales team to be able to click on a button off the CRM account record which will call an API returning all the credit information about a company. Unfortunately, if you do this simply using Zoho Deluge in a button, there are no new lines/carriage returns or styling that you can apply, which pops up as a message box to the sales person; but all on one line and not that readable. Using a JS Widget, we can popup a window over the Zoho CRM which displays a more clear HTML & CSS styled message box.
How?
There are links to how to create a widget in detail which I'll link to at the bottom of this page. What follows are the quick steps to create a widget.html file and how to get whatever the Zoho Deluge CRM function returns.
Page 1 of 25
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
Latest Articles
Accreditation



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

bc1qf6elrdxc968h0k673l2djc9wrpazhqtxw8qqp4
0xb038962F3809b425D661EF5D22294Cf45E02FebF
Paypal:

Bitcoin:

Ethereum:
