ZohoCRM & Xero: Function to pull most recent invoices https://joellipman.com/articles/crm/zoho/zoho-crm/zohocrm-xero-function-to-pull-most-recent-invoices.html
09 October 2025
v_TokenCrmID = 123456000000789012; r_TokenDetails = zoho.crm.getRecordById("Integrations",v_TokenCrmID); v_DataEndpoint = ifnull(r_TokenDetails.get("Data_Endpoint"),""); v_TenantID = ifnull(r_TokenDetails.get("Tenant_ID"),""); // // get access token...
Type: Article
Author: Joel Lipman
Category: Zoho CRM
Language: *
ZohoCRM & Xero: Function to pull most recent quotes https://joellipman.com/articles/crm/zoho/zoho-crm/zohocrm-xero-function-to-pull-most-recent-quotes.html
13 October 2025
r_TaxRates = invokeurl [ url :"https://www.zohoapis.eu/crm/v8/org/taxes" type :GET connection:"ab_crm" ]; r_OrgTaxes = ifnull(r_TaxRates.get("org_taxes"),Map()); l_TaxRates = ifnull(r_OrgTaxes.get("taxes"),List()); // for each m_TaxRate in l_TaxRates {...
Type: Article
Author: Joel Lipman
Category: Zoho CRM
Language: *
ZohoBooks: Stripe Terminal Integration https://joellipman.com/articles/crm/zoho/zoho-books/zohobooks-stripe-terminal-integration.html
16 March 2023
" + v_StripeCustomerKey); // // default to balance due on this Invoice v_AmountToPay = ifnull(invoice.get("balance"),0); // // Get custom Amount to Pay from Invoice l_CustomFields = invoice.get("custom_fields"); if(l_CustomFields.size() > 0) { for each...
Type: Article
Author: Joel Lipman
Category: Zoho Books
Language: *
Zoho Projects: Add a Time Log to an Issue using Deluge https://joellipman.com/articles/crm/zoho/zoho-projects/zoho-projects-add-a-time-log-to-an-issue-using-deluge.html
30 April 2021
end time field if using): // // init (from dropdowns you have made applicable to your Zoho Projects system) v_PortalID = ifnull(input.ZohoProject_Portal,0); v_ProjectID = ifnull(input.ZohoProject_Project,0); v_IssueID =...
Type: Article
Author: Joel Lipman
Category: Zoho Projects
Language: *
ZohoDeluge: eBay marketplace account deletion/closure notifications https://joellipman.com/articles/crm/zoho/zoho-deluge/zohodeluge-ebay-marketplace-account-deletion-closure-notifications.html
13 March 2025
*/ m_Payload = crmAPIRequest.toMap(); m_Params = ifnull(m_Payload.get("params"),Map()); // v_ChallengeCode = m_Params.get("challenge_code"); v_VerificationToken = ""; v_Endpoint =...
Type: Article
Author: Joel Lipman
Category: Zoho Deluge
Language: *
Zoho People: Get Performance Records over API https://joellipman.com/articles/crm/zoho/zoho-people/zoho-people-get-performance-records-over-api.html
18 September 2025
r_GoalsData = invokeurl [ url :v_Endpoint_Goals type :GET connection:"people_cf" ]; m_GoalsResponse = ifnull(r_GoalsData.get("response"), Map()); l_GoalRecords = ifnull(m_GoalsResponse.get("result"), List()); for each m_GoalRecord in l_GoalRecords {...
Type: Article
Author: Joel Lipman
Category: Zoho People
Language: *
Zoho CRM & Zoho Books: Custom Related Lists Deluge https://joellipman.com/articles/crm/zoho/zoho-books/zoho-crm-zoho-books-custom-related-lists-deluge.html
30 July 2021
= zoho.creator.getRecords(v_OwnerName,v_AppLinkName,v_ViewLinkName,v_Condition,1,100,"joels_connection"); v_ResponseCode = ifnull(r_SearchResults.get("code"),500).toLong(); // // if found records if(v_ResponseCode == 3000) { v_RelatedListXML = "";...
Type: Article
Author: Joel Lipman
Category: Zoho Books
Language: *
Zoho Creator: Public URL of an Image field / Upload to Shopify API https://joellipman.com/articles/crm/zoho/zoho-creator/zoho-creator-public-url-of-an-image-field-upload-to-shopify-api.html
17 October 2021
= {"png","jpg","jpeg","gif","bmp","heic"}; c_Document = My_Form[ID == 1234567890]; // // for image field type v_PhotoFull = ifnull(c_Document.My_Photo,""); v_PhotoWithExt = v_PhotoFull.getSuffix("/image/").getPrefix("\""); v_PhotoFileExtension =...
Type: Article
Author: Joel Lipman
Category: Zoho Creator
Language: *
Zoho Survey & Zoho Analytics: Query to generate individual responses and grouped pages https://joellipman.com/articles/crm/zoho/zoho-analytics/zoho-survey-zoho-analytics-query-to-generate-individual-responses-and-grouped-pages.html
25 September 2025
r_FetchExistingImages = invokeurl [ url :v_Endpoint2 type :GET connection:"zcrm" ]; l_ExistingImagesData = ifnull(r_FetchExistingImages.get("data"),List()); for each m_ExistingImage in l_ExistingImagesData { for each m_UploadedImage in...
Type: Article
Author: Joel Lipman
Category: Zoho Analytics
Language: *
ZohoCRM & ZohoWriter: Generate Rich-Text / HTML Email Signatures in CRM https://joellipman.com/articles/crm/zoho/zoho-crm/zohocrm-zohowriter-generate-rich-email-signatures-in-crm.html
05 December 2023
*/ // // Go create a folder in workdrive, take the last hash string after the word /folders/ in the URL: v_TargetFolder = ifnull(p_WorkdriveFolder,"abcdefghijklmnopqrstuvwxyz12345678901"); v_ImageToDownload =...
Type: Article
Author: Joel Lipman
Category: Zoho CRM
Language: *
Migrate Joomla! 1.5.x to 2.5.x+ https://joellipman.com/articles/cms/joomla/migrating-from-joomla-15-to-16.html
30 January 2011
WHERE `name` LIKE '%.category.%' ORDER BY `lastcatid` DESC LIMIT 0,1); SET @new_jos_assets_last_inc=( SELECT IFNULL(@new_jos_assets_last_inc, 0)); SET @new_jos_assets_id_last_lft=( SELECT MAX(`lft`) FROM `my_new_database`.my_prefix_assets); SET...
Type: Article
Author: Joel Lipman
Category: Joomla
Language: *
Zoho Creator: Download File from ZohoCRM field type "File Upload" (not attachments) https://joellipman.com/articles/crm/zoho/zoho-creator/zoho-creator-download-file-from-zohocrm-field-type-file-upload-not-attachments.html
02 February 2021
= "https://creator.zoho.eu"; v_ZohoApisDC = "https://www.zohoapis.eu"; // // get field from CRM l_ResultThisFile = ifnull(r_Row.get("My_CRM_File"),"-"); for each m_ThisFile in l_ResultThisFile { v_ThisFileCrmID = ifnull(m_ThisFile.get("file_Id"),"-");...
Type: Article
Author: Joel Lipman
Category: Zoho Creator
Language: *
Zoho CRM & Zoho Sign: Send CRM Merged Template for Zoho Sign https://joellipman.com/articles/crm/zoho/zoho-crm/zoho-crm-zoho-sign-send-crm-merged-template-for-zoho-sign.html
06 August 2024
*/ // // crmAPIRequest v_DebugMessage = ""; v_RequestID = 0; m_Body = ifnull(crmAPIRequest.get("body"),Map()); v_DebugMessage = "Body: " + m_Body + " "; // // determine type of document done if(!isNull(m_Body.get("requests"))) { v_RequestName =...
Type: Article
Author: Joel Lipman
Category: Zoho CRM
Language: *
Zoho Webhooks & Shopify API: Keep Disappearing https://joellipman.com/articles/else/e-commerce/shopify/zoho-webhooks-shopify-api-automatically-restore.html
22 April 2024
// // build the hash based on the payload body v_Data = ifnull(m_Payload.get("body"),""); v_VerifyHash = zoho.encryption.hmacsha256(v_ClientSecret,v_Data,"base64"); // // retrieve Shopify's Hmac SHA256 from the header v_ShopifyHash = "";...
Type: Article
Author: Joel Lipman
Category: Shopify
Language: *
Zoho Books / Inventory: Get Item Rate from a Price Book/List https://joellipman.com/articles/crm/zoho/zoho-books/zoho-books-inventory-get-item-rate-from-a-price-book-list.html
23 May 2024
r_BooksItem = zoho.inventory.getRecordsByID("items", v_BooksOrgID, m_LineItem.get("item_id"), "zinventory"); m_BooksItem = ifnull(r_BooksItem.get("item"), m_Blank); v_BooksItemRate = ifnull(m_BooksItem.get("rate"),0.00); v_ThisQuantity =...
Type: Article
Author: Joel Lipman
Category: Zoho Books
Language: *
Zoho Creator: Download uploaded file and attach to Sales Order in Zoho Books https://joellipman.com/articles/crm/zoho/zoho-books/zoho-creator-download-uploaded-file-and-attach-to-sales-order-in-zoho-books.html
15 May 2020
report is called "Quote_View". string Internal.Attachment_Testing(int p_QuoteID, int p_SoID) { v_CreatorQuoteID = ifnull(p_QuoteID,0); v_BooksSoID = ifnull(p_SoID,0); // // config v_BooksOrgID = "1234567890"; // put here your client's own Books...
Type: Article
Author: Joel Lipman
Category: Zoho Books
Language: *
ZohoCRM: Using Criteria with Module Record Count https://joellipman.com/articles/crm/zoho/zoho-crm/zohocrm-using-criteria-with-module-record-count.html
14 November 2023
r_MaximumCount = invokeurl [ url :v_Endpoint type :GET connection:"zcrm" ]; v_MaxCount = ifnull(r_MaximumCount.get("count"),0).toLong(); v_Pages = ceil(v_MaxCount / v_PerPage); info v_Pages; Call with a criteria: v_PerPage = 200; v_CountCriteria =...
Type: Article
Author: Joel Lipman
Category: Zoho CRM
Language: *
Zoho CRM & Zoho Books: Get Books Currency and Tax IDs https://joellipman.com/articles/crm/zoho/zoho-books/zoho-crm-zoho-books-get-books-currency-and-tax-ids.html
24 September 2021
record r_AccountDetails = zoho.crm.getRecordByID("Accounts", 9012345678901234567); v_BooksCurrencyID = m_Currencies.get(ifnull(r_AccountDetails.get("Currency"),"GBP")); info v_BooksCurrencyID; Yields something like: { "EUR": "123456789012345678", "GBP":...
Type: Article
Author: Joel Lipman
Category: Zoho Books
Language: *
Zoho Books/Inventory: Trigger a workflow when an invoice has been paid https://joellipman.com/articles/crm/zoho/zoho-books/zoho-books-inventory-trigger-a-workflow-when-an-invoice-has-been-paid.html
17 August 2022
v_BooksOrgID = organization.get("organization_id"); v_InvoiceRef = invoice.get("invoice_number"); v_BalanceDue = ifnull(invoice.get("balance"),0.0); // // search payments m_SearchCriteria = Map(); m_SearchCriteria.put("customer_id",v_CustomerID);...
Type: Article
Author: Joel Lipman
Category: Zoho Books
Language: *
ZohoCRM: Integrate ChatGPT to ZohoZIA https://joellipman.com/articles/crm/zoho/zoho-crm/zohocrm-integrate-chatgpt-to-zohozia.html
06 March 2023
= Map(); m_Response.put("todo","prompt"); l_Messages = List(); // // capture latest message from user v_Message = ifnull(userInput,""); m_Thread = Map(); m_Thread.put("role","user"); m_Thread.put("content",v_Message); l_Messages.add(m_Thread); // // if...
Type: Article
Author: Joel Lipman
Category: Zoho CRM
Language: *