Permission Model Consideration
Federation operates across different permission models. Rocket.Chat uses a role-based permission system, while Matrix relies on power levels to define user capabilities within rooms. Due to the lack of a direct mapping between these models, changes to roles and permissions in Rocket.Chat may not be consistently reflected in federated rooms. This can result in unexpected behavior in certain scenarios, particularly when permissions are dynamically updated. It is recommended to validate permission changes carefully when operating in federated environments.
Once Federation is enabled by a workspace administrator, users with the appropriate permissions can communicate and collaborate with users from other federated servers.
This includes:
direct messages
group direct messages
channels
Federated user address format
To invite a user from another federated server, you must use their full federated user ID as follows:
@username:server.domainInviting external users
Inviting external users follows the same process for DMs, group DMs, and channels. To invite an external user:
Click Create new and select Direct message or Channel.
Enter the user’s full federated ID:
@username:server.domainComplete room creation as usual.
For channels, simply enable Federated in Advanced settings when needed.
What happens after you send the invitation
Once the invitation is sent:
The chat opens immediately on your side.
A system message confirms that the conversation was created and the user was invited.
You can send messages right away, even before the invitation is accepted.
The invited user appears in the room with an invitation status indicator.
The invitation status is visible in the room’s contextual panel, making it easy to track what happens next.
When you invite an external user to a federated chat, the invitation progresses through one of the following states. Each state reflects how the remote user and server have responded.
Invitation state | What it means | What you can do |
|---|---|---|
Invited (Pending) | The invitation has been sent to the remote user’s home server, but the user has not yet responded. | You can send messages in the room (they will be delivered once the user joins) or revoke the invitation from the contextual panel. |
Accepted | The remote user accepted the invitation and joined the chat. | The conversation becomes an active federated room. Messages, typing indicators, and supported interactions work normally. |
Rejected | The remote user declined the invitation. No federated conversation was established. | You remain the only participant and can remove the room if it is no longer needed. |
If the invitation is rejected, the chat remains visible to you, but no further interaction is possible unless a new invitation is sent.
Revoke invitation
While an invitation is still pending, you can revoke it from the room’s contextual panel.
Revoking an invitation:
Cancels the pending request on the remote server.
Removes the invited user from the chat.
Leaves you as the sole participant in the conversation.
In federated channels, invitations are handled per user. Revoking or rejecting an invitation affects only that user and does not impact the channel itself or other participants.
Federated features
Read receipts
Read receipts in Matrix are best-effort because they are ephemeral, non-critical events exchanged between independent servers, without guaranteed delivery, retries, or global synchronization.
Federated rooms support cross-domain read receipts, allowing you to see when users from other servers have read your messages.
When enabled, you can:
View who has read a message by selecting Read receipts from the message menu.
See a list of users (including remote users) along with the time they read the message.
Track read positions directly in the conversation timeline.
Read receipts must be enabled by an administrator before they are available in federated rooms. See the Read Receipts guide for more details.
Ban a user from a room
Room owners and moderators can ban users to prevent them from accessing or interacting in a room.
To ban a user:
Open the room where the user is a member.
Click the Members icon in the room header and find the user in the member list.
Click the actions menu (⋮) next to the user.
Select Ban user from room.
Confirm the action.
What happens when a user is banned:
The user is immediately removed from the room.
The room disappears from the banned user’s room list.
The user can no longer send or receive messages in the room.
A system message is added to the room indicating the ban (and reason, if provided).
To view and manage banned users in a room:
Open the room and click the actions menu (⋮) in the header.
Select Banned Users.
Find the user in the list.
Click Unban to restore their access.
This list shows all users currently banned from the room, and allows authorized members to unban them when needed.
Important notes
Banned users cannot rejoin the room unless they are unbanned.
Any attempt to invite a banned user should be blocked.
Ban and unban actions are visible in the room for transparency.