Extension Configuration
Summary
The Extension Configuration guide explains how to configure extensions using the plugin-manifest.json file. This file stores all required configuration information including service details, modules (widgets), and connector settings for third-party service integrations.
Overview
The plugin-manifest.json file is the central configuration file for your extension. It contains three main sections:
- Service
- Modules
- Connectors
Service Configuration
The service key defines the Zoho product for which the extension is created.
- Default entry:
"service": "WRITER" - This configuration is set automatically when creating a Writer extension
- Identifies the target Zoho application and ensures compatibility with Writer-specific widgets and functions
Modules Configuration
Overview
Modules define the components and extensions available within your extension. The extension currently supports Widgets — embeddable UI elements for extending Writer functionality.
Widget Properties
| Property | Type | Description |
|---|---|---|
title | String | Display name of the widget (can be duplicated) |
name | String | Unique identifier for the widget (must be unique) |
icon | URL | Icon URL — store image in img folder |
logo | URL | Logo image URL — store image in img folder |
location | String | Widget placement location in Writer interface |
url | URL | Path to widget HTML file (relative or absolute) |
Image File Requirements
- Store all extension images in the
imgfolder underapp/ - Include logo and icon images in this directory
- Use relative paths in configuration
Multiple Widgets
- An extension can contain multiple widgets
- Each widget requires a unique
nameproperty - Multiple widgets can share the same location
Connectors Configuration
How Connectors Work
- Connectors enable seamless integration between extensions and third-party services
- Zoho Writer handles all third-party service authorization
- Developers focus on extension functionality; Zoho manages OAuth and authentication flows
Types of Services
| Type | Description |
|---|---|
| Default Services | Pre-configured frequently-used services with quick setup and minimal configuration |
| Custom Services | Create your own third-party service connections with custom authentication methods |
Connector Configuration Process
- Create connections in Sigma
- Copy the connection JSON from Sigma
- Paste JSON in plugin-manifest under the
"connectors"attribute.
Best Practices
- Widget Naming: Use descriptive unique names for widgets
- Image Organization: Keep all images in the
imgfolder - Path Configuration: Use relative paths for consistency
- Documentation: Document custom services and their purposes
- Testing: Validate configuration before publishing
Related Pages
Notes
- Note: Configuration files are validated during extension upload.
- Warning: Invalid configuration will prevent the extension from running.
- Note: Review Zoho Sigma documentation for the detailed JSON schema.
Widget Configuration Example
Copied{
"modules": {
"widgets": [
{
"title": "Widget Name",
"name": "unique_widget_name",
"icon": "img/widget-icon.png",
"logo": "img/widget-logo.png",
"location": "writer.extensions",
"url": "writer-widget.html"
}
]
}
}Sample plugin manifest JSON
Copied{
"service": "WRITER",
"modules": {
"widgets": [
{
"title": "My Widget",
"name": "my_widget",
"icon": "img/icon.png",
"logo": "img/logo.png",
"location": "writer.extensions",
"url": "writer-widget.html"
}
]
},
"connectors": [
{
"connectionLinkName": "wcconnection",
"connectionName": "wcconnection",
"serviceName": "woocommerce",
"userAccess": true,
"isUserDefinedService": false,
"sharedBy": "1234567"
}
]