Plugin Quick Start
This guide registers a plugin in the Developer Console, scaffolds a plugin server from the App Connect template, and installs the plugin for an account.
Prerequisites
- Node.js 20 or newer
- A RingCentral account for the Developer Console and App Connect extension, with App Connect admin rights for the install step
- A public tunnel for local testing, such as ngrok
1. Register a plugin profile
Open the Developer Console, create a plugin, and note its secret key from the plugin's Quick setup section. Configure the plugin's URLs later, once you have a tunnel URL.
2. Scaffold a plugin server
npx @app-connect/cli init my-plugin --template plugin
cd my-plugin
The generated project includes:
src/app.ts, which wires the routes App Connect expects a plugin server to exposesrc/plugins/syncPlugin.tsandsrc/plugins/asyncPlugin.ts, starter implementationssrc/handlers/license.tsandsrc/handlers/oauth.ts, optional license and OAuth handlerssrc/lib/pluginToken.ts, which issues and validates the plugin JWT.env.test, copied to.envby the CLI
3. Configure the secret key
Run the following inside the project and paste the plugin secret key from the Developer Console when prompted:
npx @app-connect/cli env
The CLI detects a plugin project and saves the value as PLUGIN_SERVER_SECRET_KEY in .env. The template ships a placeholder for this variable, which the CLI treats as not yet configured. To skip the prompt:
npx @app-connect/cli env --secret-key <your-plugin-secret-key>
4. Start the server and expose it
npm run dev
The plugin template listens on port 6067 by default. Expose it with a tunnel, for example ngrok http 6067, then update all URLs in the plugin settings in the Developer Console to the tunnel URL.
Note
The plugin dev script rebuilds and starts the server once. Restart it after changing code.
5. Install and test
- Open the App Connect extension and connect to a connector as an admin user.
- Open the Admin tab and install the plugin.
- Make or receive a test call and log it. The plugin runs according to its
supportedLogTypes.
See Registration flow for what happens during install, and Server endpoints for the request and response contracts.