Programmable Chat has been deprecated and is no longer supported. Instead, we'll be focusing on the next generation of chat: Twilio Conversations. Find out more about the EOL process here.
If you're starting a new project, please visit the Conversations Docs to begin. If you've already built on Programmable Chat, please visit our Migration Guide to learn about how to switch.
The Programmable Chat Permission model uses Roles
and Permissions
to enforce what Users and Members can do within a Service instance. These permissions are related to Channels
, Members
, and Messages
. Roles and their associated permissions can be edited and extended on a per Service instance basis to meet the needs of different use cases.
Table of Contents
Chat Roles are divided into two "Scopes," Service and Channel. These determine how the Role permissions are applied depending on the context.
Permissions are enforced at runtime based on the action being performed and whether the User/Member's Role has the required Permissions. If they do, the action is allowed and will be processed. If not, the action will be disallowed, and an error message will be returned to the requesting endpoint (usually a 403 Permission Denied error).
Note:
Chat Service instances are created with a default set of Roles and Permissions. You can modify and extend these Roles and their assigned Permissions via the REST API.
When a new Chat Service instance is created, the following default Roles are created with the assigned set of Permissions:
Role: Service Admin
Type:
deployment
Permissions:
Role: Service User (Default Service User Role)
Type:
deployment
Permissions:
Role: Channel Admin
Type:
channel
Permissions:
Role: Channel User (Default Channel Member Role)
Type:
channel
Permissions:
It is possible to manage Roles within a Service instance, create new ones, modify Permissions for a Role, and more via the Roles REST endpoint. The following roles and permissions management best practices will help you to setup needed roles for the newly created or invited users.
You can also create your own Service and Channel Roles if the defaults do not suit you. We recommend leaving the default roles untouched. To see the full list of permissions available please follow this link.
You can find more information on how to do this in our Programmable Chat Roles REST Resource
Note:
While it is possible to delete the default Roles, it is not advisable, as any Users and Members created before the delete will reference the Default Role SIDs. Instead, modify these roles and reuse them, adding new Roles as needed.
To add or remove permissions, first select the Chat Service which you would like to modify. Click the Chat heading in the left sidebar, then click Manage. You will then see the Services menu option, give it a click. Once on the "Chat Services" page select the name of the Chat service you want to edit.
Click Roles and Permissions in the side navigation menu and select the "deployment" role.
From here, you can add and remove permissions as needed.
From the page of the individual Chat service you'd like to modify, click Users and search for a specific user identity from your list of users, and click the Identity name once found.
You can now adjust the role for that user by selecting either "service user" or "service admin".
Next: Typing Indicator