## Zoho Invoice — Product, features, payments, integrations, solutions, and help Index Access the complete documentation index at: https://www.zoho.com/invoice/llms.txt Use this file to discover all available documentation pages before proceeding. # Extension Components Once you have created an extension as mentioned in the [create extensions](/invoice/developer/extensions/create-extension.html) help document, the next step is to add components to it. Components are the building blocks of an extension. The components will be available in the **Build** section at the top. ### Components The Zoho Invoice Developer Portal supports the following components: * [Preferences](/invoice/developer/extensions/extension-components.html#preferences) * [Field Customization](/invoice/developer/extensions/extension-components.html#field-customization) * [Custom Buttons and Links](/invoice/developer/extensions/extension-components.html#custom-buttons-and-custom-links) * [Related Lists](/invoice/developer/extensions/extension-components.html#related-lists) * [Meta Fields](/invoice/developer/extensions/extension-components.html#meta-fields) * [PDF Templates](/invoice/developer/extensions/extension-components.html#pdf-templates) * [Email Notifications](/invoice/developer/extensions/extension-components.html#email-notifications) * [Automation](/invoice/developer/extensions/extension-components.html#automation) * [Workflow Rules](/invoice/developer/extensions/extension-components.html#workflow-rules) * [Workflow Actions](/invoice/developer/extensions/extension-components.html#workflow-actions) * [Email Alerts](/invoice/developer/extensions/extension-components.html#email-alerts) * [In-app Notifications](/invoice/developer/extensions/extension-components.html#in-app-notifications) * [Field Updates](/invoice/developer/extensions/extension-components.html#field-updates) * [Webhooks](/invoice/developer/extensions/extension-components.html#webhooks) * [Custom Functions](/invoice/developer/extensions/extension-components.html#custom-functions) * [Schedules](/invoice/developer/extensions/extension-components.html#schedules) * [Web Tabs](/invoice/developer/extensions/extension-components.html#web-tabs) * [Signals](/invoice/developer/extensions/extension-components.html#signals) * [Widgets](/invoice/developer/extensions/extension-components.html#widgets) * [Incoming Webhooks](/invoice/developer/extensions/extension-components.html#incoming-webhooks) * [Connections](/invoice/developer/extensions/extension-components.html#connections) * [Custom Views](/invoice/developer/extensions/extension-components.html#custom-views) * [Custom Modules](/invoice/developer/extensions/extension-components.html#custom-modules) * [Payment Gateway Connectors](/invoice/developer/extensions/extension-components.html#payment-gateway-connectors) ### Preferences You can customize extensions based on your requirements using these components from the _Preferences_ pane: * [Field Customization](/invoice/developer/extensions/extension-components.html#field-customization) * [Custom Buttons and Custom Links](ustom-buttons-and-custom-links) * [Related Lists](/invoice/developer/extensions/extension-components.html#related-lists) * [Meeta Fields](/invoice/developer/extensions/extension-components.html#meta-fields) #### Field Customization If the fields in a module do not meet your requirements, you can create additional fields to store the required information using custom fields. Read our help document on [Custom Fields](/invoice/help/settings/preferences.html#field-customization) to learn more about the feature. #### Custom Buttons and Links Create custom buttons to perform tailor-made actions for your transactions or open external links. You can create them using a deluge script and execute actions based on the functions you add. Read our help document on [Custom Button and Links](/invoice/help/settings/preferences.html#custom-button-links) to learn more about the feature. #### Related Lists Using Related Lists, you can fetch and view data from within Zoho Invoice as well as from other third-party services. This comes in handy when you want to cross-reference data from different entities. Read our help document on [Related Lists](/invoice/help/settings/preferences.html#related-lists) to learn more about the feature. #### Meta Fields Meta fields are fields that you can use when the value stored in the custom field is static or constant. In the Zoho Invoice Developer Portal, you can use meta fields to store a plugin’s data. For each extension, you can use one meta field and store up to 64000 characters in the meta field. A unique key is generated for the meta field of each extension. To identify the unique key of the meta field: * Go to Zoho Invoice Developer Portal. * Switch to the **Build** section at the top. * Select **Preferences** in the left sidebar. * Select a module in the _Preferences_ pane. * Click **Learn Meta Fields** at the top right corner. * In the pane that appears, go to the _To Store_ or _To Retrieve_ section under _API Documentation_. * The **5 alphabets** after _/pu\__ in the _URL_ field will be the unique key for the meta field of your extension. By default, the details of the meta fields will not be shown to the users. However, if the meta field is used in a widget or related list, the meta field’s details can be accessed from the GET API call. The table below is the list of modules that support meta fields: Module URL Invoices /invoices/(\\d+)/metadata/{plugin\_identifier} Quotes /estimates/(\\d+)/metadata/{plugin\_identifier} Credit Notes /creditnotes/(\\d+)/metadata/{plugin\_identifier} Retainer Invoices /retainerinvoices/(\\d+)/metadata/{plugin\_identifier} Customer Payments /customerpayments/(\\d+)/metadata/{plugin\_identifier} Expenses /expenses/(\\d+)/metadata/{plugin\_identifier} Recurring Expenses /recurringexpenses/(\\d+)/metadata/{plugin\_identifier} Projects /projects/(\\d+)/metadata/{plugin\_identifier} Users /users/(\\d+)/metadata/{plugin\_identifier} Items /items/(\\d+)/metadata/{plugin\_identifier} Customers /customers/(\\d+)/metadata/{plugin\_identifier} ### PDF Templates Customize the look and feel of sales transactions to suit your brand better in Zoho Invoice. You can customize an existing template or create a new one. Read our help document on [PDF templates](/invoice/help/settings/templates.html) to learn more about the feature. ### Email Notifications Customize the emails sent from your organization. Read our help document on [Email Notifications](/invoice/help/settings/emails.html) to learn more about the feature. ### Automation You can automate your day-to-day work processes to save time and money. Here’s a list of automation tasks that can performed in Zoho Invoice: * [Workflow Rules](/invoice/developer/extensions/extension-components.html#workflow-rules) * [Workflow Actions](/invoice/developer/extensions/extension-components.html#workflow-actions) * [Schedules](/invoice/developer/extensions/extension-components.html#schedules) #### Workflow Rules A workflow rule consists of actions that comprises of Email Alerts, In-App Notifications, Field Updates, Webhooks, and Custom Functions that play an essential role in executing a task. A workflow rule may employ one or more workflow actions to automate the tasks of your organization. Read our help document on [Workflow Rules](/invoice/help/settings/automation.html#new-workflow-rule) to learn more about the feature. #### Workflow Actions Workflow Actions in Zoho Invoice allows you to automate tasks and actions based on predefined triggers or conditions. The workflow actions available in Zoho Invoice are: * [Email Alerts](/invoice/developer/extensions/extension-components.html#email-alerts) * [In-app Notifications](/invoice/developer/extensions/extension-components.html#in-app-notifications) * [Field Updates](/invoice/developer/extensions/extension-components.html#field-updates) * [Webhooks](/invoice/developer/extensions/extension-components.html#custom-functions) * [Custom Functions](/invoice/developer/extensions/extension-components.html#custom-functions) #### Email Alerts Email Alerts are automated emails that are sent when the criteria in a workflow rule are met. You can create new email alerts and use them in a workflow rule. Read our help document on [Email Alerts](/invoice/help/settings/automation.html#email-alerts) to learn more about the feature. #### In-App Notifications In-app Notifications help you notify your users of an event or a significant activity that has taken place in your organization. Read our help document on [In-App Notifications](/invoice/help/settings/automation.html#in-app-notification) to learn more about the feature. #### Field Updates In-app Notifications alert the users within your organization about events or significant activities that have occurred. Read our help document on [In-App Notifications](/invoice/help/settings/automation.html#in-app-notification) to learn more about the feature. #### Webhooks Webhooks facilitate communication with third-party applications by sending instant web notifications every time an event occurs in Zoho Invoice. With Webhooks, you can configure HTTP & HTTPS URLs and associate them with workflow rules to automate the notification process. Read our help document on [Webhooks](/invoice/help/settings/automation.html#webhooks) to learn more about the feature. #### Custom Functions Custom functions in Zoho Invoice allows you to write small pieces of code to automate your business processes. Read our help document on [Custom Functions](/invoice/help/settings/automation.html#custom-functions) to learn more about the feature. #### Schedules Create and run predefined tasks at a specified time or intervals using Schedules. You can create your tasks using a deluge script and schedule this task to be executed at a particular time or on a recurring basis. Read our help document on [Schedules](http://zoho.com/invoice/help/settings/automation.html#custom-scheduler) to learn more about the feature. ### WebTabs Web Tabs are similar to browser tabs, but are accessible from within Zoho Invoice. They enable you to access web pages or applications that provide you with an embeddable URL. You can create a maximum of 10 web tabs in Zoho Invoice. This feature is available only for a few plans of Zoho Invoice. Learn more about [web tabs](https://www.zoho.com/invoice/help/web-tabs/) ### Signals A Signal sends in-app notifications to users in your organization whenever an action is performed in a third-party app that you had configured. Read our help document on [Signals](/invoice/help/settings/signals.html) to learn more about the feature. ### Widgets Sometimes, you may want to access features from third-party applications in Zoho Invoice. Widgets can help you achieve this using embeddable UI components. Read out help document on [Widgets](/invoice/developer/extensions/widgets/) to learn more about them. ### Incoming Webhooks Incoming webhooks is a method of bringing information from a third-party service or an API request to Zoho Invoice on occurrence of an event. In Zoho Invoice, you can use the action performed in the third-party service as a trigger to perform a task in Zoho Invoice. Read our help document on [Incoming Webhooks](/invoice/help/settings/incoming-webhooks.html) to learn more about the feature. When you create an incoming webhook in the developer portal, you will not be given the ZAPI Key URL to identify which organization is installing the extension. The ZAPI Key URL can be obtained by editing an existing incoming webhook. In the _On Installation_ tab, you have to use this snippet to fetch the organization specific ZAPI Key URL and configure the outgoing webhook in your end. Here’s how: * Go to the **Configure** section at the top. * Select **Install Actions** in the left sidebar. * Paste the script that you copied from the incoming webhook in the Deluge script in the _On Installation_ tab. The script will be executed automatically for the organization installing the extension on every successful installation. ### Connections You can connect to a third-party service or other Zoho applications using connections in Zoho Invoice. You can set up a connection from the Deluge editor page. Read our help document on [Connections](/invoice/help/settings/connections.html) to learn more about the feature. ### Custom Views Create custom views to filter the records in any module based on the criteria you’ve set. Read our help document on [Custom Views](/invoice/help/bills/manage-bills.html#custom-views) to learn more about the feature. ### Custom Modules There might be times when the predefined modules in Zoho Invoice may not be sufficient to manage all your business requirements. In such cases, you can create a custom module to record other data. Read our help document on [Custom Modules](/invoice/help/custom-modules/) to learn more about the feature. ### Payment Gateway Connectors A Payment Gateway Connector bridges software and a payment gateway, securely transferring payment data from the customer to the gateway for processing, and back to the software. If you’re a developer, you can create an extension for payment gateways that are not currently supported by Zoho Invoice using Payment Gateway Connectors. Once done, you can publish and sell your extension in the Zoho Marketplace to Zoho Invoice users. Zoho Invoice users can then install your extension for their Zoho Invoice organization and use it to receive payments. To create a payment gateway extension, email us at [support@zohoinvoice.com](mailto:support@zohoinvoice.com) and we will enable Payment Gateway Connectors for your organization. * * * ### Extension Creation Guidelines Now that you’ve learned about the various components of an extension, you can begin building your extension. However, it’s crucial to ensure that your extension aligns with the Zoho Invoice extension guidelines. This makes it easier for your extension to be approved or to be published in Zoho Marketplace. The guidelines that you have to follow when developing an extension are: #### Common Guidelines * Do not use any unwanted components or scripts in the extension. * Do not use more than 5 custom fields in each module. * Ensure that the extension name does not contain the name of the product for which it is developed. For example, if you’re developing an extension for Twilio, the extension name should be Twilio and not Twilio for Zoho Invoice. #### Guidelines for Connections * If you’re using connections in your extension, enable only the scopes that are required for the connection. * If the connection’s authentication type is OAuth2, include **access\_type=offline** in the _Authorize URL_ field. * Ensure that the connection name is a combination of the service name and the extension name, separated by a hyphen in Pascal case. For example, ZohoInvoice-Twilio. * If individual users of an organization have to connect and authorize the connections used in your extension, set the value for the **user access** param to true. #### Guidelines for Custom Scripts * If you want to publish the extension in other Zoho Finance apps, do not use any internal SDK methods. For example, instead of using zoho.invoice.getRecord, use invokeurl. * Include **api\_root\_endpoint** in the Invoke call’s URL. * Do not create components using scripts. * If you’re using comments in the custom scripts, ensure that you do not add personal or sensitive information as comments. #### Guidelines for Widgets * If you’re using widgets in the extension, ensure that they adhere to the style used in the Zoho Invoice user interface. * Ensure that the widget’s data is not displayed in the console tool. #### Guidelines for Global Fields * If you’re using global fields in custom scripts, check the **Allow use of Global fields in this custom function** option. * If the data type of the global field is **Users** or **Roles**, and notifications are sent to the users, set the value of the **is\_mandatory** param to **true**. * * *