Update CRM Variables with Additional Business Logic

Update CRM Variables with Additional Business Logic

Update CRM Variables with Additional Business Logic

ZOHO CRM Variables provide the ability to store static values that can be updated in one spot and used across multiple functions within a ZOHO deployment.

Specific Events, Actions or responses to another function call can create a requirement to iterate or update these static CRM Variables and it would be much nicer to handle this programatically with a Standalone Function.

EDIT : Specific Events, Actions or Responses to another function call can create a requirement to update or iterate these static CRM VariablesRather than simply using the invokeConnector Deluge task which is a wrapper function for the invokeurl API call, it would be nice to run our own business logic with the update and handle this within a wrapper function like invokeConnector that we can define and call with minimal inputs across our deployment, this is achieved with a Standalone Function.

NOTE: Additional features are not covered under this Discussion.

Prerequisites

Connection

Using the invokeurl webhook method requires a Connection within your ZOHO deployment to make an API call to the CRM Variables endpoint. If you do not already have one setup, follow the ZOHO Developer docs here -> zoho.com/crm/developer/docs/connectors/set-up.html

Or alternatively, you can use the invokeConnection task, both methods are shown below.

CRM Variable

This example uses the id of an existing CRM Variable within your ZOHO CRM deployment. If you do not already have a CRM Variable setup, we'll do that now. If you do, copy the id and save that for a later step.

To create a CRM Variable go to Setup -> Developer Space -> ZOHO CRM Variables -> Create New Variable

  • Variable Name = test_variable
  • API Name = test_variable
  • Description = This is a test variable.
  • Variable Type = Single Line (For future reference this should macth the data type of the variable required)
  • Value = "MY TEST VARIABLE"
  • Grouped Under -> Create New Group
    • Group Name = test group
    • Group API Name = test_group
    • Description = This is a test group.
    • Click Save
  • Click Save
  • Click the Pencil Edit Icon to the left of the Variable Name
  • Copy the Variable ID from your web browser address bar, we'll need this later.

Create the Standalone function

We will now create the Standalone Function which can be called from any other function or WorkFlow.

Setting Up Standalone Function

To setup the standalone function:

  1. Go to Setup -> Functions -> New Function
  2. Name the function "update_crm_variable" and under Category select  Standalone. Click  Next.
  3. You'll be taken to the Deluge code editor.
  4. Edit your standalone function as below to use an API call :

    1. /* RUN SOME BUSINESS LOGIC HERE */
    2. // PASS VALUES FROM BUSINESS LOGIC INTO MAP
    3. /* update_crm_variable */
    4. variable_map = Map();
    5. variable_map.put("id",variable_id);
    6. variable_map.put("value",variable_value);
    7. variable_list = List();
    8. variable_list.add(variable_map);
    9. param = Map();
    10. param.put("variables",variable_list);
    11. update_variable = invokeurl
    12. [
    13.     url : "https://www.zohoapis.com/crm/v2/settings/variables"
    14.     type :PUT
    15.     parameters:param.toString()
    16.     connection: "YOUR_CONNECTION_NAME"
    17. ];
    18. /* RUN SOME OTHER BUSINESS LOGIC HERE */
    19. // TAKE RESPONSE FROM INVOKEURL
    20. //info update_variable;
    21. return update_variable;

    Or edit your standalone function as below to use the invokeConnector :

    1. /* update_crm_variable */
    2. variable_map = Map();
    3. variable_map.put("apiname","test_variable");
    4. variable_map.put("value",variable_value);
    5. variable_map.put("crm.set",variable_map);

  5. Click Edit Arguments and add the following two Function Arguments

    1. variable_id as type String
    2. variable_value as type String
    3. Click  Save

  6. Click  Save.

We can now move on to the requesting function.

Setting Up A Requesting Function

To setup a requesting function:

  1. Go to  Setup -> Functions -> New Function
  2. Name the function and select any Category. Click  Next.
  3. You'll be taken to the Deluge code editor.
  4. Edit your standalone function as below :

    1. /* REQUESTING FUNCTION */
    2. id = "YOUR_VARIABLE_ID_FROM_THE_PREVIOUS_STEP";
    3. value = "MY UPDATED VARIABLE";
    4. response = standalone.update_crm_variable(variable_id,variable_value);
    5. info "Response : " + response;

  5. Click  Save & Execute.

When you execute this requesting function, you should see the response printed in the console:

  1. /* CONSOLE */
  2. Info
  3. {"variables":[{"code":"SUCCESS","details":{"id":"YOUR_VARIABLE_ID_FROM_THE_PREVIOUS_STEP"},"message":"variable updated","status":"success"}]}
  4. Function executed successfully.

Check Your Updated Variable

To check this has worked:

  • Go to Setup -> Developer Space -> ZOHO CRM Variables

  • Check your variable value has changed to "MY UPDATED VARIABLE"

Using this method you can now automate updates on ZOHO CRM Variables.

EDIT : Why not just use invokeConnector?

The entire ZOHO ecosystem is API driven and clearly the invokeConnector deluge task does the same/similar thing under the hood as the invokeurl webhook. invokeConnector can also be used within the Standalone function to do the update, which method you use is really irrelevant to the outcome as they are functionally the same.

However, if you are applying the method in this Discussion to other use cases the invokeConnector is limited to existing predefined Associated Connectors or building your own ZOHO CRM Vertical Solution which adds its own inherent complexity.

If you want to do more than just update one record or you have specific dependent business logic you need to reuse across your ZOHO deployment, but want a reusable function, a Standalone function can provide the same simple features of the invokeConnector, with the added flexibility of computing additional business logic with flexible and definable inputs from the requesting function.


    • Recent Topics

    • [Product Update] TimeSheets module is now renamed as Time Logs in Zoho Projects.

      Dear Zoho Analytics customers, As part of the ongoing enhancements in Zoho Projects, the Timesheets module has been renamed to Time Logs. However, the module name will continue to be displayed as Timesheets in Zoho Analytics until the relevant APIs are
    • Use approval workflow comments in record scripts

      Greetings, i'm running an approval workflow for my records, during approval/rejection there is a step where comments are entered. i want to add there comments to the record and to use them in various deluge scripts like sending emails and so on.  how
    • ZOHO Store

      Not able to make a payment We are using Zoho One, and we are from India. The payment currency, which shows for us, is in USD. But the system says we can choose Country/Region India if it shows INR only. Attaching screenshots for more info.
    • Support Migration into Aliases in Zoho Mail

      Hello Zoho Mail Team, How are you? We are in the process of migrating some of our users from Google Workspace (Gmail and Google Drive) to Zoho. During this process, we noticed that Zoho Mail currently only supports migration into a primary mailbox and
    • API for Z Workdrive Flow Make-Integromat ?

      We are zoho workdrive fans Also we would like to have an api to work with Zoho Flow or with Make better known by its old name INTEGROMAT Is it planned and when? 3 months -6 months or more?
    • Apps Pane no longer visible

      I have read all the info and help and nothing works, I do not have a "show apps" anywhere and I can no longer see my Apps pane in the left hand side of mail, please advise how to get this back
    • Canvas View - Print

      What is the best way to accomplish a print to PDF of the canvas view?
    • 5名限定 課題解決型ワークショップイベント Zoho ワークアウト開催のお知らせ(8/21)

      ユーザーの皆さま、こんにちは。Zoho ユーザーコミュニティチームの藤澤です。 8月開催のZoho ワークアウトについてお知らせします。 今回はZoomにてオンライン開催します。 ▷▷参加登録はこちら:https://us02web.zoom.us/meeting/register/eVOEnBsSQ2uvX4WN5Z5DeQ ━━━━━━━━━━━━━━━━━━━━━━━━ Zoho ワークアウトとは? Zoho ユーザー同士で交流しながら、サービスに関する疑問や不明点の解消を目的とした「Zoho
    • New in Zoho Forms: Inline OTP Verification

      Hello form builders, We are excited to announce the launch of Inline OTP Verification in Zoho Forms, a smarter way to ensure the authenticity of the contact details you collect. Until now, OTP Verification in Zoho Forms worked as a pre-access step: respondents
    • Zoho Mail : Associate emails with Meeting records and allow multiple emails to be assocaited at once

      Is there a workaround that would allow either of these? I want to associate emails with Meeting records. I also would like to be able to select multiple emails at once for association with a record.
    • Create task from email

      Is there a way on mobile to create a task from an email? I use this feature a lot and when traveling now I read email on mobile. By the time I get to my office I forget about them since I didn't add it to a task. Is this feature missing on moble?
    • Zoho Socials - Unable to view Channels and SmartQ

      Hi, The channel Facebook has been added by the admin, however, it is not visible on the User level (employee). Other channels are visible. Also, we have the premium account, and SmartQ is not working. Can anyone help? Regards, Priyanka
    • Eliminating Manual Consolidation: Automating Currency Field Sync from Task to Project

      Hello Everyone, A Custom function is a user-written set of code to achieve a specific requirement. Set the required conditions needed as when to trigger using the Workflow rules (be it Tasks / Project) and associate the custom function to it. Requirement:
    • We want to set the "Converted from Lead" value in Deals using a Workflow or via a Deluge script. How?

      For use in Zoho Analytics, we need the field "Converted from Lead" filled in our deal records. This field is empty everywhere, because we do not create deals directly when converting a lead to a contact. We want to do that using the API or a workflow
    • Sales Orders: Quoted_Items + items in another subform -> into Ordered_Items ?

      hello, When creating Sales Orders, is it posible to inherit/fill the Ordered_Items with all the items from Quoted_Items + all the items from a customized subform with similar fields? Since you can create a sales order in different ways (convert, new -
    • How to cancel the GSTR1 pushed to GSTN

      How to cancel the GSTR1 Pushed to GSTN, some rectifications to be done in HSN & SAC code
    • Zoho Books API — Invalid Operation Type / Scope does not exist

      Hello Team, We are unable to use the Zoho Books API from our registered application. We’ve already: Created a client in Zoho API Console using (Admin in Books) Generated the OAuth code and token successfully Used the correct scopes: ZohoBooks.fullaccess,ZohoOauth.userinfo.READ
    • Enhancements in Canvas

      Dear All, Greetings! Canvas lets you design the record details page to suit your brand or business preferences. We are glad to introduce the following enhancements to uplift your design experience. Reusable Components Style Presets Let's go! Reusable
    • Minimum order quantity

      Is there a way to enforce a minimum order quantity - ie has to have a minimum of 250?
    • 【Zoho CRM】ポータル機能のアップデート:UIとポータルの作成フローの変更

      ユーザーの皆さま、こんにちは。コミュニティチームの藤澤です。 今回は「Zoho CRM アップデート情報」の中から、ポータル機能のアップデートをご紹介します。 目次 概要 ユーザーグループの作成フローの変更 ユーザーグループ詳細画面内のタブについて 「タブと権限」タブについて 「設定」タブについて 概要 UIとポータルの作成フローが変更されました。ポータルの新機能に先立ち、UIを一部変更しました。タブやオプションの配置を見直し、機能へよりアクセスしやすくなっています。 また、「ポータルユーザーの種類」は今後、「ユーザーグループ」と呼称され、ページ上のボタンも「ユーザーグループを作成する」に変更されます。
    • Tax on Imported goods charged by Shipping Company

      Hi Folks, I imported goods from outside Canada, for better understanding I will give an example data. imported goods value: 2000$ The shipping company sent me an invoice containing the following information: Custom duty on imported goods: 400$ Administration
    • Prefilled Date fields auto-changed and then locked when using “Edit as new”

      If a document out for signature has date fields (not SignedDate fields) that were pre-filled before sending, and then you use “Edit as new” to create a new version of the same document, the value of those date fields gets automatically changed to today
    • Zoho Webinar via Social Media

      Hello, is it possible to stream a Zoho Webinar via Social Media like Linkedin or Facebook?
    • Add Hebrew & RTL Support to Feedback Widget

      Hello Zoho Desk Team, How are you? We are using Zoho Desk and would like to utilize the Feedback Widget. While Zoho Desk itself supports Hebrew and RTL, the Feedback Widget unfortunately does not. We kindly request that Hebrew and full RTL support be
    • OAUTH2 isn't working with Power Automate and N8N (Zoho Desk)

      Hello, I am trying to set up an OAuth2 connection to the Zoho Desk API, but the authentication flow fails immediately. I am experiencing this issue in two separate platforms: Microsoft Power Automate (using a Custom Connector) and n8n. Instead of being
    • Kit Items Breaking Automations - "Provide mapped components for all kit items"

      This has been brought up in other threads, but I believe this issue warrants its own topic. Whenever a sales document (Estimate, Sales Order, Invoice) is created or manipulated programmatically, trying to include a Kit as an Item throws this error: "Provide
    • Show item Cost value on Item screen

      The Item screen shows Accounting Stock and Physical Stock. It would be very helpful if value information could be displayed here as well, for instance Cost Price. Currently, to find the Cost Price (as used for inventory valuations) from inside the item
    • Mark shipment as delivered via api

      Hellloooo again Zoho guys !! More help required if you would be so kind, pleeeezz..... var options =        {         'method' : 'post',         'contentType' : 'application/json',         'muteHttpExceptions' : true       }; var myPackNo  = encodeURIComponent('###################');
    • Setting Alternative units for an item.

      Hello Team, How to create alternate units for an item. We are placing orders for stocks in boxes. One box contain 24 items. At the time of selling we have two categories of buyers wholesalers and retailers. So the sales will be in PCS and in boxes also.
    • Zoho Inventory search when adding items to SO/PO, etc.

      I do not see that Zoho Inventory searches within the item name for an item lookup. We have many products with variants. So when I search for a product, say a lighting system, and it comes in different sizes and colors, I can only get those products where
    • Item Group Attributes

      Hello, I would like to see more attributes under grouped items. We sell car parts, there are several suppliers for the same part but under different brands. We want to group them together but the attributes under groups are lacking. For example, the products
    • Remove HTML Format - Deluge

      Hello @all if you want to delete the HTML format from the text please follow the script. Data = "Text"; info Data..replaceAll("<(.|\n)*?>" , "").replaceAll("&nbsp;" , " "); Apart from this if you require anything please let me know Thanks & Regards Piyush
    • Using multiple languages in template

      I wanted to add the company name in the template in arabic. I found a way through the header and footer option, except when i print the quotation the arabic disappears both in the top and bottom of the page. I have attached pictures of the before and
    • ADDING 5% VAT TO PURCHASE ORDERS GENERATED ON ZOHO BOOKS UAE

      Please guide on how to add 5% VAT to Purchase Orders generated on ZOHO Books UAE edition.
    • Import from /csv file, some items fail with the error "Specify Tax Or Tax Exemption".

      Hello! I am trying to import a csv file of all of my expenses for a complete financial year. I get errors for some items with the error message "Specifiy Tax or Tax Exemption". These errors only occur on lines where I have "Postage" as the expense account.
    • About maximum number of requests per minute

      Hi, Our company has integrated Zoho inventory and we're using the shipping order creation and update functions and so on. Currently we're receiving "For security reasons you have been blocked for some time as you have exceeded the maximum number of requests
    • Approval - Report/Views

      Hi, On Zoho Desk - Is there a way to report on pending approvals, or a view or similar?
    • "Zoho CRM Integration" option is missing in Zoho Social Settings

      I am trying to integrate my Zoho Social account with my Zoho CRM account. I am on the Professional Trial plan and my user role is "Brand Admin". However, I cannot find the "Zoho CRM Integration" or "Lead Generation" option anywhere in my Zoho Social settings.
    • Error 553

      Não estou conseguindo enviar ou receber e-mail, sempre dando o erro 553, sendo que há mais de um mês o domínio está pago e liberado. Preciso de um suporte urgente
    • Automate insurance document workflows with Zoho Writer

      Insurance companies have to deal with creating and managing complex documents and forms, such as policy applications, explanation of benefits documents, brochures, renewals, and claim forms. Handling all of this manually is hugely time and effort intensive,
    • Next Page