Building extensions #2: Publishing an extension

Building extensions #2: Publishing an extension

Hello developers,

Welcome to our next post about building extensions for Zoho Finance Suite applications.

In our previous post, we looked at extensions, their purpose, and how to create and test them. To recap, extensions are installable plugins or add-ons that include customizations to improve the existing functionality of a Zoho product. They can be shared with other users, allowing them to install the plugin and have the customizations reflected in their account as well.

If you wish to customize any Zoho product on your account alone, you can use in-product customizations. Extensions, on the other hand, are created as custom, installable bundles that can be shared and used by multiple users.

In this post, we'll be discussing how to publish extensions both privately and publicly.

Why publish an extension?

The ultimate goal of creating extensions for Zoho products is to share them with users so they can install them and use their features in their own Zoho products.

In order to make the extension available as an installable component, it must first be published.

Private and public extensions

Extensions can be developed for internal organizational purposes or for a larger audience, and they can be published either privately or publicly.
  1. Private: Published to be shared privately with other users or within an organization.
Example: An organization uses Zoho Books to manage its financial activities, and its employees need customizations to meet their specific demands. In this scenario, extensions would be useful so the customizations could be shared with other users in the organization.
  1. Public: Published in Zoho Marketplace and made accessible to Zoho users.
Example: A developer creates an extension with some common or general use cases that would help most business categories, e.g., a payment gateway integration, a message integration app, or an extended feature for a Zoho Finance application. In this scenario, the developer could list the extension publicly for a larger audience.

How to publish an extension
  1. Enter the developer portal of the Zoho Finance extension you want to publish. For our demo, we're using a Zoho Books extension.
  1. Navigate to the Publish section and click Publish.

  1. A pop-up displays the list of components you've added to your extension. Check and validate these components.

  1. Choose either major or minor versioning. Major rounds off and increments your version number to the next integer (version 1, version 2, etc.), while minor increments the version by 0.1 (version 1.1, version 1.2, etc.).
  1. Enter the release notes in the Release Notes section. Click Publish.

  1. The extension is successfully published, and a private installation URL is created.

  1. As a developer, you can use the private installation URL to test the extension in your Zoho Books organization.
Note: In order to install and test the extension privately in Zoho Books, your Zoho Books account should be the same as the one you used to develop the extension.

  1. In order to share the extension with other users, it will have to be reviewed internally by the Zoho Finance team. To do this, click the Submit for Private Review button that appears after publishing the extension. Read the Zoho Finance extension review guidelines for more information.

  1. A pop-up displays the auto-populated details on a mail that will be sent to the Zoho Finance review team. Verify the details and click the Send Mail button.
  2. The extension is successfully submitted for private review and is under the status "Submitted For Review."
Note: If you want to make changes to the submitted version, you have to deprecate the version submitted for review. Once deprecated, the Finance team can't approve the version you originally submitted.

  1. As the developer, you'll also receive a copy of your submission email.
  1. The Zoho Finance team will review the extension and, once successfully validated, approve it, changing the private review status from "Submitted For Review" to "Approved."

  1. Now that the extension has been privately approved, you can share it with other users. Go to the Shared List option in the left panel, and click the Share Privately button.

  1. Enter the organization ID and email ID of the user you want to share the private extension with. Click Share.

  1. The extension is successfully shared.

  1. The user will get an email about the shared extension, along with the installation URL. They can simply click the link to install the extension.
  2. To publish and list the extension publicly in Zoho Marketplace, it'll have to be reviewed and approved by the Zoho Marketplace team as well.
  3. To publish publicly, follow the above steps, then submit your extension for Zoho Marketplace review using the Submit for Marketplace Review button.

  1. You'll be redirected to the extension details page, where you can view a Submit to Marketplace button beside the extension version. Click Submit to Marketplace.

  1. A pop-up appears with extension details that will be listed in Zoho Marketplace. Fill in the details to complete the submission process.


Extension compatibility across Zoho Finance Suite applications

Once you've developed the extension and submitted it for private review, check to see if it has any common use cases that would work with another Zoho Finance application. If it does, you can reach out to extension-submission@zohofinance.com and say you would like to have your extension reviewed for whichever other Finance applications you think it would suit. The Finance review team will evaluate your suggestion and guide you accordingly.

Once these reviews are validated, you can publicly list the extension for the other apps with ease. Using the available Marketplace installation URL, you can directly submit another application through the Zoho Marketplace Partner console.



When providing details in the Zoho Marketplace Partner console for the compatible application, make sure to change the product name in the Marketplace installation URL. Once submitted, the Zoho Marketplace approval team will internally validate it with the Zoho Finance team, review it themselves, and list the extension if it's verified.

Example

Zoho Books includes modules that are present in other Zoho Finance apps. Assume you've created a Zoho Books extension and shared it with the Finance team for private review. You can also contact the Finance team and request a review for Zoho Inventory because the extension's use case is compatible.

If the Finance team approves the review for both applications, and you want to publicly list the extension on both counts, instead of creating and publishing an extension for Zoho Inventory from scratch, simply change the product name from Books to Inventory in the Marketplace installation URL when submitting the application in the Zoho Marketplace Partner console.



In this post, we've given you a detailed outline of the steps involved in publishing an extension for a Zoho Finance application, both privately and publicly.

Going forward, we'll look at Zoho Books extension creation since Zoho Books includes features and functions that are found in the other Zoho Finance Suite products. We hope you found this information useful. Keep following this space for more useful guides!

SEE ALSO

      • Recent Topics

      • Some emails are not being delivered

        I have this problem where some of my mail just seems to disappear. When I send it, it appears as sent with no mention of any problem, but my recipient never gets it, not even in the Spam folder. Same for receiving, I have a secondary e-mail address, and
      • New in Zoho Chat : Search for contacts, files, links & conversations with the all new powerful 'Smart Search' bar.

        With the newly revamped 'Smart Search' bar in Zoho Chat, we have made your search for contacts, chats, files and links super quick and easy using Search Quantifiers.   Search for a contact or specific conversations using quantifiers, such as, from: @user_name - to find chats or channel conversations received from a specific user. to: @user_name - to find chats or channel conversations sent to a specific user. in: #channel_name - to find a particular instance in a channel. in: #chat_name - to find
      • Template modifiactions

        Hello, I am struggling with the templates in ZOHO Books. Especially with the placement of some items, like company address, ship to, bill to etc.  For example: One item I like from template X (placement of ship to and bill to next to each other in the
      • Aggregating the First Value in the Group By of a dataset

        Hi I am trying to get the following Aggregate Formula to work in my chart, but cannot seem to get the right format. I have a series of data that I am running an include_groupby and want to SUM only a column in the first row of each group. So for example.
      • Admin Control Over Profile Picture Visibility in Zoho One

        Hello Zoho Team, We hope you are doing well. Currently, as per Zoho’s design, each user can manage the visibility of their profile picture from their own Zoho Accounts page: accounts.zoho.com → Personal Information → Profile Picture → Profile Picture
      • Track Zoho Campaign and Workflow sales impact

        I am attempting to measure the performance of our marketing workflows and campaigns by comparing the date each campaign was sent to a contact with the purchase date of the contact. For example, if Contact A was sent Email A on 9/1 and made a purchase
      • Tables for Europe Datacenter customers?

        It's been over a year now for the launch of Zoho Tables - and still not available für EU DC customers. When will it be available?
      • What is a line break code for zoho?

        Hi, I am archiving data by adding values from a single line field from one form to a multi-line field in another form. So I need a code/function that starts a new line on that multi-line field so it does not just keep adding it on the same line. Example, doing something like this means that it will be on a same line. archive.field1 = archive.field1 + input.Field1 I need a code so the input.Field1 can just start on the next line. Instead of "value 1, 2,3,4,5" It will be: "1 2 3 4 etc.".  something
      • Automatic Project Owner change

        Is there a way to change Project Owner automatically once a specific Milestone in a project is marked as completed. Different Teams are working on projects in our Org, they have their own Milestones to complete and so we transfer the project from team
      • Button to add product to cart

        Is there a way to have a button on a page, that when clicked, will add Qty 1 of a product to the cart?
      • Problem with Submit Button Design

        I have made a template to apply to my forms and under the button controls, I have it set to "standard" and yet it's still filling the container. This is super frustrating and looks weird. Why do we not have full control over button size? How can I fix
      • Zoho CRM- Authorize your Microsoft Teams account issue

        Hi, I tried to link Zoho CRM with Teams and I got the following message: Clicking "Authorize now" sent me to the following page, Microsoft tried to start a session but, after 3 seconds the page closed and nothing happened. I get the same message each
      • Passing the CRM

        Hi, I am hoping someone can help. I have a zoho form that has a CRM lookup field. I was hoping to send this to my publicly to clients via a text message and the form then attaches the signed form back to the custom module. This work absolutely fine when
      • Is there a way to associate an email in ZOHO Main to a Vendor record in ZOHO CRM

        My situation is as below, I have a vendor in ZOHO CRM lets say "Vend A" and an associated contact, "Cont A" If Cont A sends me an email using the email I've registered in the contact record the standard OOTB email sync will work. But the vendor has some
      • Bank charges are applied. Please select a bank account.

        Hello, I'm trying to add bank charges to a customer payment, but I get the error message "Bank charges are applied. Please select a bank account." I found this old thread, where it says that I need to "select a Bank account for the 'Deposit To' dropdown
      • Kaizen #207 - Answering your Questions | Advanced Queries using COQL API

        Hi everyone, and welcome to another Kaizen week! As part of Kaizen #200 milestone, many of you shared topics you would like us to cover, and we have been addressing them one by one over the past few weeks. Today, we are picking up one of those requests
      • Présentation de SecureForms dans Zoho Vault

        Soyons francs : demander à quelqu’un de transmettre un mot de passe ou des informations sensibles n’est jamais une tâche facile. On attend, on relance, parfois de nombreuses fois. Et quand l’information arrive, elle se retrouve souvent dispersée dans
      • Introducing Connected Records to bring business context to every aspect of your work in Zoho CRM for Everyone

        Hello Everyone, We are excited to unveil phase one of a powerful enhancement to CRM for Everyone - Connected Records, available only in CRM's Nextgen UI. With CRM for Everyone, businesses can onboard all customer-facing teams onto the CRM platform to
      • Granular Email Forwarding Controls in Zoho Mail (Admin Console and Zoho One)

        Hello Zoho Mail Team, How are you? At present, the Zoho Mail Admin Console allows administrators to configure email forwarding for an entire mailbox, forwarding all incoming emails to another address. This is helpful for delegation or backup purposes,
      • Sales order & purchase order item links for item details

        This is fantastic for checking lots of things, I use it a lot. It would be great to see it extended to invoices & bills On another note, may as well throw in my favourite whinge ..... Wish you guys would get the PO receive differences sorted urgently,
      • Zoho Workdrive - Communication / Chat Bar

        Hi Team, Please consider adding an option to allow admins to turn on or off the Zoho Communication Bar. Example of what I mean by Communication Bar: It's such a pain sometimes when I'm in WorkDrive and I want to share a link to a file with a colleague
      • Introducing Profile Summary: Faster Candidate Insights with Zia

        We’re excited to launch Profile Summary, a powerful new feature in Zoho Recruit that transforms how you review candidate profiles. What used to take minutes of resume scanning can now be assessed in seconds—thanks to Zia. A Quick Example Say you’re hiring
      • Kaizen #190 - Queries in Custom Related Lists

        Hello everyone! Welcome back to another week of Kaizen! This week, we will discuss yet another interesting enhancement to Queries. As you all know, Queries allow you to dynamically retrieve data from CRM as well as third-party services directly within
      • Need the ability to have read only fields on a form.

        There needs to be functionality in Creator that allows a field on a form to be read only. Most screen building software applications have this capability. I know you can hide certain fields from specific users and that you can also make the whole form read only but that's not the functionality I need. I want to be able to create a form where certain fields are editable and other are for display purposes only (read only). For example if the form was displaying information on an item that the user
      • Reverse payment on accidentally closed invoice.

        An invoice was closed accidentally with the full payment added. However, only partial payment was paid. How can I reopen the invoice and reverse this to update it to show partial payment?
      • New integration: Track booking page appointments in Google Analytics 4

        Hello all, Greetings from the Zoho Bookings team! We’re excited to introduce our new Google Analytics 4 (GA4) integration designed to help you track booking activity, understand customer behavior, and measure marketing performance, all in one place. What
      • How to list emails in a folder, e.g. Inbox, on multiple pages when using Zoho mail webpage?

        Something as shown in the figure. There are totally 50 emails in Sent folder. If "Mail per page" equals 20, then the Sent folder is split into 3 pages. When I wander through Sent folder, I can just select a specific page to jump to. BTW, it seems that
      • Zoho Calendar soft bounce on @hotmail.com and @yahoo.com email addresses

        Hello, our Zoho calendar recently does not send the calendar invites to emails with hotmail and yahoo domains and comes back with a "soft bounce". other domains like Gmail works fine. Also sending "email" to the same emails to the above domains work well
      • ERROR CODE :512 - 5.4.4 DNS error:NXDOMAIN.

        Suddenly we cant send mail, we are getting this error for all outbound mail to multiple domains.
      • Can Zoho Flows repeat Actions more than once?

        I'm attempting to make an intentional Zoho Flow loop using the below layout. However, when "WithinLimit" condition is met, the program fails to execute the action "Get & Add Request Co..." again. Is this by design? Is Zoho Flows unable to repeat actions
      • Unveiling Cadences: Redefining CRM interactions with automated sequential follow-ups

        Last modified on 01/04/2024: Cadences is now available for all Zoho CRM users in all data centres (DCs). Note that it was previously an early access feature, available only upon request, and was also known as Cadences Studio. As of April 1, 2024, it's
      • customer data security

        We are exploring ways to enhance our within Zoho CRM. Our Goal: We want to fully integrate RingCentral with Zoho CRM to enable click-to-call functionality for our sales team. However, to comply with data privacy regulations and protect customer contact
      • Zoho Cliq not working on airplanes

        Hi, My team and I have been having this constant issue of cliq not working when connected to an airplane's wifi. Is there a reason for this? We have tried on different Airlines and it doesn't work on any of them. We need assistance here since we are constantly
      • Sync CRM inventory data with Zoho Books

        I just switched everything over to ZoHo books, but I am trying to find out why the CRM Estimates, Invoices, and Sales Orders created in ZoHo CRM are not then duplicated in ZoHo Books? I had Quickbooks before, and had to do everything twice, I thought
      • mask Customer phone number and agents cant see customer phone number

        Is there any way we can integrate Zoom Phone with Zoho CRM while ensuring that customer phone numbers remain masked? We need a solution where agents can make outbound calls but cannot see customer phone numbers. Please let us know if there is any solution
      • Email Reminders on Shared Calendars

        How do we turn off the setting that emails reminders to everyone who has accepted or declined a calendar invite? If 8 of us have been invited to the same meeting, we receive 8 notifications for every step of the process, from invitation to decision.
      • Default Sorting on Related Lists

        Is it possible to set the default sorting options on the related lists. For example on the Contact Details view I have related lists for activities, emails, products cases, notes etc... currently: Activities 'created date' newest first Emails - 'created
      • WebDAV / FTP / SFTP protocols for syncing

        I believe the Zoho for Desktop app is built using a proprietary protocol. For the growing number of people using services such as odrive to sync multiple accounts from various providers (Google, Dropbox, Box, OneDrive, etc.) it would be really helpful if you implemented standard protocols such as WebDAV / FTP / SFTP so that alternative inc clients can be used.
      • What's New in Zoho Inventory | Q2 2025

        Hello Customers, The second quarter have been exciting months for Zoho Inventory! We’ve introduced impactful new features and enhancements to help you manage inventory operations with even greater precision and control. While we have many more exciting
      • How to refresh a ticket view ?

        I am doing a widget where I send a rest api call to make a new draft to the ticket I am viewing. The issue is sometimes it refresh a ticket view and I can see inserted draft right away, but sometimes I do not see it even if it is inserted correctly and
      • Next Page