Create a new release with new and updated Plugins
To roll out a new version of a plugin that is already active on your contact center, or to introduce a new plugin, retrieve the active Release and its Configuration, update the list of Plugin Versions, create a new Configuration, and create a new Release. This guide takes you through each step using the Plugins API.
Fetch the active Release to find the current Configuration SID.
1// Download the helper library from https://www.twilio.com/docs/node/install2const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";34// Find your Account SID at twilio.com/console5// Provision API Keys at twilio.com/console/runtime/api-keys6// and set the environment variables. See http://twil.io/secure7// For local testing, you can use your Account SID and Auth token8const accountSid = process.env.TWILIO_ACCOUNT_SID;9const apiKey = process.env.TWILIO_API_KEY;10const apiSecret = process.env.TWILIO_API_SECRET;11const client = twilio(apiKey, apiSecret, { accountSid: accountSid });1213async function fetchPluginRelease() {14const pluginRelease = await client.flexApi.v115.pluginReleases("Active")16.fetch();1718console.log(pluginRelease.sid);19}2021fetchPluginRelease();
Response
1{2"sid": "Active",3"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",4"configuration_sid": "FJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",5"date_created": "2020-01-10T20:00:00Z",6"url": "https://flex-api.twilio.com/v1/PluginService/Releases/FKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"7}
Read the plugins active on Flex by looking up the Configuration with the Configuration SID from the active Release.
1// Download the helper library from https://www.twilio.com/docs/node/install2const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";34// Find your Account SID at twilio.com/console5// Provision API Keys at twilio.com/console/runtime/api-keys6// and set the environment variables. See http://twil.io/secure7// For local testing, you can use your Account SID and Auth token8const accountSid = process.env.TWILIO_ACCOUNT_SID;9const apiKey = process.env.TWILIO_API_KEY;10const apiSecret = process.env.TWILIO_API_SECRET;11const client = twilio(apiKey, apiSecret, { accountSid: accountSid });1213async function fetchPluginConfiguration() {14const pluginConfiguration = await client.flexApi.v115.pluginConfigurations("FJXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")16.fetch();1718console.log(pluginConfiguration.sid);19}2021fetchPluginConfiguration();
Response
1{2"sid": "FJXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",3"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",4"name": "some name",5"description": "description",6"archived": false,7"date_created": "2020-01-10T20:00:00Z",8"url": "https://flex-api.twilio.com/v1/PluginService/Configurations/FJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",9"links": {10"plugins": "https://flex-api.twilio.com/v1/PluginService/Configurations/FJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Plugins"11}12}
1// Download the helper library from https://www.twilio.com/docs/node/install2const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";34// Find your Account SID at twilio.com/console5// Provision API Keys at twilio.com/console/runtime/api-keys6// and set the environment variables. See http://twil.io/secure7// For local testing, you can use your Account SID and Auth token8const accountSid = process.env.TWILIO_ACCOUNT_SID;9const apiKey = process.env.TWILIO_API_KEY;10const apiSecret = process.env.TWILIO_API_SECRET;11const client = twilio(apiKey, apiSecret, { accountSid: accountSid });1213async function listConfiguredPlugin() {14const plugins = await client.flexApi.v115.pluginConfigurations("FJ10000000000000000000000000000000")16.plugins.list({ limit: 20 });1718plugins.forEach((p) => console.log(p.accountSid));19}2021listConfiguredPlugin();
Response
1{2"plugins": [],3"meta": {4"page": 0,5"page_size": 50,6"first_page_url": "https://flex-api.twilio.com/v1/PluginService/Configurations/FJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Plugins?PageSize=50&Page=0",7"previous_page_url": null,8"url": "https://flex-api.twilio.com/v1/PluginService/Configurations/FJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Plugins?PageSize=50&Page=0",9"next_page_url": null,10"key": "plugins"11}12}
Create a new Configuration using the information from the old configuration. Add the new Plugin Version SID you want to roll out to your Flex account to the list of existing SIDs.
You could also update or remove an existing Plugin Version from the list.
1// Download the helper library from https://www.twilio.com/docs/node/install2const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";34// Find your Account SID at twilio.com/console5// Provision API Keys at twilio.com/console/runtime/api-keys6// and set the environment variables. See http://twil.io/secure7// For local testing, you can use your Account SID and Auth token8const accountSid = process.env.TWILIO_ACCOUNT_SID;9const apiKey = process.env.TWILIO_API_KEY;10const apiSecret = process.env.TWILIO_API_SECRET;11const client = twilio(apiKey, apiSecret, { accountSid: accountSid });1213async function createPluginConfiguration() {14const pluginConfiguration =15await client.flexApi.v1.pluginConfigurations.create({16description: "This is a new configuration",17name: "Miss Christine Morgan",18plugins: [19{20plugin_version: "FV00000000000000000000000000000000",21},22{23plugin_version: "FV10000000000000000000000000000001",24},25],26});2728console.log(pluginConfiguration.sid);29}3031createPluginConfiguration();
Response
1{2"sid": "FJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",3"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",4"name": "Miss Christine Morgan",5"description": "This is a new configuration",6"archived": false,7"date_created": "2020-01-10T20:00:00Z",8"url": "https://flex-api.twilio.com/v1/PluginService/Configurations/FJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",9"links": {10"plugins": "https://flex-api.twilio.com/v1/PluginService/Configurations/FJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Plugins"11}12}
Finally, you're ready to create a new Release.
1// Download the helper library from https://www.twilio.com/docs/node/install2const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";34// Find your Account SID at twilio.com/console5// Provision API Keys at twilio.com/console/runtime/api-keys6// and set the environment variables. See http://twil.io/secure7// For local testing, you can use your Account SID and Auth token8const accountSid = process.env.TWILIO_ACCOUNT_SID;9const apiKey = process.env.TWILIO_API_KEY;10const apiSecret = process.env.TWILIO_API_SECRET;11const client = twilio(apiKey, apiSecret, { accountSid: accountSid });1213async function createPluginRelease() {14const pluginRelease = await client.flexApi.v1.pluginReleases.create({15configurationId: "FJ10000000000000000000000000000001",16});1718console.log(pluginRelease.sid);19}2021createPluginRelease();
Response
1{2"sid": "FKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",3"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",4"configuration_sid": "FJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",5"date_created": "2020-01-10T20:00:00Z",6"url": "https://flex-api.twilio.com/v1/PluginService/Releases/FKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"7}
You've rolled out new changes to your contact center. Your updated Plugins appear on the Developer Setup Page in Flex.