Extension Pointers #3: Learn to use Custom Variables while building extensions

Extension Pointers #3: Learn to use Custom Variables while building extensions

Looking for an option to store static information that can be accessed across an entire extension? The solution you're seeking is Custom Variables!

What are Custom Variables?

Custom variables store static information in your CRM. They are global variables that can be used in place of certain important fields in CRM to help users easily make personalized changes.

Consider a third-party integration scenario involving fields pertaining to personal data like a username, password, or authtoken. These values are user-specific and thus vary based on the user trying to access the application. So the developer will not be able to store or hard-code the value of these fields during the extension development process.

Custom Variables easily handle this situation by allowing the users to enter data from their end during the extension installation process. This data is then saved as the value for the field and provides a hassle-free experience.

Custom Variables for third-party integrations

Custom variables are of major importance in scenarios where data needs to be globally accessed across an entire extension, as well as during third-party integrations where security-related, user-specific data needs to be passed in order to establish a successful integration.

While most third-party applications today support the OAuth 2.0 authorization method for establishing an integration, there are few applications that support only API Key forms as an authorization method.

If the third-party application with which you wish to integrate supports API key forms, Custom Variables are the best option to establish an integration.

Note: To check out the integration process for applications using OAuth 2.0 authorization method, click here.

Methods involved while using custom variables

While using custom variables, there are situations where we might have to assign or pass the value of the custom variable across for performing logical functionalities or other tasks. In such cases we might need to either set or retrieve the value of custom variables accordingly. There are certain methods involved in manipulating the custom variable data—namely:
  1. Set Organization Variable
  2. Get Organization Variable
Set Organization Variable 

This is used to set the value of the custom variable.

Syntax:

<Response> = zoho.crm.invokeConnector("crm.set", <valueMap Map>);

where,
<Response> is the response details regarding the success or failure of updating.
<valueMap Map> is the map containing the key value pair denoting the API name of the custom variable to be updated, and the value with which the custom variable should be updated.

Get Organization Variable


This is used to fetch the value of the custom variable.

Syntax

<Response> = zoho.crm.getOrgVariable("<customVariableName>");

where,
<Response> returns the value of the custom variable.
<customVariableName> is the API name of the custom variable.

How to create a Custom Variable

1. Choose Custom Properties from the left panel of the Zoho Developer console under Build, and then click Create your first CRM variable.



2. Enter the necessary details and click Save. The value field is currently left empty for the users to later enter the value when prompted during the installation of the extension.



3. The custom variable is createdThe system also creates a unique API name for the custom variable in the following format "extensionNameSpace__VariableName"The system creates a unique API name by appending the extension name as a prefix. In our example, "API Key" is the custom variable created to hold the API key. "testcrm2__API_Keyis the unique API name provided by the system where "testcrm2" is the extension's unique namespace.



Similarly, let's create another custom variable to hold the user's email ID.



NoteYou can obtain the extension's NameSpace from the Extension Details page.





Establishing a connection with a third-party application (Datanyze)

The general flow involved around custom variables here is as follows:
  • While installing an extension, the user is prompted for values specific to authorization (set as custom variable in the extension) like username/password/API key.
  • The user enters the required value for the custom variable.
  • With the help of the data entered, the connection is established with the third-party application. 
For our example, let's take Datanyze as our third-party application. Datanyze mainly focuses on data enrichment through methodologies such as technographics and firmographics.

Note: The "API key" (also known as auth token) of Datanyze is required to complete the integration process. Log In or Sign Up with Datanyze to obtain a user-specific API key.

Let's write a custom function to see how the CRM tasks work and if the API call fetches us a response.



Code snippet:

valueMap = Map();


valueMap.put("apiname","testcrm2__API_Key");

valueMap.put("value","{API key token}");

resp = zoho.crm.invokeConnector("crm.set",valueMap);

info resp;

info "";

value = zoho.crm.getOrgVariable("testcrm2__API_Key");

info "The value of the custom variable, apikey, is " + value;

info "";

valueMap = Map();

valueMap.put("apiname","testcrm2__Email");

valueMap.put("value","{email id}");

resp = zoho.crm.invokeConnector("crm.set",valueMap);

info resp;

info "";

value2 = zoho.crm.getOrgVariable("testcrm2__Email");

info "The value of the custom variable, username, is " + value2;

info "";

response = invokeurl

[

url:"https://api.datanyze.com/industries/?

email={email}&token={API key token}"

type :GET

];

info response;

Here,

{email}
The Email ID associated with your Datanyze account.

{API key token} 
The API key generated by Datanyze for the corresponding {email}.

https://api.datanyze.com/industries/?email={email}&token={API key token}"
The Datanyze API call to get a list of all industries for data enrichment.


Click Execute to check the response.

The script returns
the status code as a response for the set organization variable method,
the value obtained as a response for the get variable method, and
a JSON response for the API call.

This indicates that locally the api key works fine and the response is fetched as expected.

When the extension is installed in a Zoho CRM account, the user is prompted for the API key and email.


Enter the API key and email. Click Save.

In our example, we've created two custom variables—testcrm2__Email and testcrm2__API_Key—for a user's Email ID and API key token, respectively, as required in the Datanyze API call to get a list of industries. Similarly, you can create any number of custom variables as needed.

You can also create and alter the function logic as needed to incorporate the data obtained from the Datanyze integration into your Zoho CRM.

We hope you found this content useful—keep following this space for more input!

SEE ALSO:





    Access your files securely from anywhere









                          Zoho Developer Community




                                                • Desk Community Learning Series


                                                • Digest


                                                • Functions


                                                • Meetups


                                                • Kbase


                                                • Resources


                                                • Glossary


                                                • Desk Marketplace


                                                • MVP Corner


                                                • Word of the Day


                                                • Ask the Experts





                                                          Manage your brands on social media



                                                                Zoho TeamInbox Resources



                                                                    Zoho CRM Plus Resources

                                                                      Zoho Books Resources


                                                                        Zoho Subscriptions Resources

                                                                          Zoho Projects Resources


                                                                            Zoho Sprints Resources


                                                                              Qntrl Resources


                                                                                Zoho Creator Resources



                                                                                    Zoho CRM Resources

                                                                                    • CRM Community Learning Series

                                                                                      CRM Community Learning Series


                                                                                    • Kaizen

                                                                                      Kaizen

                                                                                    • Functions

                                                                                      Functions

                                                                                    • Meetups

                                                                                      Meetups

                                                                                    • Kbase

                                                                                      Kbase

                                                                                    • Resources

                                                                                      Resources

                                                                                    • Digest

                                                                                      Digest

                                                                                    • CRM Marketplace

                                                                                      CRM Marketplace

                                                                                    • MVP Corner

                                                                                      MVP Corner







                                                                                        Design. Discuss. Deliver.

                                                                                        Create visually engaging stories with Zoho Show.

                                                                                        Get Started Now


                                                                                          Zoho Show Resources

                                                                                            Zoho Writer

                                                                                            Get Started. Write Away!

                                                                                            Writer is a powerful online word processor, designed for collaborative work.

                                                                                              Zoho CRM コンテンツ






                                                                                                Nederlandse Hulpbronnen


                                                                                                    ご検討中の方




                                                                                                          • Recent Topics

                                                                                                          • How to copy value from a single line field into a picklist field within a module's subform?

                                                                                                            Hello there, I have a single line field in a module's subform. I would like the value in the field to automatically update a picklist field within the same subform (both have items with the same names). Is this possible via function? Unfortunately, workflows
                                                                                                          • Can we add zoho books features like invoices estemates etc on our zohocommerce website. When our customer login with their account they can able to see all books features in one place on zohocommerce?

                                                                                                            Can we add zoho books features like invoices estemates etc on our zohocommerce website. When our customer login with their account they can able to see all books features in one place on zohocommerce?
                                                                                                          • File Field Validation

                                                                                                            Hello all, We are tracking our customer NDA agreements in our CRM and have created 2 fields to do so, an execution date field and a file upload field. I want to create a validation rule to ensure that when the execution date field is populated that the
                                                                                                          • Copy paste from word document deletes random spaces

                                                                                                            Hello Dear Zoho Team, When copying from a word document into Notebook, often I face a problem of the program deleting random spaces between words, the document become terribly faulty, eventhough it is perfect in its original source document (and without
                                                                                                          • Create custom rollup summary fields in Zoho CRM

                                                                                                            Hello everyone, In Zoho CRM, rollup summary fields have been essential tools for summarizing data across related records and enabling users to gain quick insights without having to jump across modules. Previously, only predefined summary functions were
                                                                                                          • Taxes for EU B2B Transactions

                                                                                                            Currently, ZC doesn't seem to have a procedure for validating VAT numbers of businesses purchasing in another EU state, and removing local VAT is valid. This is essential for all inter EU B2B trade.
                                                                                                          • Unable to Receive Emails on Zoho Mail After Office 365 Coexistence Setup – Error: 553 Relaying Disallowed

                                                                                                            Hello, My domain name is bigniter.com, and I’ve been using Zoho Mail as my email service provider without any issues. Recently, I followed the steps outlined in the Zoho documentation to enable Coexistence with Office 365: 🔗 https://www.zoho.com/mail/help/adminconsole/coexistence-with-office365.html#multi-server
                                                                                                          • How to update custom multi-user field in Zoho Projects?

                                                                                                            I'm trying to update custom multi-user fields in Zoho Projects via a Deluge function in CRM. The code I have so far is below. It works for updating standard project fields and single-line custom fields, but it does not work to update multi-user fields.
                                                                                                          • Enhance Sign CRM integration

                                                                                                            Hello all, I'm working on a custom Deluge script to enhance the integration between Zoho CRM and Sign by using a writer merge template for additional flexibility. I want to replicate the post-sign document integration that exists between CRM and Sign
                                                                                                          • CRM Related list table in Zoho analytics

                                                                                                            In Zoho Analytics, where can I view the tables created from zoho crm related lists? For example, in my Zoho CRM setup, I have added the Product module as a related list in the Lead module, and also the Lead module as a related list in the Product module.
                                                                                                          • Candidate Registration/Invitation

                                                                                                            It would be great to include the 'invite' candidate functionality into some of the automation functions - ether through a custom function trigger or webhook or accessible through an email template.  Currently there is no way to add this functionality into any workflows or blueprint steps which, I find limits the ability to invite candidates to engage with us directly through our candidate portal. 
                                                                                                          • [Free Webinar] Learning Table Series - Creator for Infrastructure Management | A Partner-driven collaborative session

                                                                                                            Hello Everyone! We’re excited to invite you to another edition of Learning Table Series, where we showcase how Zoho Creator empowers industries with innovative and automated solutions. About the Learning Table Series The Learning Table Series is a free,
                                                                                                          • Where we can change the icon in social preview

                                                                                                            Hi, we changed our logo, and the image that appear in preview (ex : when we post a appointment link somewhere) is still our old logo. I did change our logo in the org setting. https://bookings.zoho.com/app/#/home/dashboard/settings/basic-info?clview=false
                                                                                                          • Cadences

                                                                                                            I have just started using Cadences for follow-up up email pipeline. Is it just me or do you find the functionality very basic? For example, it will tell me (if I go looking for it) if someone has replied to a follow-up and been unenrolled; but it won't
                                                                                                          • I have error AS101 when I try to add paypal@mydomain.com to Zoho

                                                                                                            Please help me with this. I tried to call the help line 4 times but don't get any response.
                                                                                                          • VAT on Multiple Expenses

                                                                                                            Firstly, might I say I am based in Ireland, and I'm not an accountant, and therefore my understanding of procedures could be somewhat limited. Scenario. An employee pays for items throughout a month, and therefore their claim for expenses includes multiple items - some of the items are VAT deductible (eg, an IT product) and some are not (eg, a client lunch). Discovery The odd thing in ZBooks, is that whilst it seems possible to add a VAT rate to a one-off item of expense, it is not possible to add
                                                                                                          • Workflow Creation with Zia gets stuck

                                                                                                            It gets stuck here:
                                                                                                          • CRM for email in Outlook: how to ignore addresses?

                                                                                                            We’re using the "Zoho CRM for email" add-in for Outlook. When opening an email, the add-in displays all email addresses from the message and allows me to add them to the CRM or shows if they’re already contacts. However, sometimes people listed in To
                                                                                                          • Detect and ignore bots in visitors

                                                                                                            The SalesIQ visitor numbers are basically useless to us because there is no bot detection. We get the same bots coming in from the same countries looking at the same pages every day. It can't be that difficult to tell the difference between an actual
                                                                                                          • Can’t send emails from Zoho CRM after adding a new user — verification codes not received

                                                                                                            Hi everyone, We recently added a new user to our Zoho CRM account and purchased an additional license. Since then, we haven’t been able to send any emails from Zoho CRM. Our Zoho Mail accounts are working perfectly, we can send and receive emails directly
                                                                                                          • Agent assignment filter?

                                                                                                            Godo day, We are starting to play with FSM to see if it's going to work for our needs. Now so far we have found that it's very restrcitve in the field department you you have layout rules or can't even hide fields depending on the users roles. We can't
                                                                                                          • Default tax type for mileage?

                                                                                                            Where we are, mileage includes a government tax. Is there any way to set a default tax for the Personal Car Mileage category of expense? (Or any other way?)
                                                                                                          • DKIM Now Mandatory - Changes to Zoho Forms Email Policies

                                                                                                            Hello Zoho Forms Users, This post is to inform you about an important update regarding the authentication of all email domains in your Zoho Forms account. This year, we are doubling down on our commitment to deliver a secure, seamless, and empowering
                                                                                                          • All new Address Field in Zoho CRM: maintain structured and accurate address inputs

                                                                                                            The address field will be available exclusively for IN DC users. We'll keep you updated on the DC-specific rollout soon. It's currently available for all new sign-ups and for existing Zoho CRM orgs which are in the Professional edition. Managing addresses
                                                                                                          • Content Security Policy

                                                                                                            Is there a place in ZOHO CRM to add a Content Security Policy to allow for a call to a google.com map, from inside our current app? Or, how do I resolve the issue below?? jquery.js:1 Refused to load the script 'https://maps.google.com/maps/api/js?v=3.41&libraries=places&sensor=true&key=AIzaSyAyQzKeKSbLci4LwZhn9oXvtCkbUo1Ae4g&callback=map_loader'
                                                                                                          • In arattai received message can't be deleted

                                                                                                            The issue has been noticed in following: arattai app (Android) arattai app (Window) arattai web While the message posted by me may be deleted, the ones received from others can't be. The item <Delete> change to <Report> when the message is a received
                                                                                                          • is it possible to add more than one Whatsapp Phone Number to be integrated to Zoho CRM?

                                                                                                            so I have successfully added one Whatsapp number like this from this User Interface it seems I can't add a new Whatsapp Number. I need to add a new Whatsapp Number so I can control the lead assignment if a chat sent to Whatsapp Phone Number 1 then assign
                                                                                                          • Kiosk Page Refresh

                                                                                                            We have a Kiosk running from a button in contacts to update values and also add related lists, which works great, but when the kiosk is finished the page does not refresh to show the changes. Is there a way to force the contact to refresh/update when
                                                                                                          • Tips & tricks: Make SalesIQ automations work for you

                                                                                                            Every day, thousands of visitors land on your website. Some browse, some buy, and some leave without a word. But, wouldn’t it be great if you could automatically know who’s interested, engage them at the right moment, and never miss a lead, and all this
                                                                                                          • Add Custom Reports To Dashboard or Home Tab

                                                                                                            Hi there, I think it would be great to be able to add our custom reports to the Home Tab or Dashboards. Thanks! Chad
                                                                                                          • Finding missing records

                                                                                                            I have a challenge and I am not really sure where to start with it. I can't find any similar threads on here, can anyone help: I have two forms, FormA and FormB. Both forms have records that contain a field called Job_Number. What I am trying to achieve
                                                                                                          • Digest Octobre - Un résumé de ce qui s'est passé le mois dernier sur Community

                                                                                                            Chers utilisateurs, Faisons le point sur les temps forts du mois d'octobre au sein de notre Community Zoho France. Partager des informations sensibles, comme des mots de passe, peut vite devenir compliqué et risqué. Les données circulent par email ou
                                                                                                          • How do I fully delete a user account

                                                                                                            Hi, I have two old accounts on my CRM which are inactive and show as 'Closed' in the list of users. BUT they are basically still there. How do I fully delete these accounts? They appear in some parts of CRM still such as the on the contact record emails
                                                                                                          • Automatically Add Recurring Zoho Meeting Events to Zoho Calendar / Zoho Meeting Calendar

                                                                                                            Hello Zoho Meeting Team, Hope you are doing well. We would like to request an enhancement regarding recurring meetings created inside Zoho Meeting. At the moment, when we schedule a recurring meeting in Zoho Meeting, it does not appear in Zoho Calendar
                                                                                                          • Credit Management: #6 Tackling Common Mistakes in Credit Based Billing

                                                                                                            Businesses extend credit to build relationships, make buying easy, and drive more sales. But somewhere between extending and collecting, things begin to slip. A few late payments here and there, an overlooked invoice, and a backlog make cash flow feel
                                                                                                          • Insert Cookie Policy in Zoho Sites

                                                                                                            Hello, i need to insert a banner on my site because i'm in Italy so i have to respect EU laws for Cookie Policy and Privacy Policy. I see that i need to insert a code in <head> section of my site to show a banner/popup with cookie info. How i can do this? Thank you Luca
                                                                                                          • Tasks Statuses

                                                                                                            Hi, The task status "Completed" is a final status which closes the task. We need to have a status "Cancelled". However, when the status is set to "Cancelled", the task prompt still has a blue button to Close Task. When the customer clicks that and closes
                                                                                                          • Updating Blueprint stage from my Deluge function

                                                                                                            Hi all, I need to update the blueprint stage. Its almost working, but ONLY if the current Deal stage is 'Closed Lost'. On any of my custom stages that Ive specified in the pipeline it doesnt work! My code: dealmap = Map(); deal_stage = deal.get("Stage");
                                                                                                          • Good news! Calendar in Zoho CRM gets a face lift

                                                                                                            Dear Customers, We are delighted to unveil the revamped calendar UI in Zoho CRM. With a complete visual overhaul aligned with CRM for Everyone, the calendar now offers a more intuitive and flexible scheduling experience. What’s new? Distinguish activities
                                                                                                          • Canvas: is it possible to have a fixed header?

                                                                                                            Hello. Does Canvas provide the option to have a fixed header, similar to the standard view? It would also be interesting for other parts of the interface, like the header or sidebar of the tab section. Thanks!
                                                                                                          • Next Page