This guide provides detailed instructions on how to install, set up, and use No-code Partner and Add-on Listings from Twilio Marketplace.
Installing a No-code Partner Listing makes it available to configure and use on the Listing publisher's platform. To install, follow these steps:
After installation, the Configure tab becomes selectable from the Listing details page. To access the Listing details, visit the Installed Modules page in Console and select the Listing.
The Configure tab details what next step you'll need to take with the Listing publisher. Select the button under the tab to complete the onboarding process on the publisher's platform.
Publishers of Add-on Listings establish their own prices and use the Twilio Billing system. Twilio keeps track of the usage of each Listing, and the charges are deducted from your Account.
Installing an Add-on Listing makes it available to configure and use on your Twilio Account. To install, follow these steps:
After installation, the Configure tab becomes selectable from the Listing details page. To access the Listing details, visit the Installed Modules page in Console and select the Listing.
In the Configure tab, you can set up the Listing for integration with your Twilio products. This involves selecting the appropriate usage points and providing any additional configuration details required by the Listing. The table below details some of the configuration fields you can expect to see:
Configuration field | Description | User Configurable? |
---|---|---|
Installed Add-on SID | Unique identifier for the Listing instance. Used for debugging, billing queries, and support requests when communicating with the Listing publisher. Example: XBxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx | No |
Unique name | A human-readable unique identifier used to invoke specific Listings and to consume their results. Example: twilio_caller_identity | Yes (suffix only) |
Use in | A list of Twilio product usage points that this Listing supports and is enabled for | Yes |
Configuration parameters | Listing specific configuration parameters | Yes |
The Configure tab also includes an Add Another Instance button. This feature allows you to add more instances of the same Add-on Listing, each with different configuration parameters. This can be useful in scenarios where you need different configurations of the same Listing, such as text analysis in various languages.
For more information about the supported Twilio Products and configuration parameters of a specific Listing, please refer to the Documentation tab on its Listing details page.
Once you've installed and set up your Listing, its invocation depends on the Twilio product you're integrating it with. The following table outlines how the usage of an Add-on Listing is triggered based on the specific Twilio product its being used in:
Twilio product | How to invoke Listing |
---|---|
Lookup | Use the AddOns parameter to specify the unique name of the Listing to be invoked. Use the format AddOns.<unique_name>.<parameter_name> to specify any additional run-time data required by the Listing. |
Programmable SMS | All installed and configured Listings are automatically invoked for each incoming SMS. Add-on Listings are currently not supported for outbound SMS. |
Programmable Voice - Calls | All installed and configured Listings are automatically invoked for each incoming call. Add-on Listings are currently not supported for outbound calls. |
Programmable Voice - Recordings | All installed and configured Listings are automatically invoked for each Recording. |
The results from an Add-on Listing are delivered as a JSON object through the API of the Twilio product that the Listing is integrated with.
Twilio product | How to view Listing results | Synchronous results? |
---|---|---|
Lookup | Results are in the add_ons parameter in the API response. | Yes |
Programmable SMS | Results are in the AddOns parameter of the Incoming SMS webhook. POST callbacks only due to URL length constraints in GET callbacks. | Yes |
Programmable Voice - Calls | Results are in the AddOns parameter of the Incoming Voice TwiML callback. POST callbacks only due to URL length constraints in GET callbacks. | Yes |
Programmable Voice - Recordings | Results availability is in the AddOns parameter of the callback to the URL specified in the Listing's configuration parameters. | No |
Listings that return results synchronously have the following development considerations:
Synchronous results are returned immediately as a JSON object by the relevant Twilio API.
1{2"status": "successful",3"message": null,4"code": null,5"results": {6"provider1_phone_reputation": {7"request_sid": "XRc1479687aadf64c62e6ab2b6e0077a1a",8"status": "successful",9"message": null,10"code": null,11"result": {12...13}14},15"provider6_sentiment": {16"request_sid": "XRb32a3b72dde3bb78af4d34416d4f14dc",17"status": "successful",18"message": null,19"code": null,20"result": {21...22}23}24}25}
The following tables detail the JSON object structure of the synchronous results response.
Key | Description |
---|---|
status | successful or fail . |
message | Only present if status is fail , otherwise null . A descriptive message that explains what went wrong. |
code | Only present if status is fail , otherwise null . Marketplace error codes are in the 61xxx range, see Error and Warning Dictionary for details on specific codes. |
results | A JSON object with the Listing's unique name as the key, and the result for that Listing instance as the value. See the results object details in the table below. |
Key | Description |
---|---|
request_sid | The unique identifier for the request made with the Listing. |
status | successful or fail . |
message | Only present if status is fail , otherwise null . A descriptive message that explains what went wrong. |
code | Only present if status is fail , otherwise null . Marketplace error codes are in the 61xxx range, see Error and Warning Dictionary for details on specific codes. |
result | An Listing instance's results as a JSON object. For details about the contents of this field, refer to the Documentation tab of the Add-on Listing's details page in Console |
Add-ons that return results asynchronously have the following development considerations:
When an Add-on Listing's results are ready, they are sent as a JSON object to the callback URL that was specified during the Listing's setup. The example below illustrates the structure of the nested JSON object that is included within the AddOns
key of the callback.
1{2"status": "successful",3"message": null,4"code": null,5"results": {6"speech_to_text_addon": {7"request_sid": "XR7b57f17eeae56053f034a8a819577e89",8"status": "successful",9"message": null,10"code": null,11"payload": [12{13"content_type":"application/json",14"url":"https://api.twilio.com/2010-04-01/Accounts/AC05bxxx/Recordings/RE557cxxx/AddOnResults/XR7b57f17eeae56053f034a8a819577e89/Payloads/XH000001/Data"15},16{17"content_type":"audio/wav",18"url":"https://api.twilio.com/2010-04-01/Accounts/AC05bxxx/Recordings/RE557cxxx/AddOnResults/XR7b57f17eeae56053f034a8a819577e89/Payloads/XH000002/Data"19}20],21"links": {22"add_on_result": "https://api.twilio.com/2010-04-01/Accounts/AC05bxxx/Recordings/RE557cxxx/AddOnResults/XR7b57f17eeae56053f034a8a819577e89",23"payloads": "https://api.twilio.com/2010-04-01/Accounts/AC05bxxx/Recordings/RE557cxxx/AddOnResults/XR7b57f17eeae56053f034a8a819577e89/Payloads",24"recording": "https://api.twilio.com/2010-04-01/Accounts/AC05bxxx/Recordings/RE557cxxx"25}26}27}28}
The following tables detail the JSON object structure of the asynchronous results response.
Key | Description |
---|---|
status | successful or fail . |
message | Only present if status is fail , otherwise null . A descriptive message that explains what went wrong. |
code | Only present if status is fail , otherwise null . Marketplace error codes are in the 61xxx range, see Error and Warning Dictionary for details on specific codes. |
results | A JSON object with the Listing's unique name as the key, and the results for that instance as the value. See the results object details in the table below. |
Key | Description |
---|---|
request_sid | The unique identifier for the request made with the Listing. |
status | successful or fail . |
message | Only present if status is fail , otherwise null . A descriptive message that explains what went wrong. |
code | Only present if status is fail , otherwise null . Marketplace error codes are in the 61xxx range, see Error and Warning Dictionary for details on specific codes. |
payload | An array of objects containing URLs for the actual results. See the payload object details in the table below. |
links | An object containing URLs for reference media, e.g. recordings, that were used to generate the results. See the links object details in the table below. |
Key | Description |
---|---|
content_type | The MIME type of the content returned by the Listing, such as application/json or audio/wav . For details about the returned content, refer to the Documentation tab of the Add-on Listing's details page in Console. |
url | A URL to access the payload content using the Add-on Results Payload Data subresource. Perform a GET request using your authenticated Twilio credentials to retrieve this data. |
Key | Description |
---|---|
recording | The URL of the Recording Instance resource for the recording that generated the result. |
add_on_result | The URL of the Listing instance's result metadata. See the Add-on Results subresource for details. |
payloads | The URL of the Listing instance's result payload metadata. See the Add-on Results Payload subresource for details. |