Professional Documents
Culture Documents
User Guides
End-user Training Guides
As a user, this guide will help you optimize your BANKTEXT workspace. It onboards you on how to use
various features of BANKTEXT.
Access your Workspace: Connect to your BANKTEXT workspace via the web, or mobile.
User Panel: View and modify your account details, and update your workspace preference.
Security Bundle: Explore security-focused features that provide enhanced security for your workspace.
Keyboard Shortcuts: Shortcut keys that help to optimize your workspace experience.
Access your workspace
Enter the following URL in the browser's address bar and press ENTER:
https://m.banktext-app.com
Next, the registration page appears. If you have already registered, enter your credentials to log in or
click Register a new account to become a member of that workspace
Open the app. If this is your first time using the mobile app, the workspace connect screen appears
Click Join a workspace
Registering an account
To access BANKTEXT, you can register an account manually or use one of the many supported OAuth
services, after successfully registering, you can log in to the workspace.
Manual Registration
Name
Email
Password
Reason to join
BANKTEXT will ask you to verify your email. You can do this by simply clicking on the link sent to the
registered email.
OAuth Registration
After you have successfully registered your account, you can choose your username. Your username is your
unique identifier for others to use to direct message or mention you.
Access the user panel by clicking your avatar. The User Panel is divided into the following sections:
Name and Current Status: Displays the user name and the current status selected by the user.
Status: Displays the status options available for you to choose from. Online, away, busy, offline, or
meeting. You can also set a custom status or choose from custom status set by your workspace
administrator.
Theme: Set the theme of your workspace.
My Account and Logout: Manage your BANKTEXT account settings through the browser, desktop,
and mobile apps.
The Custom Status option allows you to customize your status by adding a custom status
message.
My Account
Manage your BANKTEXT account settings through the browser, desktop, and mobile
apps.
Account settings update on a single server do not change settings on a different server.
Preference
In the Preferences, you can configure and set your preferences. To access this
menu,
Localization
Language: Set the language to use for the BANKTEXT user interface.
User Presence
Enable Auto-Away: Enable the auto-away functionality, which changes the status to away after an idle
period.
Idle time limit: Set the time in seconds it waits when status should change to away.
Notifications
Desktop Notifications: Click the Test Desktop Notification to see how notifications will be displayed
on Desktop.
Require Interaction to Dismiss Desktop Notification: When enabled, notifications must be attended
to before they can be dismissed. i.e, they will remain in the notification panel until they are visited.
Show Desktop Notifications For: Allows you select the type of messages for which the notifications
have to be triggered (for both browser and desktop app notifications).
Send Push Notifications For: Allows you select on what type of messages you wish to receive push
notifications for.
Offline Email Notifications: Allows you set what type of message notifications you want to receive by
email.
Messages
Unread Tray Icon Alert: Toggles if the tray icon highlights when you have unread messages.
Show thread messages in the main thread: When enabled, threaded messages will be displayed
directly in the room.
Time Format: Set the time format of your account (12 hour clock or 24 hour clock).
Use Emojis: Enable this to allow the use of emojis.
Convert ASCII to Emoji: Toggles emoji conversion when inputting ASCII characters.
Auto Load Images: Enable to autoload images and avoid clicking on them to preview.
Save Mobile Bandwidth: Saves mobile data when the app is open. Commonly known as Data Saver.
Collapse embedded media by default: Toggles if messages with files collapse by default.
Hide usernames: Hides usernames on the channels, showing only the users avatars.
Hide roles: Hides role tags from users.
Hide right sidebar with a click: Automatically closes the right sidebar when clicked.
Display Avatars: Hides avatars on the channels, showing only the users' usernames.
Enter key behavior: Lets you configure what the enter key does.
Normal mode (send with Enter)
Highlight words: Specify a comma-separated list of words or phrases to trigger notifications for when
mentioned by anyone in public or private channels of which you are a member.
Sound
New Room Notification: Select the sound to play when added to a new room.
New Message Notification: Select the sound to play for every new message.
Mute Focused Conversations: When enabled, rooms that are opened and active will not create
notifications.
My Data
Download your data as HTML or export it as JSON. Whichever option you choose, the request is processed
in a queue, and a link to the exported file sent to your email.
Profile
You can verify, edit and update your profile information in the user panel.
Status Message: Lets you specify a status update or what you are doing, along with a color.
Nickname: Set your nickname.
Bio: A short profile description.
Email: Your email address.
New Password: Update your acccount password.
Confirm your Password: Re-type your new password for confirmation.
Resend Email Verification: Click to request a link for email verification.
Logout From Other Logged In Locations: Click to sign-out of all other devices but the current one.
Security
You can enable Two Factor Authentication (2FA) for your account to enhance your account security. There
are two options for 2FA in BANKTEXT :
Two-factor authentication via TOTP : It requires a key code from an authenticator app.
Two-factor authentication via Email : It requies a key code that was sent to your email address.
Use an authentication app, such as Google Authenticator, Authy, or Duo, to scan the QR code. Scanning
the QR code displays a six-digit code. Enter the code into BANKTEXT.
Copy your backup code somewhere safe if you need to access it in the future without the authentication
app. Click Send to finish.
If you can't find the 2FA setting, please contact your workspace administrator. See a detailed
guide on 2FA here.
E2E Encryption
You can now create encrypted private groups and direct messages. You may also update existing private
groups or DMs to encrypted. It is end-to-end encryption, so the key to encode/decode your messages isn't
saved on the server. For that reason, you need to store your password somewhere safe. You will be required
to enter it on other devices you wish to use e2e encryption.
From the Access Token dashboard, enter the token name and hit Add.
You can configure whether or not to ignore 2FA when using it by checking the Ignore Two Factor
Authentication box.
Enter your password or 2FA code to Verify.
Your token is generated succesfully. A User Id and Token is displayed.
Remember to store the user Id and Token in a safe place since you can only view it once.
From the Personal Access Token list, click the Delete icon against the token you choose to delete.
From the Personal Access Token list, click the Regenerate icon against the token you choose to
regenerate.
Manage Devices
The Manage Devices menu lets you monitor and log out of your devices remotely. You can see a list of all
the devices you’ve used to log into your Rocket. Chat workspace here. Click on any of the devices to view
the client, device operating system, your last login activity, and device id.
Navigate to Avatar Menu > My Account > Manage Devices. You will see a list of all devices linked to
your workspace.
Choose the device you want to disconnect and then click Logout. Your device will be logged out from
the workspace and the current session will be ended.
You can log back into your account whenever you need it.
Rooms provide different methods of conversations in your workspace. They allow a more structured and
purpose-oriented workflow.
Discussions: Allows a separate focused conversation around larger topics in a team or channel.
Direct Messages: Allows one-off conversations that do not require a channel or team.
Mentions
When someone mentions you with @username , @all or @here , a symbol or a number will appear
alongside the channel name. If someone mentions @all or @here a number will show up showing the
number of times the mention is specific to you.
Channels
Channels are chat rooms with useful features designed to increase communication and collaboration. For
example, you can have a dedicated channel for the designers in your workspace to discuss design-related
topics.
Type Of Channels
Teams can be made private or public. The list of channels is displayed on the sidebar of your workspace.
Public Channels are listed first, followed by private Channels, in alphabetical order.
Public Channels
Public Channels are open for all members of a BANKTEXT workspace to join, and anything posted is
searchable by all members. They are identified by:
Channels make it easy to find out what's going on with your team. New members can join a channel and
read all the information previously shared by other users. Public conversations help you build your
organization's knowledge base with minimal effort. For example, create a channel for a company
department or to discuss a specific programming language.
Users mentioned in a thread inside a public channel are automatically added to that channel.
Private Channels
Private Channels are closed channels. They are only visible only to their members. Use private channels
for sensitive, confidential subjects that are not open to all members. They are identified by:
Private channels are joined through invitation only. The administrator sets the permissions that determine
who can invite others to the channel. Only administrators, room owners, and moderators can invite others to
private rooms by default.
Read-Only Channels
Only authorized users (users with write permissions) can send messages in Read-Only channels. All other
users can react to messages on this channel. Read-Only channels are most suitable for announcements
and voting.
Broadcast Channels
Like read-only channels, broadcast channels allow authorized users with the appropriate permissions to
write new messages while other users can reply to existing messages.
All messages have a reply button that redirects you to the sender's direct message (DM), replying to the
message as a quote.
Users without permission won't be able to react to messages.
Users without permission (the same one to post on read-only channels) inside this channel won't be
able to see each other in the user list.
Encrypted Channels
Encrypted channels have end-to-end encryption enabled across all messages exchanged by the Channel
members. To learn more, see End to End Encryption.
Channel Information
The room information screen gives detailed information about the current channel. These details include:
Channel Name: The channel's name, how users see the title and find the channel via search.
Topic: The topic is displayed next to the title on the channel header. It is a great way to provide more
channel information.
Announcement: Announcements are highlighted in a bar under the channel header.
Description: The description of the channel.
Private: Tells whether a channel is private or public.
Read Only: Tells whether a channel is read-only.
Archived: Tells if a channel is archived. Nobody can post messages on an archived channel, and a
channel search will not find that channel.
Password: Tells whether a channel has a password and lets you set the password. If a channel has a
password, users need to enter the password to become a channel member.
If a Retention Policy is active on this channel, a red warning box appears stating when messages
or files are deleted.
On the BANKTEXT menu bar, click the Create New icon, then select Channel.
Give the channel a name and choose if the channel is public or private.
Update your preferred privacy and encryption settings for the channel.
Add members to the channel. Then, click Create.
Channels have restrictions in their naming. To update the regex responsible for channel name
validation, navigate to Administration > Settings > General > UTF8.
Join a Channel
You can join a channel through a search, invites, or mentions. Use the search box in the menu bar to search
for channels and users. Alternatively, you can use Ctrl/Cmd + k to access the search bar quickly.
Users and channels are displayed in the search results. However, private channels are not displayed. If you
select a public channel that you are not a member of, click the Join button to join that channel.
At the top of the channel page, click the star icon next to the channel name to mark a channel as
Favorite.
To remove the channel from Favorites, click the star icon again.
Click the Room Information icon from the menu bar to view the Channel information. (link channel
info).
Click Edit to edit the Channel information.
Update the Channel information.
Click Save.
Password Access
Secure a channel by setting up password access. It means users can only join the channel with a valid
password.
Select the BANKTEXT action alerts to hide. For example—"Hide User Joined messages" will hide the alert
that displays in the chat whenever a new user joins the channel.
To Hide or Leave a channel, click the three dots icon next to the delete button on the Channel
Information page.
Select Hide or Leave from the dropdown options.
Alternatively, enter the command /part or /leave in the message input box to leave that channel.
A channel owner can not leave a channel until they set someone else as the owner of that
channel.
Inclusive: Deletes all messages that were sent at the specified start and end times you have specified
in the Newer than and Older than fields.
Channel Notifications
You can update the notification preference for a channel you belong to. By default, a channel notifies you
whenever someone mentions you or uses the @all mention.
Click the three dots icon at the menu bar of the channel.
Select Notification Preferences.
Email: Set whether an email is sent whenever someone mentions you or posts a message.
Manage Channel Members
Click the Members icon at the top-right menu of the channel screen. At first, the list only shows currently
active users. Select All from the dropdown option beside the search bar to see all users.
Select a user to view their User Info. The user preview screen shows their name, username, any role
tags they might have, and their current timezone.
You can send a direct message or call the user from the user info.
Click the three dots icon to see other user actions like ignore, mute user, or set roles ( as moderator,
leader, or owner).
You can use the Add Users option to add users already in your workspace.
At the bottom of the channel members page, click Invite Link and copy the generated link to share with your
invitees.
Edit Invite Link
Depending on how long you want an invite link to last, you can edit the invite link periodically.
Select Expiration (Days) from the drop-down, select Max number of uses, and click Generate New
Link.
This link will ask the invitee to sign up if they are outside your BANKTEXT workspace before
granting them access to the channel.
To delete an invite link, see Delete an Invite Record via Admin Panel. This feature comes in handy when
you have an invite link with an Expiration date: Never. To avoid abuse, you can revoke it by deleting the
invite record.
You must have the Create Invite Link permission granted for your role to use the permission. It is
turned ON for the Admin, Owner, and Moderator roles. However, you can always ask the
workspace administrator to update it to suit your needs.
In the Channel members screen, search and select the user to view their User Info.
Click the three dots icon, then select Remove from room.
Channel LiveStream
The Streaming tab is displayed on the Channel Options menu if the Youtube Livestream feature is enabled.
Channel owners and workspace administrators can start streaming or add another stream to the channel by
specifying a URL through the Streaming tab.
You might only be able to link live broadcasts from YouTube, depending on the workspace
settings. When in doubt, always ask the server administrator.
Start Streaming
To start a stream,
Login with a Google account. Note that streaming must be activated through your Youtube account.
See Broadcast Livestream and Live Stream on Youtube to learn more about Channel
LiveStream.
To add a different Livestream, get the URL for the stream, enter it into the Livestream source field, and
hit save.
Add a message whenever the stream is unavailable in the Livestream not available message field.
Use the Enable audio-only button to add a stream that only contains audio.
BANKTEXT search supports basic search commands, including the use of regular expressions. Regular
expressions provide flexibility to search chat entries in any language, even those traditionally challenging,
like "CJK" languages (Chinese, Japanese, Korean).
from:user.name - To search for messages created by a specific user. The username entered must
be without spaces (i.e., "john.doe" and not "John Doe."). Search for any mentions of a user by
searching for their username.
Select the Options icon of a message in the search result and click Jump to message to take you directly
to the message.
Wikipedia
Regex 101
Regexr
Regex Info
Teams
A team is a digital workspace where teammates can collaborate and work together
towards a common goal.
A Team can have multiple channels. In BANKTEXT, Team is a digital workspace that allows you to manage
multiple users simultaneously, making it easier for you to collaborate with teammates. For example, you
have a team in your workspace for all core members that contains a list of channels you want them to belong
to. If you add a new core member to that team, they have access to all the channels in that team. There will
be no need to add them to those channels individually.
Teams are available to both community and enterprise clients. They are identified by:
Teams can be made private so that only invited members are allowed to join or public so that all
BANKTEXT users can see them. Each Team may consist of channels, which may also be either public or
private.
Read-Only Teams
Only authorized users (users with write permissions) can send messages in read-only teams. All other users
can react to messages on this channel.
Broadcast Teams
Like read-only teams, broadcast teams allow only authorized users with the appropriate permissions to write
new messages, while other users can reply to existing messages.
All messages have a reply button that redirects you to the sender's direct message (DM), replying to the
message as a quote.
The team cannot be converted to a read-only again.
Encrypted Teams
Encrypted teams have end-to-end encryption enabled across all messages exchanged by the Team
members.
To learn more, see Teams: Efficiently Manage Your Remote Team on BANKTEXT.
Create a new Team
Edit a Team
On the BANKTEXT menu bar, click the Create New icon, then select Team.
Give the team a name.
Update your preferred privacy and encryption settings for the team.
Add members to the team. Then, click Create.
A team name must not include space or any special character except dash (-) and underscore(_).
At the top of the team screen, click the star icon next to the team name to mark that team as Favorite.
To remove a team from Favorites, click the star icon again.
Edit a Team
From the top-right menu, Click Team Information icon to view Team information.
Click Edit to edit the Team information.
Update the Team information.
Click Save.
Password Access
Secure a team by setting up password access. It means users can only join the team with a valid password.
Select the BANKTEXT action alerts to hide. For example—"Hide User Joined messages" will hide the alert
that shows up in the chat whenever a new user joins the team.
Allow Reacting
Select the options to allow authorized team members to react to messages in the team.
The delete and reset option is also available when editing a Team.
To Hide or Leave a team, click the three dots icon next to the delete button in the Team Information
page.
Select Hide or Leave from the dropdown options.
To unhide a team, you may search for it in your BANKTEXT workspace.
When leaving a team, you have the option to decide if you want to continue in the Team channels
or not.
Delete A Team
Once you delete a team, the associated chat content and configurations will also be deleted. You also have
the option to keep or delete team channels. If you delete a team and decide to keep the channels, those will
go to the workspace. A team can only be deleted by the team owner.
Click the Team Information icon, then click Delete next to Edit.
Archive A Team
When a team is archived, it is converted to read-only and is no longer open to any new activity. However, the
message history is still accessible. A team can only be archived by the team owner.
From the top-right menu, Click Team Information icon to view Team information.
Click Edit to edit the Team information.
Toggle on the Archive option.
Team members must have either one of these roles: Owner, Leader, Moderator, or User. Each team
member's permission members will depend on their role. The team owner can manage all the team
members and assign any of these roles to them.
Click the Team Members icon at the top-right menu of the team screen.
Select a user to view their User Info.
You can send a direct message or call the user from the user info.
Click the three dots icon to see other user actions like ignore, mute user, or set roles ( as moderator,
leader, or owner).
At the bottom of the team members page, click Invite Link and copy the generated link to send to whomever
you invite.
Depending on how long you want an invite link to last, you can edit the invite link periodically.
Select Expiration (Days) from the drop-down, select Max number of uses, and click Generate New
Link.
To delete an invite link, see Delete an Invite Record via Admin Panel. This feature comes in handy when
you have an invite link with an Expiration date: Never. To avoid abuse, you can revoke it by deleting the
invite record.
Manually Adding Users
In the Team members screen, search and select the user to view their User Info.
Click the three dots icon, then select Remove from team.
Teams may have their own channels, but not all channels belong to a team.
Teams can have both public channels and private channels.
Teams can have Auto-join channels where members are automatically added to, upon joining the team.
It is possible to add all team members to a channel
It’s possible to add users outside the team to the team’s channels
To see the list of channels in a Team, click the Team Channels icon at the top-right side of the team
home page.
Click the Team Channels icon at the top-right side of the team home page.
Select Create New at the bottom of the Team Channels page.
Name the channel, add a topic, set it as private/public, and complete other basic channel settings.
Finally, add members from the drop-down and click Create.
When adding a channel to a team, the team owner gains rights over the channel (e.g., The team owner can
delete the channel).
Click the Team Channels icon at the top-right side of the team home page.
Click Add Existing at the bottom of the Team Channels page.
Search and select the channels you'll like to add to the team.
Click Add.
For instance, you can use Auto-join to quickly include new members joining the company to specific
onboarding channels. You could set Auto-join to automatically include team members in company-related
channels, such as channels meant to share updates and company news. You can mark a channel Auto-join
for members to join them automatically once they join a team.
Click the Team Channels icon to view the list of channels in the team.
Select the three dots icon beside the channel name.
Mark the Auto-join checkbox.
If the channel were a public channel inside a private team, the channel would become public in the
workspace after removal from the team.
Click the Team Channels icon to view the list of channels in the team.
Select the three dots icon beside the channel name.
Then, select Remove from Team.
Click the Team Channels icon to view the list of channels in the team.
Select the three dots icon beside the channel name.
Then, select Remove from Team.
A channel owner can transform an existing channel into a team anytime. The channel must belong to the
workspace rather than already in a team. Otherwise, the option to transform into a team is not available.
A private channel converts to a private team, and a public channel converts to a public team.
This decision can't be reversed! Therefore, please exercise extreme caution while converting a
channel into a team.
Click the Room Information icon at the top-right side of the channel home page.
Click the three dots icon next to Delete, then select Convert to Team
Teams Enterprise Edition
The Enterprise edition brings all functionalities available in Community Edition and additionally the ones
listed below:
Mention teams
With Teams, you don’t need to remember everyone’s name to communicate with a team quickly. Just
mention a Team — @engineers, for instance — and all members will get notified instantly.
AD / LDAP Sync
Using Teams is a piece of cake for IT teams that have already mapped their organization’s teams through
Active Directory Groups or Keycloak. The feature connects BANKTEXT to your company’s infrastructure at
ease, so whenever you update a department or user information, BANKTEXT will receive those updates in
real-time too.
It is particularly beneficial if you manage large teams, constantly creating or deactivating members.
The feature ensures that as you update your workgroups and new members are added or deleted,
BANKTEXT’s teams are automatically aligned with it.
Discussions
BANKTEXT discussions allow you to have a separate conversation about larger topics in a team or
channel. Use discussions to address specific topics and their related conversations. They are displayed
under the Discussions section of the sidebar. They are identified by .
For example, you have an Engineering-Team in your workspace and created a channel under that team
called Website-Development-Channel. Let's break down the conversations about each feature of the
website into discussions. Now, you can have a Website-Landing-Page discussion where all the
conversations about the landing page occur.
Discussion Information
The room information screen gives detailed information about the current discussion. These details include:
Name: The name of the discussion, how users see the title and find the discussion via search.
Description: The description of the discussion.
Read Only: Tells whether a discussion is read-only and toggles the read-only status on the discussion.
In read-only discussions, only people with admin permissions can post messages.
Archived: Enable to archive a discussion. Nobody can post messages in an archived discussion, and
searching will not find the discussion.
Password: Tells whether a discussion is protected with a password. The password is required before
joining the discussion.
Create a new Discussion
On the BANKTEXT menu bar, click the Create New icon, then select Discussion.
Select the parent team or channel.
Fill in the discussion name and message, set the encryption, and invite members.
Then, click Create.
When a discussion is created, anyone from that channel or team can join the discussion.
At the top of the discussion screen, click the star icon next to the discussion name to mark that
discussion as Favorite.
To remove a discussion from Favorites, click the star icon again.
Edit A Discussion
To edit a discussion,
Click the Room Information icon from the top-right menu to view Discussion Information.
Click Edit to edit the Room information.
Update the required details.
Click Save.
Pruned messages and files are deleted forever and cannot be recovered. You are advised to use
this feature with extra caution.
Inclusive: Deletes all messages that were sent at the specified start and end times you have specified
in the Newer than and Older than fields.
Discussion Notifications
You can update the notification preference for a discussion you belong to. By default, a discussion notifies
you whenever someone mentions you or uses the @all mention.
Mute @all and @here mentions: When enabled, the notifications will not be received for @ll and
@here mentions.
Audio: Select whether the discussion will play a sound whenever someone mentions you or post a
message on the discussion. The sound can also be customized.
Desktop: Controls notification behavior when using any desktop app or browser. Select the type of
messages you want to receive desktop alerts for.
Mobile: Controls push notification behavior when using any mobile app. Select the type of messages
you want to receive push notifications for.
Email: Set whether an email is sent whenever someone mentions you or posts a message. Select the
type of messages you want to receive email alerts for.
Search Messages in Discussion
BANKTEXT search supports basic search commands, including the use of regular expressions. Regular
expressions provide flexibility to search chat entries in any language, even those traditionally challenging,
like "CJK" languages (Chinese, Japanese, Korean).
from:user.name - To search for messages created by a specific user. The username entered must
be the format without spaces (i.e., "john.doe" and not "John Doe.") Search for any mentions of a user by
searching for their username.
Click the Members icon at the top-right menu of the discussion screen. At first, the list only shows
currently active users. Select All from the dropdown option beside the search bar to see all users.
Select a user to view their User Info. The user preview screen shows their name, username, any role
tags they might have, and their current timezone.
You can send a direct message or call the user from the user info.
Click the three dots icon to see other user actions like ignore, mute user, or set roles ( as moderator,
leader, or owner).
You can use the Add Users option to add users who are already in your workspace.
At the bottom of the Discussion members tab, click Invite Link and copy the generated link to share with
your invitees.
Edit Invite Link
Depending on how long you want an invite link to last, you can edit the invite link periodically.
Select Expiration (Days) from the drop-down, select Max number of uses and click Generate New
Link.
This link will ask the invitee to sign up if they are outside your BANKTEXT workspace before
granting them access to the discussion.
To delete an invite link, see Delete an Invite Record via Admin Panel. This feature comes in handy when
you have an invite link with an Expiration date: Never. To avoid abuse, you can revoke it by deleting the
invite record.
You must have the Create Invite Link permission granted for your role to use the permission. It is
turned ON for the Admin, Owner, and Moderator roles. However, you can always ask the
workspace administrator to update it to suit your needs.
Direct Messages
One on one or one to many conversation
In BANKTEXT, you can have one-on-one conversations or one-to-many conversations with users in your
workspace. They are called Direct Messages(DMs). Your most recent DMs are default listed under the
Direct Messages section in your BANKTEXT sidebar. They are identified by .
Direct messages (DMs) are private one-on-one conversations between members of your workspace. You
can create a direct message(DM) with another user on the same workspace (or a different workspace,
thanks to BANKTEXT Federation) to communicate and share files privately. It exists between just two users,
and no other user can join.
Direct Messages Between Multiple Users allows you to chat with multiple users inside a DM. You can
create direct message rooms between several users to exchange messages and files. Unlike private
channels, you do not need to specify the name, topic, or if the room is read-only. It works exactly like a 1:1
DM, the only difference is that multiple users are involved.
Create a new Direct Message
On the BANKTEXT menu bar, click the Create New icon, then select Direct Message.
Select the user you want to start a DM with. Then, click Create.
A new direct message is opened with the user, and you can now communicate privately.
You can open a 1:1 DM with a user if you are in the same room as them by following these steps:
Click the Members icon at the top-right menu of the room screen. At first, the list only shows currently
active users. Select All from the dropdown option beside the search bar to see all users.
Select the user you want to start a DM with. Click on the Direct Message button below their avatar, and
a direct message is opened for you and that user.
On the BANKTEXT menu bar, click the Create New icon, then select Direct Message.
Select the users you want to start a DM with. Then, click Create.
A new direct message is opened with the users, and you can now communicate with all of them in a DM.
You can not ignore, block, mute, or remove a user for multi-user DMs. Although, you can start a
call or start a 1:1 DM with them.
Once a DM is created, the membership can't be updated. So, you can't add or remove members to the
DM.
No one is the owner, unlike channels.
The DM can not be deleted. You can only hide the conversation.
To mark a DM as favorite,
At the top of the DM screen, click the star icon next to the DM header to mark it as Favorite.
To remove the DM from Favorites, click the star icon again.
Direct Message Actions
From the menu bar of your DM screen, you can view a list of discussions, threads, files exchanged, and
pinned messages. You can also search for messages using the basic search commands.
Click the three-dot icon when you hover over an existing message in the chat.
Click Start a Discussion.
Click on the discussion icon at the top right menu of the opened direct message.
When opened, a list of all the discussions in that direct message room is seen.
Click the three-dot icon when you hover over an existing message in the chat.
Select Reply in Threads.
Click on the Threads icon at the top right menu of the opened direct message.
When opened, a list of all the threads in that direct message room is seen.
From a DM, Click the User Info of the member you want to block.
Then, click on Block.
Blocked users will not be able to send you direct messages unless they are unblocked.
Turn ON: When set to true, enables all notification alerts for the DMs.
Mute @all and @here mentions: When enabled, the notifications will not be received for @ll and
@here mentions.
Audio: Select whether the DM will play a sound whenever someone mentions you or send a new
message. The sound can also be customized.
Desktop: Controls notification behavior when using any desktop app or browser. Select the type of
messages you want to receive desktop alerts for.
Mobile: Controls push notification behavior when using any mobile app. Select the type of messages
you want to receive push notifications for.
Email: Set whether an email is sent whenever someone mentions you or posts a message. Select the
type of messages you want to receive email alerts for.
Pruned messages and files are deleted forever and cannot be recovered. You are advised to use
this feature with extra caution.
Only remove the attached files, keep messages: Delete files but not the messages.
To export messages,
Click on the three-dot icon of the DM menu bar and select Export Messages.
Select the export method and update the required fields. Then, click Export.
Method: A dropdown to select what method the export should be done. Select Send via Email.
To Users: Select the users to send the export email.
To additional emails: Add any additional email to send the export mail.
Method: A dropdown to select what method the export should be done. Select Export as File.
From: The start date of the export,
To: The last date of the export.
Output Format: A dropdown to select between html and JSON file format.
When exporting via email, you need to select the messages to be exported. However, when
exporting as a file, you only need to specify start and end export dates.
Click the three-dot icon when you hover over the message. Then, select Star.
To un-star a message,
Click the three-dot icon when you hover over the message. Then, select Remove Star.
Click on the three-dot icon of the DM menu bar and select Starred Messages. A list of all stared
messages are displayed.
Threads
Threads help to organize conversations and enable users to discuss topics without disorganizing a room.
They improve the ability to process room content, find, follow, and resume conversations more efficiently,
keeping threaded discussions focused. Threads are a series of replies or follow-up conversations under any
message in a Team, Channels, Discussion, or Direct Message. They are identified by:
To expand a thread,
To collapse a thread,
Following a Thread
You can follow and unfollow threads to get notifications on any messages sent under that thread. By default,
you automatically follow any thread you belong to.
To create a thread,
Type your reply. Check the Also send to channel box below your message if you want to send your
response back to the channel.
Click Send.
You can also click the thread icon to create a thread when you hover over a message.
Close Threads
To close a thread,
BANKTEXT Rooms, such as Teams, Channels, and Discussions, have several roles that can be assigned
to a user in that room. These Roles provide varying control permission levels, privileges, and access to the
Room's features and settings.
Owner: This is the highest Room scoped role. It provides complete control over the Room, including the
ability to change its name, and description, manage its members and even delete the Room entirely.
Leader: This role is a step down from the Owner. A Room leader has significant control over the room
and can manage Room members, edit the Room name and description and perform other tasks
pertaining to the Room.
Moderator: This role is designed to help keep the Room organized and on-topic. Moderators can delete
messages, kick users out, and pin important messages to the top of the Room.
Click Members icon on the top right action bar. This shows a list of users in that room.
Search and select the user you want to assign a role.
Click Kebab menu on the right against the user. A dropdown is seen.
Click Set as <role> from the dropdown to set the role you wish to assign to the user.
Only Room Owners and Leaders can assign Roles to other users.
Users can have multiple Roles within a single room.
Unassigning Room Roles
To remove a role:
From the dropdown, click Remove as <role> to remove the role previously assigned to the user.
Make sure to go through the message settings to be able to access all these features mentioned
below!
Compose messages
To compose a message in BANKTEXT, go to the channel or user you want to send a message to. Type the
message in the message box and press Enter or the Send Button.
If you want to add new lines of text, press Shift + Enter to add a new line.
Cursor Movement
While writing or editing messages, you can move the cursor using the arrow keys. Where the cursor moves
depends on the wrapping of the text.
Hold Alt or Command while pressing the right or left arrow keys to move the cursor to the beginning or
end of the message.
You can also notify everyone in a channel by typing @all . Although notifying everyone in the channel is
useful for announcements, not every message requires this. We recommend using@all sparingly.
Send Attachments
You can send a variety of attachments with your messages, like files, audio, links, videos, and many more.
To access the attachment menu you can, click on the plus (+) icon on the message input.
Files
After selecting the file, add a name and a description of the file and press Send.
Remember that the server administrator can block certain file types from being uploaded.
Audio
When using BANKTEXT through a web browser, give BANKTEXT permission to use your microphone.
To start recording, click on Create new Audio Message or the option in the attachment menu or microphone
icon inside the message box. To stop recording, click the green checkmark. The audio message
automatically sends. You can choose to play or download the message.
Video
When using BANKTEXT through a web browser, give BANKTEXT permission to use your webcam.
To start recording, click on the Create new Video Message option in the attachment menu, then click the
red circle icon.
While recording, a stop button appears. To end the recording, press Stop.
Preview the video you recorded by pressing Ok. A window appears where you can watch, download, and
name the video. To send the video, click Send or click Cancel to discard the video.
Files can be uploaded from Google Drive to a room by selecting the Select Files from Google Drive option
on the attachment menu. This opens a Google Drive file picker GUI with search and view modes. Select the
required file, enter a title and description, and then click Upload.
Files are upload in the same format as they are stored in Google Drive with exception of Google Docs,
Google Slides, and Google Sheets which are converted to pdf upon upload.
Files uploaded as a message attached to a room can be uploaded to Google Drive. Click Save to Google
Drive above the file attachment. The file saves to Google Drive in its original format.
Links
URLs to other sites automatically generate a preview of that site's content. Copy and paste the link into the
message box to create the preview.
Location
To share your location, click Share My Location. A message with the link to your location on Google Maps
is generated.
Emoji
To insert an emoji, click the smiley face icon in the message box. Browse through emoji using the icon
categories or through the search box.
Emoticons
BANKTEXT changes common emoticons, or symbols used to represent emoji, to the equivalent emoji. For
example, :) converts to the :smiley: emoji.
Disabling emojis
Emojis can be enabled/disabled in Your Account settings under the Messages section.
When graphical emojis are disabled, emoji keywords and shortcuts display as regular text.
Formatting
Use the following symbols to format text as desired:
Message actions allow you to interact with messages that you've already posted.
Edit messages
To edit a message, click on the Edit option on the message actions menu. You can also place your cursor in
the message box and press the Up arrow to edit your last message.
The administrator of the BANKTEXT server sets the permissions for who can edit messages from other
users. By default, only administrators, moderators, and channel owners can edit messages from other users.
Draft messages
BANKTEXT saves drafts of all message edits so you can return to edit later. When drafting a message,
press Escape to discard the draft.
Delete messages
To delete a message, click Delete in the message actions menu.
Star messages
Star messages to make the message easier to find it later. To star a message, click Star in the message
actions menu. If you want to remove the star from an already starred message, click Remove Star.
Find starred messages by going to the channel actions menu and clicking Starred Messages.
Starred messages are per chat room and are not global; each room has its list of starred messages.
Pin messages
Pin a message to a channel to make that message easily accessible to all users on the channel. To pin a
message, select the Pin Message option in the message actions menu. Remove already pinned messages
by selecting Remove Pin.
The administrator of a BANKTEXT team sets the permissions for who can pin messages in a channel. By
default, only administrators, moderators, and owners of the channel can pin messages.
Reactions
You can react to messages with emojis.
To add a reaction to a message, go to the message, click on the Smiley Face icon on the right of the
message, and then choose an emoji.
You can see other users’ emoji reactions beneath the message. To react with the same emoji as another
user, click the emoji. You can also remove your reaction by clicking on your emoji.
Permalink a message
Permalink a message to create a URL directly to that message in the chat.
Click on the Permalink option in the message actions menu. This copies the message into your clipboard.
Copy a message
To copy the contents of a message to your clipboard, click on the copy option on the message actions
menu.
Reply to a message
Reply to a message to quote a message from another user. The reply automatically triggers a notification
sent to the message's original author.
Use Reply in Thread to start a new thread underneath the original message. Threads create a string of
messages that quote the original. Use Reply in Direct Message to quote the original message in a direct
message to that user.
Quote a message
Quote a message to respond to another user's message without notifying the user directly. Select Quote in
the message actions menu.
Message Info
The message info shows a list of users that have read the message with a timestamp.
Message info is an enterprise feature and requires the message read receipt to be enabled by the
workspace administrator.
Off-the-record (OTR) Messaging User Guide
This feature is currently in beta. Search operations will not find encrypted messages of encrypted
rooms. The mobile apps and multi-DMs may not support the encrypted messages (currently
under implementation). File Uploads will not be encrypted in this version.
Off-the-record (OTR) Messaging is a feature that allows users to exchange temporary, encrypted
messages directly between each other. This happens by using the local, non-persistent session storage
of their browser rather than storing messages on the BANKTEXT server. After an OTR session ends and the
session storage is cleared, the OTR messages are removed and can no longer be restored.
OTR messages can help exchange confidential information between users without creating a
record of this exchange on the server.
In contrast to OTR, end-to-end encrypted messages have a record on the server (in the form of
the encrypted message string) and are persistent.
Getting started
Prerequisites for using OTR are:
OTR has been enabled by your server administrator (if not, you will not be able to see OTR in the DM
context menu)
a direct message (DM) room with only one other participant
you and your DM-partner have entered their end-to-end encryption key
you and your DM-partner are both online
User A: Start the OTR conversation by clicking the DM context menu and selecting OTR. This will open the
OTR-sidebar.
Selecting OTR-Panel
Starting OTR-Chat
The following messages will be subject to the OTR session and be marked by a key-icon. Unlike end-to-end
encryption, this key icon is bold.
If User A or B breaks OTR (by clearing their local session storage, e.g., refreshing the web client), one of
them needs to re-initiate the OTR session by clicking Refresh Keys.
BANKTEXT Security Bundle is a set of security-focused features and tools aimed at providing enhanced
security for your BANKTEXT workspace and users.
These features are intended to help organizations prevent unauthorized access to sensitive data, protect
against data breaches and other security threats, and provide greater visibility into their security posture,
meeting their security and compliance requirements.
The BANKTEXT Security Bundle includes the following features and tools:
Data Loss Prevention(DLP) app: Manage the sharing of sensitive data on your workspace.
Two Factor Authentication(2FA): Enforce authentication and account access with 2FA.
Data Loss Prevention User Guide
In its simplest terms, data loss prevention (DLP) is a security mechanism that helps ensure that sensitive
data is not unduly shared, misused, lost, or accessed by unauthorized users.
BANKTEXT's DLP App includes several controls to prevent data loss, such as restricting access to
sensitive information, monitoring data transfers, and detecting and blocking potentially dangerous activities.
If there is any BANKTEXT room, where sensitive information like credit card details, phone numbers, and IP
addresses is being exchanged between users, you can prevent or restrict the sharing of this sensitive
information using the DLP app.
To get the DLP app functioning on your workspace, you need the workspace administrator to install and
configure the DLP app from the BANKTEXT marketplace.
If a user wants to share credit card details with another user in a room,
The DLP app picks up this message and replaces the sensitive data with ###. Clicking on More Info
details the message and its current status.
The app's bot user dlp.bot notifies the specified channel about sharing sensitive details.
Channel Moderators can Accept or Reject the message in the Moderator Channel from being sent.
Approve
Reject
Rejecting a message prevents it from reaching its destination, and the status gets updated to Rejected.
Antivirus ClamAV App
The ClamAV app enables forwarding uploaded files to an open-source antivirus (ClamAV) application that
prevents the upload from completing in BANKTEXT if a virus is detected. You have to install and run the
ClamAV server, and then the ClamAV app connects to it.
It works across web browsers, desktop apps, and mobile apps. It is used to prevent users from spreading
viruses and malware via BANKTEXT. It is an open-source (GPL) antivirus engine used in various situations,
including email scanning, web scanning, and endpoint security. It provides several utilities, including a
flexible and scalable multi-threaded daemon, a command-line scanner, and an advanced tool for automatic
database updates.
When E2E is enabled on your workspace, users can create encrypted rooms and send encrypted
messages.
Bots or other ancillary systems interacting via webhooks or REST API cannot read E2EE
encrypted messages.
File uploads are not encrypted.
BANKTEXT enables users to reset their private E2E key to avoid permanent data loss during
the beta period.
Getting started
To use E2E Encryption, your BANKTEXT workspace administrator must turn on the End to End Encryption
feature.
E2E Encryption
If E2E Encryption is enabled on your workspace, you see a banner notifying you to Enter your E2E
Password.
Copy and store the password securely. You'll need it when using BANKTEXT on another device.
Confirm by clicking on I Saved My Password.
Click the Room Information icon from the menu bar to view the Channel information. (link channel
info).
FAQ
If the room is using End to End Encryption you should see a key icon by the channel name.
With the ability to extensively use BANKTEXT on multiple platforms, and there is the risk of exposing your
account details. BANKTEXT two-factor authentication (2FA) provides additional protection for workspace
users by requiring them to provide two forms of authentication before accessing their accounts.
With 2FA enabled, a BANKTEXT user is required to enter not only their username and password but also a
one-time code generated by an authentication app, such as Google Authenticator when logging into their
account. This code is unique to each login attempt and provides an extra layer of security, as it cannot be
reused or guessed.
By default, 2FA is enabled with the email you used for signing up on the server.
To use 2FA, the BANKTEXT workspace administrator must turn on the Two Factor Authentication feature.
Before beginning the setup, download any available Authenticator app of your choice. Some
popular Authenticators include Google Authenticator, Authy, and Duo.
Add the code generated by the Authenticator app ( BANKTEXT: <username> ) and click Verify.
A list of backup codes is provided. Save them securely in case you lose access to your Authenticator
app. Now, the 2FA setup is completed.
TOTP works by generating a unique numeric password with a standardized algorithm. Time-
based passwords are available and provide user-friendly, increased account security when
used as a second factor.
Keyboard Shortcuts
You can use the following key combinations while using BANKTEXT.
Shortcut Description
Control (or Shift ) + ESC Clear all unread messages (in all channels)
Command (or Alt ) + Left Arrow Move to the beginning of the message
Command (or Alt ) + Right Arrow Move to the end of the message
Command (or Alt ) + Down Arrow Move to the end of the message
This guide is for people who administer an existing BANKTEXT workspace and have an administrator role
inside the workspace.
Only users with Administrator roles assigned to them can access this menu. If you have any role
other assigned to your BANKTEXT user, you won't be able to see this menu.
Go Fully Featured: An overview of all the potential of Rocket. Chat's enterprise edition.
Invites: Under Invites, you can view and delete the invite links generated to invite users to the
team/channels.
Connectivity Services: BANKTEXT Connectivity Services gives you access to connect your self-hosted
workplace to BANKTEXT cloud. Learn how to se create a new cloud account and use connectivity services.
Federation Dashboard: Check statistics about the federation connection on your server.
Email Inboxes: Learn to manage Omnichannel email inboxes or email accounts for the email channels.
Custom Emoji: Learn to work with custom emojis in your BANKTEXT workspace.
OAuth Applications: Learn to set up custom applications to be used for Open Authentication.
Mailer: Use the Mailer tool to email users inside your BANKTEXT workspace.
User Status: See how to manage user presence and status on your workspace.
Permissions: Customize which users can perform specific actions under Rocket. Chat's rich permissions
system.
Settings: BANKTEXT is very flexible thanks to the vast amount of settings that allow you to configure your
workspace the way you prefer.
If the information in this section doesn't solve your problem, look at these other resources to find something
that meets your needs. Alternatively, you can get help from our community or enterprise support services.
Go Fully Featured
This tab inside the administration panel of community workspaces helps you to explore and unlock all the
potential of BANKTEXT's enterprise edition.
Go fully featured
The new tab has two primary states. The first is to raise awareness of existing features that could be
explored free of charge through a trial. The other state provides a guide on how to get value from them.
Info
Info gives you a consolidated view of basic information about your workspace.
Visit the Info section to get insight, statistics, and information on the various aspects of your server. This can
help you to evaluate better and monitor the various activities.
Deployment Info
The deployment info card shows information related to your server deployment.
Version: The current version of your BANKTEXT server. This can be different from the latest version if
not updated.
Deployment ID: Your server's deployment ID.
Apps Engine Version: The version of Apps engine. It can be different from the latest if not updated.
License Info
This shows the information patenting to the license of your server.
License: This shows the tags of the license you have active on your server.
Features: The various features supported by the license on your server. Like Omnichannel
Auditing , Canned Responses , Engagement Dashboard .
Paste the license you got from the BANKTEXT Cloud Console or provided from the License purchase
confirmation email in the modal presented.
Hit Apply license
Change Offline License
To change your offline license from the License card of the Info dashboard:
Click on the Change Offline License at the bottom of the License card
A modal is presented, prompting you to paste the license you got from the BANKTEXT Cloud Console
or provided from the License purchase confirmation email.
Clear the old license code and paste the new license code, then hit Apply license
Usage Info
Users
Total: The total number of users on the server.
BANKTEXT App Users: The number of BANKTEXT users. Example bot users , app
users .
Uploads
Total Uploads: The number of total uploads that have been made on the server.
Total Uploads Size: The total size of all uploads.
Rooms
Total Rooms: The total number of rooms on the server.
Total Channels: Total number of channels on your server.
Total Private Groups: Total number of private groups on the server
Total Direct Message Rooms: Total number of Direct Messages created on the server.
Total Discussions: Total number of discussions
Total Omnichannel Rooms: Total number of Omnichannel rooms.
Messages
Total Messages: Total messages sent and received on the server.
Total Messages in Private Groups: Total number of messages in private groups only
Total Messages in Direct Messages: Total number of messages that have been sent in all direct
messages
Total Messages in Omnichannel: The total number of messages in omnichannel
Federation Info
BANKTEXT's Federation lets you set up communication between BANKTEXT workspaces.
When enabled, it shows a green checkmark across the features well configured. And a red cross
across those that aren't.
Federation Settings
A modal appears. Enter the Domain and Discovery Method and hit Next
Domain: Add the domain name that your server should be linked to.
Discovery Method: A dropdown to select which discoverability mode to use e.g. DNS or HUB
Next, continue by adding the given DNS records on your server and follow the given instructions.
Download Info
To download info about your server, click the Download Info button at the top right of Info menu.
Refresh Info
Refreshing info on your BANKTEXT server will prompt for the latest stats to be pulled.
To refresh info, click the Refresh button by the top right of your info panel.
Import
Import data from other services to your BANKTEXT workspace.
BANKTEXT lets you import all your data if you are moving from another service like Slack to BANKTEXT
Import CSV
Import from HipChat
There are currently two different HipChat importers. One for HipChat Cloud and another for HipChat
Enterprise.
HipChat Cloud
To start importing values from HipChat you first need to have an instance of BANKTEXT running. You can
do that on your own.
If you already have an instance running and administration privileges, you can follow these steps:
1. Browse to the fully qualified domain name you've configured for your HipChat Server, for example
https://hipchat.yourcompany.com/
2. Log in to the web user interface (UI) using your administrator email and password
3. Click Server admin > Export
4. To include files and one-to-one chat history in the export, select the checkboxes
5. Create a password to protect your archive file in the Password and Confirm Password fields. You're
required to provide this password when you import your data into HipChat Server. We don't store this
password, so be sure to remember it
6. Click Export. Depending on how much data you have, it may take a few hours to export the data. When
it's finished, you'll receive an email with a link to download the file
7. When you receive the email, click the link in the email to download the archive file
Import into BANKTEXT
2. Ensure the file generated is a tar.gz file, otherwise BANKTEXT won't accept it
3. Go to https://[your_rocketchat]/admin/import/prepare/hipchatenterprise
4. Choose your decrypted tar.gz file and wait until BANKTEXT can read it (it can take a few minutes,
depending on the size of your export)
5. Deselect any items you don't want to import
6. At the top of the page, click on Start Importing
Argument Notes
Troubleshooting
1. Go to https://[your_app].slack.com/services/export
If your Slack workspace is currently set up to hide emails, they'll also be excluded from
exports. You can update your workspace settings temporarily and re-run the export in order to
include emails as well.
It can be helpful to export time ranges from Slack such that the size of each import file is less
than 15MB.
If facing difficulties during the upload phase of the import process, try copying the archive
directly to the uploads folder using other means such as scp. Then select Server File Path as
the File Type.
Channel name with special character: if you use special character in the channel name, it
is important to enable the option "Allow Special Characters in Room Names" in layout
settings. An advanced option is to edit the special characters accepted in the UTF-8 setting in
the general configuration, example: [0-9a-zA-Z-
_.ãÃàèìòùÀÈÌÒÙáéíóúýÁÉÍÓÚÝâêîôûÂÊÎÔÛãñõÃÑÕäëïöüÿÄËÏÖÜŸçÇßØøÅåÆæœ]
+$ .
SlackBridge
SlackBridge allows you to mirror the messages received in a Slack channel or private group into
BANKTEXT in real-time.
To enable it, you have to create a Custom Bot in Slack and add it to the desired channels / private groups.
Once enabled and added to rooms, SlackBridge will clone the room in BANKTEXT and also clone users
that speak in that room.
1. Go to https://[your_host]/admin/SlackBridge
2. Enable SlackBridge
3. Add your API Token, copied in step 4 above
4. Restart your BANKTEXT server
When done, you can now invite/add the bot to the channel or private group you want to mirror from
Import CSV
The CSV importer allows you to import your own plain text files. However, it does require the zip file to be in
a specific format for the importer to understand.
The directmessages directory is a special directory name. Check the Direct Messages section below.
fileToImport.zip
├── channels.csv
├── users.csv
├── directmessages
│ ├── messages1.csv
│ ├── messages2.csv
│ └── messages3.csv
├── general
│ └── messages.csv
├── otherChannelName
│ ├── canBeAnyNameButHasToHave.csv
│ ├── theDotCSV.csv
│ └── asTheFileExt.csv
├── privateArea
│ └── messages.csv
└── random
├── dateTimeStamp1.csv
├── dateTimeStamp2.csv
└── dateTimeStamp3.csv
channels.csv Format
Channels between 2 users (Direct Messages) should not be included on this file. See section Direct
Messages for more information.
The channels.csv requires a very specific structure and layout. Each line contains information about
one channel. Each line must include the channel name, the creator, whether it is private or public, and the
members in the channel separated by a semicolon ; . Quotes are required.
1. Channel name
2. Username of the channel creator
3. Whether the channel is public or private. If the last argument is not private it is assumed the channel
is public
4. List of users in the channel, separated by semicolons. If only the creator is in the channel, then there
must be empty quotes.
"general","bradley.hilton","public",""
"otherChannelName","billy.bob","public",""
"random","bradley.hilton","public","billy.bob;graywolf336"
"privateArea","bradley.hilton","private","graywolf336"
users.csv Format
The users.csv is a file that contains the user details, each line containing a new user, and the user
details are:
bradley.hilton,bradley.hilton@example.com,Bradley Hilton
billy.bob, billy.bob@example.com, Billy Bob Jr.
graywolf336,graywolf336@example.com,GrayWolf336
Message Files
The message CSV files require a particular format. Each line contains a new message, and every piece of
information is required quotes to surround it, and there cannot be any spaces between the commas. The
details required are:
It's required to keep conversations in distinct files; for example, a conversation between user A and B
compose a file ( messages1.csv ), and the conversation between user B and C compose another file
( messages2.csv ).
Importing
Once you have that, all set up and zipped; you can start the import process.
1. Go to https://[your_rocketchat]/admin/import/prepare/csv
2. Choose your .zip file and wait until BANKTEXT can read it (it can take a few minutes, depending on
the size of the file)
3. Deselect any items you don't want to import
4. At the top of the page, click on Start Importing
When you have problems during the Import, click on "View Logs" in the admin section to get the detailed
error messages.
Users
Users menu lets you view, create, edit, delete, deactivate, and, invite users.
Now you have your BANKTEXT workspace is up and running and maybe have some users or none. Visit
this menu to view, create, edit, delete, activate, and perform other actions regarding user accounts on your
server.
Note that for self-managed workspaces, you need to have SMTP enabled to be able to send
emails through the workspace. If you wish not to do so, you can still invite users by creating their
credentials.
The settings Set random password and send by email and Send welcome email will require
SMTP enabled to send emails successfully.
You can also Add users through Identity management and authentication services
Guest users
If you want to invite external users to your BANKTEXT workspace, you can add them
as guest users.
Guest is a role that is available only on the Enterprise edition, and it's not possible to change the
permissions for this role.
All users assigned to the guest role don't count on the cap of seats, but they count in the guest
cap.
As a guest user of BANKTEXT, you can start the conversation, view direct messages, view joined rooms,
and view the private room.
It's possible to set a maximum number of guest users for every license.
It's possible to set a maximum number of channels a guest can join for every license.
Guest accounts are only available on Enterprise, and the permissions are pre-defined for this
role.
Go to Administration > Workspace > Permissions. You will notice that the permissions that a guest role
has are: start the conversation, view direct messages, view joined the room, and view private room.
Set random password and send by email: Enable or disable this option to set a random password
and send by email.
Roles: Select the guest role from the dropdown menu.
Join default channels: Set whether you want the guest user to join default channels.
Send welcome email: Set whether you want to send a welcome email **** to the guest user.
Click Save.
Rocket. Chat provides you with various options for adding users to your workspace.
LDAP Directory
LDAP configuration on BANKTEXT can be used to establish connections, used for authentication, storing
information about users and sync your data.
LDAP (Lightweight Directory Access Protocol) enables anyone to locate data about your server or company.
To configure LDAP authentication, go to Administration > Workspace > Setting > LDAP.
LDAP
SAML
SAML (Security Assertion Markup Language) is used for exchanging authentication and authorization data.
To access SAML setting, go to Administration > Workspace > Settings > SAML.
SAML
OAuth
You can configure authentication methods beyond just username and password.
To access OAuth setting, go to Administration > Workspace > Settings > OAuth.
OAuth
CAS
CAS (Central Authentication Service) allows members to use one set of credentials to sign in to multiple
sites over multiple protocols.
To access this setting, go to Administration > Workspace > Settings > CAS.
CAS
Rooms
Here you can view room details, edit rooms and delete rooms.
BANKTEXT rooms are where any communication or interaction with other users occurs. There are various
types of rooms. Visit the room section to view room details, and create, edit, and delete rooms.
To find more information on BANKTEXT rooms, please visit user guide on Rooms
To access this room's administration menu, navigate to Administration > Workspace > Rooms.
Here you can see all the rooms that currently exist in your BANKTEXT workspace along with details like the
number of users in a room, number of messages, type of room, etc.
You are provided with a variety of filters like Public, Private, etc., available to help you sort them by type.
Delete Room
To delete a room:
Please follow the link to find out how these invite links are created.
Delete a record
If you want to delete any of these invite records:
This feature comes in handy when you have an invite link with an Expiration date: Never. In
order to avoid abuse, you can revoke it by deleting the record.
Registration
BANKTEXT Registration gives you access to connect your workplace to BANKTEXT Cloud.
Navigate to Administration > Workspace > Registration for workspaces above BANKTEXT 6.0 or
Administration > Workspace > Connectivity Services for workspaces below 6.0 .
Introduction
Connecting your workplace to the cloud gives you access to interact with services like
Below are the steps required to connect and synchronize a BANKTEXT self-hosted workspace to
BANKTEXT Cloud infrastructure at cloud.BANKTEXT.
The steps below are required only for self-managed instances. BANKTEXT SaaS workspaces
are provisioned and connected to the Cloud infrastructure.
To connect your workspace to our BANKTEXT Cloud, you must be running a supported version.
At least v3.x.
Registration steps
The registration steps are different depending on the version of BANKTEXT your workspace is running on.
When deploying a self-managed BANKTEXT >=6.x workspace you are automatically required to register
your workspace upon completing the Setup Wizard .
With your workspace setup completed, sync it to BANKTEXT Cloud as an Administrator by:
Navigate to Administration > Workspace > Registration > Manage.
Click on Sync to synchronize the workspace.
Go to cloud.BANKTEXT
Hit Create account
Fill up the registration form and hit Next. A verification email is sent to your provided email address.
Click to open the verification link. You are redirected to cloud.BANKTEXT where you get logged in to
your Cloud console.
Under Workspaces on your BANKTEXT Cloud portal, click Register self-manage by the top right to
register your self-hosted workspace.
Select the workspace type from the modal displayed.
Continue Online with Cloud Services: BANKTEXT server that has a connection to the internet
(connected to the outside)
Continue Offline: Special cases where BANKTEXT workspace is air-gapped.
In the following section, we are going to cover the option for Internet Access.
Online Registration
A registration token is presented under the Online option. Copy the token, as this will be used to register
your BANKTEXT server.
On your BANKTEXT workspace, navigate to Administration > Workspace > Connectivity Services.
Click on Register workspace and enter the token copied from BANKTEXT Cloud account in the Token
field
Hit Connect. This sets the connection between your BANKTEXT workspace and BANKTEXT Cloud
console when successful.
Click on Sync to synchronize your workspace.
In the View Logs section of your BANKTEXT server, you can see all the information configured to be
logged. This can help you troubleshoot or monitor the state of your server's activity.
Check out the Logs Settings for additional configurations on what to log.
With the BANKTEXT Federation Setup, you can configure your server to be able to communicate with other
servers seamlessly.
Number of events: This shows the number of federated events that have been triggered.
Number of federated users: This shows the number of federated users your server has made access
to.
Number of federated servers: The number of federated servers.
Email Inboxes
Omnichannel Integration between BANKTEXT and email.
As an administrator, you can configure and manage Omnichannel email inboxes or email accounts for the
email channels.
You must have the Omnichannel enabled as well as have agents and managers assigned
in order to use this feature.
Your email inbox is set up, and your agents can receive emails within BANKTEXT now.
For this, you need to generate an app password that is to be used instead of the normal password.
GMail
Manage app passwords for two-step verification
Outlook
AOL Mail
Yahoo Mail
Broken link
Custom Emoji
BANKTEXT allows you to add custom emoji files that can be used within BANKTEXT. Emojis are a great
way of filling emotional cues.
We recommend using no more than 100 custom emojis. A number higher than that can
compromise performance.
BANKTEXT supports webhooks to integrate tools and services you like into the platform. Webhooks are
simple event notifications via HTTP POST. This way, any webhook application can post a message to a
BANKTEXT instance and much more.
With scripts, you can point any webhook to BANKTEXT and process the requests to print customized
messages, define the username and avatar of the user of the messages and change the channel for sending
messages, or you can cancel the request to prevent undesired messages.
Available integrations
By default, a webhook is designed to post messages only. The message is part of a JSON structure, which
has the same format as that of a BANKTEXT message.
If you would like more power and control over various features of BANKTEXT, aside from
sending and receiving messages, take a look at BANKTEXT Apps.
ES2015 / ECMAScript 6 scripts can handle Webhooks to process the request, print customized messages,
or cancel the request to prevent undesired messages.
Name: Enter a name for your webhook. The name is optional; however, providing a name to manage
your integrations easily is advisable.
Post to Channel: Select the channel (or user) where you prefer to receive the alerts. It is possible to
override messages.
Post as: Choose the username that this integration posts as. The user must already exist.
Alias: Optionally enter a nickname that appears before the username in messages.
Avatar URL: Enter a link to an image as the avatar URL if you have one. The avatar URL overrides the
default avatar.
Emoji: Enter an emoji optionally to use the emoji as the avatar. Check the emoji cheat sheet here.
Turn on the Script Enabled toggle.
Paste your script inside the Script field.
Save the integration.
Use the generated Webhook URL to post messages to BANKTEXT.
Script details
The BANKTEXT integration script should be written in ES2015 / ECMAScript 6. The script requires a global
class named Script, which is instantiated only once during the first execution and kept in memory. This
class contains a method called process_incoming_request, which is called by your server each time it
receives a new request. The process_incoming_request method takes an object as a parameter with the
request property and returns an object with a content property containing a valid BANKTEXT message, or
an object with an error property, which is returned as the response to the request in JSON format with a
Code 400 status.
A valid BANKTEXT message must contain a text field that serves as the body of the message. If you redirect
the message to a channel other than the one indicated by the webhook token, yyou can specify a channel
field that accepts room id or, if prefixed with "#" or " @ ", channel name or user, respectively.
You can use the console methods to log information to help debug your script. More information about the
console can be found here. To view the logs, navigate to Administration > Workspace > View Logs.
/* exported Script */
/* globals console, _, s */
class Script {
/**
* @params {object} request
*/
process_incoming_request({ request }) {
// request.url.hash
// request.url.search
// request.url.query
// request.url.pathname
// request.url.path
// request.url_raw
// request.url_params
// request.headers
// request.user._id
// request.user.name
// request.user.username
// request.content_raw
// request.content
return {
content:{
text: request.content.text
// "attachments": [{
// "color": "#FF0000",
// "author_name": "Rocket.Cat",
// "author_link": "https://open.BANKTEXT/direct/rocket.cat",
// "author_icon": "https://open.BANKTEXT/avatar/rocket.cat.jpg",
// "title": "BANKTEXT",
// "title_link": "https://BANKTEXT",
// "text": "BANKTEXT, the best open source chat",
// "fields": [{
// "title": "Priority",
// "value": "High",
// "short": false
// }],
// "image_url": "https://BANKTEXT/images/mockup.png",
// "thumb_url": "https://BANKTEXT/images/mockup.png"
// }]
}
};
// return {
// error: {
// success: false,
// message: 'Error example'
// }
// };
}
}
To test if your integration works, use curl to make a POST request to the generated webhook URL.
curl -X POST \
-H 'Content-Type: application/json' \
--data '{
"emoji": ":smirk:",
"text": "Example message",
"attachments": [
{
"title": "BANKTEXT", "title_link":
"https://BANKTEXT",
"text": "BANKTEXT, the best open source chat", "image_url":
"link-to-an-image",
"color": "#764FA5"
}
]
}' \
https://your-webhook-url
You can utilize scripts to process all messages from a channel and modify how BANKTEXT creates or
cancels the request. You have the option to either cancel the request and return a message or take no
action. Additionally, you can create another request within the script using the HTTP global helper. When a
response is received from the request, it executes the script, calling another method that allows you to
process the response, similar to incoming webhooks. To create a new outgoing webhook, follow these
steps.
Trigger Words: If your event trigger is Message Sent, enter the words that should trigger this webhook
separated by commas.
Enter the URL called for each request in the URLs field. You can modify this URL inside the script.
Post as: Enter the username that this integration posts as. This field is optional.
Token: Enter a token that is used to verify authorized webhook calls. The token is optional but essential
to avoid cross-site request forgery (CSRF) or replay attacks.
Turn on Script Enabled.
Paste your script inside the Script field.
Save your integration.
Script details
The script should be in ES2015 / ECMAScript 6. The script expects a global class called Script. This class
is instantiated once, only on the first execution, and kept in memory. The class has a method called
prepare_outgoing_request, called in the configured channel for the event triggers:
Message Sent: Called in the configured channel when the message starts with any Trigger Words.
File Uploaded: Called when any file is uploaded in the configured channel.
Room Archived: Called when a room is archived.
The prepare_outgoing_request method returns an object with at least url and method properties. You can
also change the request object and replace it. It is possible to return nothing and cancel the request or return
a message.
The Script class has another method named process_outgoing_response. The method
process_outgoing_response is called for every request response, with an object as a parameter
containing the request property, that is, the object you returned in the previous method and a response
property. The process_outgoing_response method can return nothing to proceed with the default
processing, return false to stop it, or an object with the content property that contains a valid BANKTEXT
message.
The example script sends commands such as issues, comments, and pull requests to GitHub.
/* exported Script */
/* globals console, _, s, HTTP */
class Script {
/**
* @params {object} request
*/
prepare_outgoing_request({ request }) {
// request.params {object}
// request.method {string}
// request.url {string}
// request.auth {string}
// request.headers {object}
// request.data.token {string}
// request.data.channel_id {string}
// request.data.channel_name {string}
// request.data.timestamp {date}
// request.data.user_id {string}
// request.data.user_name {string}
// request.data.text {string}
// request.data.trigger_word {string}
let match;
/**
* @params {object} request, response
*/
process_outgoing_response({ request, response }) {
// request {object} - the object returned by prepare_outgoing_request
// response.error {object}
// response.status_code {integer}
// response.content {object}
// response.content_raw {string/object}
// response.headers {object}
// return;
return {
content: {
text: text.join('\n'),
parseUrls: false
// "attachments": [{
// "color": "#FF0000",
// "author_name": "Rocket.Cat",
// "author_link": "https://open.BANKTEXT/direct/rocket.cat",
// "author_icon": "https://open.BANKTEXT/avatar/rocket.cat.jpg",
// "title": "BANKTEXT",
// "title_link": "https://BANKTEXT",
// "text": "BANKTEXT, the best open source chat", "fields":
// [{
// "title": "Priority",
// "value": "High",
// "short": false
// }],
// "image_url": "https://BANKTEXT/images/mockup.png", "thumb_url":
// "https://BANKTEXT/images/mockup.png"
// }]
}
};
}
}
Integration Pattern
For incoming webhooks, you notify BANKTEXT from another platform through webhooks, and the
pattern is as follows:
For outgoing webhooks, you notify a third-party platform about events occurring on your
BANKTEXT workspace and the pattern is as follows:
AppVeyor is a CI/CD service for Windows, Linux, and macOS. AppVeyor supports most source control
platforms. You can link AppVeyor to BANKTEXT through webhooks and get notified in a BANKTEXT
channel each time a build runs.
Select either public repositories only or both public and private repositories.
Click Authorize GitHub.
Sign in to GitHub in the newly opened tab.
Select the above-created webhook project in the list of projects shown as the repository to use.
Follow the necessary steps to create a BANKTEXT incoming webhook. See Create a new incoming
webhook. Take note of the generated webhook URL.
Script details
Paste the following script into the Script field for the incoming webhook created.
/* exported Script */
/* globals console, _, s */
class Script {
/**
* @params {object} request
*/
process_incoming_request({ request }) {
let reqContent = request.content;
let message = "";
const name = reqContent.commitAuthor;
const authorEmail = reqContent.commitAuthorEmail;
const commitDate = reqContent.commitDate;
const commitMessage = reqContent.commitMessage;
const repo = reqContent.repositoryName;
const commitId = reqContent.commitId;
const projectName = reqContent.projectName;
const buildNumber = reqContent.buildNumber;
const buildId = reqContent.buildId;
message += "Commit by author:" + name + " whose email is " + authorEmail;
message += " on the repo " + "[" + projectName + "](https://github.com/" + repo + ")"
message += " on " + commitDate + " and their commit message was,'" + commitMessage +
message += "Build details, build ID:" + buildId + ", build number:" + buildNumber + "
message += "You can check the [Commit](https://github.com/" + repo + "/commit/" + com
const content = {
"emoji": ":smiley:",
"text": message,
"attachments": [
{
"title": projectName + " build",
"title_link": "https://BANKTEXT", "text":
"Appveyor is a CI tool,"
"image_url": "https://writing-demo.dev.BANKTEXT/images/integration-att
"color": "#764FA5"
}
]
};
return {
content:content
};
}
}
Code details
Each time you push to your configured GitHub repository, AppVeyor posts a payload to our webhook. The
structure of the payload is similar to that of sample.json found in the example repository. You retrieve the
content object and use the details to create a message object which becomes the text portion of the
BANKTEXT message returned in the method. process_incoming_request .
Create a file in the root directory of your configured GitHub project called appveyor.yml and paste
the following content.
environment:
nodejs_version: "8"
The install block in the configuration tells the build to install the latest version of NodeJS and the
deploy block tells AppVeyor to make use of webhooks. Replace the url variable with the webhook
URL generated during the creation of your incoming webhook. Check provider settings to understand
better.
Commit and push the code to your GitHub repository.
The build process starts immediately after the push is successful.
A notification is sent in the channel you configured to be used for your incoming webhook.
The current build can be verified by navigating to Projects > Your-Project > Current build on AppVeyor.
Azure Alerts
5. Go to the azure portal and on the specific resource you want to enable Alerts for follow the steps for
enabling Alerts and set the previously copied URL as the webhook URL for the Azure Alert. You can
follow the steps shown here: https://docs.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-log-
webhook
return {
content:{
username: "Azure",
text: "Azure Alert Notification",
attachments: [{
title: request.content.context.name,
pretext: request.content.context.description,
title_link: request.content.context.portalLink,
text: condition.failureDetails,
color: alertColor,
fields: [
{
title: "Status",
value: request.content.status + " @ " + request.content.context.timestamp
},
{
title: "Condition",
value: condition.metricName + ": " + condition.metricValue + " " + condition.me
},
{
title: "Threshold",
value: condition.operator + " " + condition.threshold
}
]
}]
}
};
return {
error: {
success: false,
message: 'Error'
}
};
}
}
This example shows basic processing of azure alerts that will give you the necessary information as to what
happened and what is the current status, along with a status color to get an idea at a quick glimpse of the
message.
For newer created alerts the azure webhooks can be process by the following script:
class Script {
// this script was tested with AzureMonitorMetricAlert version 2.0 and should work for
// "conditionType": "MultipleResourceMultipleMetricCriteria"
process_incoming_request({ request }) {
// console is a global helper to improve debug
console.log(JSON.stringify(request.content, null, 4));
return {
content:{
username: "Azure",
text: "Azure Alert Notification",
attachments: [{
title: request.content.data.context.name,
pretext: request.content.data.context.description,
title_link: request.content.data.context.portalLink,
text: request.content.data.context.resourceGroupName + ": " + request.con
color: alertColor,
fields: [
{
title: "Status",
value: request.content.data.status + " @ " + request.content.da
},
{
title: "Severity",
value: request.content.data.context.severity,
},
...conditionFields,
]
}]
}
};
}
}
The schema of the incoming message as of the official Azure Alert Webhook Docs is:
{
"status": "Activated",
"context": {
"timestamp": "2015-08-14T22:26:41.9975398Z",
"id": "/subscriptions/s1/resourceGroups/useast/providers/microsoft.insights/alert
"name": "ruleName1",
"description": "some description",
"conditionType": "Metric",
"condition": {
"metricName": "Requests",
"metricUnit": "Count",
"metricValue": "10",
"threshold": "10",
"windowSize": "15",
"timeAggregation": "Average",
"operator": "GreaterThanOrEqual"
},
"subscriptionId": "s1",
"resourceGroupName": "useast",
"resourceName": "mysite1",
"resourceType": "microsoft.foo/sites",
"resourceId": "/subscriptions/s1/resourceGroups/useast/providers/microsoft.foo/si
"resourceRegion": "centralus",
"portalLink": "https://portal.azure.com/#resource/subscriptions/s1/resourceGroups
},
"properties": {
"key1": "value1",
"key2": "value2"
}
}
BitRocket
https://github.com/FinndropStudios/BitRocket
The endpoint for this integration is no longer available, and the access to API is paid only.
EasyRedmine is a fork of redmine, a project management tool, which brings together different additional
plugins like Help Desk, Finance, CRM and many more.
https://github.com/wirdgroup/rocketchat-easyredmine
Thanks to WIRDGroup
Giphy Integrations
Giphy Preview
Thanks to RocketBooster
https://apps.rocketbooster.net/giphy
GifRocket
Follow the install instructions here:
https://github.com/FinndropStudios/GifRocket
Setting up GitLab webhook integration gives you the ability to receive event notifications from GitLab directly
in your desired BANKTEXT room.
Comments
Issues events
Merge requests
Deployment events
In configuring this integration, make sure your BANKTEXT is publicly available on a URL.
Enable Scripts and paste the following code into the Scripts box
/* eslint no-console:0, max-len:0 */
// see <https://gitlab.com/help/web_hooks/web_hooks> for full json posted by GitLab
const MENTION_ALL_ALLOWED = false; // <- check that bot permission allow has mention-all befo
const NOTIF_COLOR = '#6498CC';
const IGNORE_CONFIDENTIAL = true;
const refParser = (ref) => ref.replace(/^refs\/(?:tags|heads)\/(.+)$/, '$1');
const displayName = (name) => (name && name.toLowerCase().replace(/\s+/g, '.'));
const atName = (user) => (user && user.name ? '@' + displayName(user.name) : '');
const makeAttachment = (author, text, color) => {
return {
author_name: author ? displayName(author.name) : '',
author_icon: author ? author.avatar_url : '',
text,
color: color || NOTIF_COLOR
};
};
const pushUniq = (array, val) => ~array.indexOf(val) || array.push(val); // eslint-disable-li
createErrorChatMessage(error) {
return {
content: {
username: 'Rocket.Cat ErrorHandler',
text: 'Error occured while parsing an incoming webhook request. Details attac
icon_url: '',
attachments: [
{
text: `Error: '${error}', \n Message: '${error.message}', \n Stack: '
color: NOTIF_COLOR
}
]
}
};
}
unknownEvent(data, event) {
return {
content: {
username: data.user ? data.user.name : (data.user_name || 'Unknown user'),
text: `Unknown event '${event}' occured. Data attached.`,
icon_url: data.user ? data.user.avatar_url : (data.user_avatar || ''),
attachments: [
{
text: `${JSON.stringify(data, null, 4)}`,
color: NOTIF_COLOR
}
]
}
};
}
issueEvent(data, event) {
if (event === 'Confidential Issue Hook' && IGNORE_CONFIDENTIAL) {
return false;
}
const project = data.project || data.repository;
const state = data.object_attributes.state;
const action = data.object_attributes.action;
let user_action = state;
let assigned = '';
if (data.assignee) {
assigned = `*Assigned to*: @${data.assignee.username}\n`;
}
return {
content: {
username: 'gitlab/' + project.name,
icon_url: project.avatar_url || data.user.avatar_url || '',
text: (data.assignee && data.assignee.name !== data.user.name) ? atName(data.
attachments: [
makeAttachment(
data.user, `${user_action} an issue _${data.object_attributes.title}_
*Description:* ${data.object_attributes.description}.
${assigned}
See: ${data.object_attributes.url}`
)
]
}
};
}
commentEvent(data) {
const project = data.project || data.repository;
const comment = data.object_attributes;
const user = data.user;
const at = [];
let text;
if (data.merge_request) {
const mr = data.merge_request;
const lastCommitAuthor = mr.last_commit && mr.last_commit.author;
if (mr.assignee && mr.assignee.name !== user.name) {
at.push(atName(mr.assignee));
}
if (lastCommitAuthor && lastCommitAuthor.name !== user.name) {
pushUniq(at, atName(lastCommitAuthor));
}
text = `commented on MR [#${mr.id} ${mr.title}](${comment.url})`;
} else if (data.commit) {
const commit = data.commit;
const message = commit.message.replace(/\n[^\s\S]+/, '...').replace(/\n$/, '');
if (commit.author && commit.author.name !== user.name) {
at.push(atName(commit.author));
}
text = `commented on commit [${commit.id.slice(0, 8)} ${message}](${comment.url})
} else if (data.issue) {
const issue = data.issue;
text = `commented on issue [#${issue.id} ${issue.title}](${comment.url})`;
} else if (data.snippet) {
const snippet = data.snippet;
text = `commented on code snippet [#${snippet.id} ${snippet.title}](${comment.url
}
return {
content: {
username: 'gitlab/' + project.name,
icon_url: project.avatar_url || user.avatar_url || '',
text: at.join(' '),
attachments: [
makeAttachment(user, `${text}\n${comment.note}`)
]
}
};
}
mergeRequestEvent(data) {
const user = data.user;
const mr = data.object_attributes;
const assignee = mr.assignee;
let at = [];
pushEvent(data) {
const project = data.project || data.repository;
const web_url = project.web_url || project.homepage;
const user = {
name: data.user_name,
avatar_url: data.user_avatar
};
// branch removal
if (data.checkout_sha === null && !data.commits.length) {
return {
content: {
username: `gitlab/${project.name}`,
icon_url: project.avatar_url || data.user_avatar || '',
attachments: [
makeAttachment(user, `removed branch ${refParser(data.ref)} from [${p
]
}
};
}
// new branch
if (data.before == 0) { // eslint-disable-line
return {
content: {
username: `gitlab/${project.name}`,
icon_url: project.avatar_url || data.user_avatar || '',
attachments: [
makeAttachment(user, `pushed new branch [${refParser(data.ref)}](${we
]
}
};
}
return {
content: {
username: `gitlab/${project.name}`,
icon_url: project.avatar_url || data.user_avatar || '',
attachments: [
makeAttachment(user, `pushed ${data.total_commits_count} commits to branc
{
text: data.commits.map((commit) => ` - ${new Date(commit.timestamp).
color: NOTIF_COLOR
}
]
}
};
}
tagEvent(data) {
const project = data.project || data.repository;
const web_url = project.web_url || project.homepage;
const tag = refParser(data.ref);
const user = {
name: data.user_name,
avatar_url: data.user_avatar
};
let message;
if (data.checkout_sha === null) {
message = `deleted tag [${tag}](${web_url}/tags/)`;
} else {
message = `pushed tag [${tag} ${data.checkout_sha.slice(0, 8)}](${web_url}/tags/$
}
return {
content: {
username: `gitlab/${project.name}`,
icon_url: project.avatar_url || data.user_avatar || '',
text: MENTION_ALL_ALLOWED ? '@all' : '',
attachments: [
makeAttachment(user, message)
]
}
};
}
createColor(status) {
switch (status) {
case 'success':
return '#2faa60';
case 'pending':
return '#e75e40';
case 'failed':
return '#d22852';
case 'canceled':
return '#5c5c5c';
case 'created':
return '#ffc107';
case 'running':
return '#607d8b';
default:
return null;
}
}
pipelineEvent(data) {
const project = data.project || data.repository;
const commit = data.commit;
const user = {
name: data.user_name,
avatar_url: data.user_avatar
};
const pipeline = data.object_attributes;
return {
content: {
username: `gitlab/${project.name}`,
icon_url: project.avatar_url || data.user_avatar || '',
attachments: [
makeAttachment(user, `pipeline returned *${pipeline.status}* for commit [
]
}
};
}
buildEvent(data) {
const user = {
n
aavm
aet:
ard
_aut
ral.
:us
dear
t_an
.aum
se,
r_avatar
};
return {
content: {
username: `gitlab/${data.repository.name}`,
icon_url: '',
attachments: [
makeAttachment(user, `build named *${data.build_name}* returned *${data.b
]
}
};
}
wikiPageTitle(wiki_page) {
if (wiki_page.action === 'delete') {
return wiki_page.title;
}
return `[${wiki_page.title}](${wiki_page.url})`;
}
wikiEvent(data) {
const user_name = data.user.name;
const project = data.project;
const project_path = project.path_with_namespace;
const wiki_page = data.object_attributes;
const wiki_page_title = this.wikiPageTitle(wiki_page);
const action = wiki_page.action;
return {
content: {
username: project_path,
icon_url: project.avatar_url || data.user.avatar_url || '',
text: `The wiki page ${wiki_page_title} was ${user_action} by ${user_name}`
}
};
}
}
Save the settings
The Webhook URL and Token are generated after saving
After creating the new incoming webhook integration on BANKTEXT, it is time to link it up with the GitLab
repository.
Fill in the URL and token you copied from the BANKTEXT setting
Select the type of events you want to be notified on and Add webhook
GitLab webhook setting
After successful configuration, you can test the Webhook with any event trigger and see the
notification in your specified BANKTEXT room.
More material
This integration uses BANKTEXT incoming webhook. With this integration, you get your event notifications
right into BANKTEXT.
Prerequisites
1. A Google Cloud Platform project with the Google Calendar API enabled. To create a project and enable
an API, refer to Create a project and enable the API.
2. Prepare authorization credentials for a desktop application. To learn how to create credentials for a
desktop application, refer to Create credentials (make sure you download the JSON file).
3. Have a Channel for the event messages to be posted.
You can simply install and use the BANKTEXT Google Calendar app on your workspace instead
of manually configuring the integration.
Usage of ./rocketchat-google-calendar:
-calendars string
List of calendar IDs, separated by commas. (default "primary")
-credentials string
Enter path to the credentials file. (default "credentials.json")
-eventin string
The upper limit of upcoming event start time. Lower bound is the moment of API access
-waitfor string
Time to wait before attempting a POST to BANKTEXT webhook. (default "5m")
-webhook string
Enter the webhook url you got from BANKTEXT.
3. Enter the appropriate values for the respective options. The full command should be like this:
rocketchat-google-calendar \
-webhook https://the-incoming-webhook-url \
-calendars primary \
-credentials /full/path/to/cedentials.json \
-waitfor 5m -eventin 30m
4. Click the link which prompts you to authorize the app to use your Google account.
5. Once you get the token, please copy and paste it on the terminal and hit enter.
One everyday use case is to be notified about all the meetings/events daily in the morning. You can achieve
this by combining the two flags -eventin and -waitfor .
Use 24h for both of those options. This way, the integration program fetches data every 24 hours, lists the
events that will occur in those 24 hours, and sends them to your configured channel.
GitHub
Setting up GitHub webhook integration with BANKTEXT gives you the ability to
1. Receive event notifications from GitHub directly in your specified BANKTEXT room (Incoming
WebHook)
2. Send commands to GitHub and optionally receive a response (Outgoing WebHook).
Comments
Issues events
Pull Requests
Merge requests
Deployment events
Comments and discussions
Tags, label and branch actions
etc.
In configuring this integration, make sure your BANKTEXT is publicly available on a URL.
To configure an incoming webhook integration between GitHub and BANKTEXT, you need to:
Fill in the details of your webhook including the name of the webhook, the room to post into, the user to
post as and enable it
Enable Scripts and paste any of the following example code into the Scripts box.
You can customize your webhook integration script to suit your desire as explained here.
GitHub Example Script 1
This script will generate notifications for the following repository events:
/* exported Script */
String.prototype.capitalizeFirstLetter = function() {
return this.charAt(0).toUpperCase() + this.slice(1);
}
const githubEvents = {
ping(request) {
return {
content: {
text: '_' + request.content.hook.id + '_\n' + ':thumbsup: ' + request.content
}
};
},
return {
content: {
attachments: [
{
thumb_url: user.avatar_url,
text: text,
fields: []
}
]
}
};
},
if (request.content.action == "edited") {
var action = "Edited comment ";
} else {
var action = "Comment "
}
return {
content: {
attachments: [
{ thumb_url: user.avatar_url,
text: text,
fields: []
}
]
}
};
},
/* COMMENT ON COMMIT */
commit_comment(request) {
const user = request.content.comment.user;
if (request.content.action == "edited") {
var action = "Edited comment ";
} else {
var action = "Comment "
}
return {
content: {
attachments: [
{
thumb_url: user.avatar_url,
text: text,
fields: []
}
]
}
};
},
/* END OF COMMENT ON COMMIT */
/* PUSH TO REPO */
push(request) {
var commits = request.content.commits;
var multi_commit = ""
var is_short = true;
var changeset = 'Changeset';
if ( commits.length > 1 ) {
var multi_commit = " [Multiple Commits]";
var is_short = false;
var changeset = changeset + 's';
var output = [];
}
const user = request.content.sender;
var text = '**Pushed to ' + "["+request.content.repository.full_name+"]("+request
+ request.content.ref.split('/').pop() + "**\n\n";
if (commits.length > 1) {
text += output.reverse().join('\n');
} else {
text += output;
}
return {
content: {
attachments: [
{
thumb_url: user.avatar_url,
text: text,
fields: []
}
]
}
};
}, // End GitHub Push
return {
content: {
attachments: [
{
thumb_url: user.avatar_url,
text: text,
fields: []
}
]
}
};
},
};
class Script {
process_incoming_request({ request }) {
const header = request.headers['x-github-event'];
if (githubEvents[header]) {
return githubEvents[header](request);
}
return {
error: {
success: false,
message: 'Unsupported method'
}
};
}
}
GitHub Example Script 2
This script will generate notifications for the following repository events:
/* exported Script */
const githubEvents = {
ping(request) {
return {
content: {
text: ':thumbsup: ' + request.content.zen
}
};
},
issues(request) {
const user = request.content.sender;
const attachment = {
author_icon: svg_inline_prefix + gh_iss_svg,
author_name: '#' + request.content.issue.number + ' - ' + request.content.issue
author_link: request.content.issue.html_url,
fields: []
};
if (request.content.issue.labels) {
attachment.fields.push(getLabelsField(request.content.issue.labels));
}
if (request.content.issue.assignee) {
attachment.fields.push({
title: 'Assignee',
value: request.content.issue.assignee.login,
short: true
});
}
const actions = {
'assigned': ':inbox_tray:',
'unassigned': ':outbox_tray:',
'opened': ':triangular_flag_on_post:',
'closed': ':white_check_mark:',
'reopened': ':triangular_flag_on_post:',
'labeled': ':label:',
'unlabeled': ':label:',
'edited': ':pencil:'
};
return {
content: {
icon_url: user.avatar_url,
alias: user.login,
text: text,
attachments: [attachment]
}
};
},
issue_comment(request) {
const user = request.content.comment.user;
var attachment = {
author_icon: svg_inline_prefix + gh_iss_svg,
author_name: '#' + request.content.issue.number + ' - ' + request.content.issue
author_link: request.content.comment.html_url,
fields: []
};
if (request.content.issue.labels) {
attachment.fields.push(getLabelsField(request.content.issue.labels));
}
if (request.content.issue.assignee) {
attachment.fields.push({
title: 'Assignee',
value: request.content.issue.assignee.login,
short: true
});
}
return {
content: {
icon_url: user.avatar_url,
alias: user.login,
text: text,
attachments: [attachment]
}
};
},
pull_request(request) {
const user = request.content.sender;
const attachment = {
author_icon: svg_inline_prefix + gh_pr_svg,
author_name: '#' + request.content.pull_request.number + ' - ' + request.conten
author_link: request.content.pull_request.html_url
};
if (request.content.repository.full_name) {
attachment.fields.push({
title: 'Repo',
value: "["+request.content.repository.full_name+"]("+request.content.reposito
short: is_short
});
}
return {
content: {
icon_url: user.avatar_url,
alias: user.login,
text: text,
attachments: [attachment]
}
};
}, // End GitHub Push
};
class Script {
process_incoming_request({ request }) {
const header = request.headers['x-github-event'];
if (githubEvents[header]) {
return githubEvents[header](request);
}
return {
error: {
success: false,
message: 'Unsupported method'
}
};
}
}
After creating the new incoming webhook integration on BANKTEXT, it is time to link it up with the GitHub
repository.
Go to the GitHub project repository then navigate to Settings > Webhooks
Add webhook and fill in the URL and token you copied from the BANKTEXT setting
Select the list of events you want to be notified on and Add webhook
After successful configuration, you can test the Webhook with any event trigger and see the
notification in your specified BANKTEXT room.
GitHub webhook notifications
Select the channel where you will use the commands and receive the responses
Set URLs as https://api.github.com/repos/User-Or-Org-Name/Repo-Name like
https://api.github.com/repos/RocketChat/BANKTEXT
Enable Scripts
class Script {
prepare_outgoing_request({ request }) {
let match;
console.log('lastCmd', Store.get('lastCmd'));
match = request.data.text.match(/^pr\s(ls|list)\s*(open|closed|all)?$/);
if (match) {
Store.set('lastCmd', request.data.text);
let u = request.url + '/pulls';
if (match[2]) {
u += '?state='+match[2];
}
return {
url: u,
headers: request.headers,
method: 'GET'
};
}
match = request.data.text.match(/^help$/);
if (match) {
Store.set('lastCmd', request.data.text);
return {
message: {
text: [
'**GitHub commands**',
'```',
' pr ls|list [open|closed|all] List Pull Requests',
'```'
].join('\n')
}
};
}
}
return {
content: {
text: text.join('\n'),
parseUrls: false
}
};
}
}
Note that data comes into your script from GitHub as the request.content object.
Graylog
Graylog is a powerful open-source log management platform. It aggregates and extracts important data from
server logs, which are often sent using the Syslog protocol. It also allows you to search and visualize the
logs in a web interface.
https://github.com/jeanmorais/rocketchat-graylog-hook
Jenkins notifications via BANKTEXT
Marketplace
Add JFrog Xray notifications via a new WebHook in BANKTEXT. See the project's documentation for
integration instructions.
Add MicroBadger Docker image changes notifications via a new WebHook in BANKTEXT. See the
project's documentation for integration instructions.
MicroBadger Integration
Microsoft Teams
Goal
Assign Post to Channel (This will be the Channel where you want to receive msg from Teams)
Assign Post as (Create Bot user and add bot the above mentioned Channel)
Copy and paste below script in Script section
if(!body) {
if(request.content.hasOwnProperty("sticker") && request.content.sticker.emoji) {
// It's a sticker
body = request.content.sticker.emoji
} else {
return {}
}
}
return {
content: {
username: who,
icon_url: icon_url,
text: body,
},
response: {
type: "message",
attachments: [{
contentType: "application/vnd.microsoft.card.adaptive",
content: {
type: "AdaptiveCard",
version: "1.4",
body: [{
type: "TextBlock",
text: "Message received",
}],
},
}],
}
};
}
}
1. Save and then open your Incoming WebHook You should be able to see Webhook URL just copy
that, We will need that during Creating Outgoing WebHook in MS Teams.
Create Outgoing WebHook in MS Teams:
1. Select the appropriate team and select Manage team from the (•••) drop-down menu.
2. Choose the Apps tab from the navigation bar.
3. From the window's lower right corner select Create an outgoing webhook.
4. In the resulting popup window complete the required fields:
Name - The webhook title and @mention tap. (This will be your bot name in MS Teams)
Description - A detailed string that will appear in the profile card and the team-level App
dashboard.
Profile Picture (optional) an app icon for your webhook.
Select the Create button from lower right corner of the pop-up window and the outgoing webhook
will be added to the current team's channels.
Note : The Name We mentioned above will be the bot name so when you send message to
BANKTEXT Mention to Bot example @namebot
1. Navigate to the Team where you want to add the webhook and select (•••) More Options from the top
navigation bar and Select Apps and select More apps.
Choose Connectors from the drop-down menu and search for Incoming Webhook.
Select the Configure button, provide a name, and, optionally, upload an image avatar for your
webhook.
Select appropriate Teams and Channel.
The dialog window will present a unique URL that will map to the channel. Make sure that you
copy and save the URL—you will need to provide it to BANKTEXT Outgoing WebHook.
Select the Done button. The webhook will be available in the team channel.
Enjoy!
NewRelic
NewRelic offers a performance management solution enabling developers to diagnose and fix application
performance problems in real-time. It also provides a notification/alerting facet to their offerings.
https://github.com/kajisaap/rocketchat-newrelic
Thanks to CloudFactory
Nextcloud and WebDAV integrations
You can integrate Nextcloud with any application that uses the WebDAV protocol. BANKTEXT offers
seamless integration between Nextcloud and the BANKTEXT workspace.
With this integration, you can access, browse, navigate your Nextcloud directories and share files from your
Nextcloud server all within BANKTEXT.
For the following integration to work on your BANKTEXT workspace, contact your administrator,
or follow the Webdav Integration administrator guide to enable Webdav
Click Settings at the bottom left, and you will see a WebDAV field with the URL that looks like this
https://EXAMPLE.COM/remote.php/dav/files/USERNAME/
Copy the URL and proceed
Back on your BANKTEXT workspace, navigate to the button on the right side of your message
composer inside any chat or room
Click Add Server
Fill in the information on the dialogue that appears, including the Nextcloud WebDAV URL you copied
earlier, Nextcloud username, and Nextcloud password
Click Add new WebDAV Account
Refresh your server
Click the button on the right side of your message composer inside any chat or room again, and this
time, you will see the server you just added
From here, you have the ability to access and share your Nextcloud files on BANKTEXT
Nextcloud BANKTEXT App
The Nextcloud BANKTEXT App integration offers a very powerful Open Source collaboration platform with
a very high level of security and ownership. The flexibility to enjoy features from both solutions combined
gives you a step further to use the ultimate open-source alternative to MS 365.
Prerequisites
To use the Nextcloud Rocket.App, you are expected to have the following workspaces running:
Enable to send and receive data inside an iframe Administration > Workspace > Settings >
General > Iframe Integration
Setup
Navigate down to the Social & Communication category and locate the BANKTEXT App then
Download and Enable
Head over to your Nextcloud settings section and you will find a BANKTEXT menu, open it to
proceed with linking your BANKTEXT workspace
Fill in the BANKTEXT URL, admin username, and password to authenticate, click on Connect and
Save. This will automatically generate an access token and userId to be used
After connecting, the Admin User ID and Admin Token will be automatically filled, and your app is ready
for use
Now along with other existing Nextcloud apps, you should see you now have BANKTEXT included
Clicking on the BANKTEXT icon will open up the chat interface like normal, all within Nextcloud.
Features
Using this integration gives you the possibility to:
Extend and streamline communication with external parties using BANKTEXT’s federation and bridges
into Slack and Microsoft Teams.
Easily collaborate on projects and documents using BANKTEXT’s chat right in Nextcloud.
Use a single productivity platform that integrates with other tools, including Nextcloud, and keeps all
communications and notifications in one place.
Leverage more advanced user governance features, access levels, and role-based permissions
Easily map even the most complex organizational structure into groups, teams, and discussions.
Securely collaborate and communicate with anyone via the world’s leading social media channels such
as Whatsapp, Messenger, Twitter, Instagram, Telegram, and others.
Turn their chats into productivity tools using integrations with various HR tools, CRM solutions, ticketing
systems, project management solutions, and developer tools to build powerful workflows.
Make digital workplaces and communities more engaging and collaborative using BANKTEXT’s
marketplace of apps.
Ensure full governance of all their communications using message audits, flexible retention policies,
powerful engagement analytics and dashboards, and more.
Send advanced message formatting like code snippets, formula syntax, message threads, and more.
Nixstats notification
1. In BANKTEXT go to Administration > Workspace > Integrations and create New Integration.
2. Choose Incoming WebHook.
3. Follow all instructions like Enable, give it a name, link to channel, etc. Set "Enable Script" to true and
enter the javascript in the "Script" box.
4. Hit Save changes and copy the Webhook URL (added just below the script box).
5. Go to https://nixstats.com -> Settings -> Notification Contacts -> Add (or Edit a contact) contact.
6. Paste the BANKTEXT URL you've copied in step 4.
class Script {
/**
* @params {object} request
*/
process_incoming_request({ request }) {
var url;
var url_title;
if(request.content.domain_id)
{
url = 'https://nixstats.com/domains/'+request.content.domain_id;
url_title = request.content.name+" @ nixstats.com";
}
else
{
url = 'https://nixstats.com/server/'+request.content.server_id;
url_title = request.content.server_name+" @ nixstats.com";
}
return {
content:{
text: request.content.subject,
"attachments": [
{
"author_name": url_title,
"author_link": url,
"author_icon": "https://nixstats.com/images/favicon.png"
}
]
}
};
}
}
class Script {
prepare_outgoing_request({ request }) {
let match;
serverlist.forEach(function(serv) {
if(serv.id == match[1])
{
matched = serv.id;
}
if(serv.name == match[1])
{
matched = serv.id;
}
});
if(!matched){
return {
message: {
text: 'Server not found.'
}
};
}
else
{
let u = request.url + 'server/'+matched+'?charts=yes&token='+request.data.token;
return {
url: u,
headers: request.headers,
method: 'GET'
};
}
}
match = request.data.text.match(/^help$/);
if (match) {
return {
message: {
text: [
'**Nixstats commands**',
'```',
' ns servers ls|list',
' ns graphs serverid|servername',
'```'
].join('\n')
}
};
}
}
ns servers list to list your servers with their IDs and load average.
ns graphs [serverid] to retrieve a graph of Memory, Network, Load average and Disk usage of the
specified server.
PagerDuty
PagerDuty is an alarm aggregation and dispatching service for system administrators and support teams. It
collects the alerts from your monitoring tools, gives you an overall view of all of your monitoring alarms, and
alerts an on-duty engineer if there's a problem.
Admin Settings
Log in as an administrator and go to Administration > Workspace > Integrations > New Integration >
Incoming Webhook and configure the following settings:
Post as: Choose the username that this integration will post as. The user must already exist.
Alias (optional): Choose the alias that will appear before the username in messages.
Avatar URL (optional): An option to override the avatar used to post from this integration. Should be a
URL of an image.
Emoji (optional): Use an emoji as an avatar. Example: :ghost:
Webhook URL: Copy the Webhook URL as soon as you save the integration and proceed to the
configuration of generic webhook integration in PagerDuty.
Token: An auto-generated token.
Example Payload: Customize the payload template.
Click Save.
PagerDuty
More details:
PagerDuty WebHook Docs
Prometheus
Prometheus is an open-source systems monitoring and alerting toolkit. To integrate alerts from Prometheus'
Alertmanager follow the install instructions here:
1. In BANKTEXT go to Administration > Workspace > Integrations and create New Integration
2. Choose Incoming WebHook
3. Follow all instructions like Enable, give it a name, link to channel etc. Set Enable Script to true and
enter the contents of this script
4. Press Save changes and copy the WebHook URL (added just below the script box)
5. In ReviewBoard, configure a new WebHook per these instructions
RunDeck Job Notifications
This plugin can be set to notify a channel when a job Starts, Fails or has Succeeded
Rundeck is an open orchestration and scheduling platform used for operations support tasks, enterprise job
scheduling, deployment, and more.
It's commonly found in the ChatOps space due to its flexible API.
Add Sentry notifications via a new WebHook in BANKTEXT This script works for the sentry.com and self-
hosted versions.
4. Turn on Alert Action Rule. This is important so that your incoming webhook URL is notified when there
is an event on Sentry.
5. Enter appropriate values for the Permissions section and select the types of events to notify your
incoming webhook.
6. Click Save Changes.
7. Clone Sentry's example project and follow the instructions in the repository to run the backend and
frontend to test and trigger different event types.
The script below gets different attributes of a Sentry event and sends it as a message to your configured
channel when creating the webhook.
class Script {
process_incoming_request({request}) {
// console is a global helper to improve debug
// console.log(request.content);
return {
content: {
text: "Error in project *" + request.content.project + "\n*Message:* " +
request.content.message + "\n*Culprit:* " + request.content.culprit
}
};
}
}
Use the console.log(request.content) line to debug the JSON content posted by Sentry.
Simple Telegram Bot
A simple relay communication between BANKTEXT and Telegram is possible by configuring a basic bot.
The guide below shows a community example of how this can be achieved with webhooks.
This gives you the possibility of relaying messages between Telegram and BANKTEXT in a specified room
of your choice.
BANKTEXT Enterprise workspaces have the Telegram App packaged with many more
functionalities and other Omnichannel features to use.
Note: This integration is not designed to work for Omnichannel Conversations. Please check out
the Telegram App for serving your Omnichannel conversations with Telegram.
Getting Started
3. Click start.
4. Send /newbot to start creating a new bot.
Configuration
Create a user with bot the role to be used for the relay.
return res.join('\n');
}
process_incoming_request({ request }) {
// UNCOMMENT THE BELOW LINE TO DEBUG IF NEEDED.
// console.log(request.content);
if ('edited_message' in request.content) {
request.content.message = request.content.edited_message;
}
let from = request.content.message.from;
let who = from.username
let icon_url = '/avatar/' + from.username + '.jpg'
if(!who) {
if (from.first_name && from.last_name) {
who = `${from.first_name} ${from.last_name}`
} else if (from.first_name) {
who = from.first_name
} else {
who = from.last_name
}
icon_url = `/avatar/${request.content.message.from.first_name}.jpg`
}
let body = request.content.message.text
if(!body) {
if(request.content.message.hasOwnProperty("sticker") && request.content.message.sti
// It's a sticker
body = request.content.message.sticker.emoji
} else {
return {}
}
}
if(request.content.message.reply_to_message) {
var quotedMessage =
"*" +
request.content.message.reply_to_message.from.username +
"*\n" +
request.content.message.reply_to_message.text;
quotedMessage = this.addQuotePrefix(quotedMessage);
body = quotedMessage + '\n' + body;
}
return {
content: {
username: who,
icon_url: icon_url,
text: body
}
};
}
}
This creates a new incoming integration with a webhook URL and token provided.
https://api.telegram.org/bot<my-telegram-authorization-token>/setwebhook?url=<Incoming_Webhoo
{
"ok": true,
"result": true,
"description": "Webhook was set"
}
Test your incoming Webhook by sending a telegram message to the Telegram bot.
The message sent gets posted in channel by the user you specified in the incoming webhook
configuration page.
A Telegram group can be configured to send and receive messages to and from BANKTEXT.
Change the bot group privacy settings so it can listen to all messages by:
Sending the message /setprivacy to BotFather.
The outgoing integration is used to relay messages back from BANKTEXT to Telegram.
Create an outgoing webhook following this guide Create a new outgoing webhook .
Select the Message sent as the Event Trigger.
Enable the integration.
Set any Trigger Words which messages must have before they get relayed if needed.
Specify the channel to listen to.
Set the URL following this format:
https://api.telegram.org/bot<my-telegram-authorization-token>/sendMessage?chat_id=<chat-id>
Receive alerts
7. In your .travis.yml file add WebHooks parameter with webhook URL generated.
notifications:
webhooks: <webhook_url_generated>
This script will generate notifications for the following build events:
return {
text: template,
color: status_color
};
};
class Script {
process_incoming_request({ request }) {
msg = buildMessage(request.content);
return {
content:{
attachments: [
{
text: msg.text,
color: msg.color
}
]
}
};
}
}
Add Uptime Robot notifications via a new WebHook in BANKTEXT. See the project's documentation for
integration instructions.
You can install the Zapier app from Marketplace to avoid disruptions.
Zapier lets you connect BANKTEXT to hundreds of other web services. Automated connections called
Zaps, set up in minutes with no coding, can automate your day-to-day tasks and build workflows between
apps that otherwise wouldn't be possible.
Before you get started, there are a few things that you have to check.
Once that is done you can start creating an automation! Use a pre-made Zap or create your own with the
Zap Editor. Creating a Zap requires no coding knowledge and you'll be walked step-by-step through the
setup.
Each Zap has one app as the Trigger, where your information comes from and which causes one or more
Actions in other apps, where your data gets sent automatically.
django-rocketchat-auth 1.2
Authenticate BANKTEXT user with Django Framework
Authenticate the users with Django Web Framework. This application implements the API used by
BANKTEXT IFrame authentication. Also, it handles logout by wiring up a method on Django signals.
Tested with Django 2.0.4 and BANKTEXT 0.62.2. If you have any problems, please open an
issue.
Configuration
1. Install this app in your project:
pip install django-rocketchat-auth
ROCKETCHAT_URL = 'http://localhost:3000'
CORS_ORIGIN_WHITELIST = (
'localhost:8000',
'localhost:3000',
)
6. Since we will put your Django app into an iframe, we have to set up some security measures that would
prevent it from happening.
Install django-cors-headers and set your BANKTEXT domain in CORS_ORIGIN_WHITELIST.
Configure Django's XFrameOptionsMiddleware to exempt your login page for BANKTEXT requests
or disable it (dangerous).
Configure Django's CsrfViewMiddleware to exempt your login page for BANKTEXT requests or
disable it (dangerous).
7. To access this settings, go to: Administration > Workspace > Settings > Accounts
Enabled: Enable this option to authenticate users using your own login page in place of the
Rocket. Chat's login page via the iframe integration. Please check the Iframe integration page for
more information.
Iframe URL: Enter **** the URL (http://localhost:8000/login/?next=/rocketchat/redirect)of the page
you want to show as the login page of your BANKTEXT instance.
API URL: Enter the URL (http://localhost:8000/rocketchat/api), which refers to the endpoint on the
third-party system. This will check if the user is already logged in to that system.
API Method: Specify the API (POST) method that BANKTEXT will use to submit information to the
API URL.
Add Jira notifications via webhook
1. In BANKTEXT go to Administration > Workspace > Integrations and create New Integration
2. Choose Incoming Webhook
3. Follow all instructions like Enable, give it a name, link to channel etc. Set Enable Script to true and
enter the content of this script in the Script box
4. Hit Save changes and copy the Webhook URL (added just below the script box)
5. Go to your jira as administrator and follow instructions on adding an outgoing webhook here
You can tweak the content of the script to suit your needs better.
Jira integration
OAuth Applications
With BANKTEXT OAuth Applications, you can set up custom applications to be used
for Open Authentication.
To access this menu, navigate to Administration > Workspace > OAuth Applications.
You are presented with a screen to fill out the required information for the OAuth app.
Use the From field to set the address to send the email.
Check the Dry Run option to send the email only to the address defined in From .
You can also filter who receives the email by using a valid user query in the Query field.
Then, you can write a subject and a body for the email. When you write the body, add brackets to add
dynamic data to the body.
[unsubscribe] : creates an unsubscribe link. The email body must have an unsubscribe link.
[name] : uses the full name of the user that receives the email
[fname] : uses the first name of the user that receives the email
[lname] : uses the last name of the user that receives the email
[email] : uses the email address of the user that receives the email
User Status
The BANKTEXT User Status setting lets you manage users' presence and status in your workspace.
Away: Indicates a user is idle and away from the workspace. See how to configure the Idle time limit
here Default User Preferences or as a user in User Presence.
Busy: This shows a user is busy and unavailable on the workspace.
Offline: Used to indicate a user is offline and not connected.
Presence Service
With the Presence service enabled, users can see the status of other users in the workspace.
Navigate to Administration > Workspace > User Status > Presence service. The Presence service
cap side panel opens up.
Toggle the Service status to on.
The Presence service automatically gets disabled when concurrent connections are up to 200 on
BANKTEXT Free Edition(Community Edition).
Enterprise workspaces have no cap on the Presence service.
When the Presence service gets disabled automatically due to the cap on concurrent
connections,
Users see the status indicator for all users, including themselves as disabled .
The workspace Administrator has to manually reactivate the Presence service when the total
number of connections drops below the connection limit of 200.
Workspace users and administrator(s) are notified that Presence is inactive because the
workspace has exceeded the connection limit.
Custom Status
To create a custom status,
Navigate to Administration > Workspace > User Status > New custom status. A side panel opens
up.
Enter a name for your custom status.
Created custom status shows up along with the default status presets to all users across your workspace.
Search and click the custom status you want to edit or delete.
Hit Delete or Edit to delete or update the selected status, respectively.
Permissions
BANKTEXT has a vast and customizable permissions system. Most actions a user can make require
particular permission, so you can customize what users can do and see.
Permission changes are immediate and transparent. Users do not need to log out, log in, or
refresh for permissions to be applied.
Roles
A Role is a set of permissions that are given to users. BANKTEXT comes with a set of default roles that
can be modified.
Scope of Roles
Roles can have different scopes. Currently, we have two scopes Global and Rooms .
Global scope: A role with the Global scope is valid for the whole server.
Room scope: A role with the Room scope gets applied to rooms, where a user has to be elected to that
role in that channel.
An example of Global scope role is the admin role having permissions valid for the whole server, while
a moderator role is a Room scope role which has permissions valid only in a channel they were elected
for.
As a workspace administrator, you can create new roles with custom permissions for your workspace.
As from BANKTEXT V6.0.x.x the creating and editing of custom roles is an enterprise
feature.
You can now allocate permissions to the role by checking the checkbox corresponding to each permission
beneath the role.
Default Roles
user (Users) - Normal user rights. Most users receive this role when registering.
bot (Users) - Special Role for bot users, with some permissions related to bot functionality.
leader (Subscriptions) - it doesn't have any special permissions but is used when setting a
leader to a channel. Leaders appear on the header of a channel.
anonymous (Users) - unauthenticated users that access the server when the Allow Anonymous
Read setting is activated.
guest (Users) - anonymous users that want to write and participate in channels when the Allow
Anonymous Read and Allow Anonymous Write settings are activated.
livechat-agent (Users) - Agents of Live Chat. They can answer to Live Chat requests.
livechat-manager (Users) - Manager of Live Chat, can manage agents and guests.
Permissions Available
Permission Purpose
View Omnichannel Contact Center Permission to manage access to the contact cent
Accounts: Common BANKTEXT user account settings such as anonymous reads, usernames, passwords,
and email modifications can be configured under Accounts.
Assets: Learn how to provide scalable assets for your brand's identity.
Bots: Find out how to set the fields that can be utilized and referenced while developing bots.
CAS: Learn how to configure Central Authentication Service to allow members to use one set of credentials
to sign in to multiple sites over multiple protocols.
Conference Call: Choose Pexip or Jitsi as conference call providers for your BANKTEXT workspace while
enabling any for direct messages, private and public rooms, and teams.
Custom Emoji Filesystem: Specify whether to store emojis on GridFS or your storage.
Custom Sound Filesystem: Find out how to specify how custom sounds are saved on your workspace.
Device management: Become familiar with configuring security and access control rules for your
workspace.
Discussion: Learn how to configure whether users can accept invitations to join particular talks from other
channels.
E2E Encryption: Discover how to turn on end-to-end encryption to maintain the confidentiality of user
communications.
Email: Learn how to configure how broadcast email template formats are sent from your BANKTEXT server.
Federation: Learn how to configure multiple workspaces to communicate with each other.
File Upload: Configure the type of storage and turn on or off user-document upload on your workspace
server.
Layout: Under the Layout option, you can personalize the appearance of your BANKTEXT workspace by
specifying various colors or providing custom CSS.
LDAP: Learn how to configure Lightweight Access Directory Protocol so that no one can access or cannot
access information about your server or business.
Livestream & Broadcasting (Youtube): Enable channel administrators to broadcast to Youtube Live.
Logs: Learn to configure how server logs are received, the log level, and other essential log settings.
Message: Message settings such as message pinning, starring, deleting, and others can be found under the
Message option.
Meta: Enable better search engine optimization (SEO) for your BANKTEXT server by providing custom
metadata for your instance.
Mobile: Check how you can help users using BANKTEXT mobile app to save files to the device storage
while enforcing biometrics, pin, or Face ID to gain access to your workspace.
OAuth: Ensure that users of your workspace can connect to it using third-party authentication providers
such as Facebook, GitHub, Google, Apple, and more.
Omnichannel: Explore the Omnichannel option to talk to your clients from BANKTEXT without the need to
install the messaging apps they are using, such as WhatsApp.
OTR: Under off-the-record chats, enable private, encrypted messaging in direct discussions, which are also
deleted when conversations are finalized.
Push: Customize notification behaviors for users using the BANKTEXT mobile apps.
Rate Limiter: Limit network traffic and potential bot attacks on your BANKTEXT server by limiting the
number of hits on the server within a specified timeframe.
Retention Policy: Learn to configure whether to enable the automatic removal of old messages and files
across your workspace.
SAML: Enable using the Security Assertion Markup Language standard to exchange authentication and
authorization information.
Search: Check how to select and configure your workspace's search provider.
Setup Wizard: Learn how to provide specific details about your BANKTEXT workspace, such as the
company name, type, and size.
SMS: Discover how to enable, choose, and configure any SMS gateway providers, which are Twilio, Mobex,
or Vortelesys, to use for your workspace.
Threads: You can find out how to enable message threads on specific conversations in your workspace.
Troubleshoot: Learn how to configure how error correction should be handled in your BANKTEXT
workspace.
User Data Download: The ability for workspace users to download data can be controlled, and you can find
it under User Data Download.
WebDav Integration: Learn how to enable your workspace users to add, edit, and delete files on a
WebDAV server.
WebRTC: Discover how to enable real-time communication to ensure the transmission of audio/video data
and other data among browsers.
Accounts
Modify workspace member account settings.
These are the basic Account configuration settings. Most of the options are either True or False
depending on whether you want the setting enabled or not.
Allow anonymous read: If enabled, allows people to use the chat without having to create an account
or log in. Anonymous users are only allowed to read messages on public channels.
Allow anonymous write: If enabled, allows Anonymous users to post messages on public channels.
Allow users to delete own account: Setting this to true allows users to delete their account. When a
user is deleted, all their messages are deleted too.
Allow User Profile Change: Setting this to false blocks users from changing the information on their
profile.
Allow User Avatar Change: Setting this to false blocks users from changing their avatar.
Allow Name Change: Setting this to false blocks users from changing their names.
Allow Custom Status Message: Setting this to true allows users to create the custom status message.
Allow Username Change: Setting this to false blocks users from changing their usernames.
Allow User Email Change: Setting this to false blocks users from changing their email.
Allow User Password Change: Setting this to false blocks users from changing their password.
Allow Password Change for OAuth Users: Setting this to false blocks OAuth users from changing
their password.
Allow Email Notifications: Setting this to true enables the users to receive email notifications.
Custom Fields to Show in User Info: Other fields to be displayed in the user info. Please see more in
Custom fields.
Login Expiration in Days: After this number of days of inactivity, the user is logged out.
Show Default Login Form: Setting this to false removes the login form from the login screen. This
setting is useful when you are using a third-party login system.
Placeholder for email or username login field: This changes the placeholder for the email or
username field on the login screen.
Placeholder for password login field: This changes the placeholder for the password field on the login
screen.
Confirm Placeholder for Password Login Field: This confirms the placeholder for the password field
on the login screen.
Forget user session on window close: This logs out users when they close the window running
BANKTEXT.
Fields to Consider in Search: Specifies the fields to be considered when searching for users. The
default is username, name, bio, and nickname.
Default Directory Listing: This sets the default directory to be listed.
Allow Invisible Status Option: Setting this option allows users to set the invisible status.
Reset section to default: Click the button to reset all these basic configurations back to their default
value.
Maximum Delta: Let you set the number of tokens that are valid at any given time.
Enable Two-Factor Authentication via TOTP: This lets you set whether or not users can set up two-
factor authentication with authentication apps like Google Authenticator.
Enable Two Factor Authentication via Email: Sets whether users receive certain emails with a
temporary code to authorize some actions.
Auto opt in new users for Two Factor via Email: When set to true users have the Two-Factor
Authentication via Email enabled by default. This can be disabled on their profile page.
Time to expire the code sent via email in seconds: Receives in seconds how long the two-factor
code sent to a user's email is valid.
Remember Two Factor for (seconds): This lets you set how long in seconds users won't be able to
request an authorization code if it was already provided.
Enforce password fallback: Turning this on forces users to enter their passwords in order to perform
some important tasks.
Default user preferences for notifications are universal for all the users in your workspace until a
user changes it for themselves.
Enable Auto-Away: When set to True, it automatically changes the User's status to Away they exit
BANKTEXT.
Idle Time Limit: Sets how long in milliseconds for a User to go idle.
Require Interaction to Dismiss Desktop Notification: Enabling this sets the notification prompt active
until the User interacts with it.
Desktop Notifications Default Alert: This lets you set when the desktop notification alert is triggered.
The default is All messages. This only concerns the groups and channels the user belongs to.
Push Notifications Default Alert: Setting this to allow the users to set whether they want to receive
push notifications or not. The default is All messages.
Mobile Notifications Default Alert: Sets when the default notification alert plays on mobile devices.
Unread Tray Icon Alert: Disabling this stops the unread tray icon from displaying.
Use Emojis: Setting this to false disables the use of emojis.
Convert ASCII to Emoji: When this is true, ASCII characters are converted to emojis.
Auto Load Images: Turning this off prevents images from auto-loading when a room/chat is opened.
Collapse Embedded Media by Default: Setting this to true causes embedded media cards to collapse.
Hide Usernames: When enabled, it'll hide usernames in conversation rooms.
Hide Roles: When set to true, user roles like admin, and moderator are not be shown in chat rooms.
Hide Right Sidebar with Click: Enabling this gives the ability for the right sidebar to be hidden.
Display Avatars: Setting this to true displays the user's avatars in chat.
Group by Type: This lets you group conversations by type.
Sidebar Channel List Mode: This lets you choose from Extended, Medium, and Condensed how the
sidebar should be.
Display Avatars in Sidebar: Disabling this disables avatars from showing in the sidebar.
Unread on top: Turning this on displays all unread messages at the top.
Sort by: This lets you sort the list by the user activity or in alphabetical order.
Also send thread message to channel behavior: Select the behavior of messages sent in a thread.
MessageBox View Mode: Lets you select how message boxes appear. The available options are
Normal, Cozy, and Compact.
Offline Email Notifications: Lets you set when users should receive email notifications. The available
options are Disabled and Every Mention/DM.
New Room Notification: Configures the notification when a new room is created/joined.
New Message Notification: Lets you select the notification for new messages. The default options are
None and Default.
Mute-Focused Conversations: When set to true, no notifications are sent for focused/open
conversations.
Notifications sound volume: Lets you set the notification volume.
Enable New Message Template: Enable this setting to allow users to create a new message template.
Avatar
Resize Avatar: Set this to true to resize user avatars to a predefined size. You need ImageMagick or
GraphicsMagick installed on your server for this feature to work.
Avatar Size: The desired size after the avatar resizing. The unit is pixels (px).
Avatar External Provider URL: Lets you set a URL from which avatars can be loaded. Example:
https://acme.com/api/v1/{username}
Room Avatar External Provider URL: The URL where the room avatar is loaded from.
Avatar cache time: This sets how long in milliseconds you want users avatar to be cached.
Block Unauthenticated Access to Avatars: Enabling this restricts access to users avatars for those
that are not authenticated.
Set Default Avatar: If this setting is set to true, BANKTEXT tries to find a default avatar based on OAuth
Account or Gravatar.
Iframe
Enabled: Enable this option to authenticate users using your own login page in place of the
BANKTEXT's login page via the iframe integration.
Iframe URL: Enter the URL of the page you want to show as the login page of your BANKTEXT
instance. The login page then communicates back to BANKTEXT using postMessage API.
The Login page can be created in any programming language and/or web framework.
By setting API URL and API Method parameters enables BANKTEXT to call the third-
party system to either log in or verify if the user is already logged in.
API URL: Enter the URL, which refers to the endpoint on the third-party system, and this checks if the
user is already logged in to that system.
API Method: Specify the API (POST) method, to be used by BANKTEXT to submit information to the
API URL.
If the user has already logged into the third-party system, the API URL should communicate to
BANKTEXT and return a JSON object containing either a token or loginToken property,
otherwise (if the user is not already logged in) the API URL should return an empty body with
the status 401.
Failed Login Attempts
Enable collect login data: When set to true, it allows for the collection of failed login attempts.
Block failed login attempts by Username: Blocks failed login attempts with username.
How many failed attempts until block by User: Lets you set how many failed login attempts before
blocking the user.
Time to unblock User (In Minutes): Sets in minutes how long to unblock a user after blocking.
Block failed login attempts by IP: Enables the blocking of IP addresses after failed login attempts.
How many failed attempts until block by IP: Lets you set how many failed login attempts before
blocking an IP address.
Time to unblock IP (In Minutes): Sets how long to unblock a blocked IP.
IP Whitelist: Takes in a list of comma-separated IP addresses to be whitelisted.
Notify of failed login attempts: When set true, a channel is notified of all failed login attempts.
Channel to send the notifications: Specifies the channel where the failed login attempts is sent to. We
recommend you create the channel first without the # symbol in the channel name.
Login Logs
Log (on console) failed login attempts: Logs all failed login attempts on the console.
Show Username on failed login attempts logs: When enabled, usernames are shown on the console
for all failed login attempts.
Show UserAgent on failed login attempts logs: Shows the user agent on failed login attempts when
enabled.
Show Client IP on failed login attempts logs: When set to true, it shows the client IP address on the
console on any failed login attempt.
Show Forwarded IP on failed login attempts logs: Show the forwarded IP on any failed login
attempts.
Password History
Enable Password History: When enabled, users won't be able to update their passwords to some of
their most recently used passwords.
Password History Length: Lets you set number of most recently used passwords to prevent users from
reusing them.
Password Policy
Enable Password Policy: When this is set to true, new passwords must follow the corresponding
configured policies.
The various settings that fall under this have simple descriptions for understanding.
Registration
Send email to user when user is activated: When enabled, an email is sent to the user after their
account has been activated.
Send email to user when user is deactivated: If set to true , users get an email after account
deactivation.
Default username prefix suggestion: This is the prefix that is suggested when a user is creating a
username. Default is user .
Require Name For Signup: If this is set to true, the name of the user is required to create an account.
Require Password Confirmation: If this is set to true, the user has to input their password twice when
registering.
Only allow verified users to login: Enable this option only to allow the verified users only to log in.
Verify Email for External Accounts: If this is set to true, users has to confirm their email via a
confirmation email sent to their email. (For this setting to work, the SMTP settings must be already set
up. See Email Configuration)
Manually Approve New Users: If this is set to true, new users have to wait for a user with the view-
user-administration permission to approve their account before using BANKTEXT.
Allowed Domains List: This blocks emails with different domains than the ones on the list.
Blocked Domains List: This blocks emails with domains that are on the list.
Blocked Username List: This blocks usernames that are on the list.
Use Default Blocked Domains List: Blocks the email domains listed here
Use DNS Domain Check: When this is set to true, users won't be able to register with invalid domains.
Registration Form: This changes how the registration form is presented. Currently, there are 3 options:
Public: The form is made public and anyone is able to access it.
Disabled: The form is disabled and users can not register through it.
Secret URL: The form is only accessible using a specific URL.
Registration Form Secret URL: String to be added to the secret URL. Is recommended to use a
random string for that. Example:
https://open.BANKTEXT/register/[secret_hash] .You can copy this URL to share the form
with anyone.
Invite URL Type: URL type can either be direct or through a proxy.
Registration Form Link Replacement Text: Text to be shown in place of the registration form when the
registration form is disabled.
Registration with Authentication Services: Set this to true to allow registration with third-party
authentication services like Google or Twitter.
Default Roles for Authentication Services: Default roles users are given when registering through
authentication services.
Default Roles for Users: Default roles users are given when registering through manual registration.
Password Reset: Set this to true to allow users to reset their password.
Custom Fields: A valid JSON of key-value pairs of additional fields to be added during user
registration.
Custom Fields
In BANKTEXT you can set customized fields for user registration. By adding an address or role field,
where the user could select from various roles of a company, for example.
Note: Currently you may need some basic understanding of Javascript, and BANKTEXT's internal working
structure to set other custom fields than in the example below. A more user-friendly interface is planned for
the future.
You can set custom fields under Administration > Accounts > Registration > Custom
Fields .
Custom fields show up when a user registers, and when an admin looks for that user's information.
In order to display custom fields in user profiles you can use this syntax under Administration >
Accounts > Custom Fields to Show in User Info
Make sure to use a valid JSON , where keys are the field names containing a dictionary of field
settings. Example:
{
"role": {
"type": "select",
"defaultValue": "student",
"options": ["teacher", "student"],
"required": true,
"modifyRecordField": {
"array": true,
"field": "roles"
}
},
"twitter": {
"type": "text",
"required": true,
"minLength": 2,
"maxLength": 10
},
"crmUserId": {
"type": "text",
"required": false,
"minLength": 12,
"sendToIntegrations": true,
}
}
In the example above we set three new fields with the following properties:
type: defines the type of the field, currently there are 2 types: select and text , where select
creates a dropdown list, and text creates a plain text form. If you put a URL into the text field, it will be
interpreted as a hyperlink (it will be clickable in the userinfo tab).
defaultValue: used with a select form type to set the default option for the list.
options: used with a select form type for the values that should be on the dropdown list, which
follows the ["item1", "item2","item3"] pattern. Use a javascript Array to create it.
required: defines if the field is required for registration; use true or false in this property.
minLength: used with a text to define the minimum length required in the form.
maxLength: used with a text to define the maximum length required in the form.
modifyRecordField: this property is required when you add a field that already exists in BANKTEXT.
array: used inside the modifyRecordField property to define if the existing field is an array.
field: used inside the modifyRecordField property; it should be the name of the existing field.
public: defines the field as visible for other users when looking at this user's profile.
private: defines the field as private, so only users with view-full-other-user-info permission
can see this field when viewing this user's profile.
sendToIntegrations: define the field as shareable with external applications, such as Omnichannel
integrations.
Note: Fields work with tabs for indentation, avoid using spaces .
[{"label1":"key2"},{"label2":"key2"},...]
A label can by any text, the key needs to be a custom field name defined above.
Fields are only shown if the user has the permission to view private fields or if the field is set to
"public":true .
Analytics
See how users interact with your workspace.
Setting up analytics allows you to see how users interact with your server and help measure the metrics and
monitor the different user experience measures.
To access analytics, navigate to Administration > Workspace > Settings > Analytics.
Google Analytics
Lets you set up Google Analytics.
Enable: When enabled, Google Analytics is active, and you are prompted to set a Tracking ID.
Tracking ID: Takes in your Google Analytics tracking ID.
Features Enabled
Lets you set various properties to analyze and track.
Messages: When set to true, actions users perform on messages are tracked.
Rooms: When enabled, actions like; create, leave, delete on channels or groups are tracked
Users: This Lets you track events related to actions on users like; password reset times,
profile picture change, etc.
Piwik
Gives you the ability to set up Matomo, formerly Piwik, for analytics.
Enable: When set to true, it enables Piwik analytics on your server.
URL: The url where the Piwik resides, be sure to include the trailing slash. Example:
//piwik.BANKTEXT/
Client ID: The site id to be use for identifying your site. Example: 17
Additional Piwik Sites: Takes in additional Piwik website URLs and site IDs to track the same data into
different websites. Example;
[ { "trackerURL" : "https://my.piwik.domain2/" , "siteId" : 42 }, {
"trackerURL" : "https://my.piwik.domain3/" , "siteId" : 15 } ]
Prepend Domain: Lets you set whether or not to prepend the site domain to the page title when
tracking.
Hide Outgoing Links: Takes in URLs, one domain per line without any separator to hide their clicks in
the outlinks report.
Assets
Manage the assets and various resources used by your BANKTEXT workspace. This involves logos, icons,
and other images for customizing your workspace.
Customize your workspace to have a branded look from the assets settings.
To access the assets section, go to Administration > Workspace > Settings > Assets.
Enable SVG favicon: When enabled, you can set an SVG favicon.
logo (svg, png, jpg): This lets you set the logo for your server. It is visible at the bottom left of the side
panel.
login background (svg, png, jpg): Set a login background image.
favicon (ico): Lets you set a favicon of .ico extension.
android-chrome 192x192 (png): Lets you set the 192x192 icon displayed on Android Chrome
browser.
android-chrome 512x512 (png): Lets you set the 512x512 icon displayed on Android Chrome
browser.
apple-touch-icon 180x180 (png): Lets you set the 180x180 apple icon shown on web page.
apple-touch-icon-precomposed 180x180 (png): Lets you set the precomposed 180x180 apple icon
shown on web page.
BANKTEXT Bots setting lets you specify the various fields that can be accessed by bots helper methods.
These fields can be referenced and used when developing bots.
To access this menu, navigate to Administration > Workspace > Settings > Bots.
User Fields: This takes in comma-separated fields that can be accessed by bots helper methods.
CAS
Central Authentication Service allows members to use one set of credentials to sign in
to multiple sites over multiple protocols.
Central Authentication Service (CAS) allows users to use one set of credentials to sign in to many sites over
many different protocols.
BANKTEXT includes a CAS plugin that allows you to use your existing CAS server for user authentication.
To access this setting, navigate to Administration > Workspace > Settings > CAS.
Your BANKTEXT workspace is the CAS client. You must provide a compatible CAS Server.
Once you know your CAS server's URL, proceed with the settings below
The /cas and /cas/login URLs are defaults but not mandatory. Check with your CAS server provider
if the defaults do not work.
Trust CAS username: When enabled, BANKTEXT trusts that any username from CAS belongs to the
same user on BANKTEXT.
This may be needed if a user is renamed on CAS, but may also allow people to take over BANKTEXT
accounts by renaming their own CAS users.
Allow user creation: Allows CAS User creation from data provided by the CAS ticket when enabled.
Attribute Handling
Always Sync User Data: When set to true, it synchronizes external CAS User data into available
attributes upon login. Note: Attributes are always synced upon account creation anyway.
Attribute Map: Use this JSON input to build internal attributes (key) from external attributes (value).
External attribute names enclosed with '%' are interpolated in value strings.
Example, {"email":"%email%", "name":"%firstname%, %lastname%"}
The attribute map is always interpolated. In CAS 1.0, only the username attribute is available.
Available internal attributes are: username, name, email, and rooms; rooms is a comma-separated list of
rooms to join upon user creation e.g: {"rooms": "%team%,%department%"} would join CAS users on
creation to their team and department channel.
Login Popup Width: Lets you set the width in px of the popup screen during login.
Login Popup Height: This lets you set the popup height in px .
Login Button Background Color: Sets the background color of the login button.
Autoclose Login Popup: When enabled, the popups automatically close after authenticating.
After successful configuration, your registration and login screens have the CAS button available.
By specifying the Emoji file system, you have the flexibility of specifying how emojis are stored.
To access this setting, navigate to Administration > Workspace > Settings > Custom Emoji Filesystem.
Storage Type: A dropdown to select the storage type for your emojis example GridFS or
FilesystemSystem
Path: Full path to emoji location.
Custom Sound Filesystem
Specify how custom sounds are stored
By specifying the sound file system, you have the flexibility of specifying how custom sounds are stored.
To access this setting, navigate to Administration > Workspace > Settings > Custom Sound Filesystem.
Storage Type: A dropdown to select the storage type for your sounds example GridFS or
FilesystemSystem
Path: Full path to emoji location.
Device management settings
Configure security and access control policies for device management
Follow the guide to manage and control the devices linked to your workspace.
Discussion
Discussions are an additional way to organize conversations that allows invite users
from outside channels to participate in specific conversations
Discussions are created from parent channels or groups. BANKTEXT Discussions are a way of tackling
all specific topic-related conversations.
To access this setting, go to Administration > Workspace > Settings > Discussion.
End-to-end encryption (E2EE) is a system of communication where only the communicating users can read
the messages. BANKTEXT uses this to prevent potential eavesdroppers.
Bots or other ancillary systems interacting via webhooks or REST API will not be able to read
E2EE encrypted messages
File uploads are not encrypted
BANKTEXT enables users to reset their private E2EE key to avoid permanent data loss
during the beta period.
To access this setting, go to Administration > Workspace > Settings > E2E Encryption.
Enable encryption for Direct Rooms by default: When set to true, direct rooms will be encrypted by
default.
Enable encryption for Private Rooms by default: When enabled, private rooms will be encrypted by
default.
To access this menu, go to Administration > Workspace > Settings > Email.
Email Configuration
Edit Email Content
Mailer
Direct Email Reply
Edit your Email Content
You can customize the predefined emails sent out to users on your workspace.
To customize email content, select the email type you want to change and modify. The email body can take
in placeholder values used to set customized data e.g [Site_Name] is replaced with your BANKTEXT
server name.
Available placeholder fields can be seen at the bottom of the field being edited.
You can use BANKTEXT internationalization engine by wrapping sentence string with { } ,
see all internationalization strings here.
The email users receive when a user login is detected from a new device.
Direct Reply
Forgot Password
The email users receive when they trigger the forget password action.
Invitation
Offline Message
Use Deep Link URL Format: When enabled, deep linking is made possible in emails sent.
Password Changed
Privacy
Show Message in Email Notification: Whether or not to show messages in email notifications.
Add Sender to Reply-To: When enabled, message senders will be added to the Reply-To email
header property.
Registration
SMPT
Email configuration
Style
Send only plain text emails: When enabled, emails are sent in plain text only.
Email Style: Write CSS to style every email.
Subject
Direct Message Email Subject: Email subject to use for direct message notification.
Mention Email Subject: Email subject for when a user is mentioned in a room.
Mention All Email Subject: Email subject when a message is posted in a room.
Verification
Enable this feature to allow users to reply to chat messages by directly replying to email notifications they
receive. We currently use subaddressing for this feature.
To set up credentials,
Navigate to Administration > Workspace > Settings > Email > Direct Reply
Enable Direct Reply: Switch on to allow direct replies through emails.
Debug Direct Reply: Enables debugging for direct replies.
Protocol: Select the email server protocol ( IMAP or POP ).
Port: The port (143 or 993 for IMAP and 110 or 995 for POP).
IgnoreTLS: Ignore TLS true if port 143 or 110.
Email Check Frequency: Email check frequency (in minutes) if POP server (>=2).
Delete Emails: Delete intercepted emails. We recommend keeping true if you don't want to keep
copies of email messages, in case IMAP server.
Separator: A separator (default and recommended) is the character separating the base and tag part of
the email. E.g.: base+tag@domain (separator: +). More info here
Now, you can reply chat messages via email. It supports full formatting like inline, multiline, bold,
italics, etc.
Before you switch from IMAP to POP over the same email address, you must empty all the folders.
Keeping all emails results in duplicate messages, because all those messages in POP are treated as
new messages.
Note
Currently, only emails in English are supported, or at least the quote On <date>, <author>
wrote: is in English.
An Email body in languages other than English may also work until and unless On <date>, <author>
wrote: is in English or a copy of older email is removed manually.
Only text messages are supported; attachments are not supported yet.
Known issues
Quoted headers
Quoted headers aren't picked up if the email client breaks it up into multiple lines.
On <date>, <author>
wrote:
> blah
Not to mention that we are searching for on and wrote . It doesn't work with other languages.
Possible solution: while replying, remove everything else than your actual message.
Weird signatures
Hello
--
Rick
Hello
Mr Rick Olson
Galactic President Superstar Mc Awesomeville
GitHub
**********************DISCLAIMER***********************************
* Note: blah blah blah *
**********************DISCLAIMER***********************************
Problem?
Your message wasn't posted? Did you get an Invalid Email in the Admin console? This most likely
means that the email format was not as expected. Maybe you were blocked or the message/room was
deleted.
Email configuration
The BANKTEXT Emails, Notifications, Email verification, and Mailer features depend on this Email
configuration.
This page guides you through configuring SMTP settings for your BANKTEXT workspace.
This configuration is only available for Self-managed workspaces. SaaS workspaces already
have this pre-configured.
Protocol: Select the mailing protocol to use. SMTP(Simple Mail Transfer Protocol) or SMTPS (Simple
Mail Transfer Protocol Secure) protocol.
Host: Your SMTP server hostname (e.g. mail.example.com )
Port: The SMTP port (usually 587 for modern secured SMTP servers).
IgnoreTLS: Enable to ignore TLS(Transport Layer Security).
Pool: Enable this option to use pooled connections, otherwise a new connection is created for every
mail.
Username: Your SMPT username.
Password: Your SMPT password.
From Email: The email to be shown as the sender.
Save changes
Send a test mail to my user - Use this option to send a test mail to yourself.
Enterprise
Manually update your Enterprise license
Use this setting to update your enterprise license manually. See this section on how to get Enterprise
License.
If your workspace is registered and the license is provided by BANKTEXT Cloud, you don't need
to update the license here manually.
To access this menu, go to Administration > Workspace > Settings > Enterprise.
When all your changes are done, hit the Save changes button to commit it.
Federation
Federation allows for an unlimited number of workspaces to communicate with each other. Federating a
workspace makes it visible to other workspaces over the federated network, thus making communication
with other Federation-enabled servers possible.
BANKTEXT provides Federation using the Matrix Protocol and the BANKTEXT Federation Network.
Matrix Bridge: See how to federate your BANKTEXT workspace with the Matrix Protocol.
BANKTEXT Federation Network: Learn how to federate with BANKTEXT basic federation.
BANKTEXT Matrix Bridge operates by leveraging the Matrix protocol, an open standard for decentralized
communication over the internet.
Using the BANKTEXT Matrix Bridge integration requires you to have a Matrix homeserver available. We
recommend Synapse, which is the most stable compared to other versions like Dendrite.
The Matrix Bridge feature has been verified with Synapse v1.71.0 .
See how to run an Matrix homeserver and setup federation with BANKTEXT.
As a workspace administrator, you can set up Matrix protocol for federated communication.
****Matrix Homeserver Setup: Setup a Matrix Homeserver following the automated or manual guide.
****Matrix Bridge Configuration: Configure the Matrix protocol settings for your workspace after
manual installation.
****Matrix Allow/Block List: See how to create a list of allowed and blocked IP addresses from
communicating with your workspace.
Matrix Homeserver Setup
In the Matrix protocol and federated architecture, Homeservers are key components that host user accounts
and other data related to communication. It also facilitates communication between users on different
servers by relaying messages through a network of Matrix servers until it reaches the destination.
BANKTEXT listens to events happening in the Homeserver and sends events relayed to other networks.
You can choose to install a Homeserver using any of the following methods:
Automated Installation: Install Synapse and BANKTEXT using a simple setup script.
Manual Installation: Manually install and configure your Homeserver with BANKTEXT.
We recommend using automatic installation since this comes with some configurations done.
System Requirements
8GB of RAM
2CPU
20GB of Storage
Ubuntu 20.04
You are required to have a domain available to host your Matrix Homeserver.
Enabling ephemeral events like user typing indicator can affect the performance of your Matrix
Homeserver and BANKTEXT server for federated communicaation.
This can be enabled by adding the following property in your Application Service configuration file:
de.sorunome.msc2409.push_ephemeral: true
Add and enable the following properties to make public rooms visible and searchable on other Matrix
networks.
allow_public_rooms_without_auth: true
allow_public_rooms_over_federation: true
Following the automated installation enables everything by default and can be disabled by editing the
generated configuration at data/matrix/synapse .
Automated Installation
The Automated install makes it simple for you to install a Matrix Homeserver pre-configured with
BANKTEXT.
Prerequisites
You are required to have the following on your system before installing.
Docker
Docker compose (> 2.3.3)
Installation Steps
synapse.<your-domain>
matrix.<your-domain>
traefik.<your-domain>
Enter your email address. This is used to issue an SSL certificate for your domain.
Start the container by running the following command:
docker compose up -d
Installing with the Automated setup automatically sets the values at Administration >
Workspace > Settings > Federation > Matrix Bridge.
Download and execute the test script in the same directory where the setup was initiated.
Manual installation
Follow this guide to set up a Matrix Homeserver with Synapse manually.
Install Synapse.
Obtain Lets Encrypt Certificate.
Setup Element (Optional).
Configure Nginx using the certificates, reverse proxying the requests to Synapse.
Point all the generated DNS records to your server's IP address (all to the same IP).
Configure the support for Application Service on the Matrix Homeserver: This can be done by creating a
registration.yaml file under the app/matrix-federation-config directory with the
content provided in Workspace > Settings > Federation > Matrix Bridge > Registration File.
App Service Registration File content
Confirm the federation setup is running, go to Matrix Federation Tester, and paste your Matrix
Homeserver name (only the server name, not the full link).
Matrix Allow/Block List
Blocking or allowing specific domain names or IPs address to communicate with your
Matrix Homeserver
Synapse
To create allow/block lists on the Synapse installation, change it directly in the configuration file
(homeserver.yaml). You can block undesired communication with specific homeservers or allow only the
desired ones.
Block List
ip_range_blacklist : Creates a block list by IP ranges (List all IPs you want as a YAML array).
Allow List
ip_range_whitelist : Creates an allow list by IP ranges (List all IPs you want as a YAML array).
federation_domain_whitelist : Creates an allow list by domain names (List all domain names
you want as a YAML array).
After creating the desired configuration, restart the Synapse server; everything you specified should be
blocked.
Dendrite
This BANKTEXT workspace configuration to link with Matrix Homeserver applies only to
Manual installation . It is automatically done for Automated Installation .
Navigate to Administration > Workspace > Settings > Federation > Matrix Bridge.
Enable: Turn on to enable federation with Matrix.
AppService ID: A unique identifier for the Application Service. It is automatically generated by
BANKTEXT
Homeserver Token: A unique homeserver token to authenticate requests to Application Services.
App Service Token: A unique Application Service token to authenticate requests to homeservers. It is
automatically generated by BANKTEXT
Homeserver URL: The URL of the Matrix server you want to use as your Proxy homeserver. e.g.
http://localhost:8008
Homeserver Domain: Your Matrix homeserver's name, the same as you've configured in your Matrix
configuration file.
Bridge URL: The URL for the Matrix bridge. It is the location you want your bridge should run.
Ensure the port you use for the bridge is free in your host.
We recommend you use a brand new Matrix Homeserver as your Proxy homeserver.
We strongly recommend not connecting to this Matrix Homeserver with other Matrix clients.
AppService User Localpart: The bot user associated with the application service (Sometimes, it's
used to execute some actions).
Registration: Automatically generated and updated by BANKTEXT based on all the values provided in
the above settings (The Application Service is configured using this file).
After any change is made to these settings, update the registration.yml file for the
Application Service in pp/matrix-federation-config .Then restart your Matrix
Homeserver and BANKTEXT Server.
As a BANKTEXT User, you can communicate with users on other federated platforms provided your
workspace Administrator has set up and enabled Matrix federation.
Assign roles for users in federated rooms: Share roles with federated users in a room.
Create federated rooms
Creating a channel/group
You can create federated channels having both BANKTEXT and other federated users.
Important:
Whenever your user is invited to participate in a federated room created in an external server, the server
name is displayed at the top of that room. This helps the user to differentiate when there are multiple rooms
with the same name but all from different servers.
Slash commands
You can also use an available slash command to create and invite users for Direct Messages rooms. The
general syntax for the available slash command is:
/federation dm @username:server.com
Where:
@username:server.com : The external user you want to invite, using the syntax to invite external
users.
To create Multi-user Direct Messages using slash commands, you need to open the message box in any
channel and type the following command using the syntax to invite external users:
/federation dm @username1:server.com
Invite links
They are not supported yet.
Invite external users to your BANKTEXT server
@username:server.com
Once the Matrix Bridge is well configured and running, the external users' syntax is interpreted in any Add
Members inputs all over the system.
After you invite an external user for the first time, a copy for that user will be created in your local
BANKTEXT instance. This means you no longer need to use the external user syntax to invite that specific
user. You can invite the local user, which will appear as a suggestion in any Add Members input.
Once the external user exists and the external server runs, the external user will auto-join the
room. They can not decide if they want to join the room or not for now.
Communicate with a federated user
Start to communicate and collaborate accross platforms in a decentralized way
After you have configured everything and created some federated channels, you're now able to:
Room members can assign room roles for federated users within a federated room context. Roles in
federated rooms are slightly different from the regular BANKTEXT Roles for the Room Scope.
Matrix uses the concept of power levels to define room roles with the Owner being the most powerful,
followed by the Moderator and the User the least powerful.
IMPORTANT
BANKTEXT global roles are not supported in federated rooms. It doesn't matter if they are Room
Scoped.
For rooms created using Element as a Matrix client, only Owners (admins) can assign room
roles/permissions, and you need to change the Change permissions room setting
to Moderator . Otherwise, Moderators using BANKTEXT as their Matrix Client, cannot assign
roles to other users.
This can be done by navigating to Room info > Room settings > Roles & Permission on your
Element client.
Rooms that are created with Element as the client has a set of room permission possibilities.
Changing the permissions for event-specific features can lead to unexpected behavior for users
on BANKTEXT as their Matrix client.
Users with a specific role cannot demote other users from the room with the same role.
Users can only demote and promote users in the layer again right below his/her roles.
Whenever a user wants to promote a user to a role as powerful as his/her own, undoing that change will
not be possible (a confirmation modal will double-check the operation).
Whenever a user wants to demote himself/herself, it will not be possible to regain the same privileges
the user has had. The only possibility is for a user with the necessary permission to give back the same
role for that user(a confirmation modal will double-check the operation).
For any other applicable rule, they are the same as regular BANKTEXT rooms (e.g., Room owners cannot
demote themselves if they are the last room owner).
Matrix Bridge FAQs
Matrix is an open standard for interoperable, decentralized, real-time communication over IP.
What is a Homeserver?
It's an implementation of the Matrix spec, there are some existing homeservers. The most famous
are Synapse and Dendrite.
Installing Synapse.
Configuring federation.
Whenever you invite someone to chat with you either through public, private, or DM rooms, a copy
for that external user will be created in your local workspace. And a copy for your user will be
created in the external (inviter) server as well. From there, every message is stored on both sides.
Will the copies for external users created in my local workspace be counted as a valid
seats (Enterprise license)?
No, all the copies being created to support the Matrix Bridge feature will NOT be counted as valid
seats. Only users you create in your local workspace are counted as valid seats.
No, all the external users created in your local workspace will be created as a User (user role) and
without an email and password, which means they cannot log in directly to your workspace. The
only way for them to communicate with your local workspace is through the open channel you
have with them.
Unfortunately, not at this point. When it comes to presence status, the support from Bridges is very
unstable, and due to that, we don't support it yet.
BANKTEXT Federation lets your server becomes part of the BANKTEXT Federated Network. This makes
your server visible and can be found over the network, and messages, files can be exchanged with other
Federation-enabled BANKTEXT servers.
BANKTEXT uses industry standards, like DNS records, to keep the process seamless and seek the most
hassle-free communication between servers.
Configuration
The following configurations can be done
Enabled: It determines whether or not Federation is enabled on this server.
Status: It is the current Federation status, which can be one of the following:
Could not enable, settings are not fully set: make sure all the options are correctly filled and
saved
Booting: the federation is initializing
[HUB Only] Registering with Hub: the federation is trying to register with the Hub
[HUB Only] Disabled, could not register with Hub: the federation could not register with the Hub
Disabled: the federation is disabled
Running: the federation is running and ready to communicate with other servers
Domain: Fill this option with your domain name, usually the one that hosts the BANKTEXT.
Public Key: All Federation communications are double-encrypted, which means messages cannot be
delivered by mistake to the wrong peer. This is your public key, which is specially generated for
BANKTEXT and by BANKTEXT, and is shared with peers you communicate with.
The encryption process encrypts the message using the Server A private key, and the Server B public
key.
When a server receives the message, it uses the Server B private key and the Server A public key to
decrypt it.
So, let's say the message ended up on Server C: this server won't have Server B private key to decrypt
it, so the message can't be read at all.
Discovery Method: How are you going to be found in the BANKTEXT Federated Network? You can
choose through DNS or, as a fallback, the BANKTEXT Hub.
Important: We recommend using the DNS method. The Hub is a tool to allow users to easily adapt, try,
and validate the feature or as a different way to be part of the BANKTEXT Federated Network until DNS
record changes are made. Also, the Hub requires external communication and access to a specific e-
mail address owned by your domain, as explained below, which introduces extra configuration steps in
some protected internal networks.
To add your server to the Federated Network using the DNS, fill in all the configuration fields required. Make
sure to pick true on the Enabled , and select DNS as your Discovery Method option, save, and
follow the guide below.
Let's suppose we have a domain named mydomain.com , and my BANKTEXT server is hosted at
mydomain.com , port 443 .
Protocol: _https
Name: mydomain.com
Weight: 1
Priority: 1
TTL: 1 hour
Target: mydomain.com
Port: 443
Host: rocketchat-public-key.mydomain.com
Note: Some DNS providers do not allow entering the full public key string. So, after saving, make sure the
string is complete: it starts as -----BEGIN PUBLIC KEY----- and ends as -----END PUBLIC
KEY----- . If that is not the case, follow your provider's instructions. For example, AWS Route 53 needs to
split the string in two pieces, as follows:
We recommend using HTTPS for all kinds of communications, but sometimes that is not possible. If you
need, in the SRV DNS entry replace:
Legacy Support: If your DNS provider does not support SRV records with _http or _https
Some DNS providers will not allow setting _https or _http on SRV records, so we have support for
those cases, using our old DNS record resolution method.
Protocol: _tcp
Name: mydomain.com
Weight: 1
Priority: 1
TTL: 1 hour
Target: mydomain.com
Port: 443
Legacy Support: protocol TXT Record (if not provided, HTTPS will be used)
Host: rocketchat-tcp-protocol.mydomain.com
From your CLI, issue the following commands and make sure the answers look like the following:
Conclusion
When the SRV and the Public Key TXT records are added to the DNS records, other peers should be able
to find you after the propagation.
To add your server to the Federated Network using the Hub, fill in all the configuration fields needed. Make
sure to pick true on the Enabled field), pick the Hub as your Discovery Method option, save, and
follow the guide below.
After that step, other peers should be able to find you in the BANKTEXT Federated Network.
With BANKTEXT Basic Federation enabled and configured on your BANKTEXT workspace, you can
talk with users on other federated servers.
Then, you should be able to look for users on remote servers called peers. You can search using a
combination of a username and a domain or an e-mail address, like:
Username: myfriendsusername@anotherdomain.com
If the remote server is within BANKTEXT Federated Network; you will be able to see the users:
Chat
From now on, you can invite that user only to private rooms or discussions. Those channels are going to be
replicated to the remote server, without the message history.
File Upload
Configure file upload and storage
To access the menu on your workspace, navigate to Administration > Workspace > Settings > File
Upload
General Settings
File Uploads Enabled: Use this setting to enable or restrict file uploads on your workspace
Maximum File Upload Size (in bytes): Use this setting to define the maximum allowed file size for
uploads. Set it to -1 to remove the file size limitation.
Accepted Media Types: Use this setting to define the files the users can upload.
Comma-separated list of media types. Leave it blank for accepting all media types.
Blocked Media Types: Define what types of files are blocked on the workspace.
Comma-separated list of media types. This setting has priority over the Accepted Media Types.
No: If in possession of the uploaded file's URL, unauthenticated users can access and download
said files.
Rotate images on upload: Turn on to enable image rotation. This affects the image quality.
Enable JSON Web Tokens protection to file uploads: Turn on to enable JWT protection on file
uploads.
File Upload Json Web Token Secret: Set the JWT secret to be used.
Storage Type
AmazonS3: Uses the Amazon S3 storage type
Google Cloud Storage: Uses the Google Cloud Storage storage type
Amazon S3
You can find a more detailed guide on how to set up your Amazon S3 server here.
CDN Domain for Downloads(Optional): If you had set a CDN for your bucket, put it here
Region(Optional): If you have created your bucket on region different from the US Standard, you have to
set their code here (see a list of region codes here)
Bucket URL(Optional): Override the URL to which files are uploaded. This URL is also used for
downloads unless a CDN is given
Signature Version: Identifies the version of AWS Signature that you want to support for authenticated
requests.
Force Path Style: Enable force path style.
URLs Expiration Timespan: Time after which Amazon S3 generated URLs are no longer valid (in
seconds). If set to less than 5 seconds, this field is ignored.
If you run into issues with files not loading consistently for some users located further from server
location. Increasing this time might help.
Proxy Avatars: Proxy avatar file transmissions through your server instead of direct access to the
asset's URL
Proxy Uploads: Proxy upload file transmissions through your server instead of direct access to the
asset's URL
Amazon S3 CORS Configuration
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"PUT",
"POST",
"GET",
"HEAD"
],
"AllowedOrigins": [
"*ROCKET_CHAT_DOMAIN*"
],
"ExposeHeaders": [],
"MaxAgeSeconds": 3000
}
]
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"PUT",
"POST",
"GET",
"HEAD"
],
"AllowedOrigins": [
"*ROCKET_CHAT_DOMAIN*"
],
"ExposeHeaders": [],
"MaxAgeSeconds": 3000
}
]
Note: Replace *ROCKET_CHAT_DOMAIN* with the domain of your BANKTEXT installation, e.g.
https://chat.example.com . Setting CORS to * posses a security risk because it allows
for requests from any host on the Internet.
FileSystem
System Path: The local path for where the uploaded files are stored.
Google Storage Bucket Name: The bucket name to which the files should be uploaded.
Google Storage Access Id: The access ID (or username) of the service account which has access to
your Cloud Storage bucket.
The Access Id is generally in an email format, for example: "example-
test@example.iam.gserviceaccount.com"
Google Storage Secret: A .pem containing your private key and certificate.
You can find a guide here on how to get your keys.
Proxy Avatars: Proxy avatar file transmissions through your server instead of direct access to the
asset's URL
Proxy Uploads: Proxy upload file transmissions through your server instead of direct access to the
asset's URL
More Information
The value here takes an argument of a PEM file to connect to your Cloud Storage bucket. When
you create a service account, you have the ability to download a JSON file that contains a number
of variables. You need the unescaped private key, along with one of the certificates linked at the
bottom of the JSON.
Enter this into BANKTEXT to allow the authentication with Google and store items in the bucket.
WebDAV
The settings used for WebDAV as storage server.
Upload Folder Path: WebDAV folder path to which files are uploaded to.
WebDAV Server Access URL: The URL of the WebDAV server (WebDAV URLs of Common Cloud
Storage Services).
WebDAV Username: Username for the remote WebDav server.
WebDAV Password: Password for the remote WebDAV server.
Proxy Avatars: Proxy avatar file transmissions through your server instead of direct access to the
asset's URL.
Proxy Uploads: Proxy uploads file transmissions through your server instead of directly accessing the
asset's URL.
Minio
Introduction
Minio is an object storage server built for cloud applications and DevOps. Minio is S3 compatible and
provides an open-source alternative to AWS S3. You can download and install Minio pretty quickly. Minio
also provides an official Docker image. For further details, check out Minio documentation website.
2017-01-24T19:53:21.141689279Z
2017-01-24T19:53:21.141730078Z Endpoint: http://172.17.0.2:9000 http://127.0.0.1:9000
2017-01-24T19:53:21.141735582Z AccessKey: 5fD3434325fDaGE77BNJlSoV1xGp
2017-01-24T19:53:21.141738933Z SecretKey: Quie2teech4oofoo9Dahsoo7aithauja
2017-01-24T19:53:21.141742292Z Region: us-east-1
2017-01-24T19:53:21.141745405Z SQS ARNs: <none>
2017-01-24T19:53:21.141749472Z
2017-01-24T19:53:21.141752499Z Browser Access:
2017-01-24T19:53:21.141755711Z http://172.17.0.2:9000 http://127.0.0.1:9000
2017-01-24T19:53:21.141758830Z
2017-01-24T19:53:21.141762000Z Command-line Access: https://docs.minio.io/docs/minio-client-q
2017-01-24T19:53:21.141765638Z $ mc config host add myminio http://172.17.0.2:9000 1H2MI5B
2017-01-24T19:53:21.141768751Z
2017-01-24T19:53:21.141771631Z Object API (Amazon S3 compatible):
2017-01-24T19:53:21.141774638Z Go: https://docs.minio.io/docs/golang-client-quicks
2017-01-24T19:53:21.142003548Z Java: https://docs.minio.io/docs/java-client-quicksta
2017-01-24T19:53:21.142019474Z Python: https://docs.minio.io/docs/python-client-quicks
2017-01-24T19:53:21.142024004Z JavaScript: https://docs.minio.io/docs/javascript-client-qu
2017-01-24T19:53:21.142027614Z
2017-01-24T19:53:21.142030994Z Drive Capacity: 262 GiB Free, 303 GiB Total
To override Minio auto-generated keys, you may pass secret and access keys explicitly as environment
variables. Find more details here.
Region us-east-1
http://[your.minio.domain/bucketna
Bucket URL e]
Force Path Style true (this may not be needed if using ssl)
Set up Production
In production, you can use a reverse proxy with Minio server. Check out the documentation for Nginx,
Apache and Apache2.
You can secure access to Minio server with TLS. Check out the documentation here.
Note: If you specify a different region in Minio, ensure it is the same as the S3 region. Find a complete list of
regions here.
Recommendations for File Upload
GridFS
GridFS is the MongoDB specification for storing and retrieving large files such as images, audio files, video
files, etc. It is a kind of a file system to store files, but its data is stored within MongoDB collections. GridFS
has the capability to store files even greater than its document size limit of 16MB.
GridFS divides a file into chunks and stores each chunk of data in a separate document, each of maximum
size 255k.
GridFS, by default uses two collections fs.files and fs.chunks, to store the file's metadata and the chunks.
Each chunk is identified by its unique _id ObjectId field. The fs.files serves as a parent document. The
files_id field in the fs.chunks document links the chunk to its parent.
Though GridFS is used in BANKTEXT for file storage because MongoDB offers this functionality with zero
configuration, but GridFS is not recommended for day to day file storage needs in a production environment
because it puts an immense amount of load on the database.
GridFS is only sustainable if you are using Retention Policy and only storing a small number of
files per week, which are not hefty, but it is not recommended by us because it is not scalable.
FileSystem
It stores the files on the FileSystem of the server where your BANKTEXT instance is running. It is a good
option, but the problem arises when you start to scale. Because if you decide to have multiple BANKTEXT
servers to support a larger number of users, the FileSystem needs to be shared between all the BANKTEXT
servers.
If you want to have two separate virtual/physical servers, you will somehow have to share the folder too
where your files are stored using, for example NFS. It will require a lot of configurations.
We suggest FileSystem only when you are running a single BANKTEXT instance.
What we recommend as the best option for the file upload system are Amazon S3 and Google
Cloud Storage.
File Upload FAQs
Why am I getting the "Request Entity Too Large" error on file upload?
The error shown below is when the upload limit is less than the size of the file in
If you are using nginx as your load balancer, it could be nginx limit that is throwing the following
error not your BANKTEXT limit.
To access the general settings of your workspace, navigate to Administration > Workspace > Settings >
General
General Settings
Show Setup Wizard: This setting SHOULD NOT be altered. It is been set automatically from
Pending -> In Progress -> Completed depending on whether your workspace's general setup
procedure has been completed. Changing this manually can lock your workspace. Please refer to this
issue
Site URL: This sets the URL of the workspace. Example: https://chat.domain.com/
Site Name: This sets the name of the workspace. Example My BANKTEXT Server
Enable Content-Security-Policy: Do not disable this option unless you have a custom build and are
having problems due to inline-scripts
Restrict access inside any Iframe: Lets you set restrictions to load the BANKTEXT inside any iframe
Options to X-Frame-Options: Options to X-Frame-Options. You can see all the options here.
Enable Favorite Rooms: Lets you set if users can mark a room as favorite
First Channel After Login: Insert here the name of the channel that the user enters after logging in.
Setting this field to empty or setting invalid name results in the user being directed to the workspace's
home page. Example: #welcome
Unread Count: This setting changes the behavior of the unread counter
All messages: All messages are counted on the counter, regardless if they are mentioned or not.
User mentions only: Only mentions using @yourUsername are counted on the counter.
Group mentions only: Only group mentions using @all or @here are counted on the counter.
User and group mentions only: All mentions are counted, this includes @all , @here and
@yourUsername
Unread Count for Direct Messages: This setting changes the behavior of the unread counter on Direct
Messages
All messages: All messages sent by another user are counted on the counter.
Mentions only: Only mentions using @yourUsername are counted on the counter.
Force SSL: You can use this setting to force SSL on your workspace. We strongly discourage the usage
of this setting, this should be done at the reverse proxy level by redirecting to HTTPS.
Force SSL should never be used with reverse proxy. If you have a reverse proxy, you should do
the redirect there. This option exists for deployments like Heroku, which does not allow the
redirect configuration at the reverse proxy.
Google Tag Manager Id: You can use Google Tag Manager on BANKTEXT by setting your Id on this
setting.
Bugsnag API Key: If you are integrating Bugsnag with BANKTEXT, you should put your Bugsnag API
Key here.
Store Last Message: Store the last message sent in each room. This enables the viewing of the last
message on the left sidebar (should be on by default)
Robots.txt File Contents: This sets the content of the Robots.txt file, used to help index your
workspace on different search engines and crawlers
Default Referrer Policy: This controls the 'referrer' header that's sent when requesting embedded
media from other workspaces. For more information, refer to MDN. Remember, a full page refresh is
required for this to take effect
Enable second-layer encryption for data transport: Lets you enable second-layer encryption.
Apps
Number of days to keep logs from apps stored: Lets you set how long in days to keep logs from
BANKTEXT Apps.
Enable the App Framework: Use this setting to enable the BANKTEXT Apps Framework. This allows
you to add BANKTEXT Apps from our Marketplace to your workspace.
Enable development mode: Development mode allows the installation of apps that are not from the
BANKTEXT's Marketplace.
Apps' Source Package Storage type: Choose where all the apps' source code should be stored. Apps
can have multiple megabytes in size each.
Directory for storing apps source package: Absolute path in the filesystem for storing the apps'
source code (in zip file format)
REST API
Max Record Amount: This sets the maximum number of records the REST API should return when not
set to unlimited.
Default Count: The default count for REST API results if the consumer did not provide any.
Allow Getting Everything: This setting affects the count query parameter. See more at Offset and
Count Information
Yes: Allows the usage of the number 0 as count parameter. Setting count to 0 returns ALL
the data from that endpoint
No: Setting the number 0 on count , returns 0 results.
Require authentication for users shields: Let you set if user authentication is required for shields.
Enable CORS: Use this setting to enable CORS for the REST API. Enabling CORS makes the
workspace only accept API Calls from specific origins.
Setting this to false makes your workspace only accept requests from the same domain of the
said workspace. E.g. BANKTEXT workspace will only accept requests from the BANKTEXT
domain.
CORS Origin: Here, you can set what origins are allowed to make requests to your workspace. You can
use * to accept from all origins. For multiple Origins, use a comma-separated list. E.g
https://domain1.com, https://domain2.com, https://domain3.com
Use REST instead of WebSocket for Meteor calls: Set if Rest is used instead of WebSocket for
Meteor calls.
User Limit for Adding All Users to Channel: This limits the number of users that can be added to a
Channel at the same time.
Update
Notifications
Always notify mobile: Choose always to notify mobile devices regardless of presence status.
Max Room Members Before Disabling All Message Notifications: Max number of members in the
room when notifications for all messages get disabled. Users can still change per room setting to
receive all notifications on an individual basis. (0 to disable)
Iframe Integration
To be able to use the microphone, camera, and geolocation in an iframe, be sure to allow the
iframe features policy. Example
Enable Send: This setting defines if BANKTEXT can send events to the parent window.
Send Target Origin: Origin with protocol prefix, which commands are sent to e.g.
https://localhost , or * to allow sending to anywhere.
Enable Receive: This setting defines if a parent window can send commands to BANKTEXT.
Receive Origins: Origins with protocol prefix, separated by commas, which are allowed to receive
commands e.g. https://localhost , http://localhost , or * to allow receiving from
anywhere.
NPS
See this section for NPS
Stream Cast
Stream Cast Address: IP or Host of your BANKTEXT central Stream Cast. E.g.
192.168.1.1:3000 or localhost:4000
Timezone
Default timezone for reporting: Sets the default timezone that is used when showing dashboards or
sending emails.
Custom timezone: Let you set custom timezones
Translations
Custom Translations: With this setting, you can configure custom translations for your workspace.
Should be a valid JSON where keys are languages containing a dictionary of keys and translations.
Example:
{
"en": {
"Channels": "Rooms"
},
"pt": {
"Channels": "Salas"
}
}
UTF8
UTF8 Names Validation: RegExp used to validate usernames and channel names
UTF8 Channel Names Validation: RegExp used to validate channel names
If you are having problems with names when creating channels (e.g., when using non-English
characters), changing these values will probably fix it. For example, using [\w_-]+ should
allow any non-space character to be part of a name.
Net Promoter Score (NPS) survey
NPS aims to assess user satisfaction and make the BANKTEXT experience even more pleasant for users.
All users in the workspace receive the survey on the same day.
Admins get notified one month before the NPS is rolled out via an in-app banner and alert via Rocket.Cat.
That means admins can quickly turn off the NPS in case they prefer.
An anonymous but unique hash value per user. The hash is created locally in form of a SHA256-
hash of the combined user ID and NPS ID.
The user ID is a local workspace value per user and is not transmitted outside of the workspace
for the NPS campaign.
The NPS ID is a string that identifies the NPS campaign to which the user is responding
From the hash itself, the user ID and NPS ID cannot be reversely identified.
Within your BANKTEXT workspace, navigate to Administration > Workspace > Settings > General
> NPS
Uncheck “Enable NPS Survey”
Once the setting is turned off, the NPS survey stays off indefinitely.
IRC
Internet Relay Chat (IRC) is a text-based group communication tool. Users join uniquely named channels, or
rooms, for open discussion. IRC also supports private messages between individual users and file-sharing
capabilities. This package integrates these layers of functionality with BANKTEXT.
IRC Federation
Connect to other IRC servers
IRC Federation is in beta. Use on a production system is not recommended at this time.
Internet Relay Chat (IRC) is a text-based group communication tool. Users join uniquely named channels, or
rooms, for open discussion. IRC also supports private messages between individual users and file-sharing
capabilities. This package integrates these layers of functionality with BANKTEXT.
After configuring, you are able to communicate directly from your BANKTEXT to any external IRC server.
To access this setting, go to Administration > Workspace > Settings > IRC Federation.
Protocol: This lets you set the protocol your IRC server uses. exampleRFC2813 .
Host: The host on which your IRC is running on, for example irc.BANKTEXT
The layout feature gives you the possibility to customize the look of your BANKTEXT workspace.
This involves aspects like specifying the content and setting custom CSS and Javascript.
To access this setting, go to Administration > Workspace > Settings > Layout.
Colors
This section has color settings and definitions you can edit or customize to have a different look on
your UI elements.
Colors can be set using existing Expressions or Color by specifying them from the color picker
provided.
Old Colors
A list of pre-defined color variables for old versions of BANKTEXT (<6.0) can be found here.
Custom CSS
Here, you can define custom CSS to modify how your workspace looks.
Example
The simple CSS code below changes the color of your BANKTEXT rooms and the hover color on the
sidebar.
.rcx-content--main {
--rcx-color-surface-room: #5d91f7;
}
.rcx-sidebar--main {
--rcx-color-surface-hover: #e07c41;
}
Customized BANKTEXT UI
Learn more about the classes and colors available for easy customization in the guide below.
Customizing Colors
BANKTEXT Developer
Custom Scripts
This takes in javascript code that will be executed on specified events.
Custom Script for Logout Flow: Set a script to be run during any logout process.
Custom Script for Logged Out Users: Custom Script that will run ALWAYS and to ANY user that is
NOT logged in. e.g. (whenever you enter the login page).
Custom Script for Logged In Users: Custom Script that will run ALWAYS and to ANY user that is
logged in. e.g. (whenever you enter the chat and you are logged in)
Example
Setting a custom script for logged-in users, like the example below, will alert "Welcome" whenever a user
logs in and is on the /home page.
if(window.location.pathname == '/home'){
alert("Welcome")
}
Home Title: The title on the header of the first screen that your users will see when they log in.
Show home page button on sidebar header: When enabled, the Home button will be shown on your
server's navbar.
Block content: The content of the first screen that your users will see when logging in.
Show custom content to homepage: Enable to show custom content on the homepage.
Show custom content only: Turn this on to onhide all other white blocks in the
homepage.
Terms of Service: Here, you can set the terms of service of your workspace. You can also redirect to
YOUR-SERVER-URL/terms-of-service. This is shown by default on the links below your login page.
Login Terms: Specifies the terms on which users are to accept before login in.
Privacy Policy: Here you can set the privacy policy of your server. Can also be accessed via
YOUR-
SERVER-URL/privacy-policy . This is shown by default on the links below your login page.
Legal Notice: By default this screen is accessed on the links under the login page, here you can set the
legal notice of your server. Can also be accessed via YOUR-SERVER-URL/legal-notice .
Side navigation footer: This is the logo or text on the bottom left of the sidebar. We recommend using
the images set on your Assets for better consistency.
Login
Customize your login page.
Hide "Powered by": Enabling this hides the "Powered by" on the login page.
Login Template: Select the direction of the login page. Horizontal / Vertical .
Show Default Login Form: Enable to show the default login form.
User Interface
Display Roles: Toggles the display of user roles shown beside the usernames on messages.
Group Channels By Type: Enabling this separates the channels by category (Channel, Private
Room, Direct Message or Discussion) on the left sidebar.
Use Full Name Initials to Generate Default Avatar: This makes the default avatars are generated
using the person's Full Name instead of Username. E.g. By default the userblue.ducks with the
name Richards Nate will have an avatar with the letters BD by default but if this setting is active, it
will be RN .
Use Real Name: Enabling this changes the display of Usernames to Full Names.
Click to Create Direct Message: Turn this on for workspace users to be able to create a direct message
with another user when they click on thier profile. This skips the viewing of the user's profile.
Number of users' autocomplete suggestions: Sets the number of autocomplete suggestions shown
when you begin tagging any user with the @ symbol.
Show top navbar in embedded layout: If set to true, it shows the top navbar when embedding using ?
layout=embedded at the end of the URL.
LDAP
Lightweight Directory Access Protocol (LDAP) lets anyone locate data about your server or company.
BANKTEXT lets you connect with your Active Directory application or Identity Management System through
LDAP. You can leverage advanced settings such as background sync, roles mapping from groups, auto-
logout, and advanced user data sync.
Enable LDAP, and add configurations to connect with your LDAP server.
BANKTEXT supports a variety of LDAP capabilities and associated identity management features. For
example, you can import users from an active directory into your workspace.
The LDAP features supported by community and enterprise editions are detailed in Identity
Management.
LDAP Actions
These actions are found at the top of the LDAP settings screen.
Test Connection: This will use your provided values and test for a connection. It will test the
authentication and encryption but not the syncing settings.
Test LDAP Search: Searches and notify if a user is found as configured in the user search page.
Sync Now: Syncs your LDAP data based on the Data Sync configurations.
LDAP Documentation: This will redirect you to the BANKTEXT LDAP Documentation.
If you dont get a response alert for these actions, always check the logs Administration >
Workspace > View Logs to confirm if they were succesful or there is an error.
LDAP Examples
LDAP Connection Setting
Set up Authentication, Timeouts, and Encryption for your LDAP connection. Go to the Connection tab of
the LDAP settings and set the following parameters:
Reconnect: Enable to try reconnecting automatically when the connection is interrupted for some
reason while executing operations.
Login Fallback: Enable to allow regular password users to log in on BANKTEXT. It will also let LDAP
users continue using BANKTEXT if the LDAP server is down.
Authentication
Enable: Enable or disables authentication to skip binding the user DN and password.
User DN: The administrative account login details or LDAP user with access to the active directory.
This user can perform user lookups to authenticate other users when they sign in. This is typically a
service account explicitly created for third-party integrations. Use a fully qualified name, such as
cn=Administrator,cn=Users,dc=Example,dc=com. DN means Distinguished Name.
Encryption
Encryption: The encryption method used to secure communications to the LDAP server. Examples
include No encryption, SSL/LDAPS (encrypted from the start), and StartTLS (upgrade to encrypted
communication once connected).
CA Cert: The CA certificate to use in signing.
Reject Unauthorized: Disable this option to allow certificates that can not be verified. Usually, Self
Signed Certificates will require this option disabled to work.
Timeouts
Timeout (ms): Waiting time in milliseconds after a search is initiated before returning an error.
Connection Timeout (ms): Maximum time in milliseconds before connection timeout.
Idle Timeout (ms): Waiting time in milliseconds after the latest LDAP operation until closing the
connection. Each operation opens a new connection.
After completing the settings, be sure to Save changes.
LDAP User Search
Perform an LDAP user search. Go to the User Search tab and configure these settings:
Search Filter
Base DN: The fully qualified Distinguished Name (DN) of an LDAP subtree you want to search for users
and groups. There is no limit to the number of groups you can add, but they must be defined in the same
domain base as the users who belong to them. Example:
ou=Users+ou=Projects,dc=Example,dc=com .
If you specify restricted user groups, only users that belong to those groups will be in scope. We
recommend setting the top level of your LDAP directory tree as your domain base and using a
search filter to control access.
Filter: If specified, only users that match this filter will be allowed to log in. If no filter is selected, all users
within the scope of the defined domain base can sign in.
E.g., for Active Directory
memberOf=cn=ROCKET_CHAT,ou=General Groups
Group Filter
The group filter is for OpenLDAP as it doesnt have a memberOf filter.
Enable LDAP User Group Filter: Enable to restrict users access in a LDAP group. It is useful for
allowing OpenLDAP servers without a memberOf filter to limit group access.
With LDAP, you can sync your data. Here are some basic data sync settings in BANKTEXT.
Unique Identifier Field: The field that will link the LDAP user and the BANKTEXT user. You can
include multiple values separated by a comma to get the value from the LDAP record.
Merge Existing Users: Whether or not to merge existing users. When importing a user from LDAP and
a user with the same username already exists, the new user data (including info and password) will
merge into the existing data.
Update User Data on Login: Enable to update user data on login.
Default Domain: If provided, the default domain generates a unique email for users whose emails were
not imported from LDAP. The mounting of the email will beusername@default domain or
unique id@default domain .
Avatar
User Avatar Field: The field used as an avatar for users. Leave blank to usethumbnailPhoto first
and jpegPhoto as a fallback.
Mapping
Username Field: Usually, the sAMAccountName is used as a username for new users. Leave empty
to let the user pick their BANKTEXT username. You can use template tags too, for example:
#{givenName}.#{sn}
Advanced Sync
Sync User Active State: Determine if users should be enabled or disabled on BANKTEXT based on
the LDAP status. The ' pwdAccountLockedTime ' attribute will be used to determine if the user is
disabled. This setting is not yet compatible with all LDAP Servers, so if you don't use the
' pwdAccountLockedTime ' attribute, you may want to disable it completely.
Attributes to Query: Specify which attributes should be returned on LDAP queries, separating them
with commas. Defaults to everything. * represents all regular attributes and + represents all
operational attributes. Make sure to include every attribute that is used by every BANKTEXT sync
option.
Auto Logout Interval: Allows you to set the interval for auto-logout.
Background Sync
Background Sync Import New Users: Will import all users (based on your filter criteria) that exist in
LDAP and do not exist in BANKTEXT.
Background Sync Update Existing Users: This will sync the avatar, fields, username, etc (based on
your configuration) of all users already imported from LDAP on every Sync Interval.
Avatar Background Sync: Enable a separate background process to sync user avatars.
Avatar Background Sync Interval: The interval between avatar sync, using the Cron Text format.
Sync Channels
Auto Sync LDAP Groups to Channels: Enable this feature to automatically add users to a channel
based on their LDAP group.
Channel Admin: When the above setting causes a channel to be created automatically during user
sync, this setting will determine what user will become the channel's admin.
User Group filter: The LDAP search filter checks if a user is in a group. If the search returns any results,
the user is considered to be in the group. When performing the search, the following strings, if present in
the filter, will be substituted with data from the user and group whose membership status is being
checked:
{
"employee": "general"
}
Auto Remove Users from Channels: Enabling this will remove any users in a channel that does not
have the corresponding LDAP group! This will happen in every login and background sync, so removing
a group on LDAP will not instantly remove access to channels on BANKTEXT.
Sync Roles
Sync LDAP Groups: Enable this setting to activate role mapping from user groups on the community
edition of BANKTEXT.
Auto Remove User Roles: Enable this setting to automatically remove roles from LDAP users that
don't have the corresponding group. This will only remove roles automatically that are set under the user
data group map below.
User Group Filter: The LDAP search filter checks if a user is in a group. If the search returns any
results, the user is considered to be in the group. When performing the search, the following strings, if
present in the filter, will be substituted with data from the user and group whose membership status is
being checked:
{
"rocket-admin": "admin",
"tech-support": "support",
"manager": ["leader", "moderator"]
}
Sync Teams
Enable team mapping from LDAP to BANKTEXT: Enables team mapping from LDAP to BANKTEXT
Team mapping from LDAP to BANKTEXT: Team mapping from LDAP to BANKTEXT
Validate mapping for each login: Determine if users' teams should be updated every time they log in to
BANKTEXT. The team will be loaded only on their first login if this is turned off.
LDAP Teams BaseDN: The LDAP BaseDN used to look up user teams.
LDAP Team Name Attribute: The LDAP attribute that BANKTEXT should use to load the team's name.
You can specify more than one attribute name by separating them with a comma.
LDAP query to get user groups: LDAP query to get the LDAP groups that the user is part of
LDAP Examples
Here are some examples of the LDAP settings and their values. The examples will be based on these
environments:
Host = ldap.domain.com
LDAP_Enable = True
LDAP_Dn = dc=domain,dc=com
LDAP_Url = ldap://ldapserver
LDAP_Port = 389
LDAP_Bind_Search =
{"filter": "(&(objectCategory=person)(objectclass=user)
(memberOf=CN=ROCKET_ACCESS,CN=Users,DC=domain,DC=com)(sAMAccountName=#
{username}))", "scope": "sub", "userDN": "rocket.service@domain.com",
"password": "urpass"}
If you need to auth users from subgroups in LDAP use this filter:
LDAP_Url = ldap://ldapserver
LDAP_Port = 389
LDAP_Bind_Search =
{"filter": "(&(objectCategory=person)(objectclass=user)
(memberOf=CN=ROCKET_ACCESS,CN=Users,DC=domain,DC=com)(mail=#{username}))",
"scope": "sub", "userDN": "rocket.service@domain.com", "password":
"urpass"}
LDAP_Enable = True
LDAP_Dn = dc=domain,dc=com
LDAP_Url = ldap://ldapserver
LDAP_Port = 389
LDAP_Bind_Search =
{"filter": "(&(objectCategory=person)(objectclass=user)
(memberOf=CN=ROCKET_ACCESS,CN=Users,DC=domain,DC=com)(|(mail=#{username})
(sAMAccountName=#{username})))", "scope": "sub", "userDN":
"rocket.service@domain.com", "password": "urpass"}
Log in
When you enable LDAP, the login form will log in users via LDAP instead the internal account system.
Use stunnel to create a secure connection to the LDAP server. Create a new configuration file
/etc/stunnel/ldaps.conf with the following content:
options = NO_SSLv2
[ldaps]
client = yes
accept = 389
connect = your_ldap_server.com:636
LDAP_Url = localhost
LDAP_Port = 389
Livestream & Broadcasting
Integration between BANKTEXT and YouTube Live
The Livestream & Broadcasting integration has been deprecated, may not work as expected, and
will not receive updates.
The integration between BANKTEXT and YouTube Live allows channel owners to broadcast their live
camera feed to Livestream inside a channel.
Navigate to Administration > Workspace > Settings > Livestream & Broadcasting.
Configuration
The integration between Rocket and YouTube Live allows channel owners to broadcast their live camera
feed to Livestream inside a channel. You can only use the Broadcasting feature with the Livestream feature.
Users can not create live broadcasts using their webcams if you switch the Broadcasting Enable to false in
your broadcast settings, but they can still link to a live stream from YouTube.
To use YouTube Live integration, the workspace administrator needs a Google Account to access the
Google API Console. With this, the administrator has access to a valid Client ID, API Key, and Secret, which
is essential for broadcasting.
To learn more about Youtube live integration, please read YouTube Data API Overview.
Livestream
After a correct set-up, the Livestream tab allows you to Broadcast your camera when editing the source
URL. While we prepare the broadcast and live stream for your session, opening the popout can take a little
while. A blinking icon and "Preparing" status displays in the control bar. After that initial phase, the
broadcast will be ready and available to start with your click.
Logs
Configure server logs
Here you have the interface to configure how server logs are received.
Logs are a very useful way to monitor workspace activities in detail, and they can start as a very helpful point
for debugging in case of any failures or errors.
To access this section, navigate to Administration > Workspace > Settings > Logs.
Trace subscription filter: The text here is evaluated as RegExp ( new RegExp('text') ). Keep it
empty to show a trace of every call.
Log Exceptions to Channel: A channel that receives all captured exceptions. Leave empty to ignore
exceptions.
Prometheus
Prometheus is an open-source monitoring solution.
To access this menu, navigate to Administration > Workspace > Settings > Message.
Basic Settings
Allow Message Pinning: When enabled, allow messages to be pinned to any channel.
Allow Message Starring: When enabled, users are able to star messages.
Video Recorder Enabled: Requires video/webm files to be an accepted media type within File
Upload settings.
Allow message Editing: When enabled, users have the ability to edit messages.
Block Message Editing After (n) Minutes: Takes in time in minutes in which users are allowed to edit
messages. After that they are unable. Enter 0 to disable blocking.
Allow message-deleting: Toggle on to allow users to be able to delete messages.
Block Message Deleting After (n) Minutes: This lets you set a duration in minutes in which users are
allowed to delete messages.
Allow Unrecognized Slash Commands: When enabled, unknown Slash Commands are allowed.
Allow user direct messages to yourself: When enabled, users are able to send direct messages to
themselves.
Always Search Using RegExp: When enabled, all searches use RegExp. We recommend setting this
True if your language is not supported on MongoDB text search.
Show Deleted Status: When enabled, shows deleted when a message is deleted.
Allow Message bad words filtering: Turn on to allow filtering of blacklisted words in messages.
Add Bad Words to the Blacklist: Takes in a list of comma-separated words that are to be filtered
from the workspace.
Remove words from the Blacklist: Takes in any word already on the Blacklist and removes it.
Keep Per Message Editing History: Whether or not to keep message editing history.
Maximum Channel Size for ALL Message: This lets you set the maximum size of a channel.
Maximum Allowed Characters Per Message: This lets you specify the maximum number of characters
a message can contain.
Allow converting long messages to attachments: When enabled, long messages can be converted
to attachments.
Grouping Period (in seconds): Takes in time in seconds in which messages are grouped with the
previous message if both are from the same user and the elapsed time was less than the informed time
in seconds.
Embed Link Previews: Turn on to enable embedded link previews when links are posted in a chat.
Embed Request User Agent: This lets you set a request user agent.
Embed Cache Expiration Days: Set how long in days where embed cache expires.
Embed Ignored Hosts: Comma-separated list of hosts or CIDR addresses, eg. localhost ,
127.0.0.1 , 10.0.0.0/8 , 172.16.0.0/12 , 192.168.0.0/16
Time Format: Specify the format of time on your server. See also: Moment.js
Date Format: Set the format of the date in your server.
Time and Date Format: This lets you set the time and date format.
Maximum Number of Chained Quotes: This lets you set the maximum number of Chained quotes.
Hide System Messages: Select from a dropdown which system messages are to be hidden.
DirectMesssage_maxUsers: Specifies the maximum uses for direct messages.
Message Erasure Type: Select from the drop-down what to do with messages of users who removed
their accounts.
Code highlighting languages list: Comma-separated list of languages (all supported languages at
https://github.com/highlightjs/highlight.js/tree/9.18.5#supported-languages ) that are used to highlight
code blocks.
Message Attachments
Enable image thumbnails to save bandwidth: When set to true, thumbnails are served instead of the
original image to reduce bandwidth usage. Images at original resolution can be downloaded using the
icon next to the attachment's name.
Thumbnail's max width (in pixels): Takes in the thumbnail's max width in pixels
Thumbnail's max height (in pixels): Takes in the thumbnail's max height in pixels
Remove EXIF metadata from supported files: Enable to strip out EXIF metadata from image files
(jpeg, tiff, etc.). This setting is not retroactive, so files uploaded while disabled will have EXIF data
Audio Message
Audio Recorder Enabled: When set to true, users are able to record audio.
Audio Message Bit Rate: Lets you set the bit rate for audio messages.
Read Receipts
With read receipt enabled, the message info action shows a list of users that have read the message.
Auto-Translate
DeepL
Microsoft
Google Maps
Enable Mapview: Enabling map view displays a location share button on the right of the chat input field.
Google Static Maps API Key: The Google Static Maps API Key. This can be obtained from the Google
Developers Console for free.
Katex
Katex Enabled: When enabled, allows the use of katex for math typesetting in messages.
Allow Parenthesis Syntax: When enabled, you can use [katex block] and (inline katex) syntaxes.
Allow Dollar Syntax: When enabled, allows using $$katex block$$ and $inline katex$
syntaxes.
Meta
Set custom Meta properties
With the Meta configuration, you can set custom meta properties for your workspace.
Meta elements are tags used in HTML and XHTML documents to provide structured metadata about a Web
page. They are very important for SEO, among other uses.
Facebook App Id: When provided, allows the Facebook scraper to associate the Open Graph entity
with your server.
Robots: Specify to tell search engines what to and what not to index or follow
Google Site Verification: Input metatag to verify you own the server/site.
MSValidate.01: A tag that is to be added to your site (header) to verify your site with the Bing webmaster
tool.
Custom Meta Tags: Any custom meta tags you wish to include. Example
These settings are applied to the users using Mobile App on your workspace. This gives you the flexibility to
define some behaviors when connecting to your workspace from a mobile device.
Screen Lock
Force screen lock: When enabled, your users are required to use a PIN, BIOMETRIC, or FACE ID to
unlock the app.
Force screen lock after: The time in seconds to request the password again after the expiry of the
latest section.
OAuth
Beyond the basic username/password authentication, BANKTEXT supports several other authentication
methods. These OAuth methods mostly require a client ID and a secret.
You can view a list of some OAuth methods that are supported by BANKTEXT, including Google, Github,
LinkedIn, etc.
Go to Facebook Login > Settings page. Fill in the Valid OAuth Redirect URIs field with your
workspace callback URL. Click Save Changes.
To view the OAuth credentials in your app, select Settings > Basic. Copy your App ID and App Secret.
Switch the App mode from Development to Live.
Navigate to OAuth settings (Administration > Workspace > Settings> OAuth) in your workspace.
In the Facebook tab, fill in the OAuth credentials you copied earlier and toggle on Facebook Login.
Click Save Changes. A Sign in with Facebook button appears on your workspace's login page. Users
can now sign in with Facebook by clicking that button.
Google OAuth Setup
Google OAuth requires you to fill in the Google Id and Google Secret of your Google OAuth app.
Go to the Google Cloud console and create a new project or select an existing one.
From the sidebar, Navigate to API & Services > OAuth consent screen and fill in the required fields to
Create a consent screen.
Navigate to Credentials, Click New Credentials, then select OAuth client ID.
Select Web application as the application type, then fill in the required details
Add the following authorized redirect URIs
https://YOU DOMAIN/_oauth/google?close
https://YOU DOMAIN/_oauth/google
Click Create
Your OAuth Client is created, and your Client ID and Secret are displayed in a modal box. Copy
or download these credentials.
On your BANKTEXT workspace, navigate to Administration > Workspace > Settings> OAuth >
Google
Fill in the OAuth credentials you copied earlier and toggle on Google Login.
Click Save Changes. A Sign in with Google button appears on your workspace's login page. Users
can now sign in with google.
GitLab OAuth Setup
Google OAuth requires you to fill in the Application ID and Secret of your GitLab OAuth app.
Go to GitLab Applications.
Fill in the Application Name, redirect URI, and Scope. Click Save application.
After the application is created successfully, the OAuth credentials are displayed.
Copy the Application ID and Secret.
Navigate to OAuth settings (Administration > Workspace > Settings> OAuth) in your workspace.
In the GitLab tab, fill in the OAuth credentials you copied earlier and toggle on OAuth Enabled.
Click Save Changes. A Sign in with GitLab button appears on your workspace's login page. Users can
now sign in with GitLab by clicking that button.
GitHub OAuth Setup
GitHub OAuth requires you to fill in the GitHub Client ID and Secret .
If your callback URL is wrong, GitHub does not display any error. Instead of logging in, you
receive an error message saying, "No matching login attempt found."
Your Client Id and a button to Generate a new client secret are now displayed. Click the button to
generate a new client secret for your OAuth credentials.
In the GitHub Enterprise tab, fill in the OAuth credentials you copied earlier and toggle on OAuth
Enabled.
Click Save Changes. A Sign in with GitHub button appears on your workspace's login page. Users
can now sign in with GitHub by clicking that button.
LinkedIn OAuth Setup
LinkedIn OAuth requires you to fill in the LinkedIn Client ID and Secret .
Navigate to OAuth settings (Administration > Workspace > Settings> OAuth) in your workspace.
In the LinkedIn tab, fill in the OAuth credentials you copied earlier and toggle on LinkedIn Login.
Click Save Changes. A Sign in with LinkedIn button appears on your workspace's login page. Users
can now sign in with LinkedIn by clicking that button.
NextCloud OAuth Setup
NextCloud OAuth requires you to fill in the NextCloud Client ID and Secret .
Fill in the client name and the redirect URL. Click Add.
Copy the Client ID and Secret from the new OAuth App.
Navigate to OAuth settings (Administration > Workspace > Settings> OAuth) in your workspace.
In the NextCloud tab, fill in the OAuth credentials you copied earlier and toggle on OAuth Enabled.
Click Save Changes. A Sign in with NextCloud button appears on your workspace's login page.
Users can now sign in with NextCloud by clicking that button.
WordPress OAuth Setup
The easiest way to configure BANKTEXT using WordPress as your identity backend is to use the
MiniOrange OAuth Plugin (Version 2.5.6 or higher)
Log into your WordPress site as an administrator and navigate to Plugins. Click Add New.
Search for "MiniOrange OAuth Server."
Install and activate the WP OAuth Server ( OAuth Provider ) plugin.
Navigate to the MiniOrange oAuth Server . Click Add client (Red).
Fill in the required information, including the Callback URL, and click Save client.
From the Endpoints tab, copy the Authorize Endpoint, Access Token Endpoint, and Get User Info
Endpoint.
Navigate to OAuth settings (Administration > Workspace > Settings> OAuth) in your workspace.
In the WordPress tab, configure the OAuth credentials you copied earlier in this manner:
Id = Client ID
Secret = Client Secret
Identity Path = Get User Info Endpoint
Identity Token Sent Via = Payload
Token Path = Access Token Endpoint
Authorize Path = Authorize Endpoint
Scope = Profile
Click Save Changes. A Sign in with WordPress button appears on your workspace's login page.
Users can now sign in with WordPress by clicking that button.
For button customization, your inputted button text won't be displayed. However, the app will
display your custom OAuth name at the top.
Troubleshooting WordPress OAuth
Whenever you have an issue with OAuth in WordPress, enable Level 2 Logging to view your logs.
While monitoring the log, open the login screen in an incognito browser and attempt a login.
The log displays the OAuth response in real time, which provides helpful troubleshooting information.
Visit this forum for more information on troubleshooting for "The redirect URI provided is missing or does
not match."
MS Office 365 OAuth Setup
This guide shows how you can set up OAuth integration between Microsoft accounts and BANKTEXT.
This is achieved with the use of Azure Active Directory which is an identity service by Microsoft that provides
single sign-on and other authentication methods.
Follow these steps to enable Office 365 OAuth on your BANKTEXT instance.
Navigate to Administration > Workspace > Settings > OAuth and click on Custom OAuth and set the
new OAuth integration name
After creating the new integration, you are given the callback URL followed by other fields to
configure
365OAuth integration details page
Log in to your Azure portal then navigate to the Azure Active Directory tab
Azure Portal
Create a new App Registration
Fill in the name and other fields including the redirect URI provided by BANKTEXT when creating the
new OAuth integration
After registering your new app, take note of Application (client) ID it will be needed to configure
the integration later.
On your new app's page, navigate to Certificates and Secret tab to create a New client secret
After creating, take note of the client secret immediately. It is only displayed once and is needed
in configuring the integration back in BANKTEXT
AD client secret
Scope: openid
Param Name for access token: access_token
Apple OAuth
Apple OAuth requires you to fill in Accounts_OAuth_Apple_id and
Accounts_OAuth_Apple_secretKey.
Navigate to OAuth settings (Administration > Workspace > Settings> OAuth) in your workspace.
In the Apple tab, toggle on Sign In with Apple.
If you want Apple login enabled only on mobile, you can leave all other fields empty.
Twitter OAuth
Twitter OAuth requires you to fill in a Twitter Client Id and Secret.
Go to the Twitter Developer Portal. Navigate to the Apps page to create or view your existing apps. Copy
the following credentials:
TokenPass OAuth
Tokenpass OAuth requires you to have a Tokenpass server URL, Id, and secret.
These can be gotten from the Tokenpass developers portal by creating an application for OAuth integration.
Tokenpass Server URL: Your server URL. Example https://domain.com (excluding trailing
slash)
Tokenpass Id: Tokenpass app Id
Drupal OAuth is made possible with the OAuth2 Client module. Follow this guide to create client
credentials.
Drupal Login Enabled: This lets you enable Drupal OAuth for login
Drupal Server URL: Your server URL. Example https://domain.com (excluding trailing slash)
Drupal OAuth2 Client ID: The OAuth Id from the Drupal configuration
Drupal oAuth2 Client Secret: Your Drupal OAuth secret
Drupal Callback URL: Set default to point to <server_url>/_oauth/drupal
Dolphin OAuth
Setting up Dolphin OAuth requires a Dolphin connect URL, Id, and secret
URL: Enter the URL under the Information section of the OAuth2 module
Enable: This lets you enable Dolphin OAuth
Id: Dolphin connect Id
Okta OAuth
To use Okta OAuth, you need to go to the OAuth section of your BANKTEXT settings and create a custom
OAuth.
Navigate to OAuth settings (Administration > Workspace > Settings> OAuth) in your workspace.
Create a custom OAuth.
Go to your Okta developers panel and create a new Sign in OAuth app for a web application.
Fill in all the required information and save.
Your new app is created with all the credentials needed for configuration.
Omnichannel Admin's Guide
Enable and configure Omnichannel
Configure how Omnichannel can be used to streamline conversations from various mediums into
BANKTEXT. Omnichannel adds the ability to set up and receive conversations from pop-up Live Chat
widgets on your website or from your business Facebook.
Enabling and using BANKTEXT Omnichannel gives seamless, effortless, and high-quality customer
experiences all within a defined channel on your BANKTEXT workspace.
Remember to hit Save Changes in order to apply any changes made here.
Enable Omnichannel: When set to true, it enables the Omnichannel feature on your BANKTEXT
instance.
Workspace administrators and omnichannel managers can now see the Omnichannel section to
manage, while Omnichannel Agents have access to their respective Omnichannel features.
Request comment when closing conversation: If enabled, the agent will need to set a comment
before the conversation is closed.
Accept new omnichannel requests when the agent is idle: Toggle true to let Omnichannel agents
receive new chat requests when they are idle.
File Uploads Enabled: Enable this to allow file uploads on Omnichannel communication channels.
Ask visitors if they would like a transcript after chat closed: When enabled, Omnichannel visitors
will be asked if they need a transcript of their conversation after closing.
Message to Show When Asking About Transcript: This lets you set a message that will be shown to
the visitor when asking if they need a transcript.
Canned Responses
Under this section, you can enable or disable the use of Canned Responses.
Canned Response allows for OmnichannelAgents to use predefined message replies.
External Frame
Use an external frame to embed BANKTEXT into your own solution or interact with your CRM.
Live Chat
Manage Omnichannel Live Chat settings.
Livechat Title: The title shown on your Live Chat widget.
Livechat title background color: The Live Chat background color.
Enable message character limit: Toggle on to enable the message character limit.
Livechat message character limit: Set a limit on message characters allowed on the visitor.
Display Offline Form: When enabled, the offline form will be seen by visitors when there is no available
agent.
Clear guest session when chat ended: Toggle on to clear guest session when a chat ends.
Validate Email Address: When turned on, the visitor's email address will be validated.
Offline Form Unavailable Message: A message to show when the online form is unavailable.
Title: The offline form title.
Color: The style color of the Live Chat widget. This also changes the color of the Live Chat icon.
Instructions: Instructions to your visitor to fill out the form to send a message.
Email Address to Send Offline Messages: An email address to which you want all offline messages to
be sent.
Offline Success Message: A message seen by the visitor after successfully sending an offline
message.
Allow Visitor to Switch Departments: When enabled, Live Chat visitors will be able to switch
departments.
Show agent information: Enable this to show information about the agent attending to a visitor in the
Live Chat widget.
Show agent email: When set to true, the Omnichannel Agent's email will be visible to the visitor.
Conversation Finished Message: Set a message to be sent to a visitor when the conversation is
finished.
Conversation Finished Text: Additional text to show after a conversation is finished.
Show Pre-registration Form: This lets you set whether or not to show the pre-registration form.
Show name field: Toggle to show or hide the name field.
Show email field: Toggle to show or hide the email field.
Monitor History for Changes on: This lets you monitor history changes on Page URL or Page Title.
Send Visitor Navigation History as a Message: When set to true, you can send a visitor's navigation
history to them as a message.
Registration Form Message: The message seen on the registration form.
Livechat Allowed Domains: Comma-separated list of domains allowed to embed the Live Chat widget.
Leave blank to allow all domains.
Send Livechat offline messages to a channel: Whether to send Live Chat offline message to a
channel.
Channel Name: The channel to which Live Chat offline messages should be sent to.
See how to install the Live Chat widget and manage the Live Chat appearance on this Omnichannel guide.
Business Hour
Set your business hours to automatically manage when your Live Chat agents are online.
Business Hours
CRM Integration
Integrate your BANKTEXT Live Chat events using webhooks to other external tools or CRMs.
Webhooks
Facebook
Configure the integration between BANKTEXT and Facebook and communicate directly with your
Facebook users.
You are required to request an OmniChannel API Key and an OmniChannel API
Secret from BANKTEXT support through omni@BANKTEXT. This can take a few days
depending on demand.
Allow to collect and store HTTP header information: This lets you determine whether Live Chat is
allowed to store information collected from HTTP header data, such as IP address, User-Agent, and so
on.
Force visitors to accept data processing consent: When toggled on, visitors are not allowed to start
chatting without consent.
Data processing consent text: Set the consent text that visitors see about how you process their data.
Queue Management
Omnichannel Queue
Routing
Routing allows you to define the behavior of your Live Chat queues.
Omnichannel Routing Method: Select your preferred routing method. Please refer to this article
Queue Types (Routing Algorithm) for information on the types of routing methods used in
BANKTEXT.
Accept with No Online Agents: When enabled, Omnichannel conversations will be accepted even
when there are no Agents online.
Assign new conversations to bot agent: Enable this, and the routing system will attempt to find a bot
agent before addressing new conversations to a human agent.
Max number of items displayed in the queue: Set the maximum number of items displayed in the
incoming Omnichannel queue.
Show Queue List to All Agents: Enable this to show the Omnichannel Queue list to all Omnichannel
Agents.
External Queue Service URL: Set your External Queue Service URL if your Omnichannel Routing
Method is External Service.
Secret Token: Enter the secret token.
Last-Chatted Agent Preferred: Enable to allow the allocation of chats to the agent who previously
interacted with the same visitor if the agent is available when the chat starts.
Assign new conversations to the contact manager: This setting allocates a chat to the assigned
Contact Manager as long as the Contact Manager is online when the chat starts.
Sessions
The Sessions setting allows you to define how open chat sessions are to be handled.
How to Handle Open Sessions When Agent Goes Offline: Select what happens to an open chat
session when an Agent goes offline.
None: Nothing happens.
Forward: Gets forwarded to another Agent.
Close: The chat gets closed.
How Long to Wait After Agent Goes Offline: Set the time in seconds before the action specified above
happens.
Comment to Leave on Closing Session: Set a comment to be displayed to the Visitor on closing the
chat.
How Long to Wait to Consider Visitor Abandonment?: This lets you set how long in seconds to wait
for before considering the Visitor abandoned the chat.
How to handle Visitor Abandonment: Select what to do when Visitors abandon chats.
Custom message when room is automatically closed by visitor inactivity: Set a message that will
be sent when a chat gets automatically closed due to the Visitor's inactivity.
How long to wait before closing a chat in On Hold Queue?: Define how long in seconds the chat will
remain in the On Hold queue until it's automatically closed by the system.
Custom message for closed chats in On Hold queue: Custom Message to be sent when a room in
On-Hold queue gets automatically closed by the system.
Allow agents to manually place chat On Hold: When enabled, the agent will have the option to place
a chat On Hold, provided the agent has sent the last message.
Timeout (in seconds) for automatic transfer of unanswered chats to another agent: Specify the
time in seconds for unanswered chats to be transferred to other agents.
Call Provider: Select the Call provider between Jitsi and Web.RTC to use for Omnichannel Calls.
Extend the functionality of video and audio calling with any of the available BANKTEXT Conference Call
Apps like Jitsi, Pexip, BigBlueButton, and Google Meet.
Queue Types (Routing Algorithm)
Manual Selection
External Service
Load Balancing
Load Rotation
Auto Selection
Each new chat will be routed to the agent that are accepting chats with the lower count. If there is more than
one available agent with the same count, the chat will get the first in order.
When a new chat comes, it'll be routed to agent-1 , because he has 0 count and is the first in order, and
the agent-1 's count will be increased to 1 :
A new incoming chat will be routed to agent-2 and so on until all agents have one chat each. So the next
round comes, starting with agent-1 .
Manual Selection
With this queue method active, agents will have a new Incoming Live Chats section:
Each new chat will be available on the Incoming Live Chats section to all agents. So any agent can
take a new incoming chat.
When the agent clicks on the incoming Live Chat, the system will show the preview of the chat containing
the messages sent by the visitor, so the agent can decide if he will take the chat or not. If the agent decides
to take it, the incoming chat will be removed from the incoming chats list of the other agents.
External Service
You can use an External Service to integrate your own agent routing rule into Live Chat.
Once you set up the External Service as the Live Chat routing method, you must define the
External Queue Service URL and Secret Token settings in the Omnichannel admin panel.
BANKTEXT will send a GET request to the External Queue Service URL and the setting Secret
Token is sent as a header X-RocketChat-Secret-Token , so you can validate if the request came
from the BANKTEXT.
If your endpoint returns a response status other than 200, BANKTEXT will try 10 times until it receives a
valid response.
Here is an example of the JSON data format that Live Chat will wait for after submitting the get request:
{
"_id": "CbbQkRAifP6HtDLSr",
"username": "valid.username"
}
After receiving the return from the endpoint in the format described above, Live Chat will check that the
username the field represents a valid Live Chat agent and then follows the normal process flow.
Load Balancing
Load Balancing is an enterprise-only feature. It is also an auto-assignment algorithm, but it will consider the
agent's online status and the time they have been chatting, contrary to auto-selection, which only considers
the agent's online status. For instance, an agent was away on a short break; once he comes back, he will be
assigned more chats than his fellow agent. So in this way, the algorithm will maintain a chat load balance
between agents.
Load Rotation
Agent queues for service between online agents, without considering the previous chat's history attended or
the number of open rooms in attendance. It's a mix between the Load Balancing and Auto Selection
algorithms.
OTR
Off-the-record chats are temporary, encrypted messages. These types of messages
are not stored even in your own workspace.
To try this, be sure to have users online and engaged in a conversation at the same time.
This feature is currently in beta. Search operations will not find encrypted messages of encrypted
rooms. The mobile apps and multi-DMs may not support the encrypted messages (currently
under implementation). File uploads will not be encrypted in this version.
Off-the-record (OTR) Messaging is a feature that allows users to exchange temporary, encrypted
messages directly with each other. This happens by using the local, non-persistent session storage of
their browser rather than storing messages on the BANKTEXT workspace. After an OTR session ends and
the session storage is cleared, the OTR messages are removed and can no longer be restored.
Enable and configure push notifications for your workspace members using mobile devices.
By default, community workspaces come with 10,000 free monthly push notifications. If you need
more, please contact us to discuss upgrading to an Enterprise plan.
To be able to use push notifications, you are required to accept the Cloud Service Privacy
Terms Agreement in the Administration > Workspace > Settings > Setup Wizard > Cloud
Info settings.
BANKTEXT SaaS workspaces use the BANKTEXT gateway by default and cannot be changed.
On self-managed workspaces, you can either use the default BANKTEXT gateway or set up a
custom notification gateway.
Gateway: Specify the gateway to use. Multiple lines can be used to specify multiple gateways
Production: Enable this for workspaces in production
With the configuration all done, you can Send a test push to my user to send a test push to yourself.
To successfully send a test push to your user, you need to be logged in to the workspace on your
mobile device and then close or minimize the application.
Privacy
In Privacy, you can configure what information you want your push notification to have.
Show Channel/Group/Username in Notification: Toggle this on to make the channel name, group
name, and username visible in notifications.
Show Message in Notification: Enabling this makes messages visible in notifications.
Hide message content from Apple and Google (and the Gateway, if enabled): Turn this on to hide
the content of a message from Google/Apple or any other push gateway.
This adds only the message id to the notification data. The mobile client dynamically fetches the content
from the server and updates the notification before displaying it.
For Enterprise workspaces, failure in fetching a message using the message id provided in
the push data results in a "You have a new message" being sent.
With the push configuration completed, follow this guide to set the default user preferences for notifications
Default User Preferences .
Broken link
On some channels, notifications can stop if the number of users exceeds the set limit. The limit is
set in the Administration > General > Notifications. Notifications
Connect to cloud
When you purchase a package for push notifications as a self-managed customer, you need to connect
your workspace BANKTEXT Cloud.
Registration
Go to cloud.BANKTEXT
Switch to the Workspaces tab
Select the workspace you want to check the count for
The push notifications block shows the number of used notifications per your current limit per month.
Rate Limiter
Control the rate of requests sent or received by your workspace to prevent cyber
attacks and scraping.
BANKTEXT Rate Limiter is used to control the rate of requests sent or received by your BANKTEXT
workspace. It can be used to prevent cyber attacks like DoS (Denial of Service) attacks and limit web
scraping.
To access this setting, go to Administration > Workspace > Settings > Rate Limiter.
Enable Rate Limiter: This lets you enable API rate limiter.
Enable Rate Limiter in development: When Rate Limiter is set to True , the rate limiter is enabled for
development. It limits the number of calls to the endpoints in the development environment.
Default number calls to the rate limiter: Number of default calls for each endpoint of the REST API,
allowed within the time range defined below.
Default time limit for the rate limiter (in ms): Takes time in seconds to limit the number of calls at each
endpoint of the REST API (in ms).
Limit by User per Method: When set to true, it enables limiting user's rate per method
Limit by User per Method: requests allowed: The number of requests allowed
Limit by User per Method: interval time: The interval for limiting user per method
Limit by Connection per Method: Lets you set connection limit by method
Limit by Connection per Method: requests allowed: The number of request requests allowed
Limit by Connection per Method: interval time: Interval for limiting connection per method
Feature Limiting
Setting this up gets your sever full protection from email and username enumeration by brute force attack.
Default number calls to the rate limiter for registering a user: Number of default calls for user
registering endpoints (REST and real-time API's), allowed within the time range defined in the API Rate
Limiter section.
Retention Policy
Automatically prune old messages and files across your workspace
The Retention Policy allows you to automatically remove old messages and files with custom rules on
channels and globally.
Permissions
Retention policies depend on two types of permissions:
Configuration
Retention policies have two levels, global policies (enforced everywhere) and per-channel policies
(implemented in specific channels).
Global policies
Tweaking these settings without extreme caution can destroy all message history across your
server. Please read this entire section before you enable this feature.
Navigate to Administration > Workspace > Settings > Retention Policy > Global Policies
The policy is split into three parts: one for all channels, one for all private groups, and one for all direct
messages. Each type has two options:
Applies to channels/private groups/direct messages: Enabling this option applies the global
retention policy to this type of message. For example, if you only wish to prune messages in private
groups, enable the option for private groups and disable the others.
Maximum message age in channels/private groups/direct messages: This option establishes how
old messages may be in days. For example, to make the policy automatically delete all messages older
than 30 days, enter 30 ; to make the policy automatically delete all messages older than a year, enter
365 , etc.
Furthermore, other options allow you to specify how the policy works:
Exclude pinned messages: If enabled, pinned messages are not deleted. For example, when you pin
a few messages with essential links, these messages stay intact.
Only delete files: If enabled, messages are not deleted, but files are. They are replaced by a simple File
removed by automatic prune message. When used together with Exclude pinned messages, only
unpinned files are deleted.
Timer Precision: It establishes how often the deletion script should run. When your policies have a long
lifetime or do not care about the policy's precision, you can lower this to save processing power.
Do not prune discussion messages: If enabled, discussion messages are not deleted. All the
discussions in your workspace remain intact.
If you don't enable Do not prune discussion messages, all your discussion messages will be
deleted irrespective of the dates.
Do not prune Threads: When enabled, threads are not deleted. All the threads in your workspace remain
intact.
Per-channel Policies
Tweaking these settings without extreme caution can destroy all message history across your
server. Please read this entire section before you turn the feature on.
Older than: Set a date and time to prune messages older than the select moment.
Only prune content from these users: Select users to delete their messages. Leave empty to
prune everyone's content.
Inclusive: If you check the inclusive checkbox, messages sent on and between Newer than and
Older than dates are deleted (messages are deleted between and including those dates). If you
don't check the inclusive checkbox, messages between Newer than and Older than dates are
deleted, and the messages sent on those dates are not deleted.
Do not prune pinned messages: Pinned messages are not deleted if enabled. For example, if you
pinned a few messages with important links, they stay intact.
Do not prune discussion messages: If enabled, messages in the discussions are not deleted.
Do not prune threads: If enabled, messages in the threads are not deleted.
Only remove the attached files, keep messages: If enabled, messages are not deleted, but files
are. They are replaced by a simple File removed by automatic prune message. When used together
with Exclude pinned messages, only unpinned files are deleted.
Click Prune.
SAML(Security Assertion Markup Language) is an XML-based format and protocol for exchanging
authentication and authorization data between parties.
This standard of authentication has significant advantages over logging in using a username/password:
To access this setting, navigate to Administration > Workspace > Settings > SAML
Connection
Certification
Custom Certificate: This is the public certificate for IdP providers used to verify SAML requests. The
format for this is PEM without -----BEGIN CERTIFICATE----- and --
Public Cert Contents: The public part of the self-signed certificate you created for encrypting your
SAML transactions. Example of self-signed certificate on the SimpleSAMLphp website here.
Format for this is PEM WITH -----BEGIN CERTIFICATE----- and -----END CERTIFICATE-
Signature Validation Type: Select the type of signature validation. This setting will be
ignored if no Custom Certificate is provided .
Private Key Contents: The private key matches the self-signed certificate you created as PKCS#1
PEM. Format for this is PEM WITH -----BEGIN PRIVATE KEY----- and -----END PRIVATE
KEY .
Enterprise
Roles
Sync User Roles: Enable to sync user roles on login (overwrites local user roles).
Role Attribute Name: If this attribute is found on the SAML response, its values will be used as role
names for new users.
Advanced
Identifier Format: Format of the identifier. Leave this empty to omit the NameID Policy from the request
NameID Policy Template: The NameID policy template. You can use any variable from the Authorize
Request Template here.
Custom Authn Context: Leave this empty to omit the authn context from the request.
To add multiple authn contexts, add the additional ones directly to the AuthnContext Template setting.
sessionIndex : The sessionIndex received from the IdP when the user logged in.
Metadata Certificate Template: The following variables are available:
certificateTag : If a private certificate is configured, this will include the Metadata Certificate
Template, otherwise it will be ignored.
callbackUrl : The BANKTEXT callback URL.
Mapping
User Data Custom Field Map: Configure how user custom fields are populated from a record in SAML
(once found).
General
User Interface
Behavior
Generate Username: Enable to generate username
Normalize username: Set the type of normalization to perform on a username
Immutable field name: Select the field name to be immutable
Overwrite user fullname (use idp attribute): Enable to overwrite user fullname
Overwrite user mail (use idp attribute): Enable to overwrite user mail
Logout Behaviour: Lets you set the behavior to happen on logout
Update Room Subscriptions on Each Login: When enabled, room subscriptions is updated on each
login. Ensures the user is a member of all channels in SAML assertion on
every login .
Include Private Rooms in Room Subscription: When set to true, private rooms are able to use for a
subscription. Adds a user to any private rooms that exist in the SAML assertion.
Default User Role: Lets you set the default user role. You can specify multiple roles, separating them
with commas.
Allowed clock drift from Identity Provider: The clock of the Identity Provider may drift slightly ahead of
your system clocks. You can allow for a small amount of clock drift. Its value must be given in a number
of milliseconds (ms). The value given is added to the current time at which the response is validated.
Mapping
User Data Field Map: Configure how user account fields (like email) are populated from a record in
SAML (once found). As an example, {"name":"cn", "email":"mail"} chooses a person's
human-readable name from the cn attribute, and their email from the mail attribute. Available fields in
BANKTEXT: name , email and username . Everything else is discarded.
{
"email": "mail",
"username": {
"fieldName": "mail",
"regex": "(.*)@.+$",
"template": "user- regex "
},
"name": {
"fieldNames": [
"firstName",
"lastName"
],
"template": " firstName lastName "
},
" identifier ": "uid"
}
Simple SAML php
As a popular open-source IdP, SimpleSAMLphp can be used to provide an authentication endpoint for
BANKTEXT and the built-in SAML support. Assuming that you have a SimpleSAMLphp IdP up and running
following this guide QuickStart instructions, you can find the metadata for the BANKTEXT SAML Service
Provider (SP) here, where 'my-app' is whatever you put in the Custom Provider box in the BANKTEXT
SAML admin page:
https://my-rocketchat-domain.tld/_saml/metadata/my-app
It is possible to set up the authentication between BANKTEXT and Active Directory Federation Services by
setting up SAML authentication scenario.
Microsoft ADFS provides an IdP service that can be consumed by BANKTEXT for authentication.
If you are using Active Directory without Federation Services, you should perform the user
synchronization via LDAP only.
This document considers that your ADFS environment is deployed and running. For further info,
please refer to this guide.
Navigate to Administration > Workspace > Settings > SAML and configure the entry points and the
IdP path.
Add the private key certificate related to the ADFS server.
ADFS uses .pfx certificate extensions (widely used on Windows landscapes) and BANKTEXT
uses .pem files. So, before setting the certificate here, it must be converted.
Set the Custom Authn Context and User Data Field Map according to the scenario you have on your
Active Directory Federation Services.
The Custom Authorization context fields must match the authentication methods selected on
ADFS. Microsoft Federation Services provides two authentication methods: Forms authentication
and Windows Authentication.
Forms authentication: If this option is selected as 'primary', a login form provided by ADFS will be called
by the SAML assertion to perform the login operation. For this method, the recommended "Custom
Authn Context" in BANKTEXT should be
urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
Windows authentication: if this option is selected as 'primary', ADFS will expect the login assertions
on the Windows Domain level. To set a full SSO scenario between BANKTEXT and ADFS, the
recommended "Custom Authn Context" should be _urn:federation:authentication:windows_
Oracle Identity Cloud Service
Before you create your IDCS application, make sure you have enabled SAML per the SAML
Documentation. You will need to have entered a Custom Provider and a Custom Issuer URL on the SAML
settings page in BANKTEXT.
Note: Leave the Custom Entry Point and IDP SLO Redirect URL values as the default values for now. We
will obtain these URLs below, but you must save the SAML settings with your Custom Issuer URL so you
can visit this URL and obtain values that are necessary when creating the IDCS application below.
On your Oracle Cloud Applications Dashboard, find a button to add a new application. It should open the
following pop-up:
App Details
The only information needed on this page is the application name and URL. The URL you need to use here
is the same one that is set on the Custom Issuer SAML configuration field on the BANKTEXT settings.
SSO Configuration
To get the values for those new settings, you need to access the same Custom Issuer URL that you used on
the previous page. It should show an XML file similar to the one below:
On the AssertionConsumerService tag, you need to copy the value of the Location attribute. Then paste
this value on the Assertion Consumer URL field on the Oracle Settings. On the SingleLogoutService tag,
you need to copy the value of the Location attribute, then paste it in the Single Logout URL param of the
Advanced Settings. On the same SingleLogoutService tag, you need to copy the value of the
ResponseLocation attribute, then paste it in the Logout Response URL param of the Advanced Settings.
Finally, the Entity Id param receives the URL of the XML file itself (the same URL you used as the
application URL).
Before clicking on Finish, click the Download Identity Provider Metadata button to download another XML
file.
BANKTEXT Settings
There are two BANKTEXT settings that need to be copied from the IDP Metadata you just downloaded:
Custom Entry Point and IDP SLO Redirect URL.
For the first one, locate the tag md:SingleSignOnService and copy the value of the Location attribute (ends
with /idp/sso ).
For the second param, locate the tag md:SingleLogoutService and copy the value of the Location attribute
(ends with /idp/slo ).
There may be multiple occurrences of those tags in the XML file, so make sure that the copied URLs end
with /idp/sso and /idp/slo and not /sp/sso and /sp/slo .
Testing
Everything should be properly configured now. You can now add users to your SAML Integration app on the
Oracle Dashboard and then test the login on your BANKTEXT instance.
Keycloak
https://www.keycloak.org/ is another popular open-source IdP that you can use in connection with
BANKTEXT.
Prerequisites
Keycloak:
Decide/set up a realm you want to use, e.g. master . The realm will be referenced by the placeholder
<realm> .
Setting up BANKTEXT
Go to the SAML settings in BANKTEXT administration:
Setting up Keycloak
Go to https://r.example.com/_saml/metadata/keycloak - you should get an XML file. Save
the raw file to your disk. Go to keycloak and open the "Add Client" dialogue. Select the SAML protocol, and
import the XML file from the previous step. You will be redirected to a partially pre-filled client setting page.
The client ID referenced by Keycloak should be the same as the metadata URL.
Go to the SAML Keys tab, and make sure that the public key (certificate) is the same as the
BANKTEXT's public key. Note that the -----BEGIN/END CERTIFICATE----- header/footer is not
supposed to be part of the Keycloak's public key view, but the rest should be the same. If they are not the
same, save the BANKTEXT public key one into a text file, and import it from Keycloak - use the import
PEM functionality.
Go to the Mappers tab, and create mappers for the required data that BANKTEXT expects. You
shouldn't need email or username , but you probably need cn .
Click Create, and choose the type User Property and set the SAML Attribute NameFormat
to basic . For the first name, set Name and Property to firstName , and SAML Attribute
name to cn .
Troubleshooting
You should be done by now. However, you may run into some problems for various reasons:
Q: I keep getting the Unable to validate response url: Error: Status is:
urn:oasis:names:tc:SAML:2.0:status:Responder error.
A: Make sure that the respective Keycloak user has an e-mail address. This may not be the case e.g., for
Keycloak admin.
Q: How do I generate a certificate pair?
A: Try openssl req -newkey rsa:3072 -new -x509 -days 3652 -nodes -out
saml.crt -keyout saml.pem . Then, just copy the file contents to the respective fields.
Search
Select workspace search provider and configure search related settings
Here you can configure how searches work on your BANKTEXT server. This gives you the option to select
a search provider.
To access this setting, navigate to Administration > Workspace > Settings > Search.
Search Provider: A dropdown that lets you select which search provider you wish to use. Can be
Default provider or Chatpal Provider .
Chatpal Provider
Backend Type: Lets you choose the backend type for your Chatpal provider. Select if you want to use
Chatpal as a Service or as On-Site Installation.
API Key: Your Chatpal API key. Find some descriptions on how to run a local instance on GitHub. The
URL must be absolute and point to the Chatpal core, e.g.
http://localhost:8983/solr/chatpal
HTTP Headers: List of HTTP Headers, one header per line. Format: name:value
Main Language: The language that is used most in conversations.
Default Result Type: Defines which result type is shown by the result.
Page size: Lets you set the page size.
Suggestions enabled: When enabled, suggestions are shown while searching.
Include All Public Channels: When set to true, it searches in all public channels, even if you haven't
joined them yet.
Index Batch Size: The batch size of index documents (on bootstrapping)
Index Timeout: The time between 2 index windows in ms (on bootstrapping)
Index Window Size: The size of index windows in hours (on bootstrapping)
Default Provider
The global search feature is currently in Beta and may not function as expected.
Setup Wizard
Basic info about your workspace such as organization name and country
This section has basic configurations for the setup wizard of your workspace.
To access this menu, navigate to Administration > Workspace > Settings > Setup Wizard.
Organization Info
Organization Type: A dropdown for you to select the type of organization. Example Enterprise
Industry: The industry to which your organization belongs. Example Technology Services
Server Type: The type of server you are running. Example Public Community
Cloud Info
Cloud Service Privacy Terms Agreement: Enable to agree to Cloud terms and privacy policies
SlackBridge
Enable BANKTEXT to communicate directly with Slack
To access this menu, navigate to Administration > Workspace > Settings > SlackBridge
Alias Format: Import messages from Slack with an alias; %s is replaced by the username of the user. If
empty, no alias is used.
Exclude Bots: Takes in a regular expression to not propagate messages from any bot whose name
matches the regular expression. If left empty, all messages from bots are propagated.
Reactions: Enable to get reactions
Remove channel links: Remove the internal link between BANKTEXT channels and Slack channels.
The links are afterward recreated based on the channel names.
Smarsh
Configurations to preserve email communication
To access this menu, navigate to Administration > Workspace > Settings > Smarsh.
Smarsh Enabled: Whether the Smarsh eml connector is enabled or not (needs 'From Email' filled in
under Email -> SMTP).
Smarsh Email: Smarsh Email Address to send the .eml file to.
Missing Email: The email to show for a user account when their email address is missing. It generally
happens with bot accounts.
Smarsh Timezone: This lets you set the Smarsh timezone
Smarsh Interval: The amount of time to wait before sending the chats (needs 'From Email' filled in
under Email -> SMTP).
SMS
Enable and configure SMS gateways on your workspace.
This setting lets you configure various SMS gateways on your workspace.
To access this menu, navigate to Administration > Workspace > Settings > SMS.
Enabled: This lets you enable or disable SMS service on your server.
Service: Select the available SMS services e.g Twilio , Mobex , Voxtelesys
Omnichannel Department (Default): If set, all new incoming chats initiated by this integration are
routed to this department.
Mobex
Create a Mobex account at https://mobex.biz/ and get a plan with the needed credentials to configure your
Mobex SMS integration.
Mobex SMS Gateway Address: IP or Host of your Mobex service with the specified port. E.g.
http://192.168.1.1:1401 or https://www.example.com:1401
Mobex SMS REST API Address: IP or Host of your Mobex REST API. E.g.
http://192.168.1.1:8080 or https://www.example.com:8080
Username: Your username
Password: Your Mobex password
From: Originating address/phone number when sending a new SMS to Live Chat client
List of numbers to send SMS from: Comma-separated list of numbers to use in sending brand new
messages, eg. 123456789 , 123456788 , 123456888
Twilio
Voxtelesys
Auth Token: Your Voxtelesys auth token
URL: The Voxtelesys URL e.g https://smsapi.voxtelesys.net/api/v1/sms
File Uploads Enabled: When enabled, file uploads are made available
Accepted Media Types: Comma-separated list of media types. Leave it blank for accepting all media
types.
Threads
Threads allow organized discussions around a specific message
Threads are a key part of the messaging experience in BANKTEXT rooms and direct messages. They’re
used to organize conversations and enable users to discuss topics without adding noise to rooms or direct
messages.
Collapsed Reply Threads offer an improved experience for users communicating in threads and replying to
messages that include a unified threads inbox to read all conversations in one view. Threads improve the
ability to process room content, find, follow, and resume conversations more easily, and keep threaded
conversations focused.
To access this setting, go to Administration > Workspace > Settings > Threads.
To access this section, go to Administration > Workspace > Settings > Troubleshoot.
We recommend these settings be altered only with the guidance of the BANKTEXT Development
or Support Teams. Do not touch them if you don't know what you are doing!
Disable Notifications: This setting completely disables the notifications system. When enabled,
sounds, desktop notifications, mobile notifications, and email notifications immediately stopped.
Disable Presence Broadcast: This setting prevents all instances from sending the status changes of
the users to their clients, keeping all the users with their presence status from the first load.
Disable Instance Broadcast: Setting this to true prevents the BANKTEXT instances from sending
events to the other instances. It may cause syncing problems and misbehavior.
Disable Sessions Monitor: This setting stops the processing of user sessions, causing the statistics to
stop working correctly.
Disable Live Chat Activity Monitor: Activating this setting stops the processing of Live Chat contacts
sessions, causing the statistics to stop working correctly.
Disable Statistics Generator: This lets you stop the processing of all statistics making the info page
outdated until someone clicks on the refresh button and may cause other missing information around the
system.
Disable Data Exporter Processor: This setting stops the processing of all export requests from users,
so they will not receive the link to download their data.
Disable Workspace Sync: Enabling this stops the sync of the server with BANKTEXT's cloud may
cause issues with the marketplace and enterprise licenses.
User Data Download
Configurations to allow or disallow workspace members from downloading workspace
data
This setting lets you configure aspects that involve users downloading their data from the server.
Navigate to Administration > Workspace > Settings > User Data Download.
Enable User Data Download: When set to true, users are able to download their data.
System Path (Exported Files): Specify the path where exported files should be located.
System Path (Compressed File): This lets you set where compressed files should be.
Processing Frequency (Minutes): Takes in the frequency in minutes for processing data download.
Message Limit per Request: This lets you limit the number of messages that can be downloaded per
request.
Users can find where to initiate data download at My Account > Preferences > My Data
Webdav Integration
Configure WebDAV servers like Nextcloud
A framework for users to create, change and move documents on a server. Used to link WebDAV servers
such as Nextcloud.
To integrate a WebDAV server, follow this article on Nextcloud and WebDAV integrations
WebRTC
Broadcast audio, and video material, as well as transmit arbitrary data between
browsers without the need for a middleman
WebRTC (Web Real-Time Communication) is a technology that allows Web apps and sites to record and
potentially broadcast audio and/or video material, as well as transmit arbitrary data between browsers
without the need for a middleman.
To access this setting, go to Administration > Workspace > Settings > WebRTC.
Enable for Public Channels: WebRTC will be enabled for all public channels if set to true.
Enable for Private Channels: When enabled, private channels will have WebRTC.
Enable for Direct Messages: If set to true, direct messages will have WebRTC.
STUN/TURN Servers: A list of STUN and TURN servers separated by a comma.
Username, password, and port are allowed in the format username:password@stun:host:port
or username:password@turn:host:port .
Engagement Dashboard
This feature adds the ability to evaluate user engagement on the channels.
The BANKTEXT engagement dashboard gives you great insights into users, messages, and channel
activities.
To access this menu, navigate to Administration > Workspace > Engagement Dashboard
You can download the data for any matrix you want in CSV, using the download button at the top left.
User
The user tab shows you the following matrices.
New users: The new users matrix represents the total number of new users for a select period. You can also
see the number by which users increased/decreased from the last interval of the select period.
Active users: It represents the total number of users using the application daily, weekly and monthly. You
can also see the number by which active users increased/decreased, as shown below:
Users by the time of day: It represents the total number of users by time of the day for a select period of
time. The darker the color of the brick, the more users are online at that time. You can also check the exact
count of users for an hour by hovering over the mouse cursor on the respective brick.
When is the chat busier?: It represents the time by day or hour when your chat is busier.
Messages
The Messages tab shows you the following engagement matrices.
Messages Sent: It represents the total number of messages sent for a select period of time. You can also
see the number by which the sent message count increased/decreased from the last interval of a select
period.
Where are the messages being sent?: It represents the public, private, and top 5 most popular channels to
which the most messages are being sent for a select period of time.
Channels
This table shows you the count of messages being sent and the increment/decrement of count from the last
interval for a selected period for all your channels. You can also download this information in a CSV file.
Device Management
As a workspace administrator, you can manage and control the devices linked to your workspace.
To access this menu, navigate to Administration > Workspace > Device Management.
You are prompted for two-factor authentication. The two-factor authentication via email feature in Device
Management ensures that only authorized users access the module and will prevent unauthorized
access.
Enter the six-digit authentication code sent to your registered email address and click Verify.
After the successful verification, you will get to see the devices that are linked to your workspace.
Click on the device name to see details about the device, such as Client, Operating system, User, Last
Login, Device Id, and IP address.
You can easily search for devices by username, device model, or device operating system.
Choose the device that you want to disconnect and then click Logout.
If the device is logged out, the user will be notified that the workspace admin has ended the session on the
device. Users can sign in again with the same devices when they want.
Follow this guide to configure security and access control policies for device management
Omnichannel
You can use BANKTEXT to talk to your customers and website visitors, regardless of
which channel they choose to connect with you.
BANKTEXT Omnichannel allows you to integrate various customer communication channels into your
workspace. You can incorporate the Omnichannel Live Chat pop-up widget into your website, serving as an
entry point for communication or direct support to your customers or visitors.
You can also use advanced Omnichannel Apps, which provide a seamless communication experience
between BANKTEXT and external users from other communication platforms like WhatsApp, SMS,
Facebook, Instagram Direct, Twitter, Telegram, etc.
Using Omnichannel helps acquire and retain customers in a multi-channel environment to save valuable
potential sales while building relationships, providing an exceptional experience and the ability to interact
through various communication channel
BANKTEXT Omnichannel has three primary users; Admins, Managers, and Agents.
Enable Omnichannel
To enable the Omnichannel feature on your workspace,
Kindly contact your workspace administrator to enable Omnichannel. Learn how to configure
Omnichannel on your BANKTEXT workspace.
Now the administrator and BANKTEXT Omnichannel Manager can access Omnichannel Settings by
navigating to Administration > Omnichannel. Only users with Administrator and Omnichannel Manager
roles assigned to them can access this menu.
Real-time Monitoring: Monitor your incoming and ongoing Live Chat conversations in real time.
Livechat Triggers Manager's Guide: Configure Omnichannel LiveChat trigger to open the LiveChat
widget.
Livechat Widget Installation: Embed the LiveChat widget into your web pages.
LiveChat Widget Appearance: Customize the LiveChat widget to suit your branding style.
Business Hours Manager's Guide: Set up business hours to specify the working days and hours of your
business.
Units Manager's Guide: Organize a unit of multiple departments and assign a monitor to oversee them.
Canned Responses: Save message snippets with shortcuts to enable faster communication.
Tags Manager's Guide: Create tags to sort Live Chat conversations quickly.
Priorities Manager's Guide: Change the order of Omnichannel queues based on Estimated Due Time.
Current Chats
Omnichannel Current Chats contains all the existing conversations that have not been deleted.
You are required to have View Omnichannel Contact Center permission to access this section.
Contact your workspace administrator to grant/revoke this permission.
Sort by Guest name: To sort the conversations by Guest/Visitor's name, enter the name in the field
provided, and your conversations are sorted by visitor name.
Sort by Agent: To sort the conversations served by an agent, select the agent from the Served By
dropdown field
Sort by Department: To sort the conversations by department, enter the department name in the
Department field, and your conversations are sorted by department.
Sort by Status: To sort the conversations by Open/Closed Status, choose the desired status from the
Status dropdown field, and your conversations are sorted. A conversation can be Open, On Hold, or
Closed
Sort by From and To date: To sort the conversations per From and To date, enter the From and To
Date in the field, and your conversations are sorted
Clear filters
To clear the filters, click on the three dots icon and select Clear filters.
This is an out-of-the-box analytics dashboard that allows you to track your Live Chat Agents' performance
(productivity) over any period of time. It gives managers the insight they need to make data-driven decisions
that improve the customer experience.
Total Conversations: It represents the total number of conversations during the selected period of time.
Open Conversations: It represents the total number of open conversations for your selected department
during the chosen period.
Total Messages: It represents the total number of messages received in all the conversations during a
selected period.
Busiest Day: It shows the day during which you received the most chats for your selected time.
Conversation Per Day: It shows the average count of conversations you received per day.
Busiest Time: It shows the hour during which you received the most chats for your selected period of time.
You can also see the percentage of conversations, the average of chat duration, and the total
messages handled by each one of your agents from your selected department from the Chart field.
Average of Response Time: This matrix represents the average of your agent’s team’s responses to all the
conversations that are automatically assigned to them during a selected time.
Average of First Response Time: This matrix represents the average of the team’s first response to all the
chats they pick up.
Average of Reaction Time: This matrix represents the average of the team’s reaction to the assigned chats.
You can also see the Average of First Response Time, Best First Response Time, Average of
Response Time, and Average of Reaction Time of each of your agents from your selected department.
Real-time Monitoring
Real-time monitoring allows you to monitor your incoming and ongoing Live Chat conversations in real-time.
To access the Omnichannel Real-time monitoring dashboard, Go to Administration > Omnichannel >
Real-time Monitoring.
These monitoring metrics can be filtered by the department and set to be updated in a specified amount of
time by changing the Update every field.
When a Live Chat conversation is initiated, it is reflected immediately on the monitoring dashboard in real-
time.
Total Conversations: It represents the total number of conversations at the current time.
Open Conversations: This shows the number of open conversations for your selected department at
the current moment.
On Hold Conversations: This shows the number of conversations on hold at the moment.
Total Messages: It represents the total number of messages received in all the current-day
conversations.
Total Visitors: It represents the total number of Live Chat users for your selected department for the
current day.
Total Abandoned Chats: It represents the total number of conversations abandoned by the visitor for
your selected department's current day.
Average of Abandoned Chats: Shows in percentage the number of abandoned chats.
Average of Chat Duration Time: It represents the average duration of all the conversations of your
selected department for the current day.
Average of Service Available Time: It represents how many hours the Omnichannel service was
available during the day. It means that at least one agent is available to serve Omnichannel
conversations.
Average of Service Time: It represents the average time the agents spend serving chats in the current
day.
Average of Response Time: If the selected chat pickup method is auto-selection, the chat is
automatically assigned to an agent. This metric represents the average of agents' responses to all the
conversations automatically assigned to them.
Average of First Response Time: This matrix represents the average of the agent's first response to all
the chats he picks up.
Average of Reaction Time: This metric represents the average of the agent's reaction to the assigned
chats.
Average of Waiting: It represents the average time your visitor spent in the waiting queue.
Managers
Omnichannel managers are responsible for managing Omnichannel conversations, they can monitor and
see analytics of Omnichannel activities.
To access this menu, go to Administration > Omnichannel > Managers. Here, you can view, add or
remove managers.
This will automatically assign the Live Chat Manager role to that user, who can now monitor and see
analytics of Omnichannel activities.
Omnichannel Agents are responsible for handling Omnichannel conversations. An agent can belong to a
particular department and gets notified when a new conversation gets initiated if they are available.
To access this menu, go to Administration > Omnichannel > Agents. Here, you can view, add or remove
agents.
This will automatically assign the Omnichannel Agent role to that user.
You may need to assign a particular agent(s) to be in charge of conversations involving a particular
department. To assign an agent to a department,
From the Omnichannel Agents page, click on the agent and click Edit on the sidebar
A section is opened with the agent's details, scroll down to the Departments field and select the
departments that the agent can respond to
Click Save.
A typical use case is when you have Live Chat conversations initiated from different places or
pages of your website and need them handled by various departments or groups of knowledge
experts. You can assign an agent to a department.
Go to Administration > Omnichannel > Departments. Here, you can View, Create New, Edit, or
Delete a department.
From community edition workspaces on version 6.0 and above, you can only create one
department. To create multiple departments, you are required to upgrade to the enterprise edition
of BANKTEXT. For workspaces with multiple departments on previous versions of BANKTEXT,
you can continue with those departments but can't create a new one until you upgrade to
Enterprise.
4. Show on the registration page: Allow your visitor to have the option to choose the department they
want to talk to. The option will appear to your customer in the Live Chat widget.
5. Email: Forward your Omnichannel conversations to the email address you choose during offline hours.
6. Show on offline page: A radio button if you want your department to show offline during off-business
8. Request tag(s) before closing the conversation: Request your agent to set tags for the conversation
for later searching purposes.
9. Conversation closing tags: As an administrator, you can add some conversation tags for this
department.
10. Agents: Assign the agents to this department.
Depending on how many departments you've created, you might have the following behavior:
No departments: All Live Chat agents will receive incoming chats using a round-robin rule.
One department: All incoming chats will be offered to agents only in that department using a round-
robin rule.
More than one department: The visitor must choose what department he wants to talk to at registration.
For community edition workspaces below version 6.0 with multiple departments, archiving
departments can be instrumental if you want to avoid getting an enterprise license. Instead of
deleting a department when you no longer need it, you can archive it. When you need that
department later, you can unarchive it. This gives community edition workspaces below version
6.0 the ability to retain the same number of departments they had before the upgrade.
Click the kebab menu across the department you want to archive.
Then, select Archive. Navigate to the Archived tab, and you'll see the archived departments.
Then, select Unarchive. The department is added back to the list of active departments.
Click the kebab menu across the department. Then, select Edit.
A panel is opened with all the current omnichannel department information you can modify. Update the
department details and click Save.
Click the kebab menu across the department. Then, select Delete.
Custom fields can be added to receive additional information from visitors during registration before initiating
a Live Chat conversation or used to set other properties of a visitor/room. They can be set upon a Visitor or
Room.
To access this menu, go to Administration > Omnichannel > Custom Fields. Here, you can View, Create
New, Edit, or Delete an existing field.
The Live Chat registration form has the Name, Email, and I need Help With…(Department) fields
by default.
Field: Enter the desired field that you want to add to your Live Chat registration form. E.g., last name.
Label: The label of the field.
Scope: A dropdown for you to set the scope of the custom field
Visitor: If the visitor option is selected, the field will be available as an Omnichannel visitor's
property
Room: When selected, the field will be available against an Omnichannel room.
Visible: Whether or not to make it visible
Searchable: This lets you set if searching in the Omnichannel Contact Center can be done with the
custom field.
Options: Comma-separated list used to select a pre-configured value. Spaces between elements are
not accepted.
Public: Set it Public this will be displayed in external applications, such as Live Chat
When a custom field is created and made public, any value supplied in that field is available on the Live
Chat agent's side.
A section is opened with all the current details of that field which can be modified. Update the field and
click Save.
Omnichannel Live Chat Triggers are a set of events that can be configured that when they happen, causes
the Live Chat widget to perform an action or opens up automatically.
To access this menu, go to Administration > Omnichannel > Live Chat Triggers. Here, you can View,
Create New, Edit or Delete existing Live Chat Triggers.
A page for the department details is seen. Fill in these details and click Save
Run only once for each visitor: Enable to let the trigger only run once for each visitor. If false, you get a
recurring pop-open. (e.g., If your user goes to a different website and comes back to the same website, it
pops open)
Name: Name your new trigger.
Description: Allows you set the description of the trigger.
Condition: Allows you set the condition for which the action will be triggered. Depending on what
condition to track, you can set additional properties for validation.
Action: Define the action you want the Live Chat widget to perform. For now, there is only one option of
sending a message to the visitor. You can also select if you want to impersonate the next available
agent in the queue or use a bot/custom agent.
The Live Chat Widget is a chat interface that can be embedded into a webpage. Visitors on your website
can click the widget to initiate a conversation. It can serve as an excellent tool for use cases like the
following:
Copy the code snippet and paste it above the last </body> tag on your website.
The Live Chat widget appears at the bottom right of your webpage.
After installing the widget, navigate to Administration > Workspace > Settings > General.
Disable Restrict access inside any iframe on your BANKTEXT server.
Review the Site URL setting under Administration > Workspace > Settings > General and the server
name setting on your reverse proxy (if you have one) to guarantee they are all aligned and correspond to the
same URL used in your Live Chat Widget installed script.
Livechat Widget Appearance
The Live Chat Widget's appearance can be customized to fit your branding style. Whether agents are online
or not, you can customize the widget appearance for offline and online hours. The fields on the registration
form and the messages displayed after a conversation are both customizable.
Offline Success Message: Set up the message you want to send to the visitor after successfully
sending an offfline message.
Conversation Finished Message: Set up the message tiltle you want to send to the visitor when the
conversation is finished.
Conversation Finished Text: Set up the message text you want to display to the visitor when the
conversation is finished.
Webhooks
Omnichannel webhooks allow you to integrate the BANKTEXT Omnichannel to any third-party system, e.g.,
CRM, Zoho, etc.
Webhook URL: The Webhook URL from the system you want to connect(destination).
Secret Token: Enter the secret token that can be used to verify the webhook.
If your endpoint returns a response status other than 200 , BANKTEXT will retry ten times,
waiting ten seconds between retries.
Send Request on: Select the action(s) you want this integration to have.
Send Request on Chat Start: Sends a post request to the webhook endpoint when an Omnichannel
chat starts.
Send Request on Chat Close: Sends a request when a chat gets closed.
Send Request on Chat Taken: Sends a request when an Omnichannel agent Takes a chat.
Send request on Chat Queued: A request gets sent when a chat gets queued.
Send Request on Forwarding: Triggers request to be sent when a chat gets forwarded to another
Omnichannel department or Agent.
Send Request on Offline Messages: Sends a request when a visitor leaves an offline message.
Send Request on Visitor Messages: A request is sent when an Omnichannel visitor sends a
message.
Send Request on Agent Messages: Sends a request when an Omnichannel Agent sends a message
or reply.
Send Visitor Navigation History on Request: Sends a request about visitor's navigation history. This
feature depends on "Send Visitor Navigation History as a Message" to be enabled.
Lead capture email regex: Specify the regex for lead captured email.
Lead capture phone regex: Set the regex for lead-captured phone numbers.
If you enable Send Request on Chat Start, BANKTEXT sends a webhook to the external system
telling it that a new conversation has started.
{
"_id": "Tc5SyBZHovD4k8BXv",
"label": "James",
"createdAt": "2023-02-02T10:16:07.230Z",
"lastMessageAt": "2023-02-02T10:22:14.087Z",
"tags": [
"self"
],
"visitor": {
"_id": "63db8d4990fe6eda42ad429a",
"token": "e36e352c742eee48860d576fcefb372afc44ebc95750fa1e3b646195f702341a",
"name": "James",
"username": "guest-3",
"email": [
{
"address": "fongang.rodrique+local-on@BANKTEXT"
}
],
"phone": null
},
"agent": {
"_id": "aXjjcPwq4Pcp7xftH",
"username": "user1",
"name": "User One",
"email": "uaser1@mail.com"
},
"type": "LivechatSession",
"messages": [
{
"u": {
"_id": "63db8d4990fe6eda42ad429a",
"username": "guest-3",
"name": "James"
},
"_id": "2untSdndqBP7opGWw",
"username": "guest-3",
"msg": "Hi",
"ts": "2023-02-02T10:16:09.615Z"
},
{
"u": {
"_id": "aXjjcPwq4Pcp7xftH",
"username": "user1",
"name": "User One"
},
"_id": "7xjkw8ZFitMSNGmeJ",
"username": "user1",
"mtsg""::""2H0o2w3-c0a2n-0I 1e
2Th0l
:p :o
21y0u 3o
5.t9d
1a
Zy
"?
,",
"agentId": "aXjjcPwq4Pcp7xftH"
},
{
"u": {
"_id": "63db8d4990fe6eda42ad429a",
"username": "guest-3",
"name": "James"
},
"_id": "y7p77YFfkHJeg5gD9",
"username": "guest-3",
"msg": "don't worry,thank you",
"ts": "2023-02-02T10:22:14.087Z"
},
{
"u": {
"_id": "aXjjcPwq4Pcp7xftH",
"username": "user1",
"name": "User One"
},
"_id": "ciAggDuN8ioqDrTby",
"username": "user1",
"msg": "Thank you for visiting",
"ts": "2023-02-02T10:23:11.437Z",
"agentId": "aXjjcPwq4Pcp7xftH",
"closingMessage": true
}
],
"servedBy": {
"_id": "aXjjcPwq4Pcp7xftH",
"username": "user1",
"ts": "2023-02-02T10:16:07.375Z"
},
"closedAt": "2023-02-02T10:23:11.344Z",
"closedBy": {
"_id": "aXjjcPwq4Pcp7xftH",
"username": "user1"
},
"closer": "user"
}
Message sent
{
"_id": "Tc5SyBZHovD4k8BXv",
"label": "James",
"createdAt": "2023-02-02T10:16:07.230Z",
"lastMessageAt": "2023-02-02T10:16:09.615Z",
"vi
"s_ it
do"r
: ":
"6{
3 db8d4990fe6eda42ad429a",
"token": "e36e352c742eee48860d576fcefb372afc44ebc95750fa1e3b646195f702341a",
"name": "James",
"username": "guest-3",
"email": [
{
"address": "fongang.rodrique+local-on@BANKTEXT"
}
],
"phone": null
},
"agent": {
"_id": "aXjjcPwq4Pcp7xftH",
"username": "user1",
"name": "User One",
"email": "uaser1@mail.com"
},
"type": "Message",
"messages": [
{
"u": {
"_id": "aXjjcPwq4Pcp7xftH",
"username": "user1",
"name": "User One"
},
"_id": "7xjkw8ZFitMSNGmeJ",
"username": "user1",
"msg": "How can I help you today?",
"ts": "2023-02-02T10:21:05.391Z",
"agentId": "aXjjcPwq4Pcp7xftH"
}
]
}
Facebook Messenger Manager's Guide
The Facebook Messager page allows you manage conversations from Facebook Messenger on the pages
you have connected.
This integration has known vulnerabilities and has been deprecated for BANKTEXT 6.0. As a
BANKTEXT Enterprise user you can make use of the Facebook App.
Select Facebook Messenger and Enable it. You'll be prompted to log in. Be sure to use the credentials
that are tied to the page you wish to receive messages from. You'll have to do a standard Facebook
OAuth login and grant your BANKTEXT instance access to your pages.
Once you're returned from Facebook, you'll see a list of the pages associated with that account. If you
see none, ensure the account has pages, then click RELOAD PAGES.
Enable the pages you'd like to get messages from.
Now, the Live Chat agents recieves any incoming chats from that page. Responses go back to Facebook as
if you were using Messenger itself.
Setting business hours lets you specify the working days and hours of your business. This reflects on the
Live Chat widget availability making it easy for agents to be notified and hence receive queries.
The enterprise workspaces can set up multiple business hours according to different time zones and their
business needs, while community workspaces can only set up one set of business hours.
Click +New.
Monitors in Omnichannel are users that have the ability to monitor Omnichannel activities and have access
to Current Chats, Analytics, Real-time Monitoring, Agents, Departments, Business Hours and Canned
Responses.
A monitor is only able to view analytics or activities of a department if they are assigned to a unit.
Enter the person's username in the username field and hit the Add button. This will automatically assign
that user the livechat-monitor role.
Click the Delete icon on the right across the user. This will remove the livechat-monitor role from
that user.
Units
Using Omnichannel units, you can group a set of departments for management purposes. As an
Omnichannel manager, you can make a unit of multiple departments and assign a monitor to oversee them.
Click on +New
Update the required information and click Save.
Canned responses allow you to save message snippets that you can call with shortcuts (preceded with ! )
to communicate quickly. They can be configured to work both in Omnichannel conversations or general
messaging within your BANKTEXT workspace.
Go to Administration > Workspace > Settings > Omnichannel > Canned Responses
Activate the toggle to enable and Save Changes
When Canned Responses is enabled, it'll be available to users with the corresponding *-
canned-responses role.
To enable Canned Responses for the first time, Omnichannel needs to be enabled first.
Canned Responses can be used only in the normal workspace when Omnichannel is
disabled.
To save a new canned response for your workspace, visit Canned Responses Omnichannel
Managers Guide.
Canned responses allow you to save message snippets that you can call with shortcuts
(preceded with ! ) to communicate a quick note to your visitors in Omnichannel and for
messaging in regular conversations inside your BANKTEXT's workspace.
If you are using canned responses for the first time, please check the BANKTEXT Admin's guide for canned
responses or contact your workspace Administrator to enable canned responses on your workspace.
Go to Administration > Omnichannel > Canned Responses. A list of Canned Responses can be
seen if they exist
Click on + New
Update the required information and Hit Save. A new Canned Response is ready to be used by typing
! in the message box.
Shortcut: The shortcut of your new canned response.
Message: Enter your message using any placeholders available. You can also preview the
message anytime by switching between the Editor and Preview tab.
Tags: Set the tags for your canned response. This helps agents find canned responses specific to a
particular topic
Sharing: Lets you set the usage level of your Canned Response
Public: Anyone across your workspace can access your canned response.
Department: Anyone in the selected department can access your canned response.
Private: Only you and Omnichannel managers can access your canned response.
As a Live Chat Manager, you can set Tags to be assigned to the Live Chat conversations by the agents.
Tags can be used to sort Live Chat conversations easily. Omnichannel Tags are used for marking and
classifying Omnichannel conversations.
A practical use case is using tags to mark the progress made on a Live Chat query. You can have
tags like new , blocked , in progress, completed etc.
Click on + New
Update the required information and click Save
Name: Enter the name you wish for the Tag
Description: A description of what the Tag is
Departments: This lets you select a list of departments in which the Tag is available. Leave it empty
to set it available to all departments.
Click on the Delete icon across the Tag from the main settings screen.
SLA Policies
Omnichannel SLA Policies allow you to change the order of Omnichannel queues based on Estimated
Wait Time. It means chats with a shorter wait time will appear in the queue before others with longer or no
due time set. SLA Policies are not mandatory for each chat. Thus, the Omnichannel queue has
conversations with and without SLA policies.
Estimated Wait Time is the time defined for a customer to be served. For example, if the
estimated wait time is 10 minutes, the customer is supposed to wait in queue for up to 10 minutes
until an agent takes the chat.
Navigate to Administration > Workspace > Settings > Omnichannel > Queue Management.
Under the sorting mechanism, select SLA Policies. Click Save Changes.
An SLA policy name and estimated due time are unique and can not be duplicated. Two SLA
policies can not have the same name and estimated due time.
From the SLA Policies list, click the Delete icon across the SLA Policy you want to delete.
Select the SLA policy and click Save. After updating the SLA policy, the chat is moved to reflect its
priority position to determine the queue order.
Priorities
OmniChannel Priorities helps you streamline conversations coming through multiple queues to prioritize
them and enhance productivity. It is helpful for agents to determine the conversations they should prioritize
when responding to customers. The omnichannel queue contains chats with and without priorities because
they are not assigned by default.
Navigate to Administration > Workspace > Settings > Omnichannel > Queue Management.
Under the sorting mechanism, select priorities. Click Save Changes.
Navigate to Administration > Omnichannel > Priorities. It lists the default priorities: Highest, High,
Medium, Low, and Lowest.
Select a priority to edit it and customize the name.
Click Reset to return the name of all the priorities back to default.
Hover over the chat and click the kebab menu. Select the priority option you want to assign to that chat.
After the priority is updated, the chat is moved to reflect its priority position in the queue. For example, a
chat with the priority 'highest" is transferred to the top of the chat queue.
You can also change the priority of a chat from the Edit room tab of the chat by navigating to Room
Information > Edit.
Organizations can benefit from automation using chatbots to determine the priority of each
conversation based on the nature of its contents.
BANKTEXT allows authorized users to audit messages and read conversations in a workspace. The user
must have an auditor role and Can Audit permission to access the auditing panel. As an
organization, you may want to inspect the omnichannel conversations and watch out for agents that use
improper language with customers. An auditor can do the following:
If you cant find the audit options, don't hesitate to get in touch with your workspace administrator
to assign message auditing permmisions to you.
See Messaging Auditing Log to learn more about the auditing log history.
By Channel/Room
Update the Message field with the key phrase of the message you are searching .lf you wish to pull all
messages, leave the Message field empty.
Select the start and end date to limit the search results to a specific time frame. The three-dots icon
also provides other time options like Today, Last Week, etc.
Select the room you want to search in from the Channel dropdown**.**
Click Apply to reveal the messages gotten between the periods.
By Users
To search for a specific message by users,
Update the Message field with the key phrase of the message you are searching .lf you wish to pull all
messages, leave the Message field empty.
Select the start and end date to limit the search results to a specific time frame. The three-dots icon
also provides other time options like Today, Last Week, etc.
Type the username and select the user(s) for which you want to search messages in the Users field.
Click Apply. The selected users' conversations between those periods that match the search phrase are
displayed.
By Direct Messages
Update the Message field with the key phrase of the message you are searching .lf you wish to pull all
messages, leave the Message field empty.
Select the start and end date to limit the search results to a specific time frame. The three-dots icon
also provides other time options like Today, Last Week, etc.
Select at least two users whose direct messages you want to check in the Users field.
Click Apply. The conversations between the users selected in that time frame that matches the search
phrase are displayed.
By Omnichannel
Update the Message field with the key phrase of the message you are searching .lf you wish to pull all
messages, leave the Message field empty.
Select the start and end date to limit the search results to a specific time frame. The three-dots icon
also provides other time options like Today, Last Week, etc.
Enter the visitor's number in the Visitor field.
Enter the agent's name who served the conversation you want in the Agent field.
Click Apply.
Review All Message Auditing Panel Search
Results
The Message Auditing Panel returns all messages that match the search values defined in the mandatory
fields for each option. However, the auditor cannot read the encrypted messages of other users. If you want
to audit these messages, BANKTEXT recommends that you disable message encryption.
BANKTEXT lets you view any message history, including modified or removed messages.
Disable Allow Message Deleting. Otherwise, messages show only the deleted status, and you cannot
see the complete message history.
Assign Message Auditing Permissions to
Specific Users
The Auditor permission grant users access to Message Auditing features. As a workspace administrator,
you can assign this permission to any role you want to give audit access to.
The Message Audit Log allows you to verify who run audits and when a conversation was inspected. The
user must have an auditor-log role and Can Audit Log permission to access the Audit Logs.
If you are interested in the entire log history, clear the start and end date fields. The full log history results are
returned, from the oldest audits to the most recent. However, if you want to see who audited messages
within a specific time frame, select the start (left) and end dates(right). The three-dots icon also provides
other time options like Today, This Week, etc.
To access the Message Auditing Panel, check the Can Audit Log box under the role you want to
assign.
BANKTEXT Cloud
Setup and manage your BANKTEXT cloud account.
BANKTEXT Cloud lets you connect your workspace to our cloud services and better manage your
workspaces. You have the option to choose between cloud-hosted workspace or self-hosted workspaces.
Create your new cloud account: Sign up for a new cloud account.
Manage your cloud account: Manage your workspaces, add organization information, view invoices, and
more services with your cloud account.
Cloud Account Setup Wizard: Set up your first Admin user and register your server.
BANKTEXT Cloud allows you to connect your self-hosted BANKTEXT workspace to the services we
provide in our Cloud. It enables you to manage your workspace better. You can explore the workspace
capabilities for free by signing up for a 30-day BANKTEXT Enterprise Edition Trial. You will get a
notification in advance of when the trial is coming to an end. If you purchase any plan, your trial version will
automatically convert to a paid plan at the end of the trial period.
If you are a self-managed customer, a cloud account is optional, but if you are a SaaS customer, it
is created by default when you first start your workspace with us.
Go to BANKTEXT Cloud.
Click Create Account to register your new BANKTEXT cloud account.
Fill in the required information.
Read and accept the BANKTEXT Terms and Conditions and Privacy Policy.
Click Next. You will receive an email with the confirmation link to sign in to your cloud account.
Confirm your email address by clicking on the link sent. Your cloud account has been created and is
ready to use.
You will see a Workspaces screen listing every workspace connected to your cloud account.
Manage your cloud account
You can use your cloud account to manage your workspaces, add organization information, view invoices,
upgrade or downgrade your workspaces, and more services.
Go to BANKTEXT Cloud.
Enter your Email Address and then click Send Login Link. You will receive an email with the link to
sign in to your cloud console.
From the email, click Sign In or copy and paste the URL into your web browser to access your cloud
account.
Using your password, you can also connect to your cloud account without an email invitation.
Go to BANKTEXT Cloud.
Any Cloud Portal account with a Cloud-hosted workspace can apply custom domains
If your custom domain stops working for any reason, there is no redirect option.
Select Use custom domain, set your new domain, and click Save.
A message tells you to wait for DNS verification, and your domain URL displays a pending status.
Registrars usually process nameserver updates within 24 hours. Once complete, you will receive an email
from BANKTEXT Cloud.
Profile
As a workspace administrator, you can view and manage all the workspaces linked to your account.
Manage Workspaces
When you log in, you will see the list of workspaces linked to your cloud account.
To register a self-managed workspace, click Register self-managed to enable your self-hosted workspace.
If you want multiple cloud workspaces under the same cloud account, please contact us at
support@BANKTEXT.
After your first sign-up, you are given a BANKTEXT Enterprise Edition for 30 days. No payment is required.
On the 30th day, you will be charged according to your chosen plan. The minimum volume or resources on
Cloud provided per workspace is for 25 members, so you will be billed accordingly even if you have less
than 25 users. Workspace members will continue to receive mobile push notifications for the remainder of
the trial.
You can change your workspace plan from the BANKTEXT Cloud Console, with the option to upgrade,
downgrade or switch to monthly or yearly plans.
Log in to your BANKTEXT Cloud account
Click and open the workspace you wish to upgrade the plan for
Click on Subscribe or Manage Subscription button
A side panel opens up with details for you to manage the subscriptions
Plans / Seats: This lets you toggle your billing plan to Monthly/Yearly
Cloud Enterprise [Monthly/Yearly]: Increase or decrease the number of seats for your workspace
depending on the plan selected above.
After a successful checkout, your subscription gets activated, and you receive an invoice through
email about the purchase. Decreasing already purchased seats will refund the cost as a
BANKTEXT Cloud account credit.
Restart Workspace
When facing issues with your workspace, you can restart your workspace. This process disconnects you
from your workspace so that it can be shut down and restarted. A server restart is required when you face
minor performance issues, e.g., slow messages. After you restart your workspace, it will take 1-5 minutes
(depending upon your number of users) for the workspace to continue again.
Cancel Workspace
You can cancel your workspace to end your subscription and hibernate your server.
To cancel a workspace,
Select Cancel.
Please be aware that the workspace administrator in your Cloud Console is the only person who
can end your subscription. Self-managed customers can't cancel their workspaces.
When you cancel a Saas service, the status remains canceling until the end of your billing cycle. After the
billing cycle is ended, the status is changed to canceled.
If you change your mind within 30 days of your workspace getting canceled, please reach out to
us at support@BANKTEXT to get your workspace restored. After 30 days, you will have to create
a new one.
Update Workspace
You can upgrade your workspace to the latest workspace version.
Select Update.
Invoices
Check and download a copy of your monthly invoice.
You can view the list of invoices and filter by product and workspace. You can download invoices either as
PDF or CSV. You can also multi-select invoices to download specific invoices.
You can add your credit or debit card as a new payment method for your BANKTEXT account. The payment
methods will then be an option when you make the payments. You have the option to set a card as your
default payment method.
To delete a card,
If you have only one credit card added, you can't delete the only payment method on your own.
Please get in touch with support@BANKTEXT to get it deleted.
Support
Get help from BANKTEXT Help Desk if you are facing issues.
When you are facing technical issues, you can get help from us through BANKTEXT Support. Using the
Help Desk, you can raise your queries via tickets, read articles, and engage with our community.
To create a ticket,
Use our ticketing system to request service following the service-level agreement (SLA).
BANKTEXT does not accept tickets sent by personal email.
Learn more about BANKTEXT from our knowledge base portal and articles.
Security
Manage the security of your BANKTEXT Cloud account.
Password
You can reset your password easily by signing out and clicking Reset password on the BANKTEXT Cloud
login page.
Before setting up 2FA, you must set a password for your account first.
To set up 2FA:
A modal is shown, prompting you to enter your TOTP (time-based one-time password) or to create one if
you don't have
Download and have available any Authenticator app of your choice to proceed. Some popular
Authenticators include Google Authenticator, Authy, and Duo
Scan the QR Code provided with your Authenticator app or setup the Authentication keys manually
Copy the code displayed by the newly added Authentication means ( BANKTEXT Cloud ) and fill in
the field prompting to enter the code, then proceed
A list of backup codes is provided. Save them securely in case you lose access to your Authenticator
app
After that, the 2FA setup is completed
You should now see on the security page the number of backup codes left and have the ability to disable
2FA or generate new codes.
With 2FA enabled on your account, you will be required to provide the Authenticator code when
resetting your password and when logging in through password or passwordless means.
Contact Sales
You can talk to a Rocketeer in the sales or partnership team. Visit the BANKTEXT contact page to connect
with the Sales Team and Customer Support Team.
Cloud Account Setup Wizard
The Cloud Setup Wizard guides you through registering your server to receive free push notifications.
After entering your administrative and organization information during the setup of your BANKTEXT
workspace, register your server to the BANKTEXT Cloud or run it as a standalone service.
Connecting your workplace to the cloud gives you access to interact with services like
Connect it to your cloud account. If you already have one- enter the cloud email address. Otherwise,
create a new account.
You will receive an email to the registered email with a confirmation link. You must verify the security
code that matches the one in the email.
Click Verify Registration. Confirm the registration and go back to your server.
Your workspace is ready. Click Go to your workspace to access it.
Omnichannel means fulfilling customers’ needs at every touchpoint and providing the same functionality
and experience across channels, no matter how a customer chooses to interact. The Voice channel is the
most crucial touchpoint because it is the human connection people crave. A standalone telephony solution
creates data silos with disconnected insights into customer interactions and agent performance across
channels.
To fulfill this gap and avoid fragmented experiences for agents and customers, BANKTEXT offers a voice
channel feature set. It is a key part of our Omnichannel contact center because we know your customers
expect to be able to get through to your live agent on the phone when they need to. It helps you get the most
out of your in-house or remote back-office teams and deliver the experience that meets your customers'
expectations.
In the following articles, we help you onboard and start using BANKTEXT's voice channel as an
extension to our Omnichannel feature set, with outstanding customer experience.
Features
Inbound Calls
Inbound Calls are great for having local visibility in various markets around the world. These calls
allow you to receive calls on your business platform initiated by your customers using their mobile
or landline phones.
Outbound Calls
With outbound calls, you can initiate calls toward your customers.
Inbound calls ✓ ✓
Call history ✓ ✓
Call mute ✓ ✓
Outbound calls x ✓
Calls on hold x ✓
Call Dialer x ✓
Call notes x ✓
Device selection x ✓
To configure Voice Channel on your BANKTEXT workspace, follow the administration guide. If you have
it configured already, follow the agent's guide to start using it.
Getting Started with Voice Channel
To use any BANKTEXT products, you need to sign up for an Enterprise Edition free trial or have
BANKTEXT community version deployed. If you already have an account and our other solutions, please
proceed.
Requirements:
Asterisk 16.19.0 or higher (We used FreePBX 16.0.10.40 with Asterisk 18.6.0)
Valid SSL certificate (valid domain)
You need BANKTEXT version 5.0.0 or higher.
A private branch exchange (PBX) is a telephone system within an enterprise that switches calls
between users on local lines while enabling all users to share a certain number of external phone lines.
Asterisk is an open-source software implementation of a PBX.
FreePBX is a web-based open-source GUI (graphical user interface) that controls and manages
Asterisk (PBX).
Further Information:
Technical Specification
Admin Guides
Agent Guides
Voice Channel Admin Guide
This section explains various voice channel components and settings on the admin’s console.
PBX is a piece of architecture that forwards incoming calls to BANKTEXT from telephony service providers.
We are using it for call bookkeeping data like how many queues there are, extension data, agents allocated
to a queue, routing system, and others.
For the purpose of this guide, we are using FreePBX as our call management server. You can use any
Asterisk distro of your choice.
Requirements:
Asterisk 16.19.0 or higher (We used FreePBX 16.0.10.40 with Asterisk 18.6.0)
Valid SSL certificate (valid domain)
You need BANKTEXT version 5.0.0 or higher.
1. Prepare FreePBX
Install your FreePBX server, as usual (that’s out of the scope of this tutorial), and update it using your OS
package manager. In such a case, it’s:
yum update -y
Enter your server web interface http://your.domain.name and set the password and update
settings, and do the activation process. Do not skip the activation process, as you’ll need some features later
that are only available if you activate your server instance. Complete the firewall basic configuration.
Navigate to Connectivity > Firewall > Services > Enable Firewall. Under the Services tab, search for
WebRTC and mark Internet and Other options, Local is active by default.
Firewall - services
We want WebRTC in the Internet zone because the Webphone will connect from the client’s IP address,
which could be anywhere.
Navigate to the Custom Services tab and hit the Create new service, name the service AMI, select TCP,
and write the port range 5038:5039. Click Save.
AMI goes in the “Other” zone because only some specific endpoints should be connecting to AMI.
AMI service
Now you don’t want your BANKTEXT to get banned by the FreePBX firewall so you have to add it to the
Whitelist List. First, you need to know the IP or IP Networks from your BANKTEXT instance. When you have
a SaaS BANKTEXT instance you will have a URL (subdomain) like MyChosenName.BANKTEXT, so just
ping it. In this demo:
Now, navigate to Connectivity > Firewall > Networks, and add the IP address needed or Network. Select
the Other zone and Save:
Network definitions
3. Configure SSL
This will only work if you have your FreePBX already activated.
Navigate to Admin > Port Management. Change the Admin (web portal) to another port and set
Letsencrypt to port 80. Click Update Now.
Port management
Please note that until here, you have been accessing the server by HTTP (not HTTPS) on port 80. Until you
finish the SSL configuration, you are going to be using the newly selected port, 8080, in this demo.
Now navigate to Admin > Certificate Management, and click on New Certificate > Generate Let’s
Encrypt Certificate:
Certificate management
Fill out the form according to your settings and click Generate Certificate:
Generate certificate
Default certificate
Now you can start using it. Go to the Admin > System Admin > HTTPS Setup and then to the Settings tab.
Here select the certificate that was just generated and click on Install, wait, then select the Protocols TLS
1.2 and 1.3 as others are considered deprecated or insecure:
HTTPS setup
Finally, click on Save and Restart Apache (A server restart is suggested here). Test in incognito that the
changes are applied and the certificate is recognized as valid.
Additionally, you can go back to the Admin > System Admin > Port Management to enforce HTTPS,
select your FQDN and select the force (arrow) button from HTTP (8080) to HTTPS (443), then click hit Save:
Test it. Congratulations! you have an HTTPS-valid SSL FreePBX server up and running.
4. Configure Asterisk to use PJSIP as the main (or only) SIP channel
We are using chan_pjsip as the only SIP driver. Go to Settings > Advanced Settings, search for SIP
Channel Driver, and choose chan_pjsip. Hit Submit.
PJSIP
Using the article Configuring Asterisk for WebRTC Clients 1 in Asterisk’s Wiki, we are going only for the
principal parameters if you need more details, the article is a great guide.\
First, check that you have the needed modules loaded using the command module show like
<module_name>
Modules
We are reusing the Let’s Encrypt certificates for the Asterisk mini-HTTP server, WebSockets, TLS
encryption, and others. Start by going to Settings > Advanced Settings (again), search for the Asterisk
Builtin mini-HTTP server section and, configure as shown, apply changes. Asterisk restart is also
recommended here:
Asterisk Builtin mini-HTTP server
Using the command http show status verify that both HTTP and HTTPS are up and running:
If HTTP does but HTTPS doesn’t check that Asterisk can read the certificate and private key files:
Add capture of file reading error.
Navigate to Settings > Asterisk SIP Settings. In the General SIP Settings tab configure your audio
codecs, enable video, and select video codecs (vp8 and vp9 needed for WebRTC), NAT, etc. Then in the
SIP Settings (chan_pjsip) tab, choose your valid SSL certificate for TLS/SSL/SRTP and enable all the
desired transports, especially WS and WSS:
SIP transports
Asterisk status
Congratulations! You have a valid SSL Asterisk WebRTC-ready server up and running.
SIP Extensions
Now that you have your Asterisk server up and running let's create some WebRTC-ready PJSIP extensions
and configure them.
To create an extension:
Navigate to Applications > Extensions, and click the Advanced tab. Configure as follows:
SIP Extension
You can install the FOP2 and FOP2ś WebRTC webphone plugins in your FreePBX server, if the
plugin works, your WebRTC configuration is complete and working. Is not complicated, and it
could help you to diagnose any issue, but it’s out of the scope of this tutorial.
Configure asterisk manager interface and users
Lastly, BANKTEXT needs an AMI connection to be able to read your Asterisk configuration and connect
extensions to RC users.
So, navigate to the Settings > Asterisk Manager Users menu. Here you can create a user to be used by
BANKTEXT and limit the access of this user only to the IP address or network where your BANKTEXT is.
Asterisk manager
You can now proceed to BANKTEXT and start configuring the voice channel there.
Configure with an active PBX server
If you have:
Voice channel
BANKTEXT establishes two connections with Asterisk, one via AMI to read configuration and list
extensions, queues, and some other things, and the second one is the WebRTC SIP registration.
Go to the menu Avatar Menu > Administration - Settings - Voice Channel, and in the Management
Server section under the Settings tab, fill the form with the FQDN of your server and the user/password that
gotten as shown here or it should be provided to you by your Asterisk manager.
AMI connection
To test AMI connection, turn to the Extensions tab. Here you should see a list of the existing extensions in
Asterisk:
Extensions
Also enabling the AMI debug you may see connections coming and the RC AMI user connected:
Change them according to your Asterisk server conditions. Then in the Settings tab, assign at least one
extension to a BANKTEXT user. When that user logs in to BANKTEXT the webphone will try to connect to
Asterisk.
To test the WebSocket Connection, you just need to log in with a user associated with an extension and
check if the extension registers successfully.
The phone icon with a slash over means that the WebSocket connection is possible, BANKTEXT could
send a SIP Options packet to Asterisk, and it was successfully answered. Click on the phone icon, and it will
turn green. Now the user is ready to receive calls, and in Asterisk, you should have received a SIP register
packet, and the extension should be properly registered. Validate it with:
pjsip show endpoints
The next step now is to associate your BANKTEXT agents with Asterisk extensions.
Associate agents with extensions in BANKTEXT
As a BANKTEXT administrator, you can associate one agent with one extension. This extension can be part
of multiple queues.
An extension is simply a named set of actions in Asterisk. Asterisk will perform each action in
sequence when that extension number is dialed.
Extensions in Asterisk are assigned to queues. The extensions and queues are both created and managed
in Asterisk by the Asterisk manager. An agent needs to associate with one of these extensions to be able to
take calls in a queue. You, as a BANKTEXT admin can take one of these extensions and associate it with
an agent.
Both extensions and queues are managed in Asterisk by the Asterisk manager.
Go to Administration > Workspace > Settings > Voice Channel > Extension tab
Click Associate Agent
Select the agent name and associate it with a free extension, as shown below:
Agent to extension association
Once this call center agent makes themselves available for VoIP, the incoming calls in that queue will be
forwarded to them based on the routing system configured in Asterisk.
Please note that to reduce the scope of this project, the only available administration feature is
the ability to connect BANKTEXT Agent with the existing Asterisk extensions. In future releases,
you'll be able to create new extensions and queues from BANKTEXT, and many other cool
administration capabilities will roll out.
What is VoIP?
Voice over Internet Protocol refers to the standards that facilitate voice-based phone calls using an
internet connection instead of a local telephone company.
Through VoIP technologies, BANKTEXT is able to incorporate telephony-based communication protocols
into its applications, promoting the transition between analog and digital technologies.
Voice over IP converts your voice into a digital signal, compresses it, and sends it over the internet. A VoIP
service provider sets up the call between all participants. The digital data is then uncompressed into the
sound that you hear through your handset on the receiving end.
In a contact center environment, Voice is an essential and influential channel. Agents using an omnichannel
stack should be able to make audio/video calls to external PSTN networks, cellphone networks, and VoIP
endpoints supporting SIP protocol.
Once BANKTEXT voice-as-channel or VoIP is in place; our Enterprise Edition provides many call center
features.
In a contact center environment, voice is an essential and powerful channel. Agents using Omnichannel
should be able to make and receive audio/video calls from external PSTN networks, cellphone networks,
and VoIP endpoints supporting SIP protocol.
SIP is an application protocol used to carry all forms of digital media, including voice messages—
so SIP is a specific technology that supports VoIP calls.
Web clients are built using browser-based WebRTC technology. This technology does not enforce any
signaling protocol. SIP is chosen for the signaling because there are existing systems that support WebRTC
over SIP, and hence there is no need to define any custom signaling protocol. Also, enabling SIP on the
agent side would allow us to connect to enterprise telephony infrastructure.
Asterisk is the first PBX provider implemented. We have plans to add new providers as we go.
Architecture
The agent connects to Opensource SIP PBX Asterisk. Using the agent configuration, an agent
registers to the partner’s/customer’s SIP Server. Agent endpoint operates as any SIP endpoint and is
able to receive or make a call via customer PBX.
To achieve this, there is an association made between the BANKTEXT agent and the SIP identity.
ACD (Automatic Call Distribution) queues, wait-treatment, etc, are managed by the customer’s/Partner’s
PBX. Reaching out to external networks (PSTN/Mobile Network/Another SIP Server, is handled at the
customer’s/Partner’s PBX.
VoIP Architecture
ACD Queues:
When Omnichannel endpoints log in as SIP agents, the problem of call distribution has to be handled. You
can not expect the customer to know the agent’s identity. If they happen to know the agent's identity, there is
a possibility of multiple customers trying to reach the same agent. This can increase the abandonment rate
(As a particular agent will remain busy serving). Which can reduce the overall effectiveness of the agents in
the organization (As some agents will always be busy, and some will be relatively free). This overwhelms
the agents because of the activity on their console. A typical call center solves this problem by using ACD
(Automatic Call Distribution queues).
Agents are partitioned into different queues on the PBX. These queues represent different departments in
the organization. The customer does not dial the agent’s number. They dial the ACD number, and ACD
forwards the call to the available agent based on the algorithm being used.
PBX Connectors:
Admins and managers use BANKTEXT's UI to configure and monitor the customer-managed PBX. To
receive real-time PBX events, BANKTEXT’s backend has to connect to the PBX manager interface. The
customer is responsible for creating the configuration on PBX so that the management APIs/interface is
accessible from BANKTEXT’s backend.
Connector Architecture
Voice Channel Agent Guides
This section explains various voice channel components on the agent’s console.
How to make myself available to accept calls?
Click the phone button on your BANKTEXT home screen, as shown below:
An incoming call will now be forwarded to you according to the queue and the routing system being used.
How to take a call in BANKTEXT voice channel?
After you make yourself available to receive/make calls, you can start taking inbound calls.
Call Operations
Call In Progress
Click the Accept button to accept the call. The ongoing call appears as shown below:
Ongoing call
Please note that messages are not available on a phone call room.
Mute/Unmute Call
Hold/Unhold
If you're using BANKTEXT's enterprise edition you can hold and unhold acording to your workflow needs.
Hold/Unhold
Device Settings
Enterprise edition also offers you the flexibilty to switch device during an ongoing call.
Device settings
Call Wrap-up
After the call ends you can leave your notes in the call wrap-up. It is an enterprise-only feature.
Call wrap-up
How to initiate an outbound call as an agent?
After you make yourself available to receive/make calls, you can start making outbound calls.
To make an outbound call, you can either dial from the dial pad or navigate to the contact center and call a
contact from there.
No. BANKTEXT does not host any PBX server. It's up to you to get your own PBX server.
BANKTEXT does not provide any call plans. You have to get them from your PBX provider.
BANKTEXT Conference Call
When it comes to conference calling BANKTEXT supports multiple feature-rich options. BANKTEXT's
conference call allows you to use the following video conferencing platforms, available as apps on our
marketplace.
Pexip
Jitsi
BigBlueButton (BBB)
Google Meet
To configure conference calls on your BANKTEXT workspace, visit the administration guide. If you have it
configured already, follow the user's guide to start using it.
Create calls ✓ ✓ ✓
Contextual bar
containing call x ✓ x
history
Identify
moderator ✓ ✓ ✓ x
automatically
Control
microphone
x ✓ x x
from
BANKTEXT
Control camera
from x ✓ x x
BANKTEXT
Load user
names from x ✓ ✓ x
BANKTEXT
Load user
avatars from x ✓ ✓ x
BANKTEXT
End calls
x x ✓ x
automatically
Conference Call Admin Guide
Guide for BANKTEXT administrators to configure video conference
The default provider options will be empty if you have not set up any conference call apps from
the marketplace.
Pexip app (Enterprise only): Learn to configure conference calls with the Pexip app in BANKTEXT.
Jitsi app: Configure conference calls with the Jitsi app in BANKTEXT.
BigBlueButton (BBB): Understand how to configure conference calls with the BigBlueButton app in
BANKTEXT.
Google Meet app (Enterprise only): Configure conference calls with the Google Meet app in BANKTEXT.
Pexip app
Enterprise only feature
This app can also work in a fully air-gapped environment. If you are an Enterprise customer
running an air-gapped workspace, follow the Air-gapped App installation guide and continue with
the configuration instructions below.
Pexip is a purpose-built video communication platform that empowers large organizations to transform their
operations with video conferencing. Pexip’s unique technology provides a customized solution for an
innovative and fully bespoke application of video, data privacy, and business continuity for secure spaces
and frictionless collaboration for connected spaces.
The integration between BANKTEXT and Pexip, a video conferencing communication platform, enables
secure and compliant communication that is ideal for organizations operating within strict regulatory
requirements for internal and external communications, such as government, financial services, healthcare,
and others.
Architecture
This integration is made possible by connecting BANKTEXT with Pexip infinity through its external policy
API. The BANKTEXT Pexip App acts as a relay between the two platforms. BANKTEXT users initiate a
video call to a Pexip conferencing node and trigger an external policy request to Pexip. The policy server
creates a single-use Virtual Meeting Room (VMR) and responds with the meeting parameters. This VMR is
made available in the BANKTEXT room for its duration.
Ensure that the BANKTEXT external policy server can connect to the Pexip Infinity Conferencing
Nodes over HTTPS on port 443.
BANKTEXT Pexip Architecture
Setup
For a complete setup, here are some requirements you need:
App Configuration
Configure the Pexip server with a remote policy to make service configuration requests before
connecting with BANKTEXT.
On the Pexip App Info screen, navigate to Details.
Copy the policy server URL (GET policy/v1/service/configuration) and update the Pexip settings.
Copy the POST events URL and add it to the Events Sink on your Pexip server.
The events sink informs the workspace when a call on Pexip Infinity has ended. This way, the call
message block on your workspace is updated with the appropriate call status.
On the Pexip App Info screen, navigate to Settings. Update the Base URL with the URL of your
running Pexip server.
Click Save Changes.
The Pexip app is successfully configured on your server. Follow the conference call user's guide to start
using it.
After successfully installing and configuring the Pexip app, you can initiate a secure Pexip call inside any
BANKTEXT room by using the slash command /pexip or the call icon in the room header.
When you use the /pexip command, a new Pexip Virtual Meeting Room(VMR) is created, and a link is
made available in the room for users to use and Join call. When you click the call icon in any BANKTEXT
room hit Start call. It rings and notifies users in that room to Accept or Reject the call. On joining the call,
they are prompted to provide their details and grant permission for Camera and Microphone usage. The list
of users joining the VMR can also be seen within the BANKTEXT room.
Jitsi app
This app can also work in a fully air-gapped environment. If you are an Enterprise customer
running an air-gapped workspace, follow the Air-gapped App installation guide and continue with
the configuration instructions below.
Jitsi is a collection of open Source projects which provide state-of-the-art video conferencing capabilities
that are secure, easy to use, and easy to self-host. The Jitsi Meet project (Jitsi Video Bridge) is a tried and
true bandwidth-efficient WebRTC-compatible SFU (server-based) solution from our gracious FOSS partner,
Jitsi. BANKTEXT users can now enjoy reliable and robust group video, audio, and screen-sharing
experiences through Jitsi.
Limit token to Jitsi Room: If enabled, generated tokens will grant access only to the intended Jitsi
room.
Token Auditor: The auditor's name to use when generating authentication tokens.
Token Expiration: The expiring time of the authentication tokens.
Click Save Changes
The Jitsi app is successfully configured on your server. Follow Conference Call User's Guide to start
using it.
BigBlueButton (BBB) app
Run sudo bbb-conf --secret on the BBB server. It gives you a URL and a Secret. See BBB's
documentation.
Use this URL and Secret in the Settings tab of the app to connect to BBB
Click Save Changes
The BigBlueButton app is successfully configured on your server. Follow Conference Call User's Guide
to start using it.
Google Meet app
Enterprise only feature
The app is currently in Beta, and some features may not function as expected.
The Google Meet app is successfully configured on your server. Follow Conference Call User's Guide
to start using it.
Conference Call User's Guide
Contact your workspace administrator or follow Conference Call Admin Guide to configure
conference calls in your workspace.
In BANKTEXT, you can initiate video and audio conferences using your desired provider in any room.
Click on the phone icon from the room's header. You may have pre-flight options like turning on/off
the camera or microphone. However, these options depend on the conference call provider you have
selected.
Click the call button. The pop-up changes to the “calling state”. Now, you can perform other actions
while you wait for the receiver to answer. The ringer stays active for 30 seconds. After that Call again
button appears in the room.
Decline and give the other user feedback through the chat.
Dismiss and silently ignore the call.
Click on the phone icon from the room's header. You may have pre-flight options like turning on/off
the camera or microphone. However, these options depend on the conference call provider you have
selected.
Click the call button. A message is sent in the room, where all participants in the call are shown as
thumbnails.
Conference logs
After a conference call is ended, the room keeps a record of the following:
Go to Administration > Workspace > Settings > Omnichannel > Video and Audio Call > Call
Provider.
Select Default Provider. It uses the default provider that you set when configuring conference calls.
Federation allows for unlimited communication between workspaces by making them visible to each other
on the federated network.
BANKTEXT uses the Matrix communication protocol for decentralized and interoperable communications.
Organizations can easily connect and collaborate with external parties using any federated BANKTEXT
workspace or Matrix-compatible platform by bridging BANKTEXT through Matrix.
Matrix Bridge
Features
The BANKTEXT Federation implementation currently supports the following features on Community(CE)
and Enterprise(EE) editions:
Feature CE/EE EE Only
Send/Receive attachments
(Files, audio, and video
messages)
Login to BANKTEXT
To log in to BANKTEXT mobile app,
Navigation Menu
The navigation menu at the top displays your profile avatar, name, and workspace name. Additionally, it
includes these five action items:
Edit Status: It is used to set a custom status.
Chats: It displays the rooms you belong to, enabling you to select any and start a conversation.
Display: It takes you to the display settings screen to choose between expanded or condensed
messages, the sort order, and the grouping order of your rooms.
Settings: It takes you to the app settings screen, such as language, default browser, and theme.
Toolbar
Directory: It is used to browse between all the channels, teams, and users in the workspace.
Main Body
Your workspace's main body includes all the rooms you belong to. You can tap a room from the list to start a
conversation or follow up on an existing conversation.
Settings
BANKTEXT mobile app allows you to configure different app features such as language, theme, and more
in the settings screen.
Contact Us: Email BANKTEXT support team for your worries or inquiries. It redirects you to your default
email client.
Language: Set your preferred language from a range of BANKTEXT supported languages.
Review this app: Review BANKTEXT on either Google Play Store or Apple App Store. Depending
device's operating system, you are taken to the respective store.
Share this app: Share the BANKTEXT app link from the store to others so they can visit the link to
install the mobile app.
Default browser: Select the browser where links in BANKTEXT should be opened by default. You also
have an in-app browser option.
Theme: Choose between using your device's default or a light or dark theme.
Security and Privacy: Modify security and privacy settings. You can reset your end-to-end encryption
key, set a screen lock for devices that support biometrics, log analytics events, and send crash reports to
our backend. Crash reports help us track and solve bugs.
License: Open and read BANKTEXT mobile's MIT License.
Version: Display the version of BANKTEXT mobile app that you are using.
Server version: Returns information about the current BANKTEXT server version of your workspace.
Clear local server cache: Delete cached information from your workspace.
Logout: Logout from your workspace.
Creating a Workspace
To create a new workspace,
Adding a Workspace
To add a workspace that you are already part of,
Channel
Team
Give the team a name and choose if the team is public or private.
Update your preferred privacy and encryption settings for the channel.
Click Create Team.
Direct Message
Discussion
Messaging
BANKTEXT has different types of messages you can send in a room.
Text: In a room, type your message in the New Message input box and click Send.
Photos and Videos: To use your camera, click the +plus icon in the room and select Take a photo or
Take a video. After taking the photo or video, click use photo or use video to send them to the chat.
For photos, you can edit the picture you took before sending it.
Gallery: To send a video or image from your device, click the +plus icon in the room and select Choose
from Library. Select the video or image. Then, click Send. You can add a message before sending it.
Files: To send videos, photos, and any other type of file, click the +plus icon in the room and select
Choose file. Select the file and attach any message you want to it. Then, click Send.
Threads
To create a thread,
Push Gateway
Self Configured
Push Gateway
Select this option if you and your users intend to use the official BANKTEXT mobile applications. We set up
a push gateway holding our keys to enable push alerts to be received on our official mobile application by
any server. Doing this safeguards the secret keys required to transmit notifications to you and your users via
Apple(APN) and Google (FCM) systems.
Self Configured
When you self-configure the push notifications, things become more complicated. First, you need to get keys
from both Apple and Google and compile/release your mobile applications to the app stores so your public
keys will be distributed to your users. You will also need to add your keys to BANKTEXT.
Then, compile them for iOS and Android and submit them to the appropriate app stores for review. Finally,
direct your users to download your custom version of the BANKTEXT mobile applications.
The BANKTEXT native application for Android supports the FCM system. You can configure it with the
following steps:
Create a Firebase project in the Firebase console if you don't already have one. Click Add project. If you
already have a Google project associated with your mobile app, select it from the Project name drop-
down menu. Otherwise, enter a project name to create a new project.
(Optional) Edit your Project ID. Your project automatically receives a unique ID used in publicly visible
Firebase features such as database URLs and your Firebase Hosting subdomain. You can change it
now if you want to use a specific subdomain.
Complete the setup steps and click Create a project (or Add Firebase if you're using an existing project)
to begin provisioning resources for your project. This typically takes a few minutes. When the process
completes, the project overview is displayed.
Now that you have a project, you can add your Android app. Click Add Firebase to your Android app
and follow the setup steps. If you're importing an existing Google project, this may happen automatically,
and you can download the config file.
When prompted, enter your app's package name. It's essential to enter your app's package name; this
can only be set when you add an app to your Firebase project.
During the process, you'll download a google-services.json file. You can download this file
again at any time.
After you add the initialization code, run your app to send verification to the Firebase console that you've
successfully installed Firebase.
For iOS, you need a paid apple developer account. Then, follow the steps outlined in the iOS setup guide.
Configuring BANKTEXT
Now you should be able to send a text message. Ensure you have logged in to the server once and then
closed the app. You should see a test notification after you press the send button.
Here are some important points to consider when configuring mobile push notifications
If you don't want notifications, you can disable the gateway and not provide keys.
You cannot compile your applications and use the BANKTEXT push gateway.
For iOS, you need to convert both the .cer and .p12 files into .pem files.
Once everything is configured on the admin settings, the server must be restarted.
FAQ
If you are getting this message and are using our push gateway, please make sure:
If you are using the Enterprise edition, the Secured Push Notification sends the ID of the message rather
than the entire message through a push gateway (Apple or Google). Once the ID reaches the user’s device,
the message is retrieved from BANKTEXT server and the notification is created.
This process works for both situations if the user uses BANKTEXT’s push gateway or his own.
Privacy
You can enable and configure push notifications for workspace members using mobile devices.
The default is TRUE. Disabling this setting prevents the Channel, Group, Discussion, and Username from
being sent to the push notification gateway.
The default is TRUE. Disabling this setting prevents the message content from being sent to the push
notification gateway.
If the above privacy settings are disabled, the user receives a push notification without contextual
information, as no such contextual information is sent to the push notification gateway in the first place.
Then, the user can access the contextual information by opening the BANKTEXT application. It is helpful in
compliance-sensitive requirements like HIPAA to prevent sensitive information from being disclosed via
push notification.
If this setting is enabled, the notification payload sent through the Apple Push Notification service or
Firebase Cloud Messaging service contains no message content. Instead, it has only the message ID,
which the mobile app uses to fetch the message content from the BANKTEXT server to display the
notification. A generic push notification message is shown if something happens and the app cannot reach
the server in time. When the setting is disabled, the message content is sent via push notification payload so
the mobile app can immediately display the notification.
Always confirm that your mobile device settings allow the BANKTEXT app to show notifications.
Click your avatar from the sidebar to access the user panel.
Select My Account.
Click Preferences, then select Notifications.
Select the type of messages you want to Send Push Notifications For.
Click Save Changes.
Learn about Idle Time Limit and enable Auto-away from User Presence.
Omnichannel Agent's Guides
Guide to be followed by omnichannel agents to assist customers.
As an Omnichannel agent, you can log in to your workspace using your username or email, and password.
You can handle omnichannel or Livechat conversations.
To be an Omnichannel agent, you must have the Omnichannel Agent role. Contact your
administrator if you need the role.
As an omnichannel agent, your home screen has Omnichannel navigation tab that has features for:
When you log in to your workspace as an agent and set your status to Available, to handle new
conversations:
Any new Conversation initiated to the department you belong to appears under Chats in Progress
Click on a conversation to reply to omnichannel contact.
Click to
The conversation starts to appear in the Queued Chats for other agents to see.
Forwarding a conversation
To forward a conversation:
Conversation transcript
Following an Omnichannel conversation, forwarding the transcript to the contact you were serving as an
agent may be necessary.
Exporting as PDF becomes available only after you Close the omnichannel conversation. It is not
possible to export an incomplete conversation.
Click icon
Click Export as PDF
The transcript appears within the conversation as a message from Rocket.Cat.
You need Request PDF Transcript permission assigned to your role. To assign permission,
navigate to the home screen Kebab menu > Workspace > Permissions, assign Request PDF
Transcript to your role, or contact your workspace administrator.
Navigate to Omnichannel and enable the transcript option you want to automate.
Export chat transcript as PDF: Always export the transcript as PDF at the end of conversations.
Send chat transcript via email: Always send the transcript to contacts at the end of the
conversations.
Click Save Changes.
Click
If the Omnichannel contact engages again, the routing algorithm will try to find you first to assign this
conversation. If you are busy serving other conversations at maximum capacity, the conversation will be
assigned to the next available agent.
You can also click the conversation in the queue anytime and click Resume to engage with the same
contact again.
You can manually place the conversation on hold only when you send the last message to the
contact.
Closing a conversation
To end a conversation:
Click icon.
Enter comments if any
Update Tags for this conversation
Select Export chat transcript as PDF in case you need it exported.
Select Send chat transcript via email if you want it sent to the guest's email.
Click Confirm, and the conversation disappears from the Chats in Progress queue.
The PDF conversation transcript is sent to you as a direct message if you request that the chat be
exported.
Calling
Communication with omnichannel contacts on BANKTEXT can also be done using audio/video calls. Your
workspace must have at least one call app installed to make these calls.
To enable BANKTEXT video call feature, please get in touch with your administrator or follow the
instructions.
To make a call,
Enter your name in the new browser window and hit Join meeting
Room information
Click the icon from quick actions on the right side to reveal the details of your current
conversation.
The details revealed include the date and time, average response time, queue time, the contact name,
and your username.
Click Edit to add some further information. E.g., the topic discussed or priority
Hit Save.
Canned Responses
Canned responses allow you to call pre-saved message snippets with shortcuts (preceded with ! ) to
communicate a quick note to your omnichannel contact in omnichannel as well as regular conversations
inside your BANKTEXT's workspace.
Start your message with ! and a shortcut, or you can select the canned response from the drop-down
list that will appear above your text field
You can also use the same canned responses when talking to your peers outside Omnichannel
To access all available canned responses for your department or all public canned responses on your
workspace,
Click icon.
Hover your cursor over the canned response you want to use in your current conversation
Hit Use.
You can create a canned response during an omnichannel conversation if you have appropriate
permissions.
Click icon
Enter Message. E.g., Welcome to BANKTEXT LiveChat support! How can I help
you?
Update Tags if required
Hit Save. Your new canned response is saved and ready to be used.
Contact information
To get the contact details of the currently selected omnichannel conversation's contact,
Click icon
While viewing contact information, click Edit to edit the contact details or click Chat History to see the chat
history.
Searching chats
To search for messages in a conversation,
1. Click icon
2. Enter your search query.
3. The search result is displayed as you type. You can also use Regular Expressions. For example, to
search for the word error followed by any three digits, use error\d{3} .
Click icon.
All files that have been attached are displayed.
Enter the search query.
Optionally, choose the file type you are interested in. By default, all the file types are displayed.
Below the contact details, click the icon, and the messages in the history are displayed.
Enter a search query in the search box. The results are displayed as you type.
Omnichannel Queue
When you log in to your workspace as an agent and set your status to Available, to handle new
conversations, icon appears on your screen.
Click the to see all the current Omnichannel chats in the queue.
As soon as you close them, they will disappear from the queue.
As an agent,
Click the to see all the conversations you are currently serving appear
Omnichannel Contact Center
To access the Contact Center, click the icon on the Omnichannel navigation tab, and a screen
displaying all the records is seen.
As an omnichannel agent, you can view contacts, chats, and calls you have served.
As an omnichannel manager, you can view contacts, chats, and calls served by your
department.
As a workspace administrator, you can view contacts, chats, and calls served on your entire
workspace.
Contacts
Under the Contacts tab, you can see all the contacts you have been serving as an Omnichannel agent.
Omnichannel contacts are searched by username, name, email, or phone. To search for a contact:
Searching can also be done using custom field values. This is only possible if the Searchable option of the
field is enabled when creating the contact.
Chats
All the conversations appear under the Chats tab.
No open chat appears in the Contact Center. A chat appears in the Contact Center as soon as
it is closed because Contact Center only deals with archived conversations.
Click on top right on Room Information panel to view the full conversation
You can perform all the quick actions applicable to the Closed state of the conversation.
Calls
You can see all the calls under the Calls tab.
Click on a call row to see the details. The details of the call are revealed on the right, such as the
duration, the wrap-up notes, and the last time you had a call with the contact.
Omnichannel Contact Manager Assignment
This feature lets you assign an omnichannel contact to a dedicated Omnichannel agent. If this contact
initiates a conversation and the dedicated agent is available, the chat is routed directly to them. Otherwise, it
will be routed to any other agent based on the routing algorithm selected.
To enable this feature, you need to enable Assign new conversations to the contact manager
by changing the setting under Administration -> Workspace -> Settings -> Omnichannel ->
Routing or contact your workspace administrator.
You can set a contact manager for a contact using the contact center while creating or editing a contact.
Hit Save.
In your BANKTEXT workspace, you can receive emails from contacts on an email address configured as an
email inbox.
To use this feature, your workspace administrator must enable Omnichannel and assign agents
and managers. Kindly contact your administrator to set up email inboxes on your workspace.
Once an email inbox is set up successfully, any new email received is shown in your BANKTEXT
workspace. You can view and reply to these emails from your workspace. When you reply, it appears like
any other email in your contact’s inbox.
When you log in to your workspace as an agent and set your status to Available, to handle new
conversations:
Any new email initiated to the department you belong to appears under Chats in Progress
As soon as your contact sends an email, it will appear under Chats in Progress.
Click the chat to open it. Click Reply via Email, type your message, and click Send. Your contact
receives the reply in their email.
If you type without clicking Reply via Email, your contact will NOT receive your reply at all.
Click Reply via Email, then upload and send the file.
Click Send via Email as attachment.
Extend BANKTEXT Capabilities
BANKTEXT Marketplace
You can view the available and installed BANKTEXT Apps and manage them.
BANKTEXT apps are extensions that users can add to their workspaces to customize and enhance their
functionality. Apps can be integrated with third-party services.
The BANKTEXT Marketplace provides a repository of apps users can browse, install and manage directly
from within their workspace. You can also develop your own apps using the BANKTEXT Apps engine.
Display interactive and dynamic content on their own surface - like a modal or the room’s contextual bar.
Create buttons in the UI for users to interact with native content.
Create slash commands for users to trigger more generic interactions.
Register endpoints to receive data from other applications and services.
Work on both desktop and mobile clients.
Send messages to users; create and manage public channels, groups, discussions, and threads.
You must register your workspace (even if it is a Community Edition) on BANKTEXT Cloud
before you can install apps from BANKTEXT marketplace.
You can browse BANKTEXT apps from the marketplace or access them directly from Administration >
Apps > Marketplace.
You can see all the apps available on BANKTEXT and search for the one you need.
You can also filter based on Categories, Status, and Price. Choose between multiple categories within
the filter to help you find the best app for your workspace users.
tag next to an app on the marketplace means you need to upgrade your workspace
to a higher version to use the app.
You can find the apps you have installed on your workspace
Enable/Disable/Uninstall any of your installed apps.
View App details.
View logs of the app.
Provide additional user settings and configuration for the app. (All BANKTEXT Apps might not require
any setup configuration or user settings.)
Types of Apps
Public Apps
Public Apps are all the apps available on the BANKTEXT marketplace. If you are a third-party
publisher/developer, you can also submit an app to the marketplace.
To submit an app to the marketplace, the publisher must have a BANKTEXT Cloud Account and register
their publisher account. You can find more about it in the developer documentation.
You can learn how to install and enable each of them in the App Guide.
Private Apps
You can develop private apps for your workspace or publish the app to the Marketplace for others to install
and use on their own workspaces.
Private apps only work for the workspaces it has been manually installed on. Follow this guide on how to
develop BANKTEXT apps.
To install a Private app, get your app packaged and ready-to-use app in a .zip format, follow these
instructions to install it on your workspace:
For BANKTEXT workspace versions less than 6.0, Go to Administration > Settings > General >
Apps and Enable development mode, then proceed to Administration > Apps to Upload
App.
Community Edition
Community Edition (CE), workspaces can install numerous Public apps (apps from the marketplace) but
enable only five. And they can allow three Private apps. Once it reaches the limit, you can upgrade to the
Enterprise Edition (EE) for access to enable all apps in the workspace. Refer to the table below for a better
understanding.
Enable/Use 5 3
For workspace version 5.4 or lower, you can use all the enabled public and private apps you
already have. However, you can not purchase or enable more apps once the limit is reached.
Enterprise Edition
Enterprise Edition (EE), workspaces can install all Public and Private apps. But, if the workspace license
expires and the workspace has exceeded the limit, the marketplace disables all downloaded apps, and the
app count returns to zero.
If you are subscribed to BANKTEXT's Enterprise Edition, you can install and enable any
number of paid and free apps available in the marketplace on your workspace.
If you are looking for the manual/user guide of a particular app, check
BANKTEXT Public Apps Guides or search for it within the documentation.
BANKTEXT Public Apps Guides
Public Apps include all the apps listed on the marketplace. They also include tools that contribute to a
seamles experience on your workspace. You can find them from the document navigation in the sidebar.
Omnichannel Apps
Omnichannel apps give consumers a choice to engage with you on their favorite channels like:
SMS
Email
Voice
WhatsApp
Telegram
Facebook Messenger
You must have the Omnichannel feature enabled and have agents and managers assigned
to receive and send Omnichannel messages.
SMS
Telegram App
Rasa App
Dialogflow App
Twitter App
Facebook App
WhatsApp
Instagram Direct
SMS
External users can communicate with your BANKTEXT workspace through SMS. This integration extends
BANKTEXT's Omnichannel capabilities. This is helpful for customers to contact your support team via SMS.
It offers the ability to configure SMS integration with several providers. However, this guide is focused on
Twilio using Twilio Programmable Messaging API.
With the configuration complete, you can send an SMS to ensure the number works.
From your Twilio console, navigate to Phone Numbers > Manage > Active numbers. You will see
your Twilio provisioned number and the messaging service it is linked to
Click on the number to open its configuration page.
Navigate to Messaging Configuration. Update the Webhook URL value for "A message comes in"
with the URL of your publicly available BANKTEXT workspace in this format
https://<SERVER_URL>/api/v1/livechat/sms-incoming/twilio . Then, click Save.
Ensure the action type selected above is Webhook and the method is HTTP POST.
Navigate to Administration > Workspace > Settings > SMS on your workspace.
Enable it and select Twilio as the service.
Update the Account SID and Account Token from the T Twilio console in the Twilio tab. Click Save
Changes.
Open any SMS messaging app on your phone and send a message to your Twilio active number.
The message is received on your BANKTEXT workspace and available for any Omnichannel Agent to
continue the conversation.
Similarly, when a reply is sent from BANKTEXT, the sender receives it via SMS.
The green message icon on the side identifies external SMS messages sent to an Omnichannel
department.
Telegram App
Omnichannel Integration between BANKTEXT and Telegram.
With the Telegram app on BANKTEXT, your customers can send and receive Omnichannel messages from
your workspace through a Telegram bot.
You must enable the Omnichannel feature with agents and managers assigned to receive
and send Omnichannel messages.
Launch your Telegram app. Open a new chat, search and select "BotFather".
Default Department. Only the agents of this department can serve Telegram conversations.
Service Unavailable Message: The message sent to your customer when no agents are available
online.
Welcome Message: The message sent to customers when they send their first message.
Conversation Finished Message: The message sent to your customer when an agent closes the
conversation.
Agents Display Name: You can display the agent's name or username.
File Upload Enabled: You can enable/disable file sharing.
Accepted Media Types: Select the type of files that can be shared between the Agents and your
Twitter Contacts.
Click Save Changes.
You will only receive messages if you have a department set up. Only the agents of that particular
department can receive the chats.
To learn more about Telegram bots, see the official Telegram Bots Guide.
Telegram Agent's Guide
If you set up Telegram app integration and a user sends you a message on the connected Telegram bot,
It appears in your BANKTEXT workspace, just like any other Omnichannel conversation available for an
agent to take it.
You can respond to the customer from your workspace, who receives the response on Telegram.
You can also send and receive files during the conversation.
Quick Replies
You can also use quick reply buttons to send or receive quick replies on telegram. This is useful and
required for companies with a chatbot user serving Omnichannel conversations. You need to have a bot
(Dialogflow/RASA) configured before implementing bot quick replies.
Navigate to Administration > Workspace > Settings > Omnichannel > Routing.
Enable Assign new conversations to bot agent. The routing system attempts to find a bot agent, if
any exists, before addressing new conversations to a human agent.
Istart 13:30 ..//
Q Message
111 0 <
Quick repiles
Rasa App
You must have the Omnichannel feature enabled and have agents and managers assigned
to receive and send Omnichannel messages.
Bot Username: Set the name of the bot you have already configured. This is the user who will
assist with the conversations through Rasa integration.
Rasa Server URL: The server available in your Rasa instance.
Service Unavailable Message: A message sent to your customer if service is unavailable.
Close Chat Message: A message sent to your customer when a conversation is closed.
Handover Message: A message sent to a customer upon handover.
Default Handover Department Name: The target department name where you want to transfer the
customer upon handover.
Enable Callbacks: Enable callbacks to allow the app to use only callback messages. It is useful
when you are using reminder messages in your RASA bot.
Hide Quick Replies: If enabled, all quick replies will hide when customers click on any of them.
Click Save Changes.
Uninstall Rasa App
To delete the Rasa app from your workspace,
You must have the Omnichannel feature enabled and have agents and managers assigned
to receive and send Omnichannel messages.
Display Contact information when assigning the agent to the chat: If enabled, Salesforce
contact information will be displayed to agents when assigned to chats.
Auto-Save/Update Contacts when a Chat Ends: If enabled, the app will auto-save/update the
customers' info on Salesforce once an agent closes the chat.
Metadata Refresh Interval(in Minutes): The duration within which the app will automatically
refresh its cache. For a better user experience, the app will cache some meta-data information from
Salesforce.
Salesforce Session Timeout(in Minutes): It should be the same as the Session Timeout setting
on your Salesforce Setting ( Setup > Session Settings > Session Timeout > Timeout Value ).
Click Save Changes.
/salesforce case 123 : View information about a specific Case using the Case Number.
Click the kebab menu against the Salesforce CRM Integration app.
Select Uninstall.
Click Yes to confirm the uninstallation.
Salesforce CRM Agent's Guide
If you have Salesforce CRM integration in place and a user sends you a message, it appears in your
BANKTEXT workspace just like any other Omnichannel conversation.
When you start serving the conversation as an agent, the Salesforce CRM Integration takes effect and
displays options for various tasks in the chat.
Create Contact
If it is a new customer, you can create their contact inside your Salesforce CRM from within BANKTEXT.
To create a contact,
Contact Info
If it is an existing contact, you can view their contact info by clicking the Contact Info button in the chat.
View Cases
You can view their cases by clicking the View Cases button in the chat if it is an existing contact.
Create Cases
You can also create a new case for a customer from your BANKTEXT workspace.
You can also view the customers' Tasks, Events, and Calls.
HubSpot CRM
Integration between BANKTEXT and HubSpot CRM
You can add HubSpot CRM to your BANKTEXT account to manage the contacts and receive HubSpot
ticket notifications in BANKTEXT. Once BANKTEXT integrated into HubSpot, the HubSpot bot is added as
a user to your workspace.
You must have the Omnichannel feature enabled and have agents and managers assigned
to receive and send Omnichannel messages.
Migrate an API key integration to a private app: If you've built a BANKTEXT and HubSpot
CRM integration that uses a HubSpot API key, you need to complete the migration to your private
app, remove all references to the HubSpot API key from your code, and follow the next steps to
use your private app's access token.
In your HubSpot account, navigate to Settings > Account Setup > Integrations > Private Apps.
Click Create private app.
On the Basic Info tab, update the name, upload icon, and description of your app.
Click the Scopes tab. Search and select the Read or Write checkbox for each scope you want your
private app to access. The image below highlights the scopes you should add:
Scopes
API key: Enter the API key or private app's access token to allow access to your HubSpot account
information.
Enable the option to display contact information when assigning the agent to the chat.
Enable/disable the option to ignore archived objects.
Click Save Changes.
Click the kebab menu against the HubSpot CRM Integration app.
Select Uninstall.
Click Yes to confirm the uninstallation.
HubSpot CRM Agent's Guide
If you have HubSpot CRM integration in place and a user sends you a message, it appears in your
BANKTEXT workspace just like any other Omnichannel conversation.
When you start serving the conversation as an agent, the Hubspot CRM Integration takes effect and displays
options for various tasks in the chat.
View Deals
You can see all HubSpot deals associated with contacts, companies, engagements, line items, tickets, and
custom objects by clicking View Deals.
Create Ticket
You can create a ticket and assign appropriate owners and stages to your tickets by clicking on Create
Ticket.
Dialogflow lets you easily add like-life conversational AI to your websites, applications, messaging
platforms, and contact center with intuitive, advanced virtual agents.
Using BANKTEXT and the Dialogflow Chatbot platform integration, you can set up and train your chatbot to
respond to any query it's been trained for and configure it to act as an Omnichannel agent.
You must have the Omnichannel feature enabled and have agents and managers assigned
to receive and send Omnichannel messages.
If you don't find this bot user in your workspace, you can create it and assign the roles.
Configure the app to assign a livechat-visitor to this bot automatically. Navigate to Administration >
Workspace >Settings > Omnichannel > Routing. Enable Assign new conversations to bot agent.
Close Chat Message: A message sent automatically to the customer when a chat is closed.
Hide Quick Replies: If enabled, all quick replies will hide when customers click on any of them.
Click Save Changes.
You may have a use case where you want to upload a file to the ongoing Bot conversation, like a product
handbook or purchase invoice.
Pre-requisites
Get the Dialogflow session-id of the ongoing bot conversation where you want to upload this file.
You can get it from the fulfillment webhook request, which Dialogflow will send upon detecting your
target intent.
See a sample webhook request for a detailed example. The session-id is in the session
property.
Use the Upload File to a Room endpoint with the session id as the Room Id on BANKTEXT.
The endpoint requires authentication, so you can use the Login endpoint to get authentication tokens for
the bot user.
Twitter App
Omnichannel Integration between BANKTEXT and Twitter.
You must have the Omnichannel feature enabled and have agents and managers assigned
to receive and send Omnichannel messages.
as shown below:
Search Twitter under the Marketplace tab in Apps menu on your BANKTEXT administration panel and
install it.
You are notified about all the permissions the app would access. Click Agree.
Go to Administration > Workspace > Apps. Go to the Installed tab and search Twitter.
Click open your Twitter app to see the settings available to you as an administrator:
2. You can set the Service Unavailable Message that will be sent to your visitor when no agents are
available online.
3. You can set the Welcome Message that will be sent to visitors when they send their first message
4. The Conversation Finished Message will be sent to visitors when the conversation is closed
5. Agents Display Name: You can choose to display the agent's name or username.
6. File Upload Enabled: You can enable/disable file sharing and also set a limit for maximum upload
size.
7. And you can select the type of files you wish the Agents and your Twitter Contacts can share under
Accepted Media Types.
Your Twitter app is successfully configured and you can see the new Twitter channel upon closing the
administration panel, as shown below:
Twitter App Authentication
Authorize Omni-Gateway to send and receive Twitter messages on behalf your
account.
1. Please click on the button shown below to start the authentication process with Twitter.
2. As soon as you click Start Authentication the authentication process is started. Please authorize
BANKTEXT's Twitter app to complete this process.
3. You will be redirected to the following page where you can use your business email to authorize Twitter.
4. Confirm email.
6. Authorize.
You receive a success message with credentials, as shown below:
Slash Commands
Goto Administration > Workspace > Apps > Installed > Twitter
Hit Uninstall
Twitter App Agent's Guide
If you have Twitter app integration in place and a user sends you a message on your Twitter business page
using their Twitter account, as shown below:
it appears in your BANKTEXT workspace just like any other Omnichannel conversation.
Click Take It! to serve this conversation. You can also send to and receive files from your Twitter end-user,
as shown below:
Facebook App
Omnichannel Integration between BANKTEXT and Facebook.
Omnichannel Integration between BANKTEXT and Facebook Messenger. The Facebook Messenger app
lets you handle messages from your Facebook contacts directly in BANKTEXT. Your customers contact you
via Messenger, and you answer chats from your BANKTEXT workspace. Some key features of this
integration include sending messages with quick reply buttons, welcome messages(starting/closing chat),
file sharing, and the correlation between your Facebook pages and your BANKTEXT departments.
You must have the Omnichannel feature enabled and have agents and managers assigned
to receive and send Omnichannel messages.
Click Install and accept the needed permissions. You receive a message from facebook.bot in the
#omnichannel-facebook-setup channel with setup instructions.
Accepted Media Type: Select the type of files that can be shared between the Agents and your
Twitter Contacts.
Click Save changes.
Ensure that each of the following requirements is met before starting the authentication process:
A Facebook Account.
A Facebook page. This is the page from where your customers can message you.
Make sure your BANKTEXT instance is on a public Address and is accessible by anyone on the
internet. Go to Admin > General > Site Url to confirm this.
Lastly, ensure your BANKTEXT instance is connected to BANKTEXT Cloud. Go to Admin >
Connectivity Services to connect to Cloud.
Subscribe/Unsubscribe
You are automatically subscribed to the Facebook page after successful authentication. However, you can
choose to unsubscribe.
From the list of connected Facebook Accounts, click the UNSUBSCRIBE button against the account
you want to unsubscribe.
Click the Edit Page Config button under the account and update the following settings:
Department: You can route all the conversations from this page to a specific department. Only the
agents of this department can serve conversations coming from this page.
Welcome Message: First message your customer will receive when they message you.
Conversation Finished Message: A message sent to your customer when a conversation is
closed.
Default message for offline service: Message sent to your visitor when no agents are available
online.
Only the agents of this particular department can see and take the chats.
/facebook edit pageId : Edit Page configuration for the given pageId.
If you set up Facebook app integration and a user sends you a message on your Facebook business page,
it appears in your BANKTEXT workspace, just like any other Omnichannel conversation available for an
agent to take it. You can respond to the customer from your workspace, and they receive the response on
Facebook. You can also send and receive files during the conversation.
You must be an agent before you can receive omnichannel messages from Facebook.
WhatsApp
Omnichannel Integration between BANKTEXT and WhatsApp Business.
It is a paid subscription and costs you $39 per month. Alternatively, you can use the
WhatsApp Cloud App , which connects BANKTEXT directly to WhatsApp without any third-party
service.
You must have the Omnichannel feature enabled and have agents and managers assigned
to receive and send Omnichannel messages.
Click Install and accept the needed permissions. You receive a message from whatsapp.bot in the
#omnichannel-whatsapp-setup channel with setup instructions.
Notification of undeliverable message: Notification to alert the agent that a message was not
delivered to the WhatsApp platform.
Agents Display Info: You can display the agent's name or username.
File Uploads Enabled: Enable/disable file sharing and set a limit for Maximum File Upload Size
(in bytes).
Accepted Media Types: Provide a list of accepted media types comma-separated. To accept all
media types, leave this blank.
Allow Quote Messages: Agents will see the quoted message reference on BANKTEXT, when the
Contact quotes/replies to a message on WhatsApp.
For workspaces below version 4.2.0, ensure you have the following index on the
"rocketchat_apps_persistence" collection in DB: appId_1_associations_1 before activating
Allow Quote Messages feature.
Template Message Metadata Refresh Interval(in Minutes): For a better user experience, the app
must cache some Template Messages meta-data information. You can define the duration (in
minutes) within which the app will automatically refresh its cache. To learn more about template
messages, see WhatsApp Omnichannel Integration API.
Message Status Endpoint URL: The URL to receive the status of each message exchanged.
Filter Message Status: Filter the statuses you wish to receive at the endpoint ("Message Status
Endpoint URL") based on Message Type.
Allow List options for Quick Replies: If enabled, messages with more than three quick reply
options would be rendered as List options. Max limit for list options is 10.
Custom label for all List Option buttons: Define a custom label message you want to display on
all Quick reply options sent as List Message.
Click Save Changes.
If you have a 360dialog account, click Yes and proceed to connect your WhatsApp number.
If you set up WhatsApp app integration and a user sends you a message on the WhatsApp connected
number,
It appears in your BANKTEXT workspace, just like any other Omnichannel conversation available for an
agent to take it.
You can respond to the customer from your workspace, who receives the response on WhatsApp.
You can also send and receive files during the conversation.
The integration also supports sharing of Location and Contacts.
The WhatsApp Sandbox app allows you to test BANKTEXT integration with WhatsApp in a sandbox
environment. You can send messages and templates in this test environment and receive a webhook.
This app is not intended for production use. It is only for testing purposes. For production use,
please use the official WhatsApp integration.
You must have the Omnichannel feature enabled and have agents and managers assigned
to receive and send Omnichannel messages.
Send a WhatsApp message to the phone number 4930609859535 with the content START. You can
use this link: https://wa.me/4930609859535?text=START
Alternatively, you can use this QR Code: https://docs.360dialog.com/whatsapp-api/whatsapp-
api/sandbox#1.-get-a-test-api-key.
As a response, you will receive your Test API-KEY. This API-KEY is associated with the WhatsApp
number you sent the message with. Now, you can use 360dialog WhatsApp.
See the official documentation to learn more about 360dialog Sandbox and its limitations.
WhatsApp Sandbox API KEY: The API KEY provided by 360Dialog for the Sandbox environment.
Default department: (Optional) Thedepartment that will handle WhatsApp conversations.
Welcome Message: (Optional) The message sent to customers when they send their first message.
Conversation Finished Message: (Optional) The message sent to your customer when an agent
closes the conversation.
Service Unavailable Message: The message sent to your customer when no agents are available
online.
Notification of undeliverable message: (Optional) Set this option to alert the agent that the
message wasn't delivered to the WhatsApp platform.
Agents Display Info: The agent information that would be appended before every message an
agent sends to a customer.
Allow Quote Messages: If enabled, agents can see the quoted message reference on BANKTEXT
when the Contact quotes/replies to a message on WhatsApp.
Message Status Endpoint URL: The endpoint URL where you want to receive the status of each
message exchanged.
Filter Message Status: Filter the statuses (All, Regular Messages, or Template Messages ) you
wish to receive at the endpoint ("Message Status Endpoint URL") based on Message Type.
Allow List options for Quick Replies: If enabled, messages with more than three quick reply
options would be rendered as List options. Max limit for list options is 10.
Custom label for all List Option button: Define a customized label message you want to display
on all Quick reply options sent as List Message.
Click Save Changes.
You can now start sending messages from WhatsApp Sandbox to BANKTEXT.
Send Messages
If you have set up your WhatsApp Sandbox integration and a user sends you a message using the
360dialog Sandbox account,
It appears in your BANKTEXT workspace, just like any other Omnichannel conversation available for an
agent to take it.
You can respond to the customer from your workspace, and they receive the response on Whatsapp.
To configure and send template messages via slash command and UI, see the WhatsApp
Omnichannel Integration API.
Instagram Direct
Omnichannel Integration between BANKTEXT and Instagram Messenger API.
With Instagram Direct, you can directly handle messages from your Instagram Business Inbox in
BANKTEXT. Instagram users contact you via Instagram Direct messages, and you answer chats from your
BANKTEXT workspace. Some key features of this integration include sending messages with quick reply
buttons, welcome messages(starting/closing chat), file sharing, and the correlation between your Instagram
Direct pages and your BANKTEXT departments.
The Instagram Direct integration is available to the following Instagram Direct Professional Accounts:
For more official info, see Instagram Messaging with the Messenger Platform.
You must have the Omnichannel feature enabled and have agents and managers assigned
to receive and send Omnichannel messages.
If you have multiple Facebook apps connected to a single Facebook account, then Facebook allows those
apps to participate in a conversation by passing control of the conversation between them. This feature is
known as the Handover protocol. If you use the Handover protocol on your account, this Instagram app
allows you to perform some handover operations.
Delete messages once it has been "Unsend" from Instagram: Select what to do with Unsent
messages.
Instagram Handover Protocol Action: It defines the action which should be performed while
sending an agent's message to a thread to get access to the thread.
Take Thread Control action will only work if you've configured BANKTEXT Omni-gateway
app as a Primary Receiver from Facebook Apps page settings.
Instagram Handover Protocol Metadata: It defines the metadata to be passed along with thread
control action requests. You can use this to pass some custom payload to other apps.
Click Save Changes.
Ensure that each of the following requirements is met before starting the authentication process:
Enable Message Control Connected Tools Settings from your Instagram account on mobile.
Make sure your BANKTEXT instance is on a public Address and is accessible by anyone on the
internet. Go to Admin > General > Site Url to confirm this.
Lastly, ensure your BANKTEXT instance is connected to BANKTEXT Cloud. Go to Admin >
Connectivity Services to connect to Cloud.
Authentication
Select the Instagram business account you want to use with BANKTEXT Omni Gateway.
If you have multiple pages associated with your Instagram account, it will prompt you to choose the
preferred page to connect.
Determine what BANKTEXT Omni Gateway can do with the pages you have selected.
After selecting your page, you will receive a success message with credentials for your Instagram
Business Account that has been authenticated that subscribed.
Subscribe/Unsubscribe
You are automatically subscribed to the Instagram page following successful authentication. However, you
can choose to unsubscribe.
From the list of connected Instagram Business Accounts, click the UNSUBSCRIBE button against the
account you want to unsubscribe.
Click the Edit Page Config button under the account and update the following settings:
Department: You can route all the conversations from this page to a specific department. Only the
agents of this department can serve conversations coming from this page.
Welcome Message: First message your customer will receive when they message you.
Default message for offline service: Message sent to your visitor when no agents are available
online.
When an Instagram user sends a message, and no agent is available on the server to chat, the
conversation won't be created. This means that when agents return to work, they will not know
someone was reaching out. Therefore, please ensure you always have at least one agent online.
/instagram authorize :: Starts the Instagram authorization process to connect your Instagram
accounts.
/instagram edit pageId : Edit Page configuration for the given pageId.
/instagram edit username : Edit PageInstagram configuration for the given Instagram
username.
You cannot receive messages on BANKTEXT if you have a country restriction set on Instagram.
Instagram Direct Agent's Guide
If you set up Instagram Direct app integration and a user sends you a message on your Instagram business
page,
It appears in your BANKTEXT workspace, just like any other Omnichannel conversation available for an
agent to take it.
You can respond to the customer from your workspace, and they receive the response on Instagram.
You can also send and receive files during the conversation.
The integration also supports context from Instagram stories and posts within the incoming messages.
You must be an agent before you can receive omnichannel messages from Instagram.
WhatsApp Cloud App
The BANKTEXT WhatsApp Cloud App provides direct communication between BANKTEXT and
WhatsApp using the WhatsApp Cloud API without needing third-party services like 360Dialog. Your
BANKTEXT workspace is linked through a Facebook Developer app with the WhatsApp setup.
Prerequisites
You must verify your account before proceeding if it is your first time accessing Facebook for
developers.
Click on Create App to create a new app
Select Business as the App type and fill in the details
App name: The name you want to call your app.
Click on Setup against WhatsApp in the list of products to add displayed. A WhatsApp section is added
to the left panel of your Facebook Developer dashboard.
Navigate to WhatsApp > Getting Started; you will see a set of credentials to be used later to set up the
WhatsApp Cloud App in BANKTEXT
Verify any existing WhatsApp number to receive messages while in Test Mode.
The access token provided is temporary; see this guide on how to create a permanent token.
Navigate to WhatsApp > Getting Started and click on Add phone number.
Follow the guides below to learn more about how to add a WhatsApp production number here:
Add a Phone Number - WhatsApp Business Platform Cloud API - Documentation - Meta for D…
Meta for Developers
Create a Permanent Whatsapp Cloud API Token
Facebook uniquely provides the WhatsApp Cloud API token, Phone Number ID, and WhatsApp Business
Account ID. These credentials are needed by every business when using WhatsApp Cloud services.
The token provided by Facebook initially is temporal. Optionally, you can get a permanent WhatsApp Cloud
API token.
A list of existing users on that app is seen, if any. Click Add to add a user, then Accept the terms and
conditions.
Fill in the System username, then set the System User Role to Admin. Click Create System User.
Click on Add Assets across the newly created user to add assets to use.
A modal opens up, navigate to Apps, select the app, and enable Manage App. Then Save changes.
With the WhatsApp Cloud App installed on your public BANKTEXT workspace and the Facebook
Developer App Created for WhatsApp, you can now connect, edit and disconnect Whatsapp numbers.
There is no limit to the number of WhatsApp numbers that can be linked to a Facebook app.
Click on Connect WhatsApp Number from the first message sent by thewhatsapp-cloud.bot or
run the slash command /whatsapp connect
Facebook App Secret: The Facebook App's secrete. This secret is used to verify if the messages
are sent from authorized WhatsApp servers.
Welcome Message: First message your customer will receive upon messaging you.
Conversation Finished Message: The message sent to your customer when an agent closes the
conversation.
Default message for offline service: Message sent to your customer when no agents are available
online.
After saving, you receive a message to configure the callback URL in your app.
This is a one-time process.
Navigate to WhatsApp > Configuration and paste the callback URL and Verify Token provided by
BANKTEXT. Click Verify and save.
From the configuration screen, click on Manage across the Webhook field.
Subscribe to messages (v14.0 or higher). Now, click Done.
After subscribing to the messages, the BANKTEXT WhatsApp Cloud app is ready to use.
A list of connected numbers is displayed. Click on Edit across the number you wish to edit.
Make the necessary changes and Update.
A list of connected numbers is displayed. Click on Disconnect across the number you wish to
disconnect
Confirm the prompt to Disconnect.
You get a message notifying you about the disconnection
Using WhatsApp Cloud App
After configuring the Whatsapp App through webhook, you can test the two-way communication between
BANKTEXT and WhatsApp.
You must enable the Omnichannel feature with agents and managers assigned to receive and
send Omnichannel messages.
Launch the WhatsApp app on your phone while logged in with a verified phone number to receive
messages from your app.
Send a message to the test number provided or your WhatsApp business number (if you added any).
The message is seen in your BANKTEXT server, available for any Omnichannel Agent to Take the
conversation.
You can respond to the customer from your workspace, and they receive the response on Whatsapp.
Atlassian Apps
Atlassian apps allow you to sync your BANKTEXT workspace with various Atlassian products.
Jira Server 2.0: Learn to install and configure Jira Server integration with BANKTEXT.
Jira Server: Install and configure Jira Server integration with BANKTEXT.
Jira Server v2.0
How to install and configure your Jira Server integration with BANKTEXT
This app can also work in a fully air-gapped environment. If you are an Enterprise customer
running an air-gapped workspace, follow the Air-gapped App Installation guide and then
follow the configuration instructions below.
Features
This app lets you connect your channels or private groups to different projects from different Jira Servers.
Project created
Project deleted
Issue created
Issue transitioned
Issue updated
Installation
Migrating from version 1.x: Please note that this is a major version update, which means it
includes breaking changes. You will need to configure your connections again after the update.
You can install our Jira Server Integration BANKTEXT App from your BANKTEXT Administration area.
Now that you have the app installed in your server, it is time to configure the integration with your Jira
instance.
Configuration
Go to any channel or private group and execute the slashcommand /jira-server . You will be prompted
with the Room Preferences dialog_:_
Room Preferences dialog
Here you can connect your channel or private group to different Jira Servers. The server list is currently
empty as this is a fresh install, so let's connect to a new Jira Server
To add a new Jira Server connection from the Room Preferences dialog, click on the "Connect to another
Jira Server" button. You will be prompted with a form to fill in the details for the connection:
New Jira Server form
Note: We advise against using your own Jira user in the installation process. That is because the
BANKTEXT App has to persist the credentials to be able to search for projects and issues later on. We
recommend creating a new user with administrative privileges. After the installation process, you can
revoke those privileges from the user.
After successfully connecting to the server (the app will let you know if anything goes wrong), just select the
new server from the list to integrate it with your channel/private group.
Select the new server to integrate with it
Now we have to subscribe your channel to specific projects, so it starts receiving notifications from Jira.
Go to the channel/private group that you want to receive notifications on and run the Jira slash command
/jira-server . You will be prompted with the Room Integration dialog:
Room Integration dialog
You can click the "Subscribe" button to subscribe to any project you wish.
If you want to manage your channel/private group integration, you can use the menu in the Room Integration
dialog to do so:
Room Integration dialog menu
Manage Connections - Takes you to the Room Preferences dialog above. From there you can manage
to which servers your channel/private group is connected, add new servers, etc.
Reset Connections - Will reset all connected servers and projects from this room. Use this if you no
longer want to receive notifications on your channel/private group.
Bamboo Integration
Atlassian Bamboo Integration
This app can also work in a fully air-gapped environment. Follow the
Air-gapped App Installation guide and continue with the configuration instructions below.
Confirm that you have the BANKTEXT Notifications for Bamboo add-on installed on your
Bamboo server.
Navigate to a channel or private room and run the slash command /bamboo install .
You will receive an ephemeral message with instructions on how to configure your Bamboo, as follows:
On your Bamboo, install the BANKTEXT Notifications for Bamboo add-on.
Add notification on a Build Plan or Deployment Environment.
Select the "BANKTEXT" recipient type.
On the "BANKTEXT URL" field, insert the URL given in the ephemeral message (e.g.,
https://example.com:3000/api/apps/private/6a7b5a37-b9bb-4d49-ae38-
c6ebcb3fe479/ejDjQ9Kyh2wBgrSwt/webhook )
On the "BANKTEXT channel" field, type the name of the channel or private room you want to be
notified of the events.
The Bamboo Integration doesn't support every Build/Deployment event. BANKTEXT won't send any
notifications in response to unsupported events. The supported events include the following:
Plans:
All Builds Completed
Failed Builds and First Successful
Jobs:
All Jobs Completed
This app can also work in a fully air-gapped environment. Follow the
Air-gapped App Installation guide and continue with the configuration instructions below.
REPO_URL: The URL of the repository you want to connect to, e.g.,
http://example.com:7990/bitbucket/projects/PROJECT_1/repos/repo1/brow
se .
You'll receive an ephemeral message with further instructions on how to add a Webhook to your
Bitbucket repository.
Navigate to your Bitbucket repository and create a new Webhook. In the URL field, paste the URL that
was generated for you in the ephemeral message, e.g.,
https://example.com:3000/api/apps/private/d98e7da9-2398-4bd1-a596-
d5cac28468bd/zC5r4DxBQSTHfrhLg/webhook?
repoId=aHR0cDovL2xcY2FsaG9zdDo30TkwL2Jpd6J1Y2t1dHxQUk9KRUNUXzF8cmVwzE=
Then, Bitbucket sends notifications on some events to the connected channel or private room.
Only some of the available events are interpreted by the BANKTEXT App. They include
Repository Push, Pull Request Opened, Approved, Merged, and Declined. Any webhook
sent to BANKTEXT from other events will not result in any notification being sent.
Example of chosen events
To connect the same repository to another channel or private group, repeat the process on them
using the same repository URL.
Confluence Server
Atlassian Confluence Server Integration
This app can also work in a fully air-gapped environment. Follow the
Air-gapped App Installation guide and continue with the configuration instructions below.
Confirm that you have the BANKTEXT for Confluence add-on installed on your Confluence
server.
Navigate to any room and run the slash command /confluence-server install
CONFLUENCE_BASE_URL USER PASSWORD , where:
We strongly advise against using your Confluence user account during installation. Create a
fresh user with administrative privileges. After installation, you can revoke those privileges from
the user.
Run the slash command /confluence-server connect . A list of available Spaces you can
connect to is displayed.
You can connect many Spaces to a room and a Space to multiple rooms.
Jira Server
Install and use the Jira Server in BANKTEXT.
This app can also work in a fully air-gapped environment. Follow the
Air-gapped App Installation guide and continue with the configuration instructions below.
Navigate to any room and run the slash command /jira-server install JIRA_URL USER
PASSWORD where :
JIRA_URL: The base URL of your Jira server, e.g., https://jira.example.com or
https://example.com/jira
USER: The username of a user in your Jira server with administrative rights.
PASSWORD: The password of the user mentioned above.
Now your BANKTEXT workspace is connected to your Jira server instance.
We strongly advise against using your Jira user account during installation. Create a fresh user
with administrative privileges. After installation, you can revoke those privileges from the user.
To connect any project, run the slash command /jira-server connect PROJECT_KEY .
You can connect many Jira projects to a room and a Jira project to multiple rooms.
Trello
Trello App allows you to receive notifications about your Trello activities, including creating cards and
comments, completing checklist items and uploading attachments, etc.
Prerequisites
Go to the trello.bot chat. Run the slash command /trello setup in the chatbox. It displays a
set of instructions to follow for setting up Trello.
Log in to your Trello account. Go to Power-Up Admin Portal.
Create a new or select an existing Power-Up. Then, navigate to API key.
Copy the server's URL displayed by the trello.bot and add it to the Allowed Origins field of your
API key.
Now, copy the API Key and OAuth Secret from the Trello page. You need it to configure Trello in
BANKTEXT.
On the Trello App Info screen, navigate to Settings.
Paste the Trello API key and Trello API secret from the Trello App.
Next, you authorize your Trello account to connect and interact with the app.
Go to the trello.bot chat. Run the slash command /trello authorize . Click the
Authenticate button.
All users must authorize their Trello account before using Trello in the workspace.
Click Allow in the prompt to grant all the permissions needed to run the Trello App integration smoothly.
If authentication is successful, you get a confirmation message from the trello.bot . Now, your
Trello app is ready to use.
Using the Trello App
You can only link Trello boards to channels. Other rooms are not supported.
Navigate to the channel where you want to receive your Trello board notifications.
Run the slash command /trello link to link a Trello board. A list of Trello boards linked to your
account is displayed. Select a board and click Link to connect that board to the channel**.**
After linking, you receive notifications in the channel for any activity on that Trello board.
To view the card on your Trello board, click the Go to card button on the notification message.
Zoom
Install and use the Zoom App.
The Zoom app allows you to generate zoom meeting links from your BANKTEXT workspace.
Prerequisite
These users are added to your Zoom account, and their emails must be the same on BANKTEXT and
Zoom.
Enter your app's Company Name and Developer Contact Information. Click Continue.
Copy the app's API Key and API Secret from the App Credentials tab.
Data loss prevention (DLP) is a security mechanism that helps prevent sensitive data from being unduly
shared, misused, lost, or accessed by unauthorized users. The Data Loss Prevention App is free for
Enterprise workspaces and works best with the most recent version of BANKTEXT.
This app can also work in a fully air-gapped environment. Follow the
Air-gapped App Installation guide and continue with the configuration instructions below.
To configure DLP,
On the DLP App Info screen, navigate to Settings.
Moderator Channel: Specify the channel to which all blacklisted messages will be forwarded. From
there, the Channel Moderators can either Approve or Reject the message. e.g. general
Content control type: Choose to ignore channels or select targeted channels to monitor.
Channels: List channels separated by commas to apply the Channel Filter rule.
Censor only Sensitive Information: If enabled, only the sensitive information is replaced by
multiple hashtags (######)
Custom Blacklisted Message title: Set the title of a temporal message that replaces the blacklisted
message pending when it gets approved by the moderator.
Custom Pending approval message: Set the temporal message that replaces the blacklisted
message pending when it gets approved by the moderator. Click More info button under the
blacklisted message in the room to see it.
Custom Rejected Message: This message is displayed in place of the blacklisted message when
a moderator rejects a blacklisted message.
Click Save Changes. The Data Loss Prevention App is ready and functional on your workspace.
Read the Data Loss Prevention User Guide to know more about using the DLP App.
Through DLP features, admins can create a list of regular expressions to be monitored in BANKTEXT, and
you can apply it to any conversation. Once a regular expression is detected, it appears blurred in the room
where it was originally written. The original message is forwarded to a predefined channel for auditing flow,
where a moderator can approve or reject its content. Rooms can have more than one moderator. It’s also
possible to select the rooms to apply the DLP app. If you have channels on your workspace where sensitive
information is frequently shared or data leak is more likely to happen, e.g., the finance team channel, you
can restrict this channel.
Poll
Polls are a great way to drive engagement from your team members and receive quick feedback. The Poll
app allows you to create polls inside a room.
Run the slash command /poll in the room you want to create the poll.
Then, click Enter to execute. A pop-up form is triggered for you to create the poll. The form details
include the following:
Insert your question: The poll question.
Insert your options: The reply options for the poll.
Add a choice: Add more reply options for the poll.
Choice type: Select if the poll will be multiple choice or single choice.
Vote visibility: Select if the poll will have "open vote" or "confidential vote."
Always Show Vote: Select when to show poll results.
After creating the poll, it is available in the room for the users to vote.
The Poll Plus app allows you to create advanced Polls in BANKTEXT.
Quickstart
To create a Poll with Poll Plus,
Run the slash command /poll in the room you want to create the poll.
Then, click Enter to execute. A pop-up form is triggered for you to create the poll. The form details
include the following:
Insert your question: The poll question.
Insert your options: The reply options for the poll.
Add a choice: Add more reply options for the poll.
Choice type: Select if the poll will be multiple choice ,single choice, or template based.
Vote visibility: Select if the poll will have Open Vote, Conidential Vote or Mixed Visibility Vote.
User-defined options: Allow/disallow the user from adding their options to the poll.
Word Cloud: Enable/disable the wordcloud feature on poll finish.
After creating the poll, it is available in the room for the users to vote.
Configuration Settings
The Poll Plus App offers some customization settings on the App settings screen.
The Poll Plus App allows you to display the voter's identity as either the voter's full name or username.
Timezone
Since BANKTEXT is used globally; everyone may not be comfortable with Coordinated Universal Time
(UTC). The Poll Plus App allows you to choose which timezone to display the poll finish time. The default
value for this setting is the UTC timezone.
The word cloud feature uses an API link to fetch word clouds. The free version of Quickchart word cloud API
can be used for small servers. Moreover, it is also the default value for this setting. Quickchart comes with
the following restrictions:
In this case, you are hosting your BANKTEXT on-premise or need more customization than Quickchart,
we've open-sourced an internally developed word cloud API. It comes with the following features:
If the Wordcloud API endpoint is blank and Word Cloud is enabled on the poll, the poll
summary is displayed when the poll is finished.
Overrated/Underrated Poll
This poll provides options including Overrated/Underrated, Appropriately Rated, Never Tried, and
Underrated. For example, you can use it to get feedback about the publicity of a particular feature in your
company.
1-to-5 Poll
Overrated/Underrated Poll
This poll provides options including Overrated/Underrated, Approprately Rated, Never Tried , Underrated.
For example, you can use it to get feedback about the publicity of a particular feature in your company.
1- to-5 Poll
This poll allows users to rate a particular subject between the numbers 1-5.
1- to-10 Poll
This poll allows users to rate a particular subject between the numbers 1-10.
If you allow users to add choices, an Add Choice button is displayed below during the poll.
To add a new choice,
Word Cloud
In addition to the generated bar graph, the Poll Plus App provides users with the option to summarize the
poll results in a word cloud. The word cloud feature uses a word cloud API for fetching these.
Learn more about setting up a word cloud API from the configuration settings guide.
Set the visibility to "Mixed Visibility Vote" when creating the poll.
On clicking Create, the Mixed Visibility modal pops open. Select the options you would like to be
"Anonymous".
Once the poll is created, options that were selected to be "Anonymous" will conceal the voter identities
with the "Anonymous" label .
Votes casted on the options marked as "Anonymous" would still be counted within the total
votes.
Live Poll
Live Polls are an array of regular polls. A Live Poll is a multi-question, timed poll.
Live Polls can be triggered with the /poll live <number of polls> command. Here <number
of polls> denotes the number of polls you want to be included within the Live Poll.
Each poll within a Live Poll has a time limit to vote upon after which the current Poll ends and the next one is
posted. Poll creators can also click on the “Next Poll” button to trigger a pre-scheduled finish of the current
Poll.
The "Time limit to vote" each poll is set as the number of seconds you want that poll to be active.
Some excellent use-cases for the Live Poll are stand-up and retro meetings. An additional use case is by
teachers wanting to conduct timed quizzes on BANKTEXT.
Here is how the Live Poll looks in action. The time at which the Poll will end is shown in the below figure.
If you're outside of the UTC timezone, you can configure the Poll Plus App to use your timezone. Refer the
configuration doc for more information.
Late Retrieval
Live Polls include an additional feature called Late Retrieval. This allows Live Polls to be posted at a later
time in the future.
To use the Late Retrieval feature make use of the save subcommand in the format: /poll live save
<number of polls> where <number of polls> denote the number of polls you want to be
included within the Live Poll.
Post-creation of the Live Poll, a message along with the poll id to retrieve it will be visible only to the poll
creator.
Make use of the /poll live load <id> command to "play" the Live Poll. Here <id> is the poll id
that was visible to the poll creator.
In case the user enters a wrong or non-existent Live Poll ID a notification message, only visible to the user,
is sent within the room.
Speaking of teachers using BANKTEXT for exams, the Live Poll Late Retrieval features proves an excellent
tool for teachers to create quizzes even weeks before and then schedule the quiz on D-day with ease. All
this while having control over the time limit to answer each question.
Microsoft Teams Bridge
Microsoft Teams Bridge is an app that connects collaborators across BANKTEXT and Microsoft Teams. It
acts as a bridge between Teams and BANKTEXT to enable cross-platform messaging among users in an
organization. This way, users can send and receive messages from their workspace or Teams account.
It supports other message formats, such as emojis, files, and links. Furthermore, operations like
editing or deleting a message are also supported.
The Microsoft Teams Bridge app is only available for workspaces on version 6.1 and above.
As an administrator, ensure you have access to the BANKTEXT admin account and Teams admin account
for your organization before installing.
If it's a localhost URL, exposing the localhost port to the internet requires a tunnel service like
Ngrok.
Give the app a name. Select Accounts in this organizational directory only as the Supported
account type.
Select Web as the Redirect URI platform. Paste the GET auth endpoint URL you copied from
the Microsoft Teams Bridge App Info as the value.
Click Register. Copy the Application (client) ID and Directory (tenant) ID shown on the overview
page.
Click Add a certificate or secret > New Client Secret. Fill in the description and expiration timeline.
Then, click Add.
After the client secret is created, copy the Client Secret Value.
Navigate to API permissions. Select Add a permission, add the set of required permissions, and click
Grant admin consent for org. The table below outlines the required permissions you'll need to set.
Requires Admin
Name Type Description
Consent
Flag channel
ChannelMessage.Upd
Application messages for violating Yes
atePolicyViolation.All
policy
Maintain access to
offline_access Delegated data you have given it No
access to
Update the Directory (tenant) ID, Application (client) ID, and Client Secret with the values you copied
earlier. Then, click Save Changes.
Ensure you use the correct credentials and set the appropriate API permissions on the Azure
Active Directory.
API Limitation
With the Microsoft Teams Bridge, you can exchange up to 500 messages per month across BANKTEXT and
MS Teams at no additional cost. If you surpass this limit, you can no longer exchange messages between
BANKTEXT and Teams.
If you intend to exchange more than 500 messages, here are some important details to note:
Check if the API is metered. Microsoft Teams has free and metered APIs that are billed based on usage.
Know the metering unit to estimate API costs. There's a limit of 500 messages per month. Exceeding
this limit means Teams messages won't show in BANKTEXT, but it can still be sent.
Read the documentation to learn more about the pricing models and licensing requirements.
To monitor message count, set up an Azure budget to track messages against the threshold. Configure
alerts to ensure you stay within the 500 messages monthly spending limit. For example, your
organizational spending limit is 500 messages per month; email notifications are sent if the budget
threshold is exceeded.
See the official guide to understand how to create and manage Azure budgets.
This app was developed in partnership with Yuqing Bian during Google Summer of Code 2022.
Using Microsoft Teams Bridge
Before using Microsoft Teams Bridge, you must have your organization's Teams account or Guest Account.
Without your authorization, no one can access your Teams data or send/receive messages for you.
Log in to your Microsoft Teams account to allow Microsoft Teams Bridge to synchronize your messages.
Using the slash command, type /teamsbridge-login-teams to log in to your Teams account and
Send.
Click the Login Teams button from the message returned. It redirects you to log in to your Teams
account. You can also log out by typing /teamsbridge-logout-teams .
A bot is created for all team users in the workspace. Communication with users in Microsoft
Teams Bridge is via bots.
Adding a Teams Bot user is only supported for private channels, private teams, and private
discussions.
An Add Teams users screen is shown. Select all the users in your Teams organization you want to add
to the room.
Click Add users.
The BANKTEXT GitHub App enhances the collaboration between developers by seamlessly integrating
GitHub and BANKTEXT. This app enables users to perform various tasks, such as searching and sharing
Issues and Pull **** Requests, subscribing to Repository events, creating new Issues, reviewing and
merging Pull Requests, and more, directly from the BANKTEXT workspace.
After registering the app, click Generate a new client secret to create a new client secret for the app.
Copy the Client ID and the newly created Client secret. You'll need them to configure the BANKTEXT
GitHub app.
After installing the GitHub app, users in your workspace can start using it. Interaction with the GitHub app is
achieved using slash commands.
The /github slash command is used to initiate actions with the GitHub app. To run any Github
command, a user is required to authenticate first, using /github login .
Login
Logout
To log out,
/github me
Click on Share Profile to select and share your profile details within a chat.
/github search
/github issue
Enter the Full Repository Name you wish to create the issue in, and click Next
Fill in the issue details and Create Issue.
/github issues
/github subscribe
It allows you to manage subscriptions on repositories. When you subscribe to a repository event, you
receive a message within the BANKTEXT room from which each event gets triggered.
Click View Changes to see the changes made by that pull request
View File lets you see the file(s) that have been affected by the pull request.
Click on Comments to view the comments under the PR where you Add Comment.
Click on Merge to specify the merge request detail and Merge the PR.
Subscribe to all the events of a repository and receive messages in that channel when the event gets
triggered.
The Google Drive app is currently in Beta, and some features may not function as
expected.
The BANKTEXT Google Drive App brings a seamless Google Drive experience into your BANKTEXT
workspace. It gives users the ability to:
Open and view your Google Drive files and their details.
Share files and manage sharing permissions.
Create new files directly from BANKTEXT.
Prerequisites
Before setting up the Google Drive App, here are some essential things to note.
After installing, you receive a direct message from the google-drive.bot with instructions on how
to get started. Click Setup to view the instructions.
You can find the callback URL for your workspace from the instructions.
Select Web application as the application type, then fill in the required details. Add the
redirect_uri given by the google-drive.bot . Click Create.
Copy the client secret and client id . You need them to configure the app.
Go to a room on your workspace, and type the slash command /google-drive help to return a list
of commands you can use with the Google Drive app.
/google-drive help: shows the help list.
Your BANKTEXT workspace must be running from at least version 5.1.0 for users to access
the Google Drive app from the room header. For workspaces below this version, only admins
have access.
To see if the Google Drive App is installed on your workspace, type the slash command /google-drive
and watch out for any related information.
You receive a message from the google-drive.bot .Click Authorize to authorize your account.
Select the Google account you want to authorize, and click Allow for all the account permissions.
With your account linked, you can now view, create and share files directly from BANKTEXT.
You may be required to re-authenticate periodically whenever the authentication token expires.
Using the Google Drive App
When the Google Drive App is installed, you can perform various actions, including creating files, sharing
files, editing file permissions, etc.
A list of all the files in your Drive is displayed, including those you created and shared with you. These
files are listed with their respective file name , file type, Last modified date and
Owner.
You can search for a specific file using the search bar.
You can filter the type of files displayed by selecting the file type.
The list of files can be sorted in ascending or descending manner.
Fill in the File name, select the File type, and click Create.
The google-drive.bot sends you a message with a link to the new file you just created
From the list of files, click the Kebab menu across the file, and select Open in browser. It opens the file
on your browser's tab.
To share a file,
From the list of files, click the Kebab menu across the file, and Share in room. This shares a link to the
file in that room.
Clicking on Details and sharing opens up a modal to edit the sharing permissions of the file.
From the list of files, click the Kebab menu across the file, and select File Information. This shares a
link to the file in that room.
It returns the following details of the file:
File name: The name of the file
Manage Access: Where to set the file-sharing permissions.
File Permissions
Managing file permissions allows you to restrict the action anyone can perform on a file. A file's permission
can be set when sharing the file or viewing the File information.
The various permissions you can set to a file include the following:
Share to room members and allow them to view: Restricts viewing of the file only by the
member(s) of the room.
Share to room members and allow them to comment: All room members can view and comment
on the file.
Share to room members and allow them to edit: Gives edit access to the member(s) of the room.
Share to anyone at Organization and allow them to view: Allows anyone in your organization to
view the file.
Share to anyone at Organization and allow them to comment: Allows anyone in your
organization to view and comment on the file.
Share to anyone at Organization and allow them to edit: Allows anyone in the organization to
edit the file.
Share to anyone with the link and allow them to view: Allows anyone having the link to view the
file.
Share to anyone with the link and allow them to comment: Allows anyone having the link to
comment on the file.
Share to anyone with the link and allow them to edit: Allows anyone having the link to edit the
file.
To delete a file,
From the list of files, click the Kebab menu across the file you want to delete.
Select Delete file, then click Delete forever.
Google Calendar
The Google Calendar app is currently in Beta and some features may not function as
expected.
The BANKTEXT Google Calendar App connects your Google Calendar with BANKTEXT to stay organized
and get a daily rundown of your events. It gives users the ability to do the following :
Prerequisites
Before setting up the Google Calendar App, here are some essential things to note.
After installing, you receive a direct message from the google-calendar .bot with instructions
on how to configure the app.
Run the slash command /google-calendar setup in the message box to view setup instructions.
You can find the callback URL for your workspace from the instructions.
From the sidebar, Navigate to API & Services > OAuth consent screen and fill in the required fields to
Create a consent screen.
Navigate to Credentials, Click New Credentials, then select OAuth client ID.
Select Web application as the application type, then fill in the required details. Add the
redirect_uri given by the google-calendar.bot . Click Create.
Copy the client secret and client id . You need them to configure the app.
Paste the client secret and client id from the Google Cloud console. Click Save changes.
Type the slash command /google-calendar help to give you a list of commands you can use
with the google calendar app.
/google-calendar help: Shows the list of slash commands.
/google-calendar setup: Shows the steps to set up.
/google-calendar connect: Starts the process to link your Google Account.
To see if the Google Calendar App is installed on your workspace, type the slash command /google-
calendar and watch out for any related information.
You receive a message from the google-calendar.bot . Click Authorize to authorize your
account.
Select the Google account you want to authorize, and click Allow for all the account permission.
With your account linked, you can now change the settings, list your events, and get notifications on meeting
hours.
You may be required to re-authenticate periodically whenever the authentication token expires.
Using the Google Calendar App
When the Google Calendar App is installed, you can perform various actions, including changing your app
settings, listing your events, and receiving notifications on meeting hours.
Type in the slash command /google-calendar settings . It opens up the Google Calendar
Settings bar.
Notifications: Activate or Remove the ability to receive meeting notifications. If you activate
notifications, you receive an event message reminder 10 minutes before the event's scheduled time.
Daily summary: This lets you set when to get a daily event overview. You receive a message
summarizing all your events for the day.
OAuth Authentication: Authorize or Revoke your connected Google account.
Run the slash command /google-calendar events. A list of all the events scheduled for the day
is displayed.
An event has details, including the title, date, and time. Clicking on an event title takes you to the
Google Calendar page showing its details.
You can see the status of your availability for meetings you are invited to.
Use these quick action buttons to respond to meeting invites: Accept , Decline , and Maybe .
Click on Join to join an event you got invited to.
Zapier App
The BANKTEXT Zapier App provides integration between BANKTEXT and Zapier, a popular automation
tool that allows users to automate tasks and workflows by creating triggers and actions.
The Zapier app makes it possible for BANKTEXT and many other external services and tools to be
connected thus providing several benefits:
Automation of Tasks: The app allows users to automate tasks and workflows by creating triggers and
actions, reducing the need for manual intervention and increasing efficiency.
Integration with Other Applications: Integrates with other applications and services, such as project
management tools, social media platforms, email services, etc.
Streamlining Workflows: The app streamlines workflows by providing a simple and intuitive interface
for creating triggers and actions, making it easy to customize the app to meet specific needs and
requirements.
Improved Productivity and Real-Time Communication: Reduces the time and effort required to
perform routine tasks and provides notifications and alerts when specific events occur. allowing teams to
respond quickly to changing circumstances.
See the guide below on installing the Zapier app on your workspace as an Administrator.
Message pinned anywhere Triggers when a message is pinned in any public room.
Starred message anywhere Triggers when a message is starred in any public room.
Mentioned on public
Triggers when a user is mentioned on a public channel.
channel
See how to use the Zapier app and some common examples below.
You are required to have your workspace on a secured publicly available domain.
With the Zapier app installed on your workspace by the workspace administrator, you can start using the
integration by simply going to the Zapier platform and creating Zaps with theBANKTEXT app.
To verify the installation of the app, navigate to Administrator > Apps > Installed
The BANKTEXT app on the Zapier platform can function both as a trigger and an action in
creating your Zap. For a comprehensive list of available actions and triggers, refer to this list
BANKTEXT Zapier Actions and Triggers
In the Account settings, click Sign in to your BANKTEXT workspace. A window pops up
requesting your workspace URL
Fill in your workspace BaseURL then click Yes, continue
Authorize with the BANKTEXT OAuth to link the currently logged-in user
After Configuring the Zapier Trigger, the next step is configuring the Action.
In the event field, select the Send direct message event and Continue
Select the BANKTEXT workspace linked above or connect another BANKTEXT workspace to
use
Configure the desired field in the action section to format the message structure using the
example data available
Message: The message text to send.
User: Select the user to be DMed.
Alias: The user to send the message as.
Click Continue then Test action. You receive a test message formatted as configured.
Publish and Turn On the Zap
After creating the Zap, you can test its functionalities by Creating a new Channel and confirm you
received a message from the zapier.bot with the Alias you configured with information about
a newly created channel.
This creates a Google Sheet row to an existing sheet when a message is posted in any public BANKTEXT
Channel.
Zapier Create Google Sheet row when a message is posted in a public Channel
In the event field, select the New message posted on public channel event
In the Account settings, click Sign in to your BANKTEXT workspace. A window pops up
requesting your workspace URL
Fill in your workspace BaseURL then click Yes, continue
Authorize with the BANKTEXT OAuth to link the currently logged-in user
Click Continue and choose the public Channel to listen in on your workspace then Test
Trigger
After Configuring the Zapier Trigger, the next step is configuring the Action.
Search and select the Google Sheets app as the Action app
In the event field, select the Create Spreadsheet Row event and Continue
In the Account settings, click Sign in to authenticate and connect your Google account
Select the desired Drive, Spreadsheet, and Worksheet to write to
Set the data to be inputted under the respective Sheet column
Click Continue then Test action. You see the sheet filled with some example data
Publish and Turn On the Zap
After creating the Zap, whenever a message is posted in the specified channel, a Google Sheet
row gets created
This forwards any message sent in a Slack channel to a private channel in BANKTEXT.
Zapier forward Slack Messages to BANKTEXT Channel
In the event field, select the New Message Posted to Channel event and Continue
In the Account settings, click Sign in to authenticate and connect your Slack account
Select the Slack Channel to listen to and Continue
After Configuring the Zapier Trigger, the next step is configuring the Action.
In the event field, select the Send private channel message event and Continue
Configure the desired field in the action section to format the message structure using the
example data available
Message: The message text to send.
Group: The private BANKTEXT group to post the message in.
Alias: The user to send the message as.
Click Continue then Test action. You receive a test message in then private group formatted
as configured
Publish and Turn On the Zap
After creating the Zap, whenever a message is posted in the specified Slack Channel, it gets
forwarded to a BANKTEXT private Channel.
App Storage Location
BANKTEXT's version 4 introduced npm packages as dependencies of apps. Since npm dependencies
could account for a hefty portion of an app package's final size, we have a more flexible storage solution for
your apps' packages.
To access the configuration, navigate to Administration > Workspace > Settings> Apps
GridFS
When using GridFS (default), your app package is stored in the database as a file, and you don't have to
manage configuration to make it work.
Filesystem
When setting the storage to the filesystem, you have full control of the package's storage location and
access control. There are a few requirements to make it work:
You have to provide the absolute path of the directory that will be used to store the packages in the
configuration,
The BANKTEXT server has to have read and write permissions to the path so it can manage the
packages
Changing the source code is the most powerful way of extending BANKTEXT, but not the
simplest - you need to learn the code base, understand the code pattern and rules, submit a PR,
and follow up on any changes requested to get it merged.
However, Integrations allow you to write simple scripts that will be executed when a message is
sent or received in a channel. They’re quick to learn and write, but their scope is limited.
Apps are the middle ground. They are much more powerful than integrations, allowing you to
interact with the UI and execute custom routines on several triggers. They're more complex than
learning the code base and can be distributed to our community via the Marketplace.
Not at all! BANKTEXT Apps are packaged and deployed to a workspace, and the system will take
care of hooking the App up. Apps can be installed manually or via the Marketplace.
Can I build and use an app even if it’s not published in the Marketplace?
Absolutely! It’s recommended you use our Apps Engine CLI tool to develop your apps, making it
super easy to deploy your apps to your own BANKTEXT workspace.
Desktop App
In some cases, for version 2.17.0 and above, you may need help with updating your app. If you
click on the Install Update button and nothing happens for one minute, then you need to follow the
steps below:
Go to https://BANKTEXT/install/?gclid=undefined;
Download the matching edition to your OS.
Install the app.
WhatsApp Cloud API FAQs
Using the WhatsApp Cloud API, pricing can be estimated using Conversation-Based Pricing
provided by Meta.
BANKTEXT does not charge for WhatsApp conversations with the WhatsApp Cloud App.
The Cloud API can send and receive text and media messages at a combined rate of up to 80
messages per second (MPS) by default and up to 500 MPS upon request. To learn more, see the
Meta helpdesk.
To learn more about Whatsapp Cloud API, see Cloud API FAQs.
Cloud FAQs
Trials
Our trials are fully featured. So if you enter your card information in the billing section of the Cloud
Console your trial will automatically convert to a paid plan at the end of the trial period.
You can cancel your BANKTEXT workplace directly within the Cloud Console.
Data Export
Send an email to support@BANKTEXT with the address of your workspace. Note: The request
will take some time to fulfill.
Cloud Accounts
How do I view the push usage for my workspace?
Navigate to Workspace and click the workspace you want to see usage for.
If you cancel your workspace in the middle of the billing period, it will be accessible and in the
“Cancelling” status till the end of your billing period.
For example, suppose you are charged on the 5th of every month and decide to cancel the
subscription on the 20th of December or later. In that case, your workspace will be operational till
the 5th of January (this way, we want to allow customers to use what they paid for). After this, it will
stop running and switch to “Cancelled.”
How do I cancel my cloud subscription?
Only the workspace administrator in your Cloud Console can cancel your subscription.
Navigate to Workspaces.
Click on the kebab menu against the workspace and select Cancel.
It will stop your subscription and hibernate your server (your server will still exist if you want to
return to BANKTEXT later).
If you need a database dump or want to permanently delete your workspace and all the associated
data, submit a ticket on our Helpdesk or email support@BANKTEXT with the respective request.
How can I create one more workspace with the same Cloud account?
Please, note that only our Cloud engineers can do this. If you want to create an additional
workspace, submit a ticket on our Helpdesk or email support@BANKTEXT, including the
workspace address you want and the plan.
Additional workspaces are billed based on their usage. So if you have five users on one
workspace and ten on the other, you will get billed for them separately.
If you need to grant the ownership of your workspace to another person or to change the primary
email of your workspace, submit a ticket on our Helpdesk or email support@BANKTEXT
Submit the ticket from the admin email address (the email address the workspace is registered
under). The ticket should contain the email address where the ownership should be granted.
I already canceled my subscription but was charged again. Why?
We charge our customers afterward, not in advance. It means you are charged for the previous
month of use on a particular day of each month.
Suppose you started your trial on December 1st, it expired on December 15th, and your
subscription was automatically continued (you added the payment method before the trial expired)
- on January 15th, you will receive an invoice for the previous month (December 15th - January
15th).
If your trial has expired, and you didn’t add your payment method to continue your subscription,
The region is defined upon creation. Customers can not migrate their instances between regions
independently. It requires manual work required by BANKTEXT Cloud team. If you need to switch
regions, submit a ticket on our Helpdesk or email support@BANKTEXT
You can not delete the card that is the only one (default one) linked to your workspace as well as
you can not delete the card that was charged last. For the above caes. you will see the error
message “Can't delete last payment option.”
If you need to change the card - add it as a new payment method and make it the default one (after
that, you can delete all other cards).
If you want to remove the card information before canceling your subscription, please note that
your payment data and all the other data associated with your workspace can only be deleted.
For companies paying up-front for a specific period, we provide invoices to pay by wire transfer.
Cloud account email can be changed at cloud.BANKTEXT on the Profile page. If you have
difficulties changing the email of the account owner, contact us at support@BANKTEXT. The
request must be sent from the original account owner's email.
Set up a CNAME DNS record for the domain name you want to have pointing to
"cdns.use1.cloud.BANKTEXT" (for US region) and to "cdns.euc1.cloud.BANKTEXT" (for
EU region).
Then, send us an email to support@BANKTEXT so we can make respective changes to your
workspace.
Always use Chrome and dev tools to check for the presence of a WebSocket.
WebSockets
Response headers
Connection: Upgrade
Sec-WebSocket-Accept: nXd/PfaHuA1Kx/ggJWAAy+96Ee4=
Upgrade: websocket
Upgrading BANKTEXT
You can upgrade your BANKTEXT version and also your mongo version. Snaps should auto-update, so this
is aimed at those who use other methods.
Upgrading Mongo
There are leaps between 2.x and 3.x
Then there are more leaps as you proceed through 3.x and then again to 4.x.
Backup is essential. Confirm the supported MongoDB version for the BANKTEXT release you
want to upgrade to and follow the official MongoDB documentation to upgrade it.
Upgrading BANKTEXT
Most Roket.Chat updates also update the database schema - the core layout. Now, theoretically, apart from
adding oplogs to Mongo for Rocket 1.x +, you should be able to merrily jump from version 0.62 through
to 2.1.x .
If you hit a problem asides from schema changes, it will be one of those.
The devs test changes from one version to another and maybe even over a few versions. But not every
single version is up to the latest or, say 0.74.3 -> 1.3.2. That's where it may go wrong.
-> 0.73.x -> 1.0.x -> 1.32 -> 2.0.x -> 2.1.x
-> 073.x - 1.0.x -> 1.1.x -> 1.2.x -> 1.3.x -> 2.0.x -> 2.1.x
'x' means the last patched version e.g. 1.3.2 Check tags or releases
We have seen people make some big jumps. And some disasters too. If in doubt, take your time and do well
to back up!
Whatsapp Business App FAQs
New customers
Can customers try WhatsApp free of charge? Is there any kind of free trial?
Not at the moment. We have provided a Whatsapp Sandbox App to help you test Whatsapp
integration.
Is there a difference between Community Edition (CE) and Enterprise Edition (EE)?
No, there is no differentiation on WhatsApp for CE x EE. All charges incurred for CE will be
applied the same way (App fee, number fee, and variable costs). CE users will only be able to do
so through our self-service method.\
Community workspaces that purchase the app will have access to support for all matters related to
WhatsApp. The process should be done normally by opening up a ticket at Zoho desk.
What happens to actual customers using the old version of the App?
We have a few customers using the old versions. The payment of $59 will be the same for these
customers until the end of the contract. After that, the current policy applies, and for 1 number the
new price will be $78. This price already includes taxes.
What does a customer who has an old version of WhatsApp need to do to get the new
one?
Existing customers should uninstall the existing Whatsapp app and install the updated one. Before
that, please copy the API KEY and paste it onto the app after installing it.
What is the oldest version of BANKTEXT that supports Whatsapp?
3.14.0
We won’t be able to serve air-gapped customers because the necessity to connect with the
360Dialog proxy is needed to have access to the WhatsApp Business API.
Pricing Details
What costs will the customer have?
Our pricing is based on the monthly license fee per hosted number. Incoming & outgoing
WhatsApp Session Messages are always free and unlimited - we never charge extra costs per
session message. The license fee can vary according to the available bandwidth since we have
higher tier options for customers that exchange more than ten messages per second and to partner
deal size. Please contact our support team if your account needs to process more than ten
messages per second. We never charge extra costs per Outgoing Template Message, the
WhatsApp fees are only passed through.
Facebook Current Pricing (until January 31st, 2022) and New Facebook Pricing (starting
February 1st, 2022): Conversation-based Pricing can be found here.
Template messages (business-initiated) sent through your WhatsApp Business Account are
charged according to a tiered pricing model. If your customer initiates messaging with you,
WhatsApp will not charge you for any messages (including Templated Messages) that you send to
that customer for up to 24 hours following the last message that that customer sends to you
("Customer Care Window"). Any additional message you send that customer beyond the
Customer Care Window must be a Templated Message.
Facebook Pricing
The prices listed below are effective until February 1, 2022. After that, conversation-based pricing
rates apply.
Pricing Rules
“Message template” has the meaning detailed in our Documentation. “Templated message”
means a message sent using a message template in compliance with Facebook’s terms and
policies.
All prices are outlined in the List Price Schedule below and will apply to Templated Messages
sent on or after the effective date indicated in the List Price Schedule.
Facebook will determine the price of each delivered Templated Message based on the country
code of the message recipient and the volume of Templated Messages delivered in a calendar
month to a given country or region. Templated Message volume will not be aggregated across
countries or regions or different Whatsapp Business API’s.
The price charged for each delivered Templated Message will be the price effective at the time
you send the Templated Message.
Charges are applicable for each Templated Message delivered within 30 days of being sent.
Charges will not be applicable for Templated Messages that were delivered more than 30 days
after it was sent. We determine that a message has been delivered when WhatsApp servers
process a delivery receipt for the sent message.
If your customer initiates messaging with you, we will not charge you for any messages
(including Templated Messages) that you send to that customer for up to 24 hours following the
last message that that customer sends to you ("Customer Care Window"). Any additional
message you send to that customer beyond the Customer Care Window must be a Templated
Message, for which we will charge you as outlined in our rate card.
Facebook will have the right to update this rate card every month, and changes will take effect
the first day of the calendar month following such changes.
The WhatsApp Business Solution may not be used to send messages to or from the following
countries and regions: Crimea, Cuba, Iran, North Korea, and Syria.
New Facebook Pricing (starting February 1st, 2022): Conversation-based Pricing The main
change going into effect on February 1st is that now instead of only paying for used template
messages. Facebook will start charging for every conversation. Also, you can send as many
messages as you want in a 24-hour session, even if the customer doesn't respond.
How It Works
In conversation-based Pricing, WhatsApp Business API conversations fall into two categories that
are priced differently:
All conversations are measured in 24-hour increments, or "sessions," that start whenever a
business delivers the first message. The first message can be initiated by the business (business-
initiated) or a business reply within 24 hours of a user message (user-initiated). A user is defined
as the person or entity with whom the business is messaging.
Charges for conversations are based on the user’s phone number. Rates for business-initiated
conversations and user-initiated conversations vary by market (country or region).
Conversations will not be charged when users message businesses using call-to-action buttons
on Ads that click to WhatsApp or a Facebook Page CTA. Free entry-point conversations can only
be user-initiated. Only the first conversation that starts from the entry point is free of charge.
Subsequent conversations with the user are charged.
Standard pricing will apply for Ads that Click on WhatsApp. The conversation that initiates from the
ad is free, but not the ad itself.
See the Meta guide for Conversation-Based Pricing for more details on pricing.
Government Agencies must get approval from Facebook before creating any WhatsApp Business
accounts. This process can take up to 60 days and will generate extra costs. To start the
Government WABA Application process, please send the information requested in this form.
Then, a team member will contact you with the next steps. Anybody involved (partner, business, or
government agency) can complete the form. If needed, extra information will be requested by the
team member responsible for the process.
Can I have more than one number registered? Is there a price difference?
Yes, you can have more than one number but there isn’t a difference based on the number of
numbers bought.
Billing Model
Trying to provide a better experience to our customers, BANKTEXT will be responsible for
sending a single invoice with any other charges due BANKTEXT.
App installation
The process starts at BANKTEXT, after installing the App, the user is guided through all the steps.
The 360D account is created, the phone number is sent, and the number will be set up and ready
for production in less than 10 minutes. It is also essential for the customer to have a Facebook
Business Manager account in the company's name. Check the signup documentation for details
on this link.
A Facebook Business Manager account and a valid phone number can receive calls or SMS.
Template messages must be submitted to Facebook for review before they are available for use. It
is Facebook that reviews each template and checks that each message complies with their
WhatsApp API guidelines
When to use templates for WhatsApp messaging?
If a customer initiates messaging with you, Facebook will not charge you for any WhatsApp
messages (including Templated Messages) that you send to that customer for up to 24 hours
following the last message that the customer sends to you ("Customer Care Window"). Any
message you send your customers beyond the Customer Care Window must be a Template
Message. WhatsApp does not charge for incoming messages from the customer side or outgoing
messages from the company side as long as they are sent within the 24-hour time window. To use
a message template, WhatsApp wants to approve each message template to avoid spam. Once
WhatsApp has approved your template, you can use the message template to send notifications.
Templates use placeholder values that can be replaced with dynamic content inside double curly
braces when the message is sent. Think of template messages as a conversation starter in a two-
way conversation.
Template messages are subject to a WhatsApp country-specific price list and will be charged 1:1
to the customer without surcharge.
Visit the WhatsApp Template Messaging guide for more examples and approval tips.
Yes, but be aware of the details. If a customer initiates messaging with you, Facebook will not
charge you for any WhatsApp messages (including Templated Messages) that you send to that
customer for up to 24 hours following the last message that the customer sends to you ("Customer
Care Window"). Any message you send your customers beyond the Customer Care Window must
be a Template Message. WhatsApp does not charge for incoming messages from the customer
side or outgoing messages from the company side as long as they are sent within the 24-hour time
window. Visit the WhatsApp Template Messaging guide for more information
Technical Questions
Could it be a number that has already been used by an Individual? And a Corporation?
Yes, but the number submitted must be a new number that was never used as an API. If the
customer wants to port their number from another broker, 360D provides this service, but it only
works through the standard submission form available via the setup channel. It is important to
remember that once a number is used as an API, it cannot be used again.
Can it be VOIP / 0800 / Landline?
Yes, all of them. You can choose whether to receive the code by call or SMS. So, in the case of a
landline, you can choose the call. In general, those 0800 lines have an audible response unit
(ARU) to distribute the service to the best sector. We also suggest disabling it when you receive
the call or configuring it so that the call reaches a functional line.
You can't exactly change the number. You can register a new number and then delete the old one.
A number can only be registered once in the API. If you need, you can migrate to another vendor.
But if the number is excluded, it becomes infeasible.
One of Rocket. Chat's strength is its integration flexibility capabilities. It means a variety of chatbot
solutions can now be natively integrated into Rocket. Chat's Omnichannel and offer automated
service on the WhatsApp for Business channel. Bring the power of chatbot automation to
BANKTEXT and provide personalized customer experiences in the world's most popular instant
messaging app.
Support
All issues regarding WhatsApp should be dealt with directly with BANKTEXT. Our support team
will be responsible for any contact with 360Dialog or Facebook if needed.
The customer will have an account with 360dialog, but BANKTEXT provides the service and
billing, so the first point of contact should always be us, following the guidelines mentioned above.
Identity Management EE FAQ
What exactly will be implemented on Enterprise Edition (EE) only? When will this be
effective?
BANKTEXT launched a re-factored set of advanced LDAP features on September 28, 2021. The
ability to connect to your LDAP server to sync user names and unique identifiers will remain in the
Community Edition with existing social login features.
Selected advanced LDAP features, including extended user attribute sync, group/team
management, background sync, and SAML integration, will be implemented only in the Enterprise
edition. This change will enable BANKTEXT to support ongoing improvements to our suite of
identity management solutions while continuing to make our primary LDAP directory
synchronization codebase available for use and extension by the BANKTEXT community.
Directory service
Directory service is a shared information infrastructure for locating, managing, administering,
and organizing everyday items and network resources, including volumes, folders, files,
printers, users, groups, devices, telephone numbers, and other objects.
E.g., Microsoft AD, NetIQ eDirectory, and Apache Directory.
LDAP
Lightweight Directory Access Protocol is an open, vendor-neutral, industry-standard
application protocol for accessing and maintaining distributed directory information services
that allow sharing of information about users, systems, networks, services, and applications.
SAML
Security Assertion Markup Language is an open standard for exchanging authentication and
authorization data between parties, particularly between an identity provider and a service
provider.
OAuth
Open Authorization is an open standard for access delegation, commonly used for Internet
users to grant websites or applications access to their information on other websites without
giving them the passwords.
E.g. Google, Facebook, LinkedIn, and Twitter.
SSO
Single sign-on is an authentication scheme allowing users to log in with a single ID and
Integrating with your organization’s user directory service is essential for always keeping your
users’ access up to date. For example, when someone joins your organization, their Rocket user
can be created automatically, and when they leave, their user can be promptly deactivated. The
bigger the user count, the more significant it gets.
What will community users not be able to do anymore? Examples.
Community users can connect an LDAP service used by their organization to and sync user email,
name, and username; use the fallback option and encrypted settings. Basic SAML sync options
and Oauth for all providers (Apple, Dolphin, Drupal, Facebook, GitHub, GitHub, Enterprise, GitLab,
Google, Linkedin, Meteor, Nextcloud, Tokenpass, Twitter, and WordPress) will continue available
in Community Edition.
Will the new implementation affect Single Sign-On capabilities? Please explain single
sign-on.
Single Sign-On (SSO) is an authentication scheme allowing users to log in with a single ID and
password to any related yet independent software systems. True single sign-on enables users to
log in once and access services without re-entering authentication factors. This change will not
impact workspaces that use social login capabilities (users sign on via Google, Linked In, etc.).
I've contributed to building LDAP/SAML/Custom Oauth and now I can't use my code.
What should I do?
We are rewriting the LDAP feature to TypeScript and making improvements on top of it. Naturally,
over time parts of the code will be changed. We recognize all portions of our platform had
contributions from our community. For those who contributed to LDAP/SAML/Custom Oauth, we
will ensure it will not negatively impact their operation.
How will this affect my air-gapped (no internet connection) environment? Can’t we just
pull from our intranet easily anyway?
If the BANKTEXT server is air-gapped but integrated with an internal LDAP server, so you must
apply for an enterprise edition license to access the complete suite of advanced
LDAP/SAML/Oauth features when you upgrade.
The reason a division of our team/company uses RC is for security, and/or it is air-
gapped. This LDAP change doesn’t seem to affect us for our purposes – but will this
have some sort of unanticipated effect on our security processes/ability to maintain data
privacy? If so, please explain so we can consider it further.
What's the "Bind successful but user was not found via search" error?
This error means the login attempt was successful, but a subsequent search for the user on the
LDAP Server yielded no results. To disable this search, turn off the "Find user after login" setting.
Use the "Sync User Active State" setting under Advanced Sync, but it is not yet compatible with
all LDAP Servers.
If you cannot log in without getting any error messages (the last thing in the log you see is Attempt
to bind ), make sure the username of your LDAP account does not match any username of a local
account. For example, if you created a local user with the username joe, then enable LDAP and try
to log in with a username joe (who exists on your LDAP server), it will silently fail without any error
message in your log simply saying username or password does not match. You can no longer log
in by joe, your LDAP password, or your local password.
Every BANKTEXT user has to have an email. So either the LDAP users need to have an email or
you have to set a default domain using the setting "default domain".
References
MS LDAP Info
Omnichannel FAQs
How can I set the email field on Live Chat widget optional?
To make the email field on Live Chat widget registration page optional,
Navigate to Omnichannel > Livechat appearance > Registration Form and disable the
Show email field
Then go to Omnichannel > Custom Field and create an email field with the required button
disabled.
Brand and Visual Guidelines
A brief intro to our Brand Guidelines
Logo
Typography
Colors
Patterns
Iconography
Photos
Brand usage examples
Media kit
Ensure to use this guide anytime you feel unsure of which visual path to take when producing content
regarding BANKTEXT.
Logo
Here you will find Guidelines about BANKTEXT's Logo
The logo is one of the primary resources to identify BANKTEXT. So, using it consistently and coherently is
fundamental to strengthening the brand image.
Our vertical variant should only be used when the full logo won't fit, but our brand name must still be
displayed.
Protection area
The proximity to other elements can reduce the visual impact of the logo. When applying any of the versions,
an area of non-interference around the logo must be protected, equivalent to at least three balls from our
symbol.
Position in icons
Whenever placing the BANKTEXT symbol in circular or square formats, use the circle in the center of our
symbol as a reference for centering.
Protection Area
Typography
Here you will find Guidelines about BANKTEXT's Typography
The BANKTEXT typeface family brings flexibility and recognition. Its primary function is to have a fluid
performance in the digital medium. Its unique design also helps to highlight aspects such as modernity,
technology, and simplicity.
Type Scale
We follow a 6px baseline grid for achieving a vertical rhythm on all block-level elements in the app.
Heading XXL
Heading XL
Heading L
Heading M
Heading S
Heading XS
Subtitle L
Subtitle Two
body M
body S
Body XS
CAPTION
Colors
Here you will find Guidelines about BANKTEXT's Color
Our color palette is varied and offers many accent colors to use when producing content for our brand. A
white or light-colored background is favored, with small splashes of color in the form of type accentuation,
images, or small elements that display our brand tones.
A dark background can also be used, but the white type and accenting elements are best for contrast.
Primary
Red is a primary color along with blue, and both should be prioritized in their usage above secondary and
supporting colors. Red is the color of our logo and plays a significant role in our branding. Blue was also
adopted as a primary color for its positive connotations in the tech space. These colors should only be used
on white or corresponding light backgrounds (see supporting colors section). Transparency on these colors
may be altered if used on elements but not on backgrounds and typography. The typography that sits atop
these colors should be white.
Red: #F5455C
Blue: #1D74F5
Secondary
The following first two colors serve as taste breakers from the usual red and blue and can be used in
iconography, illustrations, typography, and other assets to bring variety to our visual identity. These can also
be used to highlight certain keywords in a title or subtitle but shouldn’t be used as the background color. Our
black and white shades also bring versatility to our brand image, offering more possibilities for typographical
styling and backgrounds.
Their respective color codes are:
White: #F7F8FA
Black: #2F343D
Supporting Colors
These lighter shades of our brand colors serve as options for backgrounds, iconography, and other elements
such as images and illustrations. These lighter shades of our brand colors serve as options for backgrounds,
iconography, and other elements such as images and illustrations.
These gradients are a gradient version of the supporting colors and should only be used as the fill for the
highlighting shape, as exemplified on our homepage, behind the second sentence in the subtitle.
Our brand doesn’t rely on repeatable patterns, leaning more on illustrations that reflect our product’s
capabilities and our brand values or are otherwise relevant to complement a certain topic.
Below, you’ll find some versatile examples that can be used to add a bit of our branding to any content you
produce.
See the complete collection of BANKTEXT branded images on our shared google drive folder or
Figma file.
Cloud-1.png 3/28/22
Cloud.png 3/28/22
europe.png 3/28/22
Pattern Examples
.. ,, ,
I ' , ,.,_ \. ,
•••·II'••
• •••
.',''•:,•:,:,:,',:,,,,,,:,' ,,.
·•·• I_a I
'
._
.. . . ..
..
'
., , ,, , ,,, , ,,
,.•,,
f
• •• •.••.
t
•
..
• '. ,
I
•
••• •
t •' .
••••••
•••• ', ', .
-- - -- ... .. .. - ... ...
,,, , -- -- .....
.... ....
,, ....
;
'
,; '
'
,, '
I
,
I
I
I
I
I
'
I
I
'
' \
\
\
\
'' ,
' '' ,,
,,
'
;
.... ,,
.... .... ,
,
... - - - - - - -- -- --
..... .....
Iconography
Here you will find Guidelines about BANKTEXT's Iconography
Our iconography follows the same design principles as the rest of our brand. Utilizing our brand colors as
the focal point, using transparency for a lighter look, simple and clean lines along with to-the-point and easy-
to-understand representations.
Find some examples of our icons on the complete collection of BANKTEXT branded icons.
Icon Examples
■■
■+
••
••
Photos
Here you will find Guidelines about BANKTEXT's Photos
Our brand makes use of illustrations in lieu of photography. Although images of people should be included
in these illustrations for both realism and relatability, the focal point should be the product and not the
photography, hence the shift in focus favoring illustration.
We increasingly want to appropriate a unique, contemporary language that conveys our value proposition in
the stories that we are telling. So, we have some guidelines to inspire the way the BANKTEXT style must
be.
Treatment
Our photos are high-temperature and saturated, resulting in a simple, proprietary effect.
Image Bank
First, when choosing a bank image photo, it is necessary to understand the content and context it will bring
to your art. Then you will do the right search and filter for the best image. The more specific your search term
is, the easier it will be to find the right image.
Brand Usage Examples
Examples
Below are some examples of how to use the new BANKTEXT brand from online applications to offline. Be
sure to maintain consistency in applying all elements of the brand.
Brand in use
Live Session
BANKTEXT and D
Nextcloud integration
Your Open Source Digital
Collaboration Hub
April 21st
Save your seat
5:00pm CEST I 11:00am EST
ihhlii·il
Your customers *
\
Mary Smith -
are on Twitter.
• Hello! What is the status of the approval of my loan?
.f rJ.·
Are you?
Agent Mar 3:02 PM
Hi Miss Smith! Could you please send me your bank card numt
'.
1 Mary Smith 3:04 PM
H
Agent Marc 5564 6780 3370 5025
,i·'Ji Onlir,e
i'IARVSmIB
+
BANKTEXT
I I I
D BANKTEXT Product Solutions Community Customers Pricing Partners Talk to sales Get started - 1t s free EN V
- Talk to customers
·-
M ar,sm;,h 3:01PM
M • 1-l•lo!V.'hati>th•st•tu,otlh•approvalotmyloan?
0 AgeotMarc 3:02P
)i, HiMissSmithlCocldyoupl@as•"""'d""''fOU"b•nkcardnum ('
MarySmith 3:04P\1
Talk to visitors and customers in one place, regardless of how they connect with
you.
Ehiiiiiiii If
Agent More 3:G6PM
Thankyoo!Yoorloooshooldbeapprove<Jbyt .e"'1doftheweel<
Get started - it's free ,J, Scroll down
Q Yourmcssage
D BANKTEXT Product Solutions Community Customers Pricing Partners Talk to sales Get started - 1t s free EN V
Enterprise-grade
communications platform for
security-centric organizations
Advanced security, compliance, support, scale and user authentication capabilities to enable your
'"''*
enterprise to safely communicate across teams, with other organizations and customers.
Scroll down
D BANKTEXT Product Solutions Community Customers Pricing Partners Talk to sales Get started - it's free EN V
/ // /,
ata privacy • ii' product-releases
MarkCollins g;QgAM
Hi!@allcould youpleasetakealookatt -
@ 0 0 (9 %,,;
1n every
ProductreleaseSeptember2021
"2 • 2
conversation
.\. Daniel Smith g:Qg AM
Onit!
- 01 0Yesterdayat70:41PM
AmberGarzia g:QgAM
I 1h
ink we need more coo
. ° : :!
0
; d '
°'• Jira 9:10AM
Real-time conversations with
BANKTEXT does yo u rc o e a g u e s, her corn .
everything o th e r pllla t fo r m s do pa nies or customers.
, except exposing your data.
o.
M Yourme,,;,,;ie
Our MediaKit contains essential resources for producing content regarding BANKTEXT. Complete with our
logo, official fonts, and some supplementary resources to help fine-tune the overall aesthetic of whatever is
produced.
MediaKit_BANKTEXT.7z 2MB
Binary
Development Docs
If you are using a BANKTEXT's Enterprise Edition deployment, then you can contact the BANKTEXT's
Support Team with your questions.
Enterprise Support
If you are using our Community Edition deployment, you can always rely on our community developers or
our documentation.
Community Resources
Further Information:
Legacy Support
Enterprise Support
Requirements for official support from the BANKTEXT team
Supported Environment
In order to obtain official support from our team, we have a minimum set of requirements. These
requirements are necessary for us to access the essential system information, provide an SLA, answer
questions, or provide a solution for the problem.
Only installations matching these minimum requirements can be covered by our SLAs and our paid Support
Policy. Some requirements may vary depending on the installation size as described in the following
sections.
We require the installation to run the Docker image provided by the BANKTEXT team, this makes it possible
to isolate external factors. It ensures that the support request refers to our application and not to the following
factors.
This ensures we can provide quick fixes and a more efficient way to reproduce problems leading to the most
efficient support flow possible.
Docker Containers
BANKTEXT versions
BANKTEXT provides support for, at least, 3 months for each release. BANKTEXT provides support for 6
months to the latest releases of each major version, e.g. 1.3 is the latest release of major version 1.x before
major version 2.0. BANKTEXT may provide a longer period of support depending on the necessity, check
the table below to verify the final support date of each release version.
By support, we mean that BANKTEXT will provide only security fixes and answer support tickets related to
configuration and usage for the below-mentioned versions. Bugs not related to security issues will be fixed
only in new versions.
Always update to the latest stable version before reporting any bugs or before ask for help from
the community.
LTS means Long Time Support and it's used to identify the last minor version before a major
version, e.g. 2.4 is the last minor before 3.x. A new major version means that the version
introduced a breaking change and requires attention on the upgrade, so we maintain the support
of the previous version for a longer time in order to give you more time to plan and test the
upgrade.
BANKTEXT Cloud
BANKTEXT manages upgrades and provides support to BANKTEXT Cloud users regardless of the release
version. If a BANKTEXT Cloud user with an outdated server version sends in a support request, his server
might be upgraded to the latest stable version without acknowledgment to ensure the best performance.
BANKTEXT Services
BANKTEXT Services include services such as our push gateway, the marketplace, and other services
managed by BANKTEXT.
October 1st our services will no longer continue to guarantee support for BANKTEXT 0.x. After this date,
you may receive errors or warnings about incompatibility.
3 months after a new major release, e.g. 2.x, the last major release, e.g. 1.x, will have the Services support
deprecated and you may receive warnings about the deprecation. 5 months after the deprecation the
support will be removed and you may receive errors and warnings about incompatibility.
4.x TBD TB
5.x TBD TB
6.x TBD TB
MongoDB versions
Each BANKTEXT release supports different versions of MongoDB, the table below presents the support of
MongoDB versions for each major BANKTEXT release in addition to the deprecated version that will be
removed on the next or subsequent versions.
BANKTEXT only adds or removes support of MongoDB versions on major releases so the minor
versions are ommited on table below.
MongoDB Support
BANKTEXT Release Supported Versions Deprecated Versi
The upgrade guides available from the official MongoDB documentation are listed below. Bear in mind that
it's not possible to skip a version when upgrading, e.g. to upgrade from 3.2 to 3.6 it's necessary to upgrade
from 3.2 to 3.4 first and then to 3.6.
It's possible to bypass the MongoDB version check by using the environment variable
BYPASS_MONGO_VALIDATION=true . Bare in mind that this work around should be used only when
extrictly necessary and may prevent some functionalities to work properly or even prevent the server to
start.
Browser versions
The ecosystem of browsers has been and still is, an ever-evolving field of change. Since the rate of change
is tremendous, we also have to limit the support to recent browsers. We're usually quite good with that but
some older browsers just don't support some features that we build upon. That is why we limit or support for
browsers in the following way:
That being said, here's how you can find out if your browser version is still supported (all lists include an
indication of a specific browser version is still supported or not):
Hardware
The support is limited to installations matching the requirements described in the Minimum Hardware
Requirements page.
Monitoring
We require monitoring for all supported installations. All installations must continually collect Metrics
regarding the installation's instances and database. BANKTEXT supports the industry-standard
Prometheus + Grafana monitoring stack. Grafana dashboards required for support are available in the
Metrics repository.
Explanations about each metric/graph which help reading and interpreting the data can be found in this
dedicated document here.
Data access
We do not require access to the servers, instances, or databases to provide support, but we may require
access to the logs if we consider them necessary to identify the problem.
3. Mobile logs
Enterprise Support Plans
BANKTEXT Enterprise Support Services
Support Plans
In addition to the various support resources, BANKTEXT offers its customers three different types of support
for our products that are tailored to meet the needs of our diversified customer profiles:
Applied for the products: Self-Managed Enterprise, Self-Managed Omnichannel, Self-Managed Chat
Engine, Cloud Enterprise, Cloud Enterprise Omnichannel, and Cloud Enterprise Chat Engine.
What's Included
All support plans offer SLA time frames for first-time response and also include an Account Manager that will
be responsible for ensuring paying customers are successful and get the most out of our product and remain
happy.
Mission Critical plan also offers a dedicated Customer Success Manager (CSM) that will be responsible for
a detailed onboarding process, strategy roadmap design focused on product adoption in line with desired
business outcomes. The dedicated CSM role also includes being a trusted technical advisor and an internal
customer advocate.
Support Channels
Only customer-assigned points of contact can open a support ticket at the Desk Portal.
support@BANKTEXT
The email verification is done through the domain, i.e. email addresses that have the same domain as the
company's domain will be redirected to the customer queue. If the domain is different, or a free domain, for
example, they will not be identified as clients attached to that account.
+1 (833) 479-0110
For emergency cases only (High Severity), customers may contact BANKTEXT through our landline.
Ticket Severity
High Severity
(e.g., system down, main functions affected, a large number of users unable to access, severe performance
problems)
Critical Business Impact: A critical issue occurring in BANKTEXT Services that prevent business operations
from occurring or a large number of users are prevented from working with no procedural workaround.
Example: Data loss or corruption; system crashes; critical functionality is not available; many users cannot
work.
Medium Severity
(e.g., essential functions affected, significant impact on system usage, inconsistent performance)
Normal Business Impact: An issue causing a partial or non-critical loss of functionality on a production
system. A small number of users are affected.
Example: Some systems functions are not available; not many users are impacted; minor performance
problems.
Low Severity
(e.g., small impact to functions, low number of users affected, minor bugs, simple questions)
Minimal Business Impact: Issue occurring on non-production system or question, comment, feature request,
documentation issue, or other non-impacting issues.
The SLAs are defined by taking into account the priority, the paid plan/product, and the customer account
status.
The SLA times listed are the time frames in which customers can expect to receive the first response and
are not to be considered as an expected time-to-resolution. BANKTEXT Support team will make its best
effort to address your case as quickly as possible.
12x5 - Support Specialists are actively responding to tickets MON-FRI, 8 AM BRT to 8 PM BRT.
BANKTEXT forums
Stack Overflow BANKTEXT Tag
Server Fault
While the de facto language amongst the BANKTEXT community is English it may be easier for some to
discuss their issues in their native language. Have a look at the following channels to see whether there is a
user group for your language:
Remember to have a little patience. Support is provided by other members of the community like you in their
free time.
Reporting Bugs
If you think you have found a bug. Please see Reporting Issues
If you are facing any issue with BANKTEXT, please ensure you follow the following steps before asking for
support. It will save you a lot of time and hassle.
First, you must ALWAYS test on the latest version of BANKTEXT - you can also try https://open.BANKTEXT,
which always runs development versions. A large number of issues are fixed with an update.
NodeJS Version:
MongoDB Version:
Client information:
Client type: Electron app/React-Native app/Browser and version
A list of the steps requires to replicate the issue.
If we can't replicate it we can't debug it.
DB Replicaset Oplog:
NodeJS Version: 14.18.3
MongoDB Version: 3.6, 4.0, 4.2, 4.4, 5.0
Have you looked through the bug reports? At least 2 different searches? Opened AND Closed bugs?
A lot of answers can be found there. Please do check the various repos - BANKTEXT itself, the mobile
apps, electron etc.
BANKTEXT server
BANKTEXT documentation
When searching change the filter box to both open and closed issues like this:
is:issue is open
to
e.g.
Try some variations - you won't hit the sweet spot the first time usually. The more often you do this the better
you will get at learning what to search for and how.
Still stuck?
The next step is to ask your well-documented question in the forums or BANKTEXT
It is impossible to diagnose something when you just say 'it's broken'. The helpers are not mind readers.
They cannot see your screen or your set-up. They have not watched you set this up, and the mistakes you
made along the way. They are effectively blind. So you have got to describe things clearly and concisely.
Your problem may appear complex but it is often the basics that catch you out. It is extremely common for
people to miss steps in their setup. It is hard to tell at first if a problem is simple or complex so please be
patient if you get asked 'the stupid questions'. We are just trying to get a baseline and making sure you have
done the basics and trying to understand how you got to this position. Remember, if you phoned the garage
about your car and said 'it runs funny sometimes' what would they ask you? Make, model, age... etc.
This is no different.
Don't hide things away because you are embarrassed. They are most likely going to find out, so you might
as well be honest. We have ALL made mistakes.
Tell us about the problem you were originally trying to solve, not the problem that you are experiencing right
now. Frequently the one you are experiencing now is the result of not understanding or being able to fix the
original issue.
Use this as a template to ask your question. Get all the right information. It will help if you then have to
submit a real Issue.
NodeJS Version:
MongoDB Version:
Some background will help, and will avoid XY issues. Is it a fresh install? Is it an upgraded install? Has it
always been broken? When it did the issue start? Did you make any changes that could have caused it?
Make sure you post some BRIEF log snippets or use https://pastebin.com/
If your problem relates to a connection to say a database, or LDAP, that might be on another server then
check the logs for those as well.
Last, be patient. Answer the questions you are asked. They may appear odd, but they are probably for a
good reason. Debugging is a logical process and you need to help establish the facts first.
Remember, you are the one with the problem. They can just go back to work or their wife and kids and
ignore you.
Enterprise Edition
Most people in the chat are volunteers who will try and help for free
Volunteers do this in their spare time and are not getting paid for this. Please respect them.
Just because it is urgent for you does mean that it is urgent for them
Please answer their questions patiently and help them try and understand your problem
Being rude to them will not help you at all
Please note that posting the same question in several channels will not help you
Please do not DM anyone unless you know them, or they DM you first
Please do not randomly use @ people or @all hoping to get attention
Abuse of these things will not get any help but can get you muted, blocked, or banned.
Don't open a bug yet. When you ask in the channels or forums then devs or other community helpers will
tell you if you really need to open an issue. Frequently if there really is a problem you won't be the first
one to experience it, so always check github carefully for duplicates. Use lots of different search terms
and make sure you check closed Issues as well (see below).
Do not ask the same question in multiple channels. Use the channel (from mentioned) that you think is
most relevant to your issues. Support, React-Native, Ubuntu Snap,Raspberry Pi, Omnichannel,
Desktop, Federation
Is it a feature request?
If BANKTEXT works but doesn't do something the way you want it to then this is a feature request NOT a
bug. You can open a request in Feature Requests.
Please go through the relevant documentation at least twice. A lot of the answers can be found there. It is
easy to miss the obvious because you think you know the answer rather than reading to actually
understand.
Open an Issue
Got this far with no solution? If you haven't already been told to do so then open an Issue with all the right
information in the right repo.
Please use the templates provided. Add all the relevant information. And please stick to facts, not opinions,
assumptions, or guesses.
Legacy Support
Support services applied for legacy products
Silver
Bronze
Gold
Pro
Enterprise
Legacy Support Plans are applied for the legacy products: Silver, Bronze, Gold, Pro, and Enterprise.
Support Channels
https://desk.BANKTEXT
Only customer-assigned points of contact can open a support ticket at the Desk Portal.
support@BANKTEXT
The email verification is done through the domain, i.e. email addresses that have the same domain as the
company's domain will be redirected to the customer queue. If the domain is different, or a free domain, for
example, they will not be identified as clients attached to that account.
+1 (833) 479-0110
For emergency cases only (High Severity), customers may contact BANKTEXT through our landline.
Ticket Severity
High Severity
(e.g., system down, main functions affected, a large number of users unable to access, severe performance
problems)
Critical Business Impact: A critical issue occurring in BANKTEXT Services that prevent business operations
from occurring or a large number of users are prevented from working with no procedural workaround.
Example: Data loss or corruption; system crashes; critical functionality is not available; many users cannot
work.
Medium Severity
(e.g., essential functions affected, significant impact on system usage, inconsistent performance)
Normal Business Impact: An issue causing a partial or non-critical loss of functionality on a production
system. A small number of users are affected.
Example: Some systems functions are not available; not many users are impacted; minor performance
problems.
Low Severity
(e.g., small impact to functions, low number of users affected, minor bugs, simple questions)
Minimal Business Impact: Issue occurring on non-production system or question, comment, feature request,
documentation issue, or other non-impacting issues.
Tickets created by email are automatically assigned as "Medium" priority and will have the associated
SLA’s according to the account information. Customers entitled to paid support are recommended to raise
tickets on the Support Portal.
The SLAs are defined by taking into account the priority, the paid plan/product, and the customer account
status.
The SLA times listed are the time frames in which customers can expect to receive the first response and
are not to be considered as an expected time-to-resolution. BANKTEXT Support team will make its best
effort to address your case as quickly as possible.
12x5 - Support Specialists are actively responding to tickets MON-FRI, 8 AM BRT to 8 PM BRT.
You don’t have to be a developer to contribute to BANKTEXT. You don’t even have to be technical. Many of
our community contributors support the BANKTEXT open source projects directly through Github
Sponsorships.
The following should answer the questions you may have regarding sponsorship.
1. Go to https://github.com/sponsors/RocketChat.
2. Select the sponsorship tier you want.
3. Add a payment method.
4. Click on Sponsor BANKTEXT.
Notice that plans $5 a month and above include a mobile push notification increase benefit. To apply to your
workspace, click https://sponsorship.BANKTEXT and select the workspace you would like.
Annual Contribution Programs
Whether you're a developer, designer, writer, or just someone passionate about open source, BANKTEXT
participates in annual contribution programs, and we welcome your contributions to our project.
BANKTEXT is an open-source team chat and collaboration platform that has grown rapidly in popularity.
Thanks to our community of contributors who have helped us develop new features, fix bugs, and improve
the user experience.
The annual contribution programs provide an opportunity to get involved with the BANKTEXT ecosystem
and BANKTEXT projects. These programs include:
Google Summer of Code (GSoC): An annual program that allows university students to work on open-
source projects over the summer.
Google Season of Docs (GSoD): An annual program that allows technical writers to work on open-
source projects and improve their documentation and gain experience.
Each program has unique requirements and benefits, but all offer a chance to learn new skills, work with
experienced mentors, and make a meaningful contribution to the open-source world.
Open source is about collaboration and community; we're excited to have you join us.
Google Summer of Code
Welcome to BANKTEXT and thank you for your interest in contributing through the Google Summer of Code
(GSoC) program. We're excited to have you join our community of contributors.
BANKTEXT is built on modern technologies like Node.js, MongoDB, and React and is designed to be
customizable, scalable, and integrable with other solutions. We're proud to have a growing community of
users and contributors helping us improve the product and create new features.
As a GSoC contributor to BANKTEXT, you'll have the opportunity to work on a specified project or feature
with guidance and support from mentor(s). You'll also collaborate with other developers and contributors and
learn new skills and technologies.
Google Summer of Code 2023
How to apply
Application for Google Summer of Code 2023 is now closed. Please see official Google Summer of Code
site and the official 2023 timeline. Accepted contributor projects will be announced on the official site on
May 4th.
BANKTEXT is proud to be a participating mentoring open source organization for Google Summer of Code
2023. This marks the exciting 7th year of participation in this 18 years-old program to usher in a new
generation of open source contributors and enthusiasts.
Almost anyone in the world over 18 years of age who loves coding and wants to explore the incredible world
of open source can join us as a GSoC 2023 contributor.
For details and rules of Google Summer of Code 2023, please see the GSoC 2023 Official Website. For
timeline, see Official Google Summer of Code 2023 Timeline for more details.
Contacting BANKTEXT
For general information, please visit our 24 x 7 community channel for Google Summer of Code 2023 :
https://open.BANKTEXT/channel/gsoc2023
Join our Google Summer of Code 2023 Team today and interact with over 800 like-minded
contributors/mentors and meet the team in the 20 team channels.
If you have ideas and proposals that are not on our idea list, or if a mentor is not available, you can also
email to:
gsoc+2023@BANKTEXT
Interested contributors are also encouraged to interact directly with our team and community on the team
channels:
https://open.BANKTEXT/channel/gsoc2023/team-channels
As well as on GitHub:
https://github.com/RocketChat/BANKTEXT
Those who prefers forums can post messages on our GSoC forum channel (although as the leading open
source team chat project we prefer you use BANKTEXT channels above to reach us instantly).
Latest update
Update April 5th, 2023 Record-breaking 197 proposals received from our community !
Thank you (to the 811-members-strong BANKTEXT GSoC 2023 community) for the unprecedented support
for open source and for the BANKTEXT organization in particular ! We have received a total 197
proposals this year - far exceeding the total of 83 proposals from 2022.
Mentors will be busy reviewing the proposals over the next weeks. We will continue to engage and interact
with the community and sub-communities (around the different projects) with fun and learning events this
month. Stay tuned.
Update April 3rd, 2023 Amazing 800-strong BANKTEXT GSoC 2023 community !
Community growth momentum continued with us reaching 800 global members this week. Thank you
everyone for your kind support for open source and BANKTEXT !
This week we held our annual BANKTEXT Google Summer of Code Alumni Summit 2023 In this event,
we invited GSoC alumni from our past six years to come back and share their open source impacted life
experiences and also some GSoC tips with this year's contributors. We had great response - 7 alumni held
sessions throughout the day and 110 attended the live sessions. The event is recorded and is now
avaialble for all.
As submission deadline approaches, we now have 33 mentored project ideas with 30 mentors and 8 of
our mentors this year are GSoC alumni from prior years!
With a whole day before submission closes, we have already received 103 proposals - far exceeding prior
year's final count.
As of this week, we have 330 code contributors on our contributors leaderboard. Responsible for 69
Merged PRs, 80 Open PRs, and 187 Issues!
Update March 28th, 2023 Thanks to our SEVEN HUNDRED and FIFTY strong community!
Momentum of community growth continued throughout the week. **** Now, the BANKTEXT GSoC 2023
community stands at an unprecedented 750+ globally diverse members collaborating 24 x 7 at our GSoC
2023 Team Channels.
Almost everyone is fully engaged with their mentors in discussion of the THIRTY MENTORED PROJECT
IDEAS this week. Mentors are busy helping contributors and reviewing early drafts of proposals. Some
contributors have already submitted proposal through their GSoC portal - as of this week we have received
30 early proposal submissions.
A large group of mentors assembled to run a Proposal Workshop over the weekend to help contributors in
writing their proposals and to show them how mentors typically select the winning proposal. The event was
extremely well received with over 47 attendees. Many of them shared their work-in-progress proposals for
in-session live review. Thanks go to all the contributors for supporting this event and to the tireless mentors
showing up Sunday early morning to help our keen contributors.
As of this week, we have 314 code contributors on our contributors leaderboard. Responsible for 68
Merged PRs, 70 Open PRs, and raising 173 Issues!
Update March 21st, 2023 Shout out to our 2023 community of SIX HUNDRED !
Proposal submission is now open! We are extremely grateful for the enthusiastic participation and support of
our contributors. The learning curve for BANKTEXT's huge production code base is known to be extremely
steep and many of them are getting a head-start even before the announcement of the GSoC 2023 program.
Joining us as early as January this year!
Currently, the BANKTEXT GSoC 2023 community stands at an unprecedented 670 globally diverse
members collaborating 24 x 7 at our GSoC 2023 Team Channels.
To accommodate this huge community of interested new contributors we have an unprecedented 43 new
innovative project ideas for them to choose from. The list of ideas is consolidated down to 25 active ideas
on March 21st based on contributors' interest and mentors' availability. We currently have 27 mentors
working with the new contributors, 6 of our mentors are actually prior year BANKTEXT GSoC alumni !
We are extremely proud of our mentors community this year.
We have conducted multiple live Ask Me Anything (resolving general GSoC logistic questions) sessions as
well as Code Walkthrough sessions for back-end, front-end, apps (and much more). Sessions were all well
received with 10 to 25 new contributor attendees each.
Check out our GSoC 2023 Contributors Leaderboard, to see their amazing contributions: 55 Merged PRs,
44 Open PRs, and 141 Issues as of March 21st, 2022.\
Project Ideas
This current project ideas list is below, with full mentor assignments. Due to the large number of mentors,
ideas and contributors this list may still be subjected to minor changes.
Whiteboard Integration
Description:
White boards and visual drawing/concepts sharing has become a stable of team collaboration. BANKTEXT
currently does not offer any whiteboarding feature. Markboard is an open source incumbent whiteboard
created upon the same technology stack as BANKTEXT and built by a team led by a BANKTEXT GSoC
alumni. This project will create a BANKTEXT App that integrates Markboard into BANKTEXT and extends
its team collaboration features through BANKTEXT.
Goals/Deliverables: BANKTEXT App integrating Markboard into BANKTEXT. The App should extend
team collaboration capabilities of Markboard in conjunction with our Team Channels feature.
Difficulty: Advanced
Description:
Most BANKTEXT developers uses VSCode when studying our massive production code base, and when
writing new code. VSCode is the best environment for conducting interactive tutorial and code
walkthroughs. The CodeTour extension available in VSCode can be used to create such walkthrough and
tutorials. This project involves the development of a set of guided tutorials using CodeTour that will help new
developers to understand how to perform multiple actions. Paths to be documented will go from this areas:
Description:
In recent years, Flutter has became the de-facto standard for high performance open source multi-platforms
apps development. Thanks to its huge global developers community and the ever-growing ecosystem of
open source flutter components.
This project aims to create an easy to integrate flutter component to embed BANKTEXT into any existing
and new flutter applications (similar to our existing EmbeddedChat project). In addition, a layer of Dart
friendly API/stub needs to be created for application that needs in-depth modification of chat behavior or
needing to use the chat engine as a messaging fabric.
Desired Skills:
Flutter, Flutter components construction, Dart, JavaScript. A thorough understanding of how BANKTEXT
core works. Knowledge of Flutter multi-platform development (Android, iOS, Linux, Windows and MacOS).
Goals/Deliverables:
An SDK that enable easy embedding of RC instances into any flutter app plus Dart APIs to access RC
collaboration engine internals.
Difficulty: Advanced
Description:
Rewrite our current mobile apps share extension in Swift for iOS and Kotlin for Android, making sure that it
supports the latest ReactNative Fabric architecture.
Desirable Skill: Advanced ReactNative. Good knowledge of native iOS and Android development. Passion
for creating great mobile experiences.
Difficulty: Advanced
multiple (hundreds) of bots running concurrently and user-friendly way of managing them
support for every aspect of omnichannel operation
improved rendering of messages
Goal/Deliverable: A working botpress connector suitable for deployment of production Chatbots at scale.
Difficulty: Medium
Description: BANKTEXT is widely used all over the world in multiple languages. Having a welcoming and
vibrant community of translators and reviewers is essential to make sure we can deliver the best localization
possible.
This project aims to both convert today's i18n to work with community friendly open source translation
platform such as weblate and kick-off a translation community.
Desired Skills: Advanced Typescript. Familiarity with i18n platform and technologies, weblate preferred.
Goal/Deliverable:
Difficulty: Medium
Miro App
integrate Miro features into BANKTEXT for daily use by team collaboration users. It should include as a
minimum for collaboration teams to:
Difficulty: Easy/Medium
Description:
Moderation console for BANKTEXT enables moderators to examine reported messages and then take
action against the individuals who post them. A simple set of action is already included. In this project you
will add the action to allow muting of the user for a specific duration.
Currently, the only way to submit messages for moderator's review is to report the message. This project will
add a mini-reputation system, through voting with special emojis, to assist the moderator in deciding what to
do with the reported user. A count of special emojis against a message can be used to determine the
number of users that find a particular message offensive.
Desired Skills:
ReactJS, TypeScript, MeteorJS. A thorough understanding of Moderation Console operations. Knowledge
of how to expose additional core features to Apps.
Goals/Deliverables:
Mini-reputation system enabling users to mark messages using special emojis. Additional action for
moderation console allowing user to be muted by moderator for some durations (5min, 1 hour, or any custom
minutes)
Difficulty: Easy/Medium
Description:
A BANKTEXT channel can be embedded into some existing web application via the Embedded Chat
component. Currently, the available integration surface and features of Embedded Chat is rather limited.
This project aims to significantly expand the applicability of Embedded Chat for a wider range of web
applications - including the most popular frameworks such as Vue, Angular, Svelte, React Native; and
hosting platforms such as WordPress and Ghost; web application developed in Java, PHP and Python.
Embeddability via HTML . Customizability needs to be improved with theme kit, as well as a way to enable
users to supply custom CSS. Features we still need includes the support of all authentication methods that
the hosting server has activated, file/media attachments, sending audio messages, autocomplete mention
search, and in-chat RC-App slash-command access. Realtime messages transport needs to be improved to
avoid 429. Last but not least, we need to greatly improve the first-time developer experience by supplying
better server startup, testing, and e2e testing devops and via gitpod-ization.
Desired Skills: React and NextJS. Absolute in-depth knowledge of Embedded Chat project. Thorough
understand of modern web application development platform and technologies.
Goal/Deliverable: Embedded Chat working with most current web application building technologies, and
updated with missing essential features. Ideally also improved realtime transport as well as first-time
developer experience.
Difficulty: Medium
Description:
Implement a new mobile media carousel component that can:
Difficulty: Medium/Advanced
Description:
Have you ever faced challenges keeping track of your pull request reviews as a student? This is a common
problem faced by many development teams. That's why we propose developing a pull request reminder app
for BANKTEXT as a part of the Google Summer of Code program. For now, we’re isolating the scope of this
project to GitHub.
The app's goal will be to provide regular reminders and updates to keep the review process moving and
help ensure that pull requests are being reviewed and discussed in a timely manner. This project will be
built on top of this existing GitHub App which already has a bunch of boilerplate code to deal with
authentications and GitHub APIs.
One approach to solving the issue of pending pull requests is to create a separate BANKTEXT channels for
each pull request (This is a proven strategy organizations already use on Slack. Check here for more info).
This way, all relevant stakeholders can be added to the channel, including the author of the pull request, the
reviewers, and any other team members who need to be informed about the status of the review.
The BANKTEXT channels can serve as a dedicated space for discussion and collaboration around each
pull request. Users can receive notifications about updates to the pull request, such as new comments or
changes to the code. This helps keep everyone informed and ensures the review process stays on track.
" Attention reviewers! This pull request has been pending for [number] days now. Let's make sure to
give it the attention it deserves and keep the review process moving forward "
In addition, the users can also opt-in to receive a direct message from the bot at the start of their workday,
with a comprehensive list of all the reviews that need his/her attention.
1. " Time to give those pull requests some love! You've got [number] pending review(s) waiting for you.
Don't keep your fellow developers waiting "
2. " Don't let those pull requests get forgotten! You've got [number] waiting for your review. Let's get to
work "
3. " It's time to move those pull requests forward! You've got [number] waiting for your review. Give them
the green light "
By using BANKTEXT channels to manage the review process, teams can improve the visibility of their pull
requests and ensure that they are being reviewed and discussed in a timely manner.
PS: For more inspiration on how to solve this issue, please refer to some of these solutions on other
platforms.
Pull Remind
Axolo
Desirable Skills: Advanced Typescript; Knowledge about Github API's; BANKTEXT app-engine
Framework; Familiarity with existing Github App
Goal/Deliverable: A working BANKTEXT app which sends pulls request reminders to BANKTEXT users.
Difficulty: Easy/Medium\
Description:
Copy any media from other platform apps to the message composer (on mobile)
Add option to copy media to platform clipboard (on mobile)
The implementation should operate across all the mobile platforms that BANKTEXT support. Including
iOS and Android, form factors from phone to tablet.
Goal/Deliverable: Composer ability to accept copy/paste media from other platform apps and the option to
copy media to clipboard.
Difficulty: Medium/Advanced\
Description:
RocketChat is a popular open-source communication platform, but it is not uncommon for spammers to take
advantage of its live chat widget to send unwanted messages. To mitigate this issue, a CAPTCHA solution
should be implemented in the live chat widget. This project aims to integrate a CAPTCHA mechanism in
RocketChat's live chat widget to prevent spam messages from being sent.
The solution should allow users to prove that they are human by completing a simple CAPTCHA task before
sending a message. This will help to reduce the number of spam messages and improve the overall user
experience.
Key Deliverables:
Integration of a CAPTCHA solution in RocketChat's live chat widget
A comprehensive testing suite to ensure that the CAPTCHA is working as expected
A user guide to help users understand how to use the new CAPTCHA feature in the live chat widget
Note: The CAPTCHA solution should be accessible to all users, including those with disabilities, and
should not negatively impact the user experience.
Difficulty: Easy/Medium
Description:
Make the message composer live preview feature instead of just adding markdown tokens that styles/parse
the message in the Message List.
E.g: If the user press Bold button in the message composer actions that has the message "Test Message" or
wrap the message in asterisk nowadays it shows:
Difficulty: Easy/Medium
Agile BOT
Description:
Agile adoption is increasing year to year on the different industries. There is an opportunity to add agile
package bots to help squad with reminders, links and facilitate attendance to meeting based on simple
calendar inputs and emoji reactions. Candidate will be working with Agile experts and Engineers to build
some solutions for this space and help improve team/squads productivity. Successful contributor will
propose and implement a Chatbot that solves a problem in agile. Candidate have a free choice of
technology to implement the chatbot - RASA, Botpress, Dialogflow, and so on.
Desirable Skills: Familiarity with TypeScript development. Demonstrated interest and/or passion in Agile
and squad productivity tools.
Difficulty: Easy/Medium
Description:
BANKTEXT has Team Channels to handle sub-communities wanting autonomous control over their
membership within a scaled server (possibly servicing tens of thousands of users).
This project aims to provide such sub-communities / teams with a mean to:
The implementation can also work optionally with blockchains and tokens from other providers - but this is
not mandatory. Integration with a wallet is implied but novel alternative solution will also be accepted. It can
be implemented as a BANKTEXT App or extension to core, or both.
Desirable Skills: Thorough understanding of BANKTEXT core. Working experience with modern Web3 /
blockchain technologies. BANKTEXT App development experience. Advanced Typescript
Goal/Deliverable: Ability to mint, distribute, and exchange unique erc-20 tokend within a "team".
Difficulty: Medium/Advanced
Off the Record Messaging for Mobile (OTR)
Description:
Off the Record Messaging is a very popular and well loved feature of BANKTEXT desktop and web client. It
enable two parties to securely exchange encrypted message while both side are online, and not have the
encrypted conversation be persisted in the chat history. However our mobile app currently does not support
this. This project will add OTR support to our mobile apps.
Desired Skills: Advanced ReactNative. Knowledge of native Android and iOS app development.
Goals/Deliverable:
OTR working on both iOS and Android apps.
AI Moderation APP
Description:
Offensive/sensitive content detection by AI. Ideally both images/text will be processed. Proposals that
extend the existing work on the AI Moderation project, as well as brand new approaches will be welcomed.
Proposal should also address scaling and cost of the solution.
Goal/Deliverable: An app that uses TensorFlow AI to verify images/texts and flag them when has harmful,
toxic, or offensive content and block.
Difficulty: Medium/Advanced
Description:
BANKTEXT UiKit is the protocol/tool that allows BANKTEXT apps to add new (both web and mobile)
elements to the current UI.
People often do not imagine what is possible to do with the protocol. That's why the playground idea.
Nowadays we already have a version of the playground, so it is already possible to visualize the main
functionalities, but it is still not the full experience desired.
Desirable Skills: TypeScript, React
Goal/Deliverable: The objective is to add other functionalities that improve and encourage the development
of apps. Features such as templates, workflows simulation, connecting to a workspace and also
sending/sharing the prototypes through BANKTEXT are the main goals of the project
Difficulty: Medium/Advanced
Goal/Deliverable: Work as if you were creating documents in notion without leaving BANKTEXT
Difficulty: Easy/Medium
Description:
The goal of this project is to develop a solution that utilizes OpenAI's ChatGPT to generate a concise
summary of live chat conversations within BANKTEXT. This will provide managers with a quick and
efficient way to stay up-to-date with live chat conversations, allowing them to make informed decisions
without having to spend time reading through lengthy conversations.
Desirable Skill : Strong programming skills in Typescript. Familiarity with natural language processing and
machine learning. Familiarity with BANKTEXT and its Apps-engine. Knowledge about OpenAI's ChatGPT
API is a must.
Goal/Deliverable: A BANKTEXT app that retrieves live chat conversations from the BANKTEXT apps-
engine. Use of the OpenAI ChatGPT API to generate a summary of the conversation. Storing the generated
summaries in a database for later retrieval and analysis.
Difficulty: Easy/Medium
Desirable Skills: Desktop applications development, Javascript/Typescript and a little of Rust experience is
a plus.
Difficulty: Advanced
Description:
Improving the user experience on our current mobile apps with:
Difficulty: Medium
Description:
Jitsi meet has become one of the most popular and frequently used open source video conference platform
in the world. The chat that is included as part of the Jitsi system is rudimentary and chat history is lost as
soon as the conference is over. This project leverages our existing EmbeddedChat project to integrate an
embedded version of BANKTEXT into Jitsi Meet - giving it a rich messaging experience with full history after
conference.
Ideally we would like an integration at the Jitsi Meet React SDK level. Perhaps extending the
<JitsiMeeting/> tag with a useRCForChat attribute. The integration should maintain prosody as the single
source of truth for channel membership. A variety of server authentication scenarios must be catered for
(including SSO and Oauth).
Desired Skills: React Native, in-depth knowledge of EmbeddedChat project, familiarity with Jitsi Meet,
understanding of prodigy.
Difficulty: Medium/Advanced\
QuickAnswer Bot
Description:
The goal is to develop a bot that can help reduce repetitive questions asked in BANKTEXT channels by
providing relevant answers from its knowledge base (Similar to this Slack app)
Features:
1. Knowledge base: The bot will have a knowledge base of all previously answered questions and their
answers.
2. Real-time scanning: The bot will scan the BANKTEXT channels in real-time for new questions and
check if it has a relevant answer in its knowledge base.
3. Private response: If the bot finds a relevant answer, it will send the answer privately to the person who
asked the question, without interrupting the public conversation.
4. Analytics (optional): The bot will keep track of the number of repetitive questions answered and provide
analytics to the administrator.
Technologies to be used:
BANKTEXT apps-engine
Natural Language Processing (NLP)
Elasticsearch (a suggestion, but I’m open to any other good alternatives)
With Elasticsearch integrated into the tech stack, the bot can leverage the powerful search and analysis
capabilities of Elasticsearch to efficiently search through the knowledge base and provide accurate answers
to the user's questions. Here’s a good blog to get started.
Desirable Skills: Advanced knowledge of Natural Language Processing (NLP); BANKTEXT apps-engine;
Experience using chosen indexing framework like ElasticSearch
Goal/Deliverable: A BANKTEXT app that suggests relevant answers to new messages in a channel, based
on past messages. Plus an additional service is used for indexing messages.
Difficulty: Medium/Advanced
Description:
One very popular interpretation of the "Metaverse" is group interactions within a real-time rendered 3D
Virtual Reality world. Mozilla Hubs has been the leading open source project in this space for the last
decade. Due to the limitation (and cost) of today's technology, however, hub has always had limited
scalability. Rooms can contain 20 to 30 attendees. Another similar technology proof of concept has emerged
recently in Third Room. While BANKTEXT as a collaboration platform has re-architectured to handle
millions of users - and through federation, the world; we have also implemented Team Channels to deal with
very large communities wanting autonomous control over their membership. This project is to create a
rational integration between Mozilla Hubs (and/or Third Room) and BANKTEXT team channel - enabling a
pragmatic version of "the metaverse" to be built organically.
We welcome original proposals at different levels of integration. It can be a direct extension of core, an
external bridge, a link preview-extension, or even a BANKTEXT App.\
Desired Skills:
ReactJS, TypeScript, MeteorJS. A thorough understanding of how BANKTEXT core works. Knowledge of
BANKTEXT Apps development. Passion for improving human communications and collaboration.
Goals/Deliverables:
Working integration of Mozilla Hubs rooms within BANKTEXT Team Channels in a rational and usable
context.
Difficulty: Advanced
Integrate Asana via RC App
Goal/Deliverable: The objective of this project is to be able to manage tasks without having to enter the
Asana UI
Difficulty: Easy/Medium
Toggl App
Description:
Integrate the essential features of Toggl for team collaborating with BANKTEXT. The app should include as
a minimum the ability to:
Goal/Deliverable: BANKTEXT App integrating Toggl for teams and team member collaboration.
Difficulty: Easy/Medium\
Android Auto
Description:
Create a sensible implementation of BANKTEXT for Android Auto.
Desirable Skills: Advanced Typescript. Android and Android Auto development experience.
Difficulty: Advanced\
Penetration Tests and Potential Vulnerabilities Fixes
Description:
Security is critical to any open source project that works with user data over the web, and BANKTEXT
recognizes the importance of safeguarding confidential information. Web application security and
penetration testing involve identifying potential vulnerabilities, evaluating risks, conducting tests, and
implementing countermeasures to prevent unauthorized access.
The focus of the project is going to be conducting security research on the BANKTEXT open-source project
and identifying and repairing specific security vulnerabilities that will be found.
For this project, the automated and manual security tests, including static analysis, penetration testing, and
vulnerability scanning will be maintained in the BANKTEXT open source pentest repository.
In addition, the proposal should include some continuous integration tools to prevent the introduction of new
vulnerabilities.
Together, these tests and tools will allow us to deliver a collaboration platform that is secure and reliable for
use by all our community users.
Expected Deliverables:
Automated and Manual security tests, including static analysis, penetration testing, and vulnerability
scanning.
Recommend (and possibly implement) fixes and retesting of the system to ensure that vulnerabilities are
resolved.
creation and/or integration of continuous integration tools to prevent the introduction of new
vulnerabilities.
A detailed risk assessment report, including a prioritized list of vulnerabilities and recommended fixes
(these may need to be submitted in private initially until time for public disclosure)
Possible addition -- Tools to enable Github Recon, also known as Github footprinting. It is a process
where researchers use Github to collect information about an organization's internal infrastructure,
security configurations, codebase, tools, and policies. This is achieved by closely examining public
repositories, reviewing organization accounts, commits, and pull requests, and searching for any useful
pieces of information that could help better understand the target. The process involves identifying key
personnel within an organization and looking into their contributions and activities on Github. These can
provide insight into the type of work they may be involved in, tools and technologies they use, and any
potential security risks or misconfigurations they may have unintentionally leaked onto the public
platform.
Difficulty: Easy/Medium
Unified Push for Android Apps
Description:
In the Android ecosystem, UnifiedPush has proven to be a practical provider agnostic way of supporting
multiple push notification infrastructures. This project adds support for UnifiedPush to BANKTEXT mobile
app for Android platform.
Desired Skills:
Advanced ReactNative. Knowledge of Android platform development.
Goals/Deliverables:
UnifiedPush working on the Android app. With or without FCM fallback.
Difficulty: Medium\
Murtaza Patrawala
Description:
This project aims to develop a BANKTEXT app that allows users to create, store, and send common
messages with ease (Similar to this Slack app). The app will have a simple interface that enables users to
create templates with customized names. These templates can be triggered using a slash command (e.g.,
/template <template-name>) and inserted into the chat window with just one click. Users can also edit and
delete their templates as needed.
The app will be built using the Apps-Engine framework as a BANKTEXT app. This app will improve
productivity and streamline communication in BANKTEXT, provides a convenient way for users to send
common messages and save time in their daily work routine.
Examples of use cases include a customer support agent responding to frequently asked questions, a
project manager sending a weekly status update message to the team, or a sales representative following
up with potential clients.
Difficulty: Easy/Medium
in open.BANKTEXT channels
discussions in forums.BANKTEXT
topics listed on gsoc.BANKTEXT
leaderboard communicating over Github
repositories gathered for meetings on
Jitsi
alumni summit
demo day
This project leverages two existing projects - the RC4Community platform and RC4Conferences
components to build a one-stop hub to engage our community, incorporating all the servers into a unified
hub with an easy to use Ux via single logon.\
Desirable Skills: Advanced Typescript, advanced React. Deep knowledge of RC4Community and
RC4Conferences projects.
Goal/Deliverable: A working Google Summer of Code Community Hub that we will use to engage all
community members starting in 2023.
If you are interested in any one of them, let our community of 650+ potential contributors and mentors
know in our 24 x 7 community chat channel AND you may just give it a life this season!
We have already seen FOUR extraordinary examples of contributors giving a new life to these "need more
luv" projects:
Contributor Yash Sancheti introduced the pen test and fixes project and found mentor Igor Rincon for the
project!
Contributor Yatendra Kumar convinced Debdut Chakraborty and Sing Li to revive the Flutter SDK project!
Anik Dhabal Babu requested and mentor Mustafa Hasan Khan agreed to mentor the Miro App and the
Toggl App ideas for 2023 !
Congratulations to the above contributors ! And please know that these FOUR NEW MENTORED
PROJECTS are NOW OPEN for everyone's contribution and proposals as well !!\
Mentors: TBD
Description:
BANKTEXT had a WordPress plugin that worked well with WordPress offering a few years back, giving
users a very easily integrated LiveChat widget on their website. Since then both BANKTEXT and
WordPress have undergone major re-architecture and vastly expanded the possible intergration surfaces.
This projects aims to build a new WordPress plugin that enable the quick addition of a chatroom (not just
LiveChat or omnichannel) to any WordPress website leveraging some of the new integration technology we
have such as EmbeddedChat.
The new plugin should cater for WordPress legacy architecture and yet be highly useful in the new headless
CMS model. It should deliver value for both WordPress SaaS users as well as self hosted WordPress
installations.
Desirable Skills:
In-depth knowledge of WordPress architectures and plugin construction. Knowledge of BANKTEXT
integration surfaces.
Goal/Deliverable:
Working WordPress plugin on the WP marketplace supporting BANKTEXT integration.
Mentors: TBD
Description:
Snaps (in amd64 architecture) is one of the most popular distribution method through which new users
discover BANKTEXT. 64bit ARM processors have come of age and becoming mainstream now that Apple
has bet their future on the architecture.
In recent years, our own multi-platform snap build effort has failed miserably for the arm64 architecture. But
tooling for building arm64 architecture snap on arm64 and amd64 is finally maturing. This project aims to
leverage these new tooling to build a long-term sustainable snap distribution for arm64.
Desired Skills:
BANKTEXT deployment experience. Working experience with Snapcraft. Intense interest on DevOps.
Goals/Deliverables:
Working arm64 snap for 5.x and 6.x releases of BANKTEXT that leverages core22 and cross-build
capabilities of Snapcraft 7.
Difficulty: Medium\
Mentors: TBD
Description:
Full-stack component is the holy grail of software componentization. Imagine building a fully functional
customized web portal in minutes by dragging and dropping full-stack components. Each component not
only contains interactive UI, but also associated mid-tier and server-side/severless behaviours as well as
parameterizations. Unfortunately the state of our current software art is not quite there yet. The next best
thing is actually which solves the same problem but at a page level and not at the component-within-the-
page level.
RC4Community is a specialized componentized framework for community builders to rapidly create fully
functional community portal. It was designed to work with a full-stack component framework since day one -
but had to use Next.js instead.
This project involves the introduction of the missing architectural, build workflow, and packaging technology
to enable full-stack components within the RC4Community context.
Goal/Deliverable: A set of full stack components for community builders. A framework that allows new
components to be hosted on their own independent repositories and be packaged into modules that can be
installed over the network as needed (similar to npm model today).
Difficulty: Advanced
Description:
BANKTEXT Apps are the preferred way to extend BANKTEXT's feature set, and the officially supported
way of adding custom integrations to the chat rooms. While the very basic slash commands are currently
supported by our mobile apps, a large portion of capabilities enjoyed by the browser and desktop apps is
missing from mobile.
This project aims to fill up part of this gap. It includes the mobile implementation of:
message actions
room actions
composer
Desirable Skills: Advanced Typescript. Advanced ReactNative. Understanding of iOS and Android
programming.
Difficulty: Advanced\
Mentors: TBD
Description:
Creating a high performance native desktop client for the Windows platform (Windows 10 and 11). This
client should not embed a browser and should be accessing BANKTEXT native APIs on the wire. It should
leverage system programming languages such as rust and developed directly to the Windows System APIs.
Goal is a client with better and optimized performance characteristics, on Windows based system, than our
current cross-platform desktop apps.
Goals/Deliverable: A Windows platform native client that has great performance characteristics.
Difficulty: Advanced.
Mentors: TBD
Description: The goal of this project is to make a service (Back end) capable of tracking user actions (role
change, permission change, setting change, critical endpoint calls, etc) and then list them to admins. This
will serve as a way of auditability of actions, reducing support friction (since this will make changes to
system easier to track) and improve quality. Ideally, an Admin section will be shown with the list of actions,
which would be filtered by type/user/level. Setting should also be in place to see if actions should be tracked
or not and which actions to track
Difficulty: Easy/Medium
Mentors: TBD
Description:
Create a "plug-in and go" appliance that allows anyone to run and operate a small BANKTEXT server for
their interest group, family, or friends.
The resulting image should run on arm SoC based SBCs with either 2GB or 4GB of RAM (as in most of
today's Android TV boxes). Some technologies to consider include Armbian and Gokrazy. But we are wide
open to all applicable stacks.
Back in 2015, BANKTEXT planned a kickstarter/indiegogo project to do something very similar. Finally in
2023 the open source technology stacks, plus widely available arm hardware, are making it possible this to
become a general open source project.
Desirable Skills: Familiarity with BANKTEXT deployment platforms and workflows. This project will take
someone with highly specialized interests and skills in low level firmware mods, kernel patching, bootloader
hacking and possibly knowledge of Golang.
Goal/Deliverable: An image that can be loaded into inexpensive common 2GB/4GB Android TV-Box and
repurpose it to become a "plug-in and go" BANKTEXT appliance.
Difficulty: Advanced
Description:
Big Blue Button has become one of the more popular open source virtual classroom platform in the world.
The chat that is included is based on meteorjs (just like BANKTEXT) but is rudimentary and chat history is
lost as soon as the class session is over. This project leverages our existing EmbeddedChat project to
integrate an embedded version of BANKTEXT into Big Blue Button - giving it a rich messaging experience
with full history after class.
Desired Skills:
React Native, MeteorJS, in-depth knowledge of EmbeddedChat project, familiarity with Big Blue Button and
good understanding of BANKTEXT core.
Goal/Deliverable:
Big Blue Button with BANKTEXT embedded in place of existing chat.
Difficulty: Advanced
Google Summer of Code 2022
How to apply
Application for Google Summer of Code 2022 is now closed. See official Google Summer of Code site.
See official accepted projects and contributors for the list of projects this year.
For timeline, see Official Google Summer of Code 2022 Timeline for more details.
BANKTEXT is proud to be a participating open source organization for the Google Summer of Code 2022
program. This marks the exciting 6th year of participation with this 18 years-old program to usher in a new
generation of open source contributors and enthusiasts.
Almost anyone in the world over 18 years of age who loves coding and wants to explore the incredible world
of open source can join us as a GSoC 2022 contributor.
Contacting BANKTEXT
For general information, please visit our 24 x 7 community channel for Google Summer of Code 2022 :
https://open.BANKTEXT/channel/gsoc2022
Join our Google Summer of Code 2022 Team today and interact with over 300 like-minded contributors and
meet the mentors in the 25 team channels.
If you have ideas and proposals that are not on our idea list, or if a mentor is not available, you can also
email to:
gsoc+2022@BANKTEXT
Interested contributors are also encouraged to interact directly with our team and community on the team
channels:
https://open.BANKTEXT/channel/google-summer-of-code/team-channels
As well as on GitHub:
https://github.com/RocketChat/BANKTEXT
Those who prefers forums can post messages on our GSoC forum channel (although as the leading open
source team chat project we prefer you use BANKTEXT channels above to reach us instantly) :
https://forums.BANKTEXT/t/google-summer-of-code-gsoc/118\
Latest update
All of our active GSoC contributors, their mentors, BANKTEXT team members, and our community all
enjoyed the LIVE virtual event - BANKTEXT Google Summer of Code Demo Day - on September 8th,
2022. We had 12 super innovative projects proudly presented by their creators, welcomed by
BANKTEXT's founders/project leaders/mentors, and supported by our enthusiastic community. Anyone
missing the live event can now view the proceedings of the entire day here. Each presentation has been
edited separately to help the creators to promote their open source projects (a few of which already
welcomed new contributors of their own! ).
These are the final weeks of GSoC 2022 for all of us, contributors are busy wrapping up their administrative
obligations and all mentors and contributors are getting ready for the final evaluations next week.
Demo Day 2022 Announced (Updated August 25th, minor update August 30th)
During these final days of GSoC 2022, contributors and mentors are busy wrapping up their project and
preparing for Demo Day 2022! This LIVE virtual event will happen on September 8th, 2022! Please mark
your calendar and prepare to join us for a fun-filled day exploring all the innovative new projects.
Coding on projects continued throughout the month of July. And 13 out of the 14 projects have completed
their midterm evaluations; contributors from the 13 projects have all passed midterm - and are now busy
completing their projects. The remaining project actually has extended midterm evaluation at the end of
August, and mentors are indicating the contributor has not been keeping up with the schedule at this time.
All project participants are now preparing for the GSoC 2022 Demo Day virtual event to be held in late
August.
Coding begins and new open source projects welcoming additional contributors (Update June 22nd)
Coding has started for all our GSoC 2022 projects. Mentors are busy guiding contributors in completing the
scheduled work. This year, uniquely, many of our projects are in independent open source repositories. We
welcome our extended community and any new contributors to join these projects. See the table below for
links to repository associated with each project.
We are also planning a virtual conference at the end of the GSoC term - named GSoC 2022 Demo Day.
Mentors and contributor from each project will collaborate in presenting the final result. Please stay tuned for
more information in late July.
Project Repository
https://github.com/RocketChat/BANKTEXT.Go.S
BANKTEXT Golang SDK
(branch)
Message Forwarding https://github.com/RocketChat/BANKTEXT/tree/n
w/message-forwarding
https://github.com/RocketChat/rocketchat-botpres
Botpress Connector Enhancements
lab-bot
2022 is a phenomenal year for GSoC at BANKTEXT. With high calibre contributors arriving as early as
January and very early enthusiastic community mentors support. So far, 137 new contributors have created
94 Merged PRs, 110 Open PRs, and identified 154 Issues for our projects. We received 83 GSoC 2022
proposals; most of them are of good to excellent quality. Google has graciously granted us a total of
FOURTEEN projects for 2022 GSoC. Thank you Google! Mentors have started to welcome these 14 active
contributing community members to work with us during the 2022 season:\
Contributors Project Mentors
Mustafa Hasan Khan ClickUp App for BANKTEXT Douglas Gubert, Allan Ribeiro
Botpress Connector
sangyul.cha Duda Nogueira, Frank Dase
Enhancements
Meanwhile, please continue to interact with our GSoC 2022 community of over 350 mentors and
contributors in our team channel ; please continue to contribute to our ecosystem of repositories.
As of today, 135 GSoC contributors have created 88 Merged PRs, 108 Open PRs, and identified 151
Issues in the BANKTEXT ecosystem.
Over the next week, we will announce an exciting special activity for those ranking at the top of our
Contributors Leaderboard. Please stay tuned.
Momentum for proposal submission is building up. As our GSoC 2022 community of 300 contributors and
mentors continue to engage actively in the project specific team channels. Mentors for the various projects
are in these channels to help contributors to craft their winning proposals. On our contributor leaderboard
(which is also an open source project) , 116 contributors have added 75 Merged PRs, 105 Open PRs, and
141 Issues to our projects this season so far.
We held our 2nd annual BANKTEXT Google Summer of Code Alumni Summit on April 6th. It was exciting
to bring back Google Summer of Code participants from our previous five years to speak and help this year's
contributors in crafting their winning proposals. We have alumni from all walks of life speaking. There were
11 fascinating sessions and we welcomed a total of 156 unique individuals throughout the day at the
summit. We expect hundreds more new contributors to benefit from the recorded sessions.
All of the sessions are recorded and are available directly from our YouTube Playlist. The tips and best
practices shared by our alumni apply to the entire Google Summer of Code contributors, and are not
BANKTEXT specific. We hope these recordings will benefit all those who intend to submit proposals this
season.
We are very thankful for the enthusiastic participation of our early contributors. The learning curve for
BANKTEXT's huge production code base is known to be very steep and they are getting a head-start even
before the announcement of the GSoC 2022 program. Check out our GSoC 2022 Leaderboard, to see their
amazing contributions: 31 Merged PRs, 69 Open PRs, and 83 issues. as of Feb 20, 2022.\
Project Ideas
This list is being updated regularly, some projects without assigned mentors may be removed.
Playground for UIKit ReactJS components
Description: Develop an application/playground that allows developers to test UIKit ReactJS components
and Interactions. Should allow developers to generate code used by BANKTEXT apps and edit the content
to preview the result
Goal/Deliverable: An on-line web app that features a construction playground for BANKTEXT's UIKit
ReactJS components. Plus code and preview generators.
Difficulty: Medium
Description: Tasks automation systems that compose workflow out of a chain of multiple on-line services is
becoming very common and popular. Services such as Zapier and n8n are used by millions daily. n8n is
one of the most popular open source alternatives available.
This project involves the creation of a BANKTEXT app that connects to n8n, enabling BANKTEXT to
participate richly in the n8n ecosystem.
There is already an n8n node available. We want to extend this, with the help of a BANKTEXT app, to
support the rich feature set offered by BANKTEXT.
Difficulty: Medium
Description: Create a ready-to-go easy to embed mini-chat React component. This component should be
configurable to use any public channel on a BANKTEXT server. Authentication should be flexibly
configurable to existing BANKTEXT server token, or via an independent IDM or auth service. The challenge
here is to create a futuristic full-stack component that bundles tightly coupled backend behaviours with
standard front-end ReactJS components (from BANKTEXT Fuselage ReactJS library) - creating an
amazing developer experience when developing In-App Chat applications.
Desired Skills: ReactJS component creation experience, understanding of BANKTEXT server internals
Goals/Deliverables: Standlone mini-chat React component that can be easily installed into any ReactJS
based web app
Difficulty: Medium
Description: Botpress is a popular open source framework for creation and execution of chatbots. This
project extends a existing community-contributed Botpress connector to facilitate deployment of Botpress
chatbots and Omnichannel bots. Focus here will include - better rich UI/UX / interaction support for bots and
ability to run multiple instances of multiple bots.
Desired Skills: Javascript and Typescript development. Keen interest in Bots and Chatbots.
Difficulty: Medium
Description: The idea here is to improve the existing Omnichannel Chatbot integrations (Dialogflow and
Rasa), by allowing them to connect multiple chatbot accounts to a single BANKTEXT server. Right now, the
app is only equipped to deal with a single bot which means users can only interact with a bot within a single
domain and a single language. But, if we allow connecting multiple bots via a single app, then we can solve
this problem, thus allowing companies to serve chatbots in multiple languages, across multiple domains,
right from a single BANKTEXT instance.
Desirable Skills: Familiarity with TypeScript development. Familiarity with BANKTEXT App's development
framework
Difficulty: Medium
Goals/Deliverables:
Difficulty: Easy
Description: Create a totally open source end-to-end solution for planning, management and running of
online virtual events. Investigate integration with FOSSASIA's Eventyay platform for even planning and
management. Day of event conference handling should be done by integrating RC4Community's virtual
conference NextJS component with open-event-next - or create an even tighter integration with
RC4Community.
Desired Skills: ReactJS and NextJS development experience. Fluent with Python development. Good
understanding of video conference technology (such as Jitsi) and realtime chat platforms (such as
BANKTEXT).
Goals/Deliverables: Open source virtual conference system integrating BANKTEXT and Eventyay.
Difficulty: Hard
Description: Create a simpler desktop application similar to the old Google Talk (see 2005 GoogleTalk UI
here), is a simple channels list on a little window and each chat will open in another separated window,
making it possible to talk with people without opening a big window. Making the usage of BANKTEXT more
seamless. This project will make extensive use of BANKTEXT's In-App Chat APIs (REST APIs).
Difficulty: Medium
Description: This project investigates and implements a new and "native" identity verification mechanism
for Omnichannel end-users, such as Live Chat visitors who, depending on the use case, have to provide
personal data like email addresses, etc. BANKTEXT already has in place a similar confirmation mechanism
for user verification, such as 2FA, email, etc. The contributor will have the freedom to propose ideas and
design the best solution for the problem described.
Desired Skills: Familiarity with JavaScript development. Good understanding of the architecture of
BANKTEXT's Omnichannel implementation.
Difficulty: Medium
Description: BANKTEXT has long featured the ability to bridge directly witn IRC. IRC is still in use by many
hard core technical open source communities all over the world, and this bridge is very important to many of
our community users. However, since we started evolving our architecture to be more scalable, the IRC
bridge has not been updated to match . As a result, it has become unstable in some edge cases and also
difficult to deploy in scaled BANKTEXT configuration. This project aims to improve the situation. The IRC
bridge should be updated to be compatible with our scaled configuration. Extracting from core code base
and repackaging as BANKTEXT App or npm module should be investigated. Additional
configuration/provisioning options and DevOps images will need to be created to improve the
administrator's experience.
Goals/Deliverables: Familiarity with Typescript development. User of IRC and an understanding of how it
works. An understanding of how BANKTEXT scales.
Difficulty: Hard
Goals/Deliverables: Improve UX of daily basis tasks on a central touch point of the software.
Difficulty: Medium
Message forwarding
Description: Implement the ability to forward messages to another channel, thread, or discussion. This is a
high demand capability that is currently missing in BANKTEXT. It can significantly improve the user's
experience and her/his productivity. The scope of this project will be limited to the web application (not for
mobile apps).
Goal/Deliverable:
Being able to forward messages and files to multiple users and channels
Being able to add additional messages on the top of forwarded content
Difficulty: Medium
Description: With remote work now becoming the norm, lack of essential time management skills can throw
off work/life balance and resulting in burn-out or dangerous mental wellness problems. Pomodoro is a
proven and easy to adopt time management technique practiced by millions world wide. This project
involves the creation of an always available Pomodoro timer BANKTEXT App.
Difficulty: Easy
Goals/Deliverables:
being notified on
new comment on a file
replying and commenting in files right from BANKTEXT
Difficulty: Easy
Description: Navigation is one of the most important parts of a mobile application. We've been using React
Navigation as our navigation library and we need to update it from v5 to v6, which contains a few nice new
features. The same applies to react-native-screens, which released support to Fabric recently. After these
updates, we're planning to evaluate native-stack.
Difficulty: Medium
Description: react-native-reanimated is the de facto animation library for React Native and they recently
released their v2, changing the whole API to a more straight forward way. You're going to make use of this
library to rewrite our animations from scratch. You're also going to apply Layout Animation on Android, a
long-awaited feature.
Desirable skills: Experience with React Native and react-native-reanimated v2. Preferred, but optional: the
student needs a Macbook to test animations on iOS.
Desirable Skills: Knowledge of React Native and react-native-animated is preferred
Goals/Deliverables: Apply reanimated v2 to dropdown, RoomItem swipe and ImageViewer and apply
LayoutAnimations from v2
Difficulty: Medium
Description: We redesigned our Messagebox, also know as message composer, from scratch to make it
easier to use, composable and following a more modern UX. You're going to implement gesture animations
to record audio messages from the start. This is one of the most important components from our app.
Desirable Skills: Experience with React Native and react-native-reanimated. Required: Macbook to test
iOS.
Difficulty: Hard
Description: Actions sheets are a very common UX pattern used for users to interact with quick actions on a
fast and easy way. react-native-bottom-sheet has growth a lot recently and it's been receiving love from the
community. That's why we want to migrate to it. While doing this migration, we want to make dynamic, so we
can render the emoji picker inside of it. You're going to be designing the new emoji picker from scratch.
Difficulty: Medium
Desired Skills: Familiarity with Typescript and Javascript development. Familiarity with Microsoft Team's
available APIs. An interest in crafting bridges between communications platforms.
Difficulty: Medium
Description: BANKTEXT has desktop, web and mobile clients, time for a fourth, a TUI client. This project
brings BANKTEXT right into your terminal. By design this is to be extremely lightweight and blazing fast for
basic functions, with the only noticeable latency source being the SDK calls.
Desired Skills:
Goals/Deliverables:
Difficulty: Medium
Weekly Video Meeting and Archive App - Big Blue Button + BANKTEXT
Mentors: Debdut Chakraborty, Felipe Cecagno
Description: Big Blue Button is one of the most popular open source virtual classroom and conferencing
tool available today. This project is a very simple integration with BANKTEXT for conducting a weekly
meeting and maintaining the recording video archive. Mentors will include both BANKTEXT and Big Blue
Button experts.
Goals/Deliverables: A BANKTEXT App that will enable users in a channel to join an existing weekly
meeting if it is in progress. Or query for recorded meeting videos and view them.
Difficulty: Easy
Description: Agile adoption is increasing year to year on the different industries. There is an opportunity to
add agile package bots to help squad with reminders, links and facilitate attendance to meeting based on
simple calendar inputs and emoji reactions. Candidate will be working with Agile experts and Engineers to
build some solutions for this space and help improve team/squads productivity. Successful contributor will
propose and implement a Chatbot that solves a problem in agile. Candidate have a free choice of
technology to implement the chatbot - RASA, Botpress, Dialogflow, and so on.
Desirable Skills: Familiarity with TypeScript development. Demonstrated interest and/or passion in Agile
and squad productivity tools.
Difficulty: Easy
Zoho App
Description: Zoho Employee is the revamp of the existing Zoho App. This integrates Zoho People with
BANKTEXT, and lets the users view and modify resources according to their accounts. Zoho People is a
very capable employee management system, but opening Zoho for every little thing can get tedious in a
busy schedule. This app will make this interfacing much easier, right from BANKTEXT.
Goals/Deliverables: A BANKTEXT App that is able to look up colleague details, see upcoming PTOs,
apply for PTOs, and apply for reimbursements.
GitHub App
Description: GitHub is the largest centralized repository for hosting open source projects. This app will
enable the users to perform many GitHub activities right from BANKTEXT. Including query of issues and
PRs, code modification logs, and announcement of events - such as new releases, PR merged, and so on.
Difficulty: Medium
DropBox App
Description: Dropbox is a file hosting service. You will create an app that will help the users manage their
dropbox files easily directly from BANKTEXT.
Optional second part of the project entails making DropBox a possible storage provider for file uploads.
Difficulty: Medium
ClickUp App
Description: ClickUp is an extremely feature rich collaboration and project management tool, used by many
organizations. When used on a daily basis, going back and forth for the simple things like checking a task's
status or changing that task's status can get tedious pretty quick. This app will make it easier for BANKTEXT
users to perform simple clickup tasks without having to leave the platform, making team communications
more efficient, and team members more productive.
Difficulty: Medium
Google Summer of Code 2021
All 15 of our projects continued smoothly during these final weeks of the GSoC 2021 program. Students and
mentors worked hard together to finalize the (now it has become a tradition) BANKTEXT GSoC 2021
Project Demos This is the very first time for some students, to present in front of a group. And the audience
this year is up to 120 BANKTEXT community and team members, as well as fellow GSoC 2021 colleagues
and mentors.
This week, students are preparing for their final GSoC submission and final mentor evaluation. Next week,
mentors will start their final evaluation.
Due to sudden departure of an active mentor, we are in jeopardy of losing two key projects for the year.
Thankfully two heroines from BANKTEXT's own Agile Planning and UI/UX team came forward and,
together with mentors from our front-end team, saved the day for these projects. The new mentors
assignments are now reflected on these two projects.
The unsung heroine here is Aline Nunes, our senior Agilist, without whose help the last minute mentors re-
assignment would not have been possible.
Community bonding period is now officially over. Coding has officially began on all projects. Students are
working towards the July 12 first evaluations.
To accommodate another highly qualified student, and keen interests from mentors, our long time community
partner Credit Suisse APAC has sponsored an additional project. This brings our total number of projects
this season to 15.
Student Project Mentors
2021 is an incredible year for GSoC at BANKTEXT. Thanks to the enthusiastic early support from students
and community (mentors), Google has graciously granted us TWELVE project slots. The official listing of
students selected for these 12 projects is now published.
We are delighted to welcome these 12 active community members to work with us during the GSoC 2021
season:
Introducing Ephemeral
Darshil Patel Kevin Aleman
Channels in BANKTEXT
All verified students are now interacting with their mentors and the greater BANKTEXT community during
the community bonding phase of the 2021 GSoC season.
We are having a phenomenal Google Summer of Code season this year, participation from students is at an
all-time-high. The enthusiasm and aptitude of student applicants have also improved over prior years.
In our 24 x 7 GSoC 2021 channel - we have over 473 mentors, alumni and students collaborating actively
on GSoC projects. On our GSoC leaderboard, we are tracking 219 students actively contributing code to
the BANKTEXT open source ecosystem. As of today, we have welcomed 17 new code committers to our
projects. With a total of 138 merged PRs, 182 open PRs, and 246 issues raised by GSoC 2021 students
so far.
To rally student spirit and assist them in creating their proposal, we organized an Alumni Re-union Summit
where we invited former BANKTEXT GSoC Alumni from all previous years to share tips with this year's
GSoC students. More than 20 students attended throughout the day to enjoy the talks from 10 alumni and
mentors. Highlight talks included one from a Facebook engineer and a Brazilian open source movement
champion.
As of student application deadline on April 13th, BANKTEXT has received a total of 98 proposals from
interested students. Mentors are now busy reviewing the proposals and continuing to keep the students
engaged on contributing to the BANKTEXT open source ecosystem.
How to apply
Application for GSoC 2021 is now closed.
Please see the Official GSoC 2021 schedule for more timeline details.
Students continue to interact with mentors actively on our 24 x 7 GSoC 2021 community channel:
https://open.BANKTEXT/channel/gsoc2021
Meet our global community of 470+ mentors and students for GSoC 2021 and get some real-time help on
the next steps. Please visit our 24 x 7 community server channel:
https://open.BANKTEXT/channel/gsoc2021
https://forums.BANKTEXT/t/about-the-gsoc2021-
category/10335
If you have ideas and proposals that are not on our ideas list, or if a mentor is not available, please email to:
gsoc@BANKTEXT
Interested students are also encouraged to interact with our core team and contributor community on GitHub:
https://github.com/RocketChat/BANKTEXT
https://github.com/RocketChat/BANKTEXT.ReactNative
https://github.com/RocketChat/BANKTEXT.Electron
Project Ideas
Description: The project's focus is to solve a very common but problem relating to Out of office
functionality in Chat.
The goal:
Any user can create out-of-office settings in BANKTEXT by giving from and to date with the auto-
reply message.
User should be able to select the channels which would receive the out of office notification.
The out-of-office notification should only be sent once for the first incoming message.
The user can also define his deputy from the list of eligible users.
At the time of out of office, the selected deputy will be automatically added to channel and can reply
on behalf of main user.
After the out-of-office time ends, the deputy should be auto removed from the channel.
Desirable Skills: Familiarity with BANKTEXT, nodeJS, Experience with ReactJS. Must have database
skills, ideally MongoDB.
Ephemeral messages
Mentors: @kevin.aleman
Description: This project aims to create a channel in which the messages sent will vanish after a
configured amount of time. This would be a room (channel) setting where you can define how long the
messages will last. Messages from here cannot be retrieved after its deletion, and the deletion cannot be
deactivated, just postponed.
Desirable skills: Familiarity with JS Full Stack web app development. Experience with MongoDB and
PM2 are ideal.
Voice Channels
Description: The ability to create voice channels would allow users to quickly enter and leave pre-
existing voice calls from BANKTEXT's own UI, enabling a more practical usage of audio features for
team collaboration. This project would add the UI elements and integrate them with an established
audio platform to handle the calls.
Desirable Skills: Familiarity with nodeJS full-stack web app development.
Mentors: @murtaza.patrawala
Description: The goal of this project is to add new decentralized P2P-based storage providers within
BANKTEXT. Decentralized solutions not only provide more security but are also more cost-effective.
Some examples of decentralized solutions include Filecoin, Saicoin, Storj, etc. Via this project, the files
uploaded on BANKTEXT should be stored on the decentralized network, and the uploaded files should
be accessible within BANKTEXT.
Desirable Skills: Familiarity with nodeJS full-stack web app development. Experience with BANKTEXT
codebase and/or with any of the decentralized solution providers is ideal.
Description: This project aims to add a Help Center within the Omnichannel Domain of BANKTEXT.
This will allow the creation of content that will answer people’s simple questions faster. This project's
focus would be to provide an interface to create content (similar to how we can create an article on a
Blogging platform like Medium) and then allow users/agents and customers to search within these
contents, quickly answering their questions. This project will add a self-serve support layer that will help
with scaling by automatically resolving repetitive questions with the help of such articles and guides,
leading to faster answers for the customers and fewer questions to users/agents.
Desirable Skills: Familiarity with nodeJS full stack web app development. Experience with ReactJS is
ideal.
Description: The poll app already allows anyone to create engaging rich interaction polls within any
chat room. This project aims to expand its scope and capabilities hugely: making it a tool for enhancing
participant's engagement with interactive quizzes/trivia / live-polls.
Some initial ideas include:
Better bar-graph visualization for the responses (with a switch for anonymous responses - so 3
types: Open / Confidential / Mixed)
Ability to add user options in the poll response and show the response of those responses in a
visual way (e.g., word-cloud)
(Stretch Goal) Ability to download the live-poll response, once the poll is over
Mentors: @rodrigo.nascimento
Project Channel: https://open.BANKTEXT/channel/88mhz95ppbsncn4pk
Project Repository: https://github.com/RocketChat/BANKTEXT
Desirable Skills: JavaScript / TypeScript
Description: Create internal scripts to extract translation strings from the source code and give some
options:
Check if all strings are translated in the target languages (en by default)
List strings present in the target language that are not in the code anymore
Option to render a completion chart for all languages
Option to remove strings from all languages based on a target one
Option to import missing strings into the target language to easily add translations
Integrate the script on CI to block PR from merge if there are new strings without translations
Description: The outcome expected from this project is to support Video and Audio calls in one of the
native Omnichannel entry points called [Live Chat](https://github.com/RocketChat/BANKTEXT.Live
Chat). Live Chat is a small and lightweight application designed to provide B2C communication
between Agents and website visitors. It is developed with PreactJS, which means that any ReactJS
developer will be able to implement the new features using WebRTC framework.
Desirable Skills: Experience with JavaScript, ReactJS and WebRTC, and WebSocket API.
App: Speech-to-Text
Mentors: @marcelo.schmidt
Description: This project aims to save a text version of audio in the file metadata. This should be done
server-side upon receiving the audio.
Desirable Skills: Familiarity with JavaScript and TypeScript. Knowledge in how to build BANKTEXT
Apps is a plus.
Channel Discovery
Mentors: @martin.schoeler
Description: The idea is to add a page where you can discover new channels. This will allow users to
find channels based on: Total number of users, number of messages, search for specific topics, if the
channel has been trending lately, and any more ideas we can think of. The whole idea of this project is
to improve communities using BANKTEXT and add a sprinkle of social aspects to BANKTEXT.
Desirable Skills: Familiarity with JavaScript, React, and TypeScript. Knowledge in how to use
BANKTEXT fuselage is a plus.
Task Channels
Description: This project aims to improve the Image upload feature, allowing users to crop images
before sending it to a channel. Adding text and the possibility to draw on images could be implemented
too.
Desirable Skills: Experience with Javascript and React + Hooks. TypeScript is a plus.
Description: Houston is the CLI tooling we use to release new versions of BANKTEXT and generate
our changelogs from merged pull requests. We want to:
Rewrite the tooling in TypeScript
Accept a new format of PR titles (conventional changelog)
Add a validation system for PRs titles via GitHub Actions
Add tooling to preview the generated changelog for the PR
Add new top level of separation for product type (like Enterprise and Community) based on labels
Support dependent repositories to import their changelogs, for example, import the changelogs of
apps engine
Mentors: @douglas.gubert
Description: Currently, the Apps-Compiler package uses the bare TypeScript compiler to process apps'
code and generate the JS version. This has some limitations, e.g. we can't "simply" bundle the whole
app in a single file, we can't bundle npm packages, and so on. By changing this compiler into a proper
bundler (Webpack, Rollup, etc.), we would have access to a richer ecosystem of tooling to handle the
compilation process of BANKTEXT Apps.
Desirable Skills: JS/TS, familiarity with bundlers (using them, not necessarily writing one) would be
interesting
Stop Notifications: A list of options to stop notifications for a certain time (30min, 1h, 2h, 24h,
custom date/hour).
Notifications Schedule: Option to configure (in user's settings) the availability time where
notifications will be sent:
With the option to configure for every day from X time to Y time
With the option to configure for weekdays from X time to Y time
With the option to configure X and Y times for each day of the week manually
The same settings should be available for the workspace admin to configure a default value for
all users
New properties to allow define new actions like `recording` or `uploading`, changing the current
implementations to support and send those 2 new events and improve the end-user experience
Support specifies a context for the typing, allowing it to be shown inside a thread when users are
typing in that context instead of in the main room.
Mentors: @marcelo.schmidt
Description: BANKTEXT currently uses a package to provide message translations. This project aims
to build that functionality on an app, thus reducing the codebase of BANKTEXT and allowing for easier
configuration.
Desirable Skills: Familiarity with JavaScript and TypeScript. Knowledge in how to build BANKTEXT
Apps is a plus.
Description: This is a chat and networking platform that helps to manage, grow and connect
communities through messaging, content and discovery. This platform's aim to is to provide an easier
way to collaborate over any Github, Gitlab, and other repository hosting services. The focus will be to
add new features like User Management, Administration Module, etc. - also improve the current features,
which add more advantages and provide a frictionless experience to all the fellow developers.
Desirable Skills: Familiarity with nodeJS full stack web app development. Experience with ReactJS
and ExpressJS is ideal.
Description: This is a chat and networking platform that helps manage, grow and connect communities
through messaging, content and discovery. The platform aims to provide an easier way to build a
massive community collaborating over any Github, Gitlab, and other repository hosting services. The
focus of this project will be to add tightly integrated support for Discourse, the leading open-source forum
(civilized discussion) platform.
Desirable Skills: Familiarity with nodeJS full stack web app development, and Ruby on Rails.
Experience with Discourse and Discourse API programming a big plus.
UiKit Playground
Description: Omnichannel users, including users with visual disabilities, must be able to perceive
content at the Live Chat widget. The main idea here is to give some options to Live Chat widget users to
active "Accessible mode", which means:
High contrast colors.
Icons accompanying text.
Bigger highlight over selected text or cursor active/hover using the "tab" key.
Show a better solution when an Agent is typing.
Etc
Desirable Skills: Familiarity with matrix.org protocol; skilled in rust, golang, and TypeScript
development
Description: Explore and improve existing BANKTEXT to Matrix.org bridge(s) Investigate the current
state of development in dendrite and hydrogen. Start the work on migrating to native support of the
matrix protocols.
Desirable Skills: Familiarity with Big Blue Button; skilled in JavaScript, nodeJS and Meteor
development
Description: The embedded chat in Big Blue Button is already a Meteor based chat with a similar
structure to BANKTEXT. However, other components in Big Blue Button also depend on the same
Meteor stack working against the same MongoDB instance for proper operations. This project aims to
create the ability to integrate an existing BANKTEXT server into Big Blue Button, replacing the existing
embedded chat component.
Desirable Skills: Familiarity with nodeJS full stack web app development. Experience with ReactJS is
ideal.
Description: Create a new option to see your activity in a channel in the format of a calendar, listing any
action you had on each day. The listed actions would be things like: "joined discussion X", "created
discussion Y", "sent messages on thread Z". This will help users find messages that they know they
read/sent on a specific day but don't remember where.
Google Summer of Code 2020
How to apply
Application for Google Summer of Code 2020 is now closed.
The GSoC 2020 season has completed with one of the best experience ever for many of the participating
students and mentors.
The final list of successful Google Summer of Code 2020 BANKTEXT projects and students/mentors is now
officially available.
Of the seven official GSoC projects, every student has managed to pass their final evaluation.
Congratulations to all the students of 2020 and their tireless mentors!
Of the five additional sponsored projects, one student : the problematic one noted in the previous term, has
been failed by his mentors.
In this final term, we encouraged students to prepare a 30 minutes demo and presentation of their project for
our community and core team. Reception was incredible! The list of invitees topped 80! Most presentations
were well attended. Students showed off their work proudly alongside their mentors.
For many students, it was the very first presentation experience in their entire life - and having it in front such
a supportive audience made it extremely fulfilling. Attendees are delighted to discover the excellent work
(and exciting features) that the student undertook.
From the crop of excellent 2020 students, the BANKTEXT team made an internship offer to one student and
he has accepted and became a member of our team. Our long time community contributor, Viasat, has also
independently made an offer to another student this year.
Second evaluation has completed. Once again, all mentors have decided to pass their students for this term.
Of note is one potentially problematic student, mentor agreed to monitor the situation for the final term.
Another student has pre-arranged with his mentor to start the term early and has completed his work by this
evaluation.
Coding has started on June 1st. All mentors and students are busy getting the first month milestones of the
project under way. Many of them are engaged daily via our 24 x 7 community community server
We have two community sponsored projects with students dropping out during this time, one due to family
obligations and another due to prolonged funding uncertainty, and replacement students have been located
for these projects.
2020 is another exciting year for GSoC at BANKTEXT. Thanks to the enthusiastic early support from
students and community, the program has managed to sustain momentum despite COVID-19 downturn and
reduced participation from core. Google has graciously granted us SEVEN project slots. As a result, we are
delighted to welcome these 7 active community members to work with us during the GSoC 2020 season:
Student Project Mentors
It was a very difficult decision for us to select seven from the large number of highly qualified students (we
were able to engage the students early on in the GSoC cycle with open source contributions via the GSoC
Leaderboard ).
While some high calibre open source contributors were not selected for GSoC; to accommodate these
exceptional students, our community member Credit Suisse APAC has agreed to sponsor an additional
THREE projects this season.
Content Moderation
John Eric Sobrepena, Karan
Shreyansh Singh Tomar BANKTEXT App (Machine
Bedi
Learning)
Furthermore, Viasat, one of BANKTEXT's long-time community supporters, has agreed to sponsor TWO
projects this season.
Student Sponsored Project Mentors
This, in combination, allowed us to accommodate a total of TWELVE enthusiastic students this summer
season.
All students and mentors are now busy mutually bonding and with our core team and greater community.
Each mentor is also working with his/her student on refining the weekly and monthly
milestones/deliverables within the proposal to better reflect achievable project objectives as well as making
them measurable for the monthly evaluations. Meanwhile, all our students are continuing to contribute to the
BANKTEXT open source project(s) as they have been doing since the start of the GSoC 2019 cycle. Many
are also engaging with community members on the various public channels of our 24 x 7 community team
server.
First, we would like to thank all GSoC 2020 students for their enthusiastic support for BANKTEXT. This year
we have received a total of 86 proposals, including 81 final proposals. In the final pool, there are 13
proposals that are spam, without content, or not related to our projects.
Over the next month, our mentors will be reviewing the received proposals. Google Summer of Code will be
announcing the selected projects and students on May 4th, 2020. Please see GSoC timeline for more
details.
Meanwhile, we continue to introduce all active and incoming students to open source in general, and
BANKTEXT's ecosystem of open source projects in particular. Students will continue to make meaningful
open source contributions in the form of issues & PR for our projects and interact with BANKTEXT's vibrant
community + team.
Enthusiasm and interest from students are all time high this year; over 112 candidate students have already
started to interact with our community and contributing to the repositories! Together, they have already
contributed over 100 issues and over 50 merged PRs to our various projects. We are maintaining a real-time
updated leaderboard for at-a-glance student (candidates) contribution here:
https://gsoc.BANKTEXT/
The leaderboard project itself is open source, created and maintained by our former GSoC student (now
mentor and team member). All potential GSoC organizations are welcome to use and deploy it (the project
has a super friendly MIT license - just like BANKTEXT).
https://github.com/lolimay/GSoC-Contribution-Leaderboard-Node
We have recnetly arranged for the TOP 8 student contributors to meet one on one with BANKTEXT's project
lead Gabriel Engel and great remote fun was had by all.
Mentoring interest from core team has been reduced this year, while community mentor participation is at an
all time high. Proposals for projects are streaming steadily in since application open, the volume of incoming
proposals is reduced compared to prior year - but the percentage of high quality proposals has increased.
For ideas, check out our growing list of ideas for some inspiration.
Come meet our global community of potential mentors and students for GSoC 2020 and get some real-time
help on next steps, please visit our 24 x 7 community server channel:
https://open.BANKTEXT/channel/gsoc2020
https://forums.BANKTEXT/c/gsoc/gsoc2020/70
If you have ideas and proposals that are not on our ideas list, or if a mentor is not available, please email to:
gsoc@BANKTEXT
Interested students are also encouraged to interact with our contributor community on GitHub:
https://github.com/RocketChat/BANKTEXT
Project Ideas
Description: With the React/Redux/Redux-Saga stack coming to the Electron-based app, a richer user
experience is achievable through BANKTEXT's Fuselage components. A long-awaited feature is the
management of file downloads with some tracking of download progress and ability to cancel/restart.
Desirable Skills: Some knowledge about the concept of CSS-in-JS and popular implementations for
React (e.g. Styled Components, Emotion) as well basic understanding about the Electron framework.
Description: The goal of this project would be to create new integrations to interact with popular BOT
frameworks - RASA and Dialogflow. Also, support and adapt rich messages to the formats of these
platforms, as well as the formats supported by BANKTEXT.
Desirable Skills: Experience in working with Chatbots communication. Familiarity with Typescript and,
ideally, experience with Javascript.
Description: Enhance Omnichannel BANKTEXT with an app to support the use of Chatbots, powered
by NLP such as Dialogflow, in front of a larger existing infrastructure of Care Live Agents. The focus of
this app being the seamless transfer between Bot, Live Agent, and Bot again. If the Chatbot is unable to
solve their issue, the app will seamlessly route them to a Live Agent through a third-party queue system
such as Salesforce. At the end of the conversation, the customer will be reconnected back to the chatbot
for additional support or CSAT survey purposes, all within the same chat client window for the customer.
Desirable Skills: Familiarity with BANKTEXT development, Salesforce, and NLP or Chatbot
experience
Description: Add a new interface between BANKTEXT and the Omnichannel Live Chat widget,
allowing Agents to get real-time screenshare on customer's devices. For this initial version, we will also
create an integration with the Cobrowse.io, which will be the first screen sharing supplier supported.
Desirable Skills: Experience with Javascript and React.JS.
Desirable Skills: Familiarity with Alexa skills development and conversational design. NodeJS Server
Development and BANKTEXT source code. Experience with interfacing external sources and systems
into Alexa skills. Passion for global conversational interaction enablement. Familiarity with Google
Action development ideal.
Description: Add the option to the BANKTEXT Apps-CLI to support apps development by hot-reloading
the app in the development server on file saving.
Desirable Skills: Experience with Javascript and familiarity with Typescript.
Description: A full-screen composer that could be opened from the current composer to provide a larger
area for text input or edition, good to send or edit large texts.
Desirable Skills: Familiarity with React Native and BANKTEXT codebase.
Description: Create a BANKTEXT App that can classify videos and images as SFW or NSFW and
block them based on user or admin settings.
Desirable Skills: Familiarity with BANKTEXT Apps and Machine Learning/Deep Learning or existing
image classification services.
Description: The goal of this project is to provide the user a way to improve his vocabulary in a certain
language (English, for now), by sending him a message with a "new" word in certain periods of time
(configurable). After that, the app should validate if the user has learned the meaning of the word,
sending the definition and some word options, or some sentence with the word and a gap to fill. Also the
app would show the user's performance. There are some API's to get the words and the meanings. e.g
(WordsAPI, Datamuse, Oxford, etc) (needs to be evaluated deeply)
Desirable Skills: Familiarity with Typescript and OOP concepts.
Description: A client build for mobile-web, lite in size and functionality to bring down the site load time,
with a better UI/UX customized for mobile screens.
OAuth/Account integration
Federation Whitelisting
Mentor: @alan.sikora
Description: Enable Federation-enabled servers to whitelist other servers, avoiding unwanted chat
requests and improving security
Description: Re-enable all current skipped tests, start a visual regression test for each relevant UI part
using the same tooling (Cypress) and add tests to features without tests.
Description: BANKTEXT already has an option to load the UI as embedded layout, although it still
loads a lot of unnecessary data, the objective here is to find the most efficient way to render a single
room UI with the minimum data possible in a way that the UI can be embedded in a website using an
iframe and be performatic when reloading within the site navigation
Description: A new UI component to be rendered outside the room view allowing users to listen to the
room’s videos when navigating to other rooms.
UI to listen to audio files outside the room (like telegram) + "user is recording audio" indicator (as the
typing one)
Description: A new UI component to be rendered outside the room view allowing users to listen to the
room’s audios when navigating to other rooms. Additions like listening speed are welcome.
Pre-installed apps
Description: The main objective of this project is to add a versioning capacity to the documentation,
while maintaining a relatively simple file structure and ease of use. In addition, add support for multi-
lingual documentation and increase the ease of use of the documentation generation and hosting
framework to ease the barrier of entry for contributors trying to run the environment on their own
machines, making it more contributor friendly.
Desirable Skills: Familiarity with Javascript development. Working knowledge of Jekyll and
documentation generation framework highly useful.
Desirable Skills: Familiarity with Google Actions development, Dialogflow, NodeJS Server
Development and BANKTEXT source code. Experience with interfacing external sources and systems
into Google Action. Passion for global converstational interaction enablement.
Mentors: @renatobecker
Description: In order to have a complete customer service experience, it is essential to have quick
access to customer data, create service tickets, etc. The aim of this project is to provide that experience
by creating an integration between BANKTEXT and Zoho CRM, a complete CRM platform that will
bring an even richer experience to the Omnichannel Customer Service.
Desirable Skills: REST, Experience with Javascript and familiarity with Typescript.
Description: We've been working on our new Omnichannel solution and it's time to add two great new
features that will make Omnichannel even more powerful: voice and video calls! The idea is to integrate
Omnichannel with the providers already supported in BANKTEXT, such as Jitsi, WebRTC,
BigBlueButton and so on. With these two new features, Omnichannel users will be able to initiate video
and audio calls between them and Omnichannel agents.
Desirable Skills: Familiarity with BANKTEXT/Omnichannel development, ReactJS/PreactJS, Voice
and Video communication
Description: Last year we explored the possibilities of having a BANKTEXT Amazon Alexa Skill and a
BANKTEXT Action on Google. This project should aim to explore adding a Samsung Bixby Capsule for
BANKTEXT. Bixby is a next-generation, conversational assistant platform that was created to help
users get things done in a more efficient, personalized and natural way. The way Bixby focuses on a
multimodal approach from the very start could help eliminate the nuances involved in building an
intricate voice-only experience.
Desirable Skills: Familiarity with VUI/Bixby development. Experience with interfacing external sources
and systems into Alexa skills. Passion for global conversational interaction enablement. Familiarity with
Javascript ideal.
Description: Add commands to the BANKTEXT Apps-CLI that generate the boilerplate needed to add
new components to the app being developed, such as Slash commands, API endpoints, etc.
Desirable Skills: Experience with Javascript and familiarity with Typescript.
Description: Add the ability to manage and access recorded and previously live streamed video within
the BANKTEXT integrated Nextcloud environment. Similar to Youtube but with a chat-centric access
interface.
Desirable Skills: Familiarity with BANKTEXT and Nextcloud development. Deep understanding of
current digital streaming and recorded media standards a big plus.
Description: Create build of our 4 apps on GitHubCI, 2 Android Apps and 2 iOS Apps (Official and
Experimental).
Desirable Skills: Familiarity with React Native, FastLane, Android & iOS build apps.
Timeline
How to apply
Applications for the GSoC 2019 season have now closed. Please see GSoC timeline for more details.
First evaluation has completed! Coding continues at a feverish pace. Progress has been smooth across the
projects. Projects are ontrack based on weekly mini-milestones agreed between mentors and students.
Mentors are busy making sure that every student receive his/her detailed evaluation and payment. Students
have also completed evaluation for their mentor(s). Many students are preparing their project for interim
demo and reviews by our core team. During this first evaluation, we have decided to fail one student due to
no communications with mentor. We also had to remove a mentor due to lack of available participation time.
Coding has begun! This year continues to be the most active and productive GSoC year at BANKTEXT.
During the bonding period, our students continued to assist community in public channels, interact with core
team, contribute to bug fixes and documenation updates. They have also worked with their mentors to add
detailed schedule to their proposal, reflecting measurable goals/milestones. Coding and detailed design
work have started across all active projects. In addition, we are happy to welcome a team of community
mentors from Credit Suisse Singapore, already well experienced with our core and native mobile code
bases, to assist us this season.
Unfortunately, during this time, we had to remove one student from the program due to extended inactivity.
2019 is an incredible year for GSoC at BANKTEXT. Thanks to the enthusiastic early support from students
and community (mentors), Google has graciously granted us SEVENTEEN project slots. This far surpasses
any record from prior years. As a result, we are delighted to welcome these 17 active community members to
work with us during the GSoC 2019 season:
Student Project Mentors
Implemenation of Newsfeed in
Amish Mittal Devin Toth, Peter Lepeska
BANKTEXT
Ashish Jha Alexa Skill for BANKTEXT Sing Li, Gabriel Engel
It was a very difficult decision for many mentors to select from the large number of highly qualified students
(we were able to engage the students early on in the GSoC cycle with open source contributions via the
GSoC Leaderboard ).
Some high calibre open source contributors were not selected for GSoC; to accommodate these exceptional
students, our community member Viasat has agreed to sponsor an additional FOUR projects this season.
BANKTEXT has in addition sponsored ONE qualified student with special circumstances to work with us for
the term.
This, in combination, allowed us to accommodate a total of TWENTY TWO enthusiastic students this
summer season.
All students and mentors are now busy mutually bonding and with our core team and greater community.
Each mentor is also working with his/her student on refining the weekly and monthly
milestones/deliverables within the proposal to better reflect achievable project objectives as well as making
them measurable for the monthly evaluations. Meanwhile, all our students are continuing to contribute to the
BANKTEXT open source project(s) as they have been doing since the start of the GSoC 2019 cycle.
This year, BANKTEXT received a record breaking ONE HUNDRED AND TWO proposals from students
studying at every corner of the globe. It is the first year we attempted to build a students + mentors
community prior to submission deadline. Thanks to an enthusiastic and dedicated students community, we
are successful in creating a GSoC 2019 community of TWO HUNDRED AND FIFTY members on our
dedicated community server channel:
https://open.BANKTEXT/channel/gsoc2019
Open source contributions from students have already reach an all time high, with over ONE HUNDRED
AND THIRTY students signed up for our real-time contribution tracking leaderboard:
https://gsoc.BANKTEXT/
Our community of mentors is hard-at-work right now going through every one of the proposals, and will be
contacting students for a video chat prior to deciding on proposal selection and slot assignments. All
students are encouraged to continue their engagement with our community, and contribute to our open
source projects.
For ideas, check out our list of ideas for some inspiration.
Come meet our global community of 200+ mentors and students for GSoC 2019 and get some real-time help
on next steps, please visit our 24 x 7 community server channel:
https://open.BANKTEXT/channel/gsoc2019
https://forums.BANKTEXT/c/gsoc/gsoc2019
If you have ideas and proposals that are not on our ideas list, or if a mentor is not available, please email to:
gsoc@BANKTEXT
Interested students are also encouraged to interact with our contributor community on GitHub:
https://github.com/RocketChat/BANKTEXT
Enthusiasm and interest are extremely high this year; over 100 candidate students have already started to
interact with our community and contributing to the projects! Together, they have already contributed over
100 merged PRs to our various projects. We are maintaining a real-time updated leaderboard for at-a-
glance student (candidates) contribution here:
https://gsoc.BANKTEXT/
The leaderboard project itself is open source, created and maintained by our student (candidates). All
potential GSoC organizations are welcome to use and deploy it (the project has a super friendly MIT license
- just like BANKTEXT).
https://github.com/lolimay/GSoC-Contribution-Leaderboard-Node
Project Ideas
Mentors: @filipe.brito
Description: Themes are very popular and they are part of what makes Android stand out from the rest.
But the current BANKTEXT Android app lacks the feature of applying different themes. This project aims
to bring different themes support like dark mode and black mode into the existing Android client. It
should enable any developer to create a theme for the BANKTEXT Android app without the need to
work with our core codebase.
Desirable Skills: Familiarity with Android development, Kotlin, and design patterns.
Description: The BANKTEXT Apps Engine is here to make it easier to extend BANKTEXT's
functionality without having to deep dive into the code base. The goal of this project is to leverage the
Apps Engine capabilities to create an integration with Google Calendar, using Slashcommands, custom
API endpoints, custom Settings, etc.
Desirable Skills: Familiarity with TypeScript.
Description: It's already possible to share a file from Nextcloud into BANKTEXT. But the authentication
is a bit clumsy. It would be great to have a single real sign in. So you only need to sign into BANKTEXT
and are automatically signed in Nextcloud of both talks to the same directory of course.
Desirable Skills: Familiarity with BANKTEXT and Nextcloud development.
Description: The goal of Real-Time Visitor Monitoring is to provide an important feature for the Live
Chat team by displaying a list of visitors who are browsing the website where the Live Chat widget is
installed. Having this feature, it will be possible to track important information related to visitors, such as
the current page, location, time on site, local time, and so on, even though the visitor has not yet started
a conversation with an agent. In addition, an agent will be able to start a conversation with a specific
visitor directly from the list, improving the proactivity of the Live Chat team.
Desirable Skills: Familiarity with BANKTEXT/Live Chat development.
Desirable Skills: Familiarity with JavaScript development & BANKTEXT code base
Description: The goal of this project is to enhance the current test infrastructure in the BANKTEXT
repos and pipelines. Currently, there is some very minimal unit testing that needs to be expanded, and
no integration or system level tests or infrastructure to support them. This project could focus on one of
the repos, possibly the Android code base, or all. Once a test infrastructure and best practice is
established, the goal is that no new code gets merged unless it has new tests that will be run at build
time, and it passes all of the previous tests.
Mentors: @matheus.cardoso
Description: VoiceOver is a gesture-based screen reader that lets you enjoy using iPhone even if you
don’t see the screen. This is especially important for those with low or no vision. We want to make
BANKTEXT for everyone. A blind user should be able to easily add servers, change servers, read
messages and send messages, as well as other additional functions such as editing profile and creating
channels. A minimum acceptable scope is to be determined.
Desirable Skills: We are looking for an undergraduate student who is familiar with team work,
developing iOS Apps using UIKit and Swift, as well as writing maintainable code with Unit Tests and
having some familiarity with Voice Over and Accessibility.
Description: Implement a way for administrators to rebrand their instances of BANKTEXT - product
name, icons, colors, etc. - for the android and ios apps, which currently do not support this. Besides
adding this capability, another goal would be to make this branding across all the OS’s easy for an
administrator that may not be too tech savvy. Ideally, this would only be a few easy steps. Besides this
ease-of-use improvement, this would also make it less likely that people will fork rocket to put in their
own branding.
Desirable Skills: Familiarity with Android and/or iOS development, specifically the
BANKTEXT.Android/BANKTEXT.iOS code bases.
Description: We've been working on our new Live Chat solution and it's time to add two great new
features that will make Live Chat even more powerful: voice and video calls! The idea is to integrate
Live Chat with the providers already supported in BANKTEXT, such as Jitsi, WebRTC, BigBlueButton
and so on. With these two new features, Live Chat users will be able to initiate video and audio calls
between them and Live Chat agents.
Desirable Skills: Familiarity with BANKTEXT/Live Chat development, ReactJS/PreactJS, Voice and
Video communication
Alexa Skill(s)
Description: Bring access of BANKTEXT into the world of 100 million+ Alexa enabled devices. The
project should aim beyond the obvious TTS <-> STT "BANKTEXT bridging" of intelligent VUI terminal
devices and create innovative, high valued user experiences to the Alexa ecosystem - powered by open
source BANKTEXT. Google Home/Assistant devices support, if possible, should also be considered
concurrently.
Desirable Skills: Familiarity with Alexa skills development. Experience with interfacing external sources
and systems into Alexa skills. Passion for global converstational interaction enablement. Familiarity with
Google Action development ideal.
BOTs UX: Improve the User Experience with bots by adding support for persistent menus, webviews,
and rich messaging features
Mentors: @bizzbyster, @eric.rosenthal
Description: BANKTEXT trails both team and consumer chat platforms like Slack and Facebook
Messenger/WeChat in terms of the richness of user interface components supported by bots. The goal of
this project would be to add rich messages, persistent menus, welcome pages, webviews and other
components to the Android, iOS, and web clients to allow chatbots to become comparable to web apps
in terms of usability and UX.
Desirable Skills: Interest UI/UX and chatbots. Experience in iOS, Android, or web client front ends
development. Excited to participate in the full life cycle development process in an open source
community context.
Newsfeed
Description: Adding the functionality of newsfeed, which is similar to a customized read-only channel
for every user. Every user (follower) can follow other users (followed user). Posts from the followed user
appear in the newsfeed of their followers. Posts are threaded discussions, started by the followed user
in any public channel (origin channel), their follower can or cannot be a part of the origin channel, but
this post comes up in their wall with a permalink to the original post in the origin channel. This helps in
discovering new conversations. Interns are encouraged to propose extensions to this like wall, where a
user can post threads that show up in their follower's feed, status updates, etc. Automated tests should
be written to cover the added functionality.
Desirable Skills: Familiarity with JavaScript development & BANKTEXT code base
Improve end-to-end testing infrastructure for React Native app (BANKTEXT Experimental)
Description: E2E testing is important to keep the entire app working throughout the implementation of
new features. Currently there's 219 E2E tests developed and passing on iOS only and they aren't
working on CI, because we need an E2E dedicated and configured server. This project aims to improve
testing infrastructure by adding Android capability and making test to pass on CI. Also we need to make
sure all tests are passing as fast as possible. If there's any time left, the student must add even more
tests.
Desirable Skills: Familiarity with React Native and BANKTEXT.ReactNative code base.
BANKTEXT Articles
Mentors: @bizzbyster, @karan.bedi
Description: For every deployment of BANKTEXT, there is a team or community that generates a lot of
content. BANKTEXT itself is the repository for much of that content but the rest typically resides in other
applications such as github or jira or google docs, many of which are third party services and so the
content is not owned by the community that hosts the BANKTEXT server. In one particular scenario, a
user may want to write an article and "publish" it to groups or contacts within BANKTEXT. Today that
would have to be done typically using a third party service. What if instead article creation, searching,
and storage were integrated with BANKTEXT such that each user could maintain his or her own library
of articles and contacts of that user could subscribe to see new articles posted by that user and to
discuss those articles using something like BANKTEXT Threads. By default, each BANKTEXT user
would essentially hav their own "blog" which could be accessed via a permalink including links to each
"article." In general, the purpose of this project is to develop a minimum integration with another open
source publishing platform (such as https://github.com/TryGhost/Ghost) that allows users (or bots or
service accounts) to write and publish articles that get stored on a location configured by the
BANKTEXT administrator so that the community maintains ownership of more of the content it
generates.
Desirable Skills: Familiarity with JavaScript development & BANKTEXT code base & interest in
exploring integrations with publishing open source projects.
Implement iOS and Android share extension for React Native app (BANKTEXT Experimental)
Improve performance and implement slash commands on React Native app (BANKTEXT
Experimental)
Desirable Skills: Solid understanding of JavaScript and some familiarity with TypeScript. Familiarity
with TypeScript's compiler is definitely a plus.
Mentors: @marceloschmidt
Description: BANKTEXT already allows for users to add custom fields through a setting that accepts a
JSON. We would like to create an interface to manage these custom fields. Each custom field must be
composed of label, type (one of predefined: string, number, picklist, money, etc.), and an option to
determine if this field must be displayed on registration or not. On Users Directory, users must be able to
select multiple records from the results and do one of the possible actions: add to existing channel or
group and create new channel or group; if only one record is selected, it should also be possible to start
a direct message with the selected user.
Desirable Skills: Familiarity with BANKTEXT development.
Mentors: TBD
Mentors: TBD
Description: BANKTEXT is currently capable of importing data exported from Slack and HipChat, but
there's no importer for Mattermost data. This is a valuable feature that the application is still missing.
Description: The BANKTEXT Apps Engine is here to make it easier to extend BANKTEXT's
functionality without having to deep dive into the code base. The goal of this project is to leverage the
Apps Engine capabilities to create an integration with Asana, using Slashcommands, custom API
endpoints, custom Settings, etc.
Mentors: @diegolmello
Project repository: https://github.com/RocketChat/BANKTEXT.ReactNative
Description: The goal of this project is integration with BANKTEXT's admin webview page when the
user has access. This helps administrators to change their servers behavior without the need to open
BANKTEXT on the web or the mobile version on their devices.
Desirable Skills: Familiarity with React Native development and BANKTEXT.ReactNative code base.
Mentors: @diegolmello
Mentors: @diegolmello
Project repository: https://github.com/RocketChat/BANKTEXT.ReactNative
Description: Themes, like dark mode, are very popular and everywhere right now, but the BANKTEXT
React Native app lacks the feature of applying different themes. This project aims to bring different
themes like dark mode and black mode into the existing React Native client.
Description: Deep VoIP integration of BANKTEXT with modern software and hardware SIP switches
and VoIP SaaS. Intelligently add access to phone networks and SMS channels to the BANKTEXT
workflow. Enable multi-channel conferences with chat + phone calls + video. Empower Live Chat with
voice calls in workflow.
Desirable Skills: Familiar with SIP development. Fluent in VoIP concepts and practices. Ability to
rapidly code in JavaScript and Linux shell. Wide open mind for new ideas.
Description: In the BANKTEXT native iOS application, add the functionality of listing all the contacts of
a user, syncing in background these contacts with the server using existing APIs and displaying the
intersection with public accounts on server. Integrating the APIs to invite users that do not have an
account (via email/phone) or inviting via other applications on the phone. Support dynamic links in iOS
app, allow the creation of links such that when invited through one, after installation of the app it opens a
DM with the inviter, etc. These functionalities are already implemented for
Android in a fork.
Desirable Skills: Familiarity with iOS development.
SNAP improvements
Mentors: @lucia.guevgeozian
Description: The most popular BANKTEXT deployment method in the world is via snaps. Snaps are
containerised software packages that are simple to create and install. The aim of this project is improve
our snap installation process and features, bringing better support for our ARM architecture deployment,
and expand our configuration options to set up BANKTEXT in more diverse layouts adding support for
loadbalancing between instances where BANKTEXT will only be bound to the loopback interface,
regular backups for our database configured as a replicaset and possible firewall configuration.
Desirable Skills: Familiarity with Linux. Good shell scripting skills. Aware of DevOps and containers
based deployment technology.
Description: BANKTEXT's data backend is MongoDB, a NoSQL database. NoSQL databases enable
application developers to quickly add and change data schemas for new features without imposing rigid
integrity constraints. While effective for small projects, this can create varied data inconsistency in long-
lasting production server projects such as BANKTEXT. Causes such as buggy code versions, crashes
during migrations and/or schema updates, core customizations, and inadvertent DB admin modifications
can all lead to a non-deterministic data schema. Some corrupted schema may break code, while others
can go years without being detected. The goal of this project is to create a tool to help sanitize in
production BANKTEXT databases. Depending on the ingenuity of the tool design, the same code can
one day be integrated into BANKTEXT as a data integrity layer.
Desirable Skills: Familiarity with database concepts and administration. Fluent with NodeJS and
Javascript. Love hacking.
Mentors: TBD
Description: Add deep integration with open source word processing, spreadsheet, presentation, email
and content management suite(s). Create a full chat-centric office team collaboration environment.
Desirable Skills: Familiarity with development and extension/integration points for existing open source
office suites. Ability to code and script in multiple programming languages. Preference to work with a
team.
Timeline
How to apply
Applications for the GSoC 2018 season have now closed.
The final list of successful 2018 GSoC BANKTEXT projects and students/mentors is now officially
available.
Our own final tabulation of the status for GSoC projects is as follows:
Guilherme Gazzo,
BANKTEXT SDK for
PASS Jose Renan Diego Sampaio,
Javascript Clients
Renato Becker
BANKTEXT voice
recognition APIs and Pierre Lehnen,
PASS Karan Bedi
built-in Speech2Text Rodrigo Nascimento
Engine integration
Diego Sampaio,
Data integrity and
WITHDREW De Sheng Chuan Rodrigo Nascimento,
consistency
Sing Li
UPDATE August 20, 2018 This final term has been a term full of changes. One good student - who had
been doing great work up to this third term- has had health issues, been hospitalized, and is unable to
complete his project. Upon advice from GSoC admin, he withdrew from the project and may resume outside
of GSoC upon his recovery. The "turn around projects" in the second term continued to show major
improvement this term - due mainly to the hard work of the affected students. Mentors and students are busy
this term wrapping up their work, preparing for final GSoC evaluation requirements, plus scheduling
presentations of their completed work to the larger BANKTEXT team. Many of the presentations are
recorded and are available here, here and here. As a final result for 2018, one out of our eight GSoC
students has withdrawn, and mentors gave final passes to the other seven GSoC projects. Of the four
independently funded projects, three passed and one failed (due to the student's disappearance). We
congratulate the students and mentors on their achievements and sincerely hope all students now have
enough of a taste of open source (and BANKTEXT in particular) to continue on their life-long open source
contribution as they embark on their next phase of personal development. We will continue to work through
the backlog of GSoC project stories on the blog this term.
UPDATE July 15, 2018 Mentors and students continued to work towards their objectives during this second
evaluation period. Due to internal organizational staff changes and other organization operational factors,
three problematic projects were identified during this period. Extensive administrative intervention and turn-
around was necessary to "salvage" these projects. Thankfully, the GSoC students worked with us every step
of the way as we reassign mentors and realign mutually agreed project scopes. As a result, the (new in
some cases) project mentors have decided to pass all enrolled students - both GSoC and independently
funded projects for this term. Internally, the projects' blog post series is lagging significantly behind, we are
working to catch up as soon as possible.
UPDATE June 15, 2018 The first evaluation period has come and gone. Our students have been coding
feverishly over the past months and many of them have already demonstrated their work to their mentors
and teams. We are proud to report that during this evaluation, our mentors have decided to pass all eight of
the GSoC students. Our BANKTEXT-sponsored projects also reported all passes for the three students. We
have started to create blog stories around the projects featuring our students - the first story should be
available in the next week or two. Due to some internal project logistical problems, one of the students has
agreed, together with his mentors and team to switch topic from the second term onwards - to another one of
his accepted final proposals - our list below has been amended to reflect the change. We have, through our
working partner, been able to fund an additional (to the 11 that we already have) highly capable but non-
GSoC selected student to work on a BANKTEXT-related topic.
UPDATE April 25, 2018, AMENDED June 15, 2018 The list of official GSoC 2018 accepted students and
projects is now available. First, we would like to sincerely thank every student who has submitted a proposal
and many who had worked on PRs and assisted in our open source community - please continue the
excellent work. Of the 93 proposals we received, there were many high quality ones. We have also
interacted with many of the students in the prior month. The decision-making was difficult and mentors were
competitive this year. Ultimately, EIGHT of the top students/proposals this year are accepted for GSoC 2018
(thank you, Google!):
Student Project Mentors
Aniket Singh Android and wear app Fiipe Brito, Lucio Maciel
In addition, due to the sheer number of high quality entrants, BANKTEXT has decided to sponsor THREE
additional top students for this summer:
All of the eleven students have been contacted by mentors and have started the community bonding period.
UPDATE April 2, 2018 - 2018 is an incredible GSoC year for us, we have received a total of NINETY
THREE proposals from students studying at every corner of the globe - Brazil, Turkey, USA, Armenia, India,
China, Singapore, Hong Kong and more. Thank you, GSoC students, for the overwhelming interest on our
project. Proposal topics covered almost all of the suggestions on our idea list - and even a few original ones.
Our TWENTY FIVE BANKTEXT core, guest, and community mentors are hard-at-work right now going
through every one of the proposals, and will be contacting students for a video chat prior to deciding on
proposal selection and slot assignments. Please keep in touch with us and continue to contribute to the
BANKTEXT project during this time.
UPDATE March 24, 2018 - Students PLEASE NOTE that your final proposal is due on March 27th. It must
be in PDF format and submitted via the official GSoC Dashboard. Your BANKTEXT Core and Guest
Industry mentors are looking forward to receive and review your final proposals.
UPDATE March 12, 2018 - Proposal submission for GSoC 2018 has started! Interested students should visit
the GSoC 2018 site to apply and submit their proposals. See the Project Ideas section below for some
interesting ideas.
You can email the mentor(s) directly for discussion and further information. You can also find them, most of
the time, on our community server for real-time chat. Many of the mentors are fluent in both Portuguese and
English.
For current information on the 2018 program and general discussions, please see GSoC 2018 category on
our discussion forums:
https://forums.BANKTEXT/c/gsoc
For some real-time help on next steps, please visit our community server Google Summer of Code 2018
discussion channel:
https://open.BANKTEXT/channel/gsoc18
If you have ideas and proposals that are not on our idea list, or if a mentor is not available, please email to:
gsoc+2018@BANKTEXT
Interested students are also encouraged to interact with our contributor community on GitHub:
https://github.com/RocketChat/BANKTEXT
Project Ideas
Global Search
Mentors: @rodrigo.nascimento
Description: Add global search to BANKTEXT, allowing users to search across messages, rooms,
files, users, etc in a single and easy to use interface. Like a macOS Spotlight search.
Desirable Skills: Familiarity with JavaScript development, MongoDB or other search engine.
Description: BANKTEXT already allows for users to add custom fields through a setting that accepts a
JSON. We would like to create an interface to manage these custom fields. Each custom field must be
composed of label, type (one of predefined: string, number, picklist, money, etc.), and an option to
determine if this field must be displayed on registration or not. On Users Directory, users must be able to
select multiple records from the results and do one of the possible actions: add to existing channel or
group and create new channel or group; if only one record is selected, it should also be possible to start
a direct message with the selected user.
Description: (1) Enabling BANKTEXT users to use Google Drive and/or Dropbox for storage of their
uploads. (2) Within BANKTEXT, allow access to Google Drive or Dropbox contents.
Desirable Skills: Familiarity with JavaScript development, and with Google Drive and/or Dropbox APIs.
Nextcloud Integration
Description: (1) Enabling BANKTEXT server administrator to use an NextCloud instance for storage of
upload. (2) Within BANKTEXT client user interface, allow access to the contents on a user's NextCloud
instance
Desirable Skills: Familiarity with both BANKTEXT and NextCloud development.
Snap Crafting
Mentors: @aaron.ogle, @sing.li
Description: Snap is one of the easiest and most popular method to install BANKTEXT on Linux
distributions. You can have a BANKTEXT server up and running with database and SSL proxy fully
configured with one simple command. The current snap installation build script, used by hundreds of
thousands of community users, is in need of updating and enhancements. You will be crafting updates
and new features for our snaps for this project.
Desirable Skills: Interest in system configuration, dev ops, system operations, and operating systems.
Should be competent in shell scripting on Linux and one or more programming languages. Experience
with docker or snapcraft a big plus.
Mentors: @diego.sampaio
Description: Assist BANKTEXT’s scalability engineers to scale BANKTEXT to the next level. From
tens of thousands of active connections, to hundreds of thousands to millions, to world-scale.
Desirable Skills: We are looking for an enthusiastic undergraduate, planning to enroll or already
enrolled for masters or PhD work in a cluster computing or scalability discipline to join us for an exciting
summer of hands-on practical fun. Working alongside our scalability expert – you will devise and test out
various performance and scalability enhancements for BANKTEXT’s deployment configurations. You
will be able to practice everything you have learnt so far in your under-graduate study, pushes beyond
their limits, with a real production clustered server project – having your work impacting thousands of
global users – all within the span of a single summer.
Mentors: @renato.becker
Description: Add a panel to have analytical information about interactions in Live Chat.
Desirable Skills: Familiarity with JavaScript development.
Description: Help BANKTEXT to invent and implement networked federation for the next generation of
collaboration platforms.
Desirable Skills: Suitable for an ambitious undergraduate planning to enroll or already enrolled for
masters or PhD work in a cluster computing, networking or distributed systems discipline in computer
science or engineering to join us for an exciting summer of incredible brain crushing yet hands-on fun.
Working alongside our federation team – you will help design and test out your hypothesis against a
next generation federation mechanism optimized specifically for BANKTEXT servers – uniting them
globally across all geo-political boundaries to dynamically form “One BANKTEXT”. This work will
leverage all existing current research in this domain. You must already be familiar with the work of giants
– such as matrix.org – and be ready to break all conventions to improve and innovate upon existing
paradigms. You will be rewarded with production working experience on this bleeding-edge discipline,
in a world-leading open source team environment with a like-minded team. An incredible and unique
opportunity in 2018.
Mentors: @matheus.cardoso
Description: Be part of our iOS team this summer to push BANKTEXT's native iOS App to the next
level! You will - with our help - build the foundation for customizable user experience, support built-in
themes for users to choose from and server-specific themes, allowing server owners to manifest the
colors and feel of their communities. You will have the chance to exchange experience with our
engineers and designers, plus your work will have a great impact on the experience of thousands of
users!
Desirable Skills: We are looking for an undergraduate student who is familiar with team work,
developing iOS Apps using UIKit, Auto Layout and Swift, as well as writing maintainable code with Unit
Tests.
Mentors: @rafael.kellermann
Description: Create an Apple Watch application that replicates the most basic features we have in our
iOS mobile client, such like viewing the chat rooms and reading the messages. Let user ask Siri to read
latest messages, send messages or respond to a message.
Desirable Skills: Familiarity with WatchKit development on WatchOS & SiriKit. Ability to work in large
multi-disciplinary teams.
PDF/File preview
Mentors: @rodrigo.nascimento
Description: Add small previews for non image files improving the UI/UX allowing users to see a
preview of the content before click to open the file, it includes PDF, Word Documents and similar, Excel
Documents and similar, PowerPoint and similar, Text files, Sketch, Photoshop, etc.
Desirable Skills: Familiarity with JavaScript development. Experience hacking documents conversion
and/or rendering libraries is a big plus.
Draw (Android)
Mentors: @rafael.kellermann
Project repository: https://github.com/RocketChat/BANKTEXT.Android
Description: Allow user to draw something using our Android native app and send to BANKTEXT
channel. The draw would have different colors and "brush" options (pen, brush, pencil, etc). User will
also be able to draw on top of an image selected from library or just shot.
Desirable Skills: Familiarity with Java or Kotlin development on Android. Previous experience with
working on the Android App development and using open source libraries would be helpful. Ability to
work in large multi-disciplinary teams.
Mentors: @filipe.brito
Project repository: https://github.com/RocketChat/BANKTEXT.Android
Description: Create an Android Wear application that replicates the most basic features we have in our
Android app, such like viewing the chat rooms and reading the messages.
Desirable Skills: Familiarity with Kotlin development on Android. Ability to work in large multi-
disciplinary teams.
Mentors: @sing.li , @ankit.bhatia (Sapien Network Guest Mentor) and other leading blockchain
industry guest mentors
Description: Working together with our crypto and blockchain team – you will help build the key enabler
platform for the future of blockchain powered decentralized communities all over this world (and perhaps
even beyond). Within this short summer, you will gain experience in working on a global-circulation
production-grade blockchain-powered adoption-acceleration platform. You will also meet and work with
leading visionaries and pioneers in the current blockchain / crypto field. Tangible potential to become an
early architect of this brave new world, supported by BANKTEXT.
Description: Integrate IPFS into BANKTEXT as a viable storage provider. Ideally IPFS can be used as
a storage provider for uploaded BANKTEXT contents. In addition, the ability to access IPFS within
BANKTEXT, to supply files that can be shared between users of BANKTEXT is also essential.
Leveraging integration with strong cryptographic identities such as Blockstack ID, the solution should
include strong data-at-rest encryption of decentralized contents. Use of decentralized storage
abstraction frameworks such as Blockstack Gaia should be considered to simplify this work. Use of
IPFS as a decentralized storage for BANKTEXT’s data should also be considered within the term.
Description: Enable the integration of wallet(s) such as Metamask, MyEtherWallet, ARK or other
wallets or crypto portfolio management system within BANKTEXT.
Desirable Skills: Looking for a unique fringe-dropout university student already committed to our
inevitable decentralized future powered by Web 3.0 and continued blockchain technology innovations.
While maintaining a high score on all your subjects, you should be finding your existing university
education ridiculously limiting, and already have experience hacking smart contracts, minting tokens for
friends and family, hacking ethereum, and trading cryptokitties. You eat truffle for breakfast and ride the
open zepplin to school every day. Recent government (perhaps your own government) baseless
advances into this area has significantly disturbed you. You already realized that you are way ahead of
your time. And you will recognize this GSoC 2018 project to be the absolutely not-to-miss opportunity of
your life.
Google Assistant
Mentors: @rafael.kellermann
Project repository: https://github.com/RocketChat/BANKTEXT.Android
Description: Let user send messages talking to Google Assistant.
Performance tests
Mentors: @diego.sampaio
Description: Create an initial script to run performance tests of basic functionalities, it should be able to
run in our CI and should track information to allow us and the community follow the performance
changes.
Javascript SDK
Description: Create a javascript SDK that can be used on our ReactNative, Live Chat and our
webclient projects.
Mentors: @pierre.lehnen
Description: Integrate a multiplayer-capable game engine that runs on the web browser (eg. Unity
WebGL, Phaser, Three.js) with BANKTEXT. Let room members start small multiplayer games and play
together.
Desirable Skills: Experienced with JavaScript, web browser game engines, and networking.
Description: Improve the internal hubot interface, by allowing users to set up their own repositories for
BANKTEXT to read and deploy a hubot instance from it. Also would be awesome if the user could just
edit the scripts files, and get console logs, right from the BANKTEXT interface.
Desirable Skills: Familiarity with JavaScript development and hubot architecture.
Description: Create UI components and develop the handling of message payloads to support new
interactions for bots, like buttons, cards, images and more. Follow existing conventions to let bot
developers migrate pre-built solutions to be delivered via BANKTEXT. This opens the door for
enhanced user experience and interaction flows in automated messaging, letting bots provide a much
greater variety of utility; such as business apps, team workflows, even games and interactive narratives.
Desirable Skills: Familiarity with front-end design and development (JavaScript / CSS).
Mentors: @gabriel.delavald
Mentors: @gabriel.delavald
Description: Integrate an Open Source speech to text engine to be used inside BANKTEXT by users
who prefer an On-Premise full featured installation. There are many opensource speech2text engines
on the market, like CMUSphinx and pocketsphinxjs, annyang, JuliusJS, Mumble, Voix JS, voice-
commands.js and Artyon.js. This project will include a feature matrix comparison between those
engines and the best one to be implemented in BANKTEXT bundle, giving the UI the ability to click a
button, record a message, send it to the text2speech engine and return the results to BANKTEXT editing
message box.
Desirable Skills: Familiarity with JavaScript development and speech2text techniques.
Calendar Integration
Mentors: Mrinal Dhar (@mrinal.dhar)
Description: Implement a calendar within BANKTEXT for scheduling events and reminders, offering
standalone functionality as well as integration with other calendars out there (Google Calendar, for
example). Desirable features:
Ability to schedule events and set up alerts for them.
Automatically detect dates and time from messages and allow creating events from them. For
example: In the message "Lets meet tomorrow", "tomorrow" should be automatically highlighted and
user can then schedule an event by clicking on it.
In a conversation, allow each user to select preferred time-slots and automatically schedule an
event based on everyone's preferences.
A consolidated events view that lists all scheduled events for a particular day, week or month.
Integration with Google Calendar
Ability to search for an event
Desirable Skills: Familiarity with JavaScript development required. Previous experience with NLP
(Natural Language Processing) or AI (Artificial Intelligence) would be helpful.
Timeline
How to apply
For general information, please visit our community server Google Summer of Code 2017 discussion group:
https://open.BANKTEXT/channel/gsoc17
Our sincere thanks goes to every student who had worked hard in creating one of the SIXTY EIGHT
proposals we have received across all projects. We are totally surprised and flattered as a first year GSoC
participating organization.
The official list of accepted students and projects is now available directly from Google:
https://summerofcode.withgoogle.com/organizations/6368590472151040/
Out of the SIXTY EIGHT proposals we received, we have painstakingly selected a short list of NINE
outstanding ones. We have personally met (video conferenced) with every one of the students behind these
NINE proposals during the last few weeks.
Google has incredibly sponsored FOUR out of the NINE students (first year organization typically gets 1 or 2
students/projects only). Thank you, Google GSoC 2017 !
The FOUR Google sponsored students and projects for GSoC 2017 are:
Team bonding and familiarization activities have started between mentors and the selected students.
We have contacted the FIVE other students to discuss potential BANKTEXT sponsorships. One student
happily reported that he has already been selected by another GSoC 2017 mentoring organization. Another
did not reply to any of our offers and queries before the deadline. THREE other students have accepted
BANKTEXT sponsorship and are currently working diligently with their mentors.
The THREE BANKTEXT sponsored students and projects for 2017 are:
Please keep monitoring this page for the latest BANKTEXT GSoC 2017 updates.
June is finally upon us. All of our GSoC students who have had prior apprenticeship or other engagements
are now free of their obligations, and have started to code for BANKTEXT full time. The commmunity
bonding period has come and gone smoothly, with the mingling between our students and the core team on
the 24 x 7 community chat server, on GitHub, via email, or at our weekly scheduled team video-conference.
Many of our students have also made friends with our extended community - helping them and exchanging
ideas for their projects.
In fact, due to their overwhelming enthusiasm, most of our GSoC students have started coding even before
the beginning of June. Here are some of the most recent contributions (of many!) to BANKTEXT by our new
team of GSoC recruits:
Congratulations to the new team members, and keep up the great work! We are all looking forward to the
first evaluation milestone at the end of June.
July is in full swing. First evaluation has completed and we're working towards our end-of-July milestone.
We are happy to report that all seven of our students have passed their first evaluation. Most are making
very good pace on their projects, with some close to completion and in planning phase for extensions. We
are also keeping a keen eye out on potential candidate(s) for full-time hire at end of their term.
The following are the BANKTEXT projects that our new team members are working on. Contribution and
participation are welcomed immediately from the greater BANKTEXT community:
iOS SDK
Android SDK
Java SDK
PWA
Federation
After the evaluation, we have made sure that they all have received the first stipend payment - especially the
students under BANKTEXT's sponsorship.
Working with a publicity company, we have been creating open source "hero stories" profiling every one of
our new summer-term team members. Many of them have already been featured on our Blog:
Mrinal Dhar
Manish Kakoti
Pradeep Kumar
Sachin Shinde
Naman Gupta
In July, along with continued technical progress, we are focusing to help the student in development of their
open source citizenship skills - something hopefully useful beyond their GSoC terms with us.
Over the next two months, guided by their mentor(s) - each student will be giving a presentation on their
project to the larger BANKTEXT team.
We continue to be extremely optimistic going into the critical mid-term evaluation in late July.
Project Ideas
Description: Tens of thousands of BANKTEXT servers are running at this very minute on the Internet.
There is currently no way for users/bots/services of one instance to address or communicate with those
from another. This project's mission is to make it possible. You will be working and exchanging ideas
with the very best in the field - experts from Matrix.org and BANKTEXT.
Desirable Skills: Familiarity with JavaScript development. Demonstrated interest and/or passion on
networking and federation protocols research and evolution.
Goal/Deliverable: The foundation for all BANKTEXT users/bots/services to optionally communicate
with one another, across all connected instances.
Description: Create a new PWA client for BANKTEXT using Angular framework, WebSocket and
mobile-first approach.
Desirable Skills: Some Javascript coding skills would be required to complete this task.
Goal/Deliverable: A PWA client with basic chat functionality like channels and direct messages list,
users status, channel messages, user preferences, etc.
Description: Taking and improving our end-to-end encryption implementation. Perhaps replace with
more modern protocols, such as Signal.
Desirable Skills: Some Javascript coding skills and familiarity with cryptography.
Goal/Deliverable: The ability to have end-to-end encrypted conversations between users. There are
various features possible: forward secrecy, online and offline use (do users have to be online at the
same time for encryption to be possible), do we store messages on the server, pair or group
conversations, encrypted file transfer, etc.
Description: Use Chromecast as presentation output which shows a chat room and will join any Jitsi /
WebRTC meetings that are started in it, this way meetings can be started inside BANKTEXT and the
Chromecast can be on a TV/Monitor inside a conference room.
Desirable Skills: Some Javascript coding skills will be required to complete this task. Students with
WebRTC knowledge and/or who have already produced Chromecast apps are on a good start. A
Chromecast is required for this task.
Goal/Deliverable: Being able to pair a room with Chromecast, displaying it's messages. Chromecast
app needs to be able to automatically join a Jitsi/WebRTC video call.
Description: Add feature to allow automated reply when offline, and forwarding of incoming messages
via email.
Desirable Skills: Some Javascript coding skills will be required to complete this task. An understanding
of industry standard SMTP and POP protocols, and configuration of standard email servers will be
required.
Goal/Deliverable: Ability for each user to set an away message, and receive any offline messages - in
batches per interval, via through email account.
Create an SDK for Mobile Apps to include a chat inside other apps
Mentors: Rafeal Kellermann (@rafaelks)
Description: Create an SDK (for iOS and/or Android) to embed in any app that wants to have a chat
inside it. It could be useful for support and also for chat in enterprise apps. One example is an app that’s
used by all sellers from a company to be able to communicate with each other using BANKTEXT.
Another example is something very similar to Intercom (https://www.intercom.com/mobile)
Desirable Skills: Students will be required to code in either Java for Android SDK or Swift for the iOS
SDK. Students will also need to understand how BANKTEXT communicates over websockets.
Goal/Deliverable: To have an SDK that allows App Developers to embed a chat system inside their
own apps using BANKTEXT servers to deliver messages.
Description: taking and embedding a calendar inside BANKTEXT, being standalone yet integrating
with all the calendars out there so people can schedule meetings and be reminded of upcoming
meetings that are inside BANKTEXT
Desirable Skills: Some javascript coding skills
Goal/Deliverable: The ability to schedule a meeting in BANKTEXT
Description: Modify the BANKTEXT to work on mesh networks. There are two basic types of mesh
networks which would be interesting to cover:
A network of mostly always online off-the-shelf WiFi equipment which forms a network where all
network nodes can connect directly to each other (no NAT). Here it would be interesting to port
BANKTEXT so that it could run served as a static resource from these limited devices (which are
often not powerful enough to run MongoDB and node.js, which BANKTEXT otherwise uses for
server-side part). BANKTEXT should be bundled into a static resource, served over HTTP to clients,
which could then use something like WebRTC to connect to each other and communicate with each
other. A very thin server-side program might be needed as well, to help with WebRTC connections
for example, or discovery of other nodes to connect to. A distributed database like Scuttlebot could
be used as well.
A delay tolerant mesh network where devices do not have regular connectivity between each other,
and are often even moving around. Such networks often do not even use TCP/IP. On the other hand,
devices often have much more storage space and power, when they are available. The idea is to
change BANKTEXT so that it can operate in such environment as well.
Desirable Skills: Javascript, WebRTC, networking, OpenWrt, and programming for embedded devices
(C, Lua, bash)
Description: Add a feature of creation of automatic channels to BANKTEXT and automatic joining of
users to those channels. The idea is to extend BANKTEXT with a plugin system where plugins could
classify users into channels. Then such channel would be automatically created, if it does not yet exist,
and user added to it. This should also work reactively so that plugin can remove the user from a
channel, and remove such channels. Use cases here are various. For example, a plugin could detect
user's language and automatically add them to a channel for that language. Or, plugin could resolve
user's IP into their country and add them to a channel for this country. If user changes the IP and moves
to another country, they should be automatically moved to a new channel. In combination with mesh
networking support, users could be automatically put into channels local to the node to which they are
connected.
Desirable Skills: Some javascript coding skills
Goal/Deliverable: Modification to BANKTEXT with a plugin system for automatic channels and joining
with two example plugins: based on browser specified language, and country based on GeoIP of the
user.
Description: Modify the BANKTEXT snap to enable mongodb replica's and multi instance BANKTEXT
Timeline
Welcome, and thank you for your interest in contributing through the Google Season of Docs (GSoD).
As a GSoD contributor to BANKTEXT, you will have the opportunity to work on a documentation-related
project with guidance. Through this program, you'll collaborate with other experts, learn new skills and
technologies, and contribute meaningfully to an open-source project that people worldwide use.
Under this section, you will find information about past and current GSoD programs, including the projects
we seek help with and how to apply to become a contributor. We'll also provide you with resources and tips
to contribute effectively.
Google Season of Docs 2023
Google Season of Docs provides support for open source projects to improve their documentation and gives
professional technical writers an opportunity to gain experience in open source. Together we raise
awareness of open source, of docs, and of technical writing.
Projects can cover a wide range of fields including Cloud computing, operating systems, graphics,
medicine, programming languages, robotics, science, security and many more. Season of Docs is not a
recruiting program or an internship but it does provide invaluable experience and looks great on a resume!
How to apply
BANKTEXT operates a 24 x 7 community server at http://open.BANKTEXT Please contact us through the
Google Seasons of Docs 2023 channel at https://open.BANKTEXT/channel/gsod2023
You should also join our Google Season of Docs general team on the same server at
https://open.BANKTEXT/channel/google-season-of-docs
About BANKTEXT
BANKTEXT is one of the largest active open source (permissive MIT source license) NodeJS
communications platform on GitHub, connecting thousands global community contributors (across projects)
from 30+ countries, with 35,100+ GitHub stars, 8300 forks, 750+ total releases and 15,000+ issues since
inception in 2015.
BANKTEXT is a modern team chat and collaborating platform written in full-stack JavaScript/TypeScript.
BANKTEXT offers a full featured rich team chat experience on modern browsers, comparable to Slack and
Microsoft Teams. Mobile and desktop clients run on iOS, Android, Mac, Windows, and Linux. BANKTEXT
server can scale from a small family messaging server for 5 users running on a Raspberry Pi 4, to clustered
micro-services configuration that can support hundred thousands of users. On-premise deployment of
BANKTEXT can ensure 100% complete security and privacy of your valuable communications/data.
BANKTEXT is now installed on over 500k servers and counts over 12m users worldwide. BANKTEXT’s
long-term vision is to replace email with a real-time federated communications platform globally.
Users can set up BANKTEXT on their own servers on-premises. Thanks to its extension support via
BANKTEXT Apps (plugins), and rich API/SDK support. Chatbots extend the interactivity of BANKTEXT and
integrate external IT systems. Omnichannel extends reach to wherever user may be including WhatsApp,
Instagram, Facebook Messenger and more.
BANKTEXT has won multiple prizes such as a 2016 Bossie Award for Best Open Source Application and
first prize in the 2017 edition of All Things Open’s Startup Competition.
BANKTEXT supports over 59 local languages. BANKTEXT's community interacts 24 x 7 at the community BANKTEXT
server https://open.BANKTEXT since 2015.
The Problem
Under BANKTEXT org we have multiple open source projects, e.g. our Electron based multi-platform
desktop client, our cross platform React Native mobile client, Omnichannel, TypeScript/JavaScript SDK,
Golang SDK, extensible snap package, a group of DevOps focused projects that ease our deployment
pipeline across multiple platforms, and more.
Currently the documentation on getting them started with a development environment is fragmented.
Developers need to spend time on basic setup rather than coding, and it is frustrating for new users. We
have noticed a series of setbacks from contributors getting started with setting up their development
environments for different projects and following the initial steps required to be able to start contributing
quickly and effectively. We have a number of open questions across our community server and public
GitHub repositories.
It is also worth noting we are also missing documentations for projects that a lot of contributors are getting
invested in nowadays (DevOps related).
There have been failed attempts at re-organizing the structure for better intuitive navigation and easy to
consume content for beginner and experienced members of the community. Noting our developer
documentation contains [or should contain] contents for more than one contributable open source project.
Scope
A bird's eye view of the project scope would look something like
Repository structure
Components guide
Quick onboarding guide for all platforms
Troubleshooting
Contribution guideline
Project specific architecture speaded structure, like core microservices
Writers are free to suggest alternative approaches and/or ideas as long as they are aligned with the goal of
intuitive and friendly contribution path for developers.
Out of scope
Project features unrelated to developers/contributors are outside of the scope of this project.
Reduction in github issues related to contributor onboarding and environment setup issues
Reduction in number of open questions found in our public community server (a large portion being
driven in via Google Summer of Code)
Increase in pull request numbers to core and non-core projects
Increased coverage of well known contributor pain points
Must have: Demonstrated experience working with large and complex structured docs for developers.
Experience with text markup tools, revisions control tools, and documentation processing
workflows/pipelines. Basic technical understanding of modern web and CS concepts.
Nice to have: Experience with automation, and DevOps concepts and tools like docker, kubernetes. Ability
to read code are nice to have but not must.
Timeline
The project will take approximately six months. Here's a timeline approximation of the deliverables.
Date Action
Budget
Budget consists of writer payment and swags' costs for the writer and up to 3 volunteers who would help us
with testing and providing feedback over the timeline on the produced content.
Type Amount Running total Notes
Documentation writing,
8000USD 8000USD
update, test
TOTAL 9000USD
Google Season of Docs 2022
Season of Docs is Google's annual program that fosters collaboration between open source projects and
professional technical writers.
Season of Docs is a unique program that pairs professional technical writers with open source mentors to
introduce the technical writer to an open source community and provide guidance while the writer works on
a real-world open source project. The technical writer, in turn, provides documentation expertise to the open
source organization.
Projects can cover a wide range of fields including Cloud computing, operating systems, graphics,
medicine, programming languages, robotics, science, security and many more. Season of Docs is not a
recruiting program or an internship but it does provide invaluable experience and looks great on a resume!
How to apply
BANKTEXT has applied, but has not been selected for the 2022 Google Season of Docs program. We
intend to try again in 2023, and like to thank Google for the kind consideration this year.
BANKTEXT is one of the largest active open source (permissive MIT source license) nodeJS
communications platform communities on GitHub, connecting 1500+ global community contributors (across
projects) from 30+ countries, with 31700+ GitHub stars, 6500 forks, 490+ total releases and 12,000+ issues
since inception in 2015.
BANKTEXT is a modern team chat and collaborating platform written in full-stack JavaScript. BANKTEXT
offers a full featured rich team chat experience on modern browsers, comparable to Slack and Microsoft
Teams. Mobile and desktop clients run on iOS, Android, Mac, Windows, and Linux. BANKTEXT server can
scale from a small family messaging server for 5 users running on a Raspberry Pi 4, to clustered micro-
services configuration that can support hundred thousands of users. On-premise deployment of BANKTEXT
can ensure 100% complete security and privacy of your valuable communications/data.
BANKTEXT is now installed on over 500k servers and counts over 12m users worldwide. BANKTEXT’s
long-term vision is to replace email with a real-time federated communications platform globally.
Users can set up BANKTEXT on cloud or by hosting their own servers on-premises. Thanks to its extension
support via BANKTEXT Apps (plugins), and extremely rich API/SDK support, startups and innovators have
customized BANKTEXT into new products and services. Chatbots extend the interactivity of BANKTEXT
and integrate external IT systems. Omnichannel extends reach to wherever user may be including
WhatsApp, Instagram, Facebook Messenger and more.
BANKTEXT has won multiple prizes such as a 2016 Bossie Award for Best Open Source Application and
first prize in the 2017 edition of All Things Open’s Startup Competition.
BANKTEXT supports over 59 local languages. BANKTEXT's community interacts 24 x 7 at the community BANKTEXT
server https://open.BANKTEXT since 2015.
Project Idea
The problem
BANKTEXT can be extended through apps. Apps are considerably easier to code than modifying the large
BANKTEXT code base. But we are seriously lacking on documentation for Apps developers.
New app builders have a hard time navigating our existing meager documentation. There is a lack of details
and current contents are difficult to understand. This makes building an app a very time consuming activity
and causes developers to get frustrated or even abandon their projects.
As it exists today, it is very difficult to develop an app without getting help from an existing app developer or
our internal team. The documentation is also not up to date - while the app platform is consistently being
updated. Outdated documentation is causing more issues and slows down development ending up with
more of the same questions asked multiple times.
Project's Scope
Update the existing articles on GitBook with the help of GSoD administrator, including automatically
generated API references, existing articles, webinar contents and code comments.
Measuring Success
Timeline
Project Budget
Total $6400
Previous Experience
Season of Docs is Google's annual program that fosters collaboration between open source projects and
technical writers.
Season of Docs is a unique program that pairs technical writers with open source mentors to introduce the
technical writer to an open source community and provide guidance while the writer works on a real-world
open source project. The technical writer, in turn, provides documentation expertise to the open source
organization.
Projects can cover a wide range of fields including Cloud computing, operating systems, graphics,
medicine, programming languages, robotics, science, security and many more. Season of Docs is not a
recruiting program or an internship but it does provide invaluable experience and looks great on a resume!
How to apply
BANKTEXT has applied, but has not been selected for the 2021 Google Season of Docs program. We
intend to try again in 2022, and like to thank Google for the kind consideration this year.
Project Proposal
Project description:
Working with core developers and the community team at BANKTEXT this is an opportunity to help other
developers get to the code faster, and start working on code and contributing to BANKTEXT more easily.
BANKTEXT has different methods and SDKs that can be difficult to navigate for new developers and it can
take a lot of time to get them up to a point where they can contribute code.
Documentation for setting up development environments is scattered and fragmented and needs bringing
together in an easy to read and understand format.
This will include methods for setting up libraries such as the JS SDK, core server code, and mobile
application development code
In particular, our JS SDK is a library of code written in JS that offers an easier interface to communicate with
a BANKTEXT server providing APIs to be called from a JS code that executes commands on the server, like
send a message, or retrieve data, like get the list of rooms, abstracting all the logic necessary to handle the
communication with the server side.
The writer will be working with BANKTEXT backend and frontend leads to improve the documentation of all
JS SDK methods, from the initial setup of how to get the library and install it to the list of methods, how to
use them and the expected returned data.
This is an exciting opportunity to work on a cutting edge project with a dynamic group of experienced
developers and team members.
Measuring Success
As with many open source projects, BANKTEXT attracts a large number of young and often inexperienced
developers.
BANKTEXT has an enormous and complex code base. New contributors often feel frustrated at being
unable to get a test setup running quickly and can lose interest and look for an easier project.
Currently the documentation on getting them started with a development environment is fragmented.
Developers need to spend time on basic setup rather than coding, and it is frustrating for new users..
We believe that better written documentation will reduce the time existing developers need to spend on
helping new developers with development setup which can then be spent on actual coding issues.
BANKTEXT currently hosts documentation with gitbook and analytics in the form of Pageviews and Ratings
are available. As we intend to create entirely new content pulling information from a variety of sources there
will be no direct comparison of usages. However, we can check an overall views count of existing page
content and then compare this with the new pages.
In addition, we believe we will see a decrease in simple developer support requests, more pull requests and
code contributions, and a higher retention of new developers who want to try developing with BANKTEXT,
especially for the GSoC 2022 season. We will measure and track these metrics as indicators of the project's
success:
Budget Items
We anticipate the budget for this project to be USD $12,000 comprising of:
Technical writer to re-structure and re-write the technical guides, and to write the JS SDK documentation
$8000
Stipend for 3 x Volunteers to help in proof reading and production of graphics and other assets $1500
Project stickers and T-Shirts x 10 $200
Contribution to downline non-profit for assistance with design and volunteer search $300
Organization's participation in administration, mentorship of doc systems and tech project, and
reviewing of content $2000
Google Season of Docs 2019
Season of Docs is Google's annual program that fosters collaboration between open-source projects and
technical writers. It's happening for the first time in 2019!
Season of Docs is a unique program that pairs technical writers with open-source mentors to introduce the
technical writer to an open-source community and provide guidance while the writer works on a real-world
open-source project. The technical writer, in turn, provides documentation expertise to the open-source
organization.
Projects can cover many fields, including Cloud computing, operating systems, graphics, medicine,
programming languages, robotics, science, security, and many more. Season of Docs is not a recruiting
program or an internship but provides invaluable experience and looks great on a resume!
This year's Season of Docs is a pilot that accepts only a limited number of applications, so don't wait to the
last minute to prepare!
How to apply
Application for technical writers is now closed for the 2019 season. See Google Season of Docs 2019
timeline for more details.
Meet the mentors and fellow writers for GSoD 2019 and get some real-time help on next steps, please visit
our 24 x 7 community server channel:
https://open.BANKTEXT/channel/gsod2019
https://forums.BANKTEXT/c/gsod/gsod2019
If you have questions and prefer email, please write us at: gsod+2019@BANKTEXT
The application for technical writers has closed. During the past month, technical writers have continued to
approach us regarding project details. Several mentors have engaged with their prospective writer(s) in
assisting with proposal, and several writers have already started to contribute (typos and small fixes) to our
docs. We have received a total of TWENTY-THREE proposals (one was a submission to the wrong org),
and have started the evaluation process with the project mentors. Of the technical writers who have reached
out to us, we continue to engage with them and explore project details and interim contributions. We plan to
finalize our own selections by July 18th and submit them before the final selection deadline.
Update on May 28, 2019
Application for technical writers has opened. Please use this form to apply. Response during this exploration
month has been generally positive. Several project teams are already engaging with interested writers to
discuss open source work in general and details of their projects in particular. Some writers have already
warmed up and contributed documentation fix PRs to our repositories. Mentors of projects with interested
writers have started to assist them in creating their project proposals.
Project Ideas
Description: When developing applications, developers can use a rich set of Application Programming
Interfaces (APIs) offered by BANKTEXT to control every aspect of BANKTEXT's operation. The
documentation for this set of APIs mixes automated generation with hand-crafted usage descriptions,
application scenarios, and coding examples. By September 2019, BANKTEXT should have a
"playground" that makes this documentation comes alive. Developers will be able to visit the API page
in the "playground" and actually interact with the API directly through the documentation page. We
already have a hand-crafted set of API docs that is maintained by our community but they tend to
become obsolete as API changes. This project will replace the legacy documentation. You will work
with two mentors specialized in API coding and documentation generation for this project.
In this project, we will not be creating the playground or the docs generation systems, that will be
handled by the Google Summer of Code student (See the GSoC Project). Our API docs were written
without the idea of a playground to test it. The objective of this project is to improve the structure and
wording of the API docs to reflect the new playground system.
Related Material: Our existing REST API documentation
Administration/Settings Documentation
Description: Given the huge amount of features and customizability of BANKTEXT we currently lack
documentation for a great part of our admin section. This project aims at the completion of the
administration documentation, and it can be broken down in two parts, the configuration, and the admin
tools part:
Configuration: We need to complete our settings, fortunately, we already have the skeleton for that
documentation on This Pull Request but will also like a professional opinion on this structure, or help to
improve it. We can cherry-pick each file, so no need to work on all articles at once.
Admin Tools: In the administration section we have a set of tools to help admins manage their server,
things like user management, permission control, mailer, etc...
Related Material: Our existing Admin documentation
Security documentation
Mentors: @markus.kirsch @rodrigok
Description: We at BANKTEXT take pride in taking extra efforts to provide a true open-source and
secure messaging solution. Transparency and trust are key features of our products. This is an exciting
opportunity to work with our team of experts to create a comprehensive documentation of the security
features of BANKTEXT and create implementation guides for configuring BANKTEXT to follow
compliance regimes such as GDPR, HIPAA and NIST. The focus is on creating a new set of
documentation based on the existing material and new features that since have been deployed.
Description: Modern Android mobile developers typically use Kotlin to create their mobile apps. To
make developing BANKTEXT integrated and compatible Android apps simpler, BANKTEXT has
created a comprehensive Software Development Kit (SDK) in Kotlin - which can be used on Kotlin or
Java applications due to its interoperability. This project will involve detailed documentation for the SDK
features, application scenarios, and APIs. This documentation does not exist yet, you will be working
from scratch on this. You will be working closely with BANKTEXT mobile leads, the developers who
actually coded the SDK, during your term.
Related Material: The Kotlin SDK
Description: React Native is one of the hottest frameworks nowadays. It allows developers to write fully
native mobile applications using only Javascript and inherits all the ease of development features from
the ReactJS community. At BANKTEXT we have our own client implemented using RN and it's
available on App Store and Google Play as BANKTEXT Experimental. This project aims to build user
documentation for all the features we have implemented so far. This documentation does not exist today.
You will be working with our lead React Native developer during this project.
Apps-Engine guides
Description: The Apps-Engine is a framework that enables developers to integrate new functionality to
BANKTEXT without having to deep dive in the code base, and makes it possible to distribute your
BANKTEXT Apps to the wide community of users! And in order to improve the developer experience
when making those apps, we need to improve our docs so they guide people smoothly through the
available features. You will be working with BANKTEXT Apps leads to extend the existing guides and
docs, focusing on the DX of the community.
JS SDK documentation
Description: The JS SDK is a library of code written in JS that offers an easier interface to communicate
with a BANKTEXT server providing APIs to be called from a JS code that executes commands on the
server, like send a message, or retrieve data, like get the list of rooms, abstracting all the logic necessary
to handle the communication with the server side. You will be working with BANKTEXT backend and
frontend leads to improve the documentation of all JS SDK methods, from the initial setup of how to get
the library and install it to the list of methods, how to use them and the expected returned data. Current
documentation is under the SDK repository README.
BANKTEXT Legal
Terms of Service
These Customer Terms of Service (the “Customer Terms”) describe your rights and responsibilities
pertaining to BANKTEXT Services (the "Services"), such as BANKTEXT Cloud Hosting, Support Plans,
Marketplace, or any other services we may provide to you, the customer. Some sections of these Customer
Terms only apply to specific Services, as indicated by the headings of the respective paragraph. These
Customer Terms do not apply to the on-premises installation of BANKTEXT. Please read the Customer
Terms carefully and note that these Customer Terms include auto-renewal provisions and may limit
your rights and liabilities.
“BANKTEXT,” “we,” “us,” or “our” means BANKTEXT Technologies Corp. “Customer”, “you” or “your” means
the Customer indicated below, including its users, as applicable.
Legal Binding
These Customer Terms form a part of a binding "Contract" between Customer and BANKTEXT, and apply
to any Services you order, subscribe to, activate, or use.
"Customer" is the organization that you represent in agreeing to the Contract. If your Instance is being set up
by someone who is not formally affiliated with or employed by an organization, Customer is the individual
creating the Instance. When you create an Instance, invite users, or use or allow use of that Instance after
being notified of a change to these Customer Terms, you acknowledge your understanding of the then-
current Contract and agree to the Contract on behalf of Customer. Please make sure you have the
necessary authority to enter into the Contract on behalf of Customer before proceeding, and you represent
and warrant that you do.
Customer Data
When a Customer or any of its users submit content or information to the Services, such as messages or
files (“User Data”), the Customer retains ownership of any intellectual property rights in that content.
Customer hereby grants BANKTEXT a worldwide license to use, host, store, reproduce, modify, create
derivative works (e.g. as translations, adaptations or other changes we make so that the content in question
works better with the Services), communicate, publish, perform, display and distribute User Data. Customer
also represents and warrants it has the right to grant this license and has obtained any necessary consent
from users and third parties regarding such User Data. The rights granted in this license are for the limited
purpose of providing, operating and improving the Services, and to develop new ones. (For a more thorough
description of the limited purposes we use personal data, please refer to our Privacy Policy.) This license
does not expire even if you stop using the Services (for example, so that BANKTEXT can deliver a message
that you sent to another user before you stopped using our Services). If a user employs the Services to share
content with others, anyone that user has shared content with (including the general public, in certain
circumstances) may have access to the content, depending on the channels and the way the content was
shared.
BANKTEXT may provision or deprovision access to the Services, set the version of the Service and update
the Service, enable or disable third party integrations, manage permissions, retention and export settings,
transfer or assign workspaces, share channels, or consolidate this workspace or channels with other
workspaces or channels, and these choices and instructions may result in the access, use, disclosure,
modification or deletion of certain or all User Data.You may access, import, and export all your User Data,
including private channels and direct messages through your account preferences panel. You may also
request that your account is deleted, together with all the messages you have previously sent and your
personal information, such as names and email addresses.
Legal Age
You (in case of a natural person) represent that you are over the legal age. You may not sign-up, access or
use the Services for any purpose if the preceding sentence is not true. Without limiting the foregoing, you
must be of legal working age.
Your Users may be above or under the legal age, as per Your determination. You are responsible to comply
with applicable laws regarding the minimum age for Your Users , depending on the context you allow them
to access or use the Services.
You agree to abide by the following list of duties and unacceptable conduct for our Services. If we believe a
violation of the policy is deliberate, repeated or presents a credible risk of harm to other users, our
customers, the Services or any third parties, we may suspend or terminate your access.
You must:
comply with all applicable laws and governmental regulations, including, but not limited to, all
intellectual property, data, privacy, and export control laws, and regulations promulgated by any
government agencies;
upload and disseminate only Customer Data to which you own or have all required rights under law and
under contractual and fiduciary relationships (such as proprietary and confidential information learned or
disclosed as part of employment relationships or under nondisclosure agreements) and do so only
consistent with applicable law;
keep passwords and all other login information confidential;
monitor and control all activity conducted through your account in connection with the Services;
use the proper functions that come with your account to interact with your workspace and subscription
(e.g. renewal and cancellation of workspace), or - in emergency case these are not available to you -
you must properly identify yourself to us before we can make these changes for you. We cannot make
these changes just by receiving an email alone.
promptly notify us if you become aware of or reasonably suspect any illegal or unauthorized activity or a
security breach involving your accounts, including any loss, theft, or unauthorized disclosure or use of a
username, password, or account; and
comply in all respects with all applicable terms of the third party applications that you access or
subscribe to in connection with the Services.
use the Services to store or transmit any Customer Data that may infringe upon or misappropriate
someone else's trademark, copyright, or other intellectual property, or that may be tortious or unlawful;
upload to, or transmit from, the Services any data, file, software, or link that contains or redirects to a
virus, Trojan horse, worm, or other harmful component or a technology that unlawfully accesses or
downloads content or information stored within the Services or on the hardware of BANKTEXT or any
third party;
attempt to reverse engineer, decompile, hack, disable, interfere with, modify, or disrupt the features,
functionality, integrity, or performance of the Services (including any mechanism used to restrict or
control the functionality of the Services), any third party use of the Services, or any third party data
contained therein (except to the extent such restrictions are prohibited by applicable law);
attempt to gain unauthorized access to the Services or related systems or networks or to defeat, avoid,
bypass, remove, deactivate, or otherwise circumvent any software protection or monitoring mechanisms
of the Services;
use the Services in any manner that may harm minors or that interacts with or targets people under the
age of thirteen;
impersonate any person or entity, including, but not limited to, an employee of ours, an “Administrator”,
an “Owner”, or any other User, or falsely state or otherwise misrepresent your affiliation with a person,
organization or entity;
use the Services to provide material support or resources (or to conceal or disguise the nature, location,
source, or ownership of material support or resources) to any organization(s) designated by the United
States government as a foreign terrorist organization pursuant to section 219 of the Immigration and
Nationality Act or other laws and regulations concerning national security, defense or terrorism;
access, search, or create accounts for the Services by any means other than our publicly supported
interfaces (for example, "scraping" or creating accounts in bulk);
send unsolicited communications, promotions or advertisements, or spam;
place any advertisements within a BANKTEXT client;
send altered, deceptive or false source-identifying information, including "spoofing" or "phishing";
use contact or other user information obtained from the Services (including email addresses) to contact
Users outside of the Services without their express permission or authority or to create or distribute
mailing lists or other collections of contact or user profile information for Users for use outside of the
Services; or
authorize, permit, enable, induce or encourage any third party to do any of the above.
API Fair Use Many of our services work via API calls managed under a central infrastructure of us. You may
not place excessive API calls or otherwise deliberately try to overburden this API system. We may throttle
your use of the APIs in case we deem it necessary to facilitate an overall acceptable service level across our
infrastructure (e.g. such as in the case of continued, excessive API usage). We may monitor use of the APIs
for compliance with these rules, and we may deny you access to the API or shut down your Integration if you
try to go around or break the policies we set. If your Order Form includes a defined API limit or minimum,
then the Order Form controls.
Limitation of Liability
If we believe that there is a violation of the Customer Terms or any of our other policies that can simply be
remedied by removal of certain Customer Data or taking other action, we may directly step in and take what
we determine to be appropriate action (including disabling your account) if we believe there is a credible risk
of harm to us, the Services, Users, or any third parties, including Vendors and Third Party Apps. To the
maximum extent permitted by law, BANKTEXT offers the Services and Products “AS IS” and “AS
AVAILABLE”, and BANKTEXT hereby disclaims all warranties, whether express, implied or statutory,
including but not limited to any implied warranties of title, non-infringement, merchantability or fitness for a
particular purpose. You may have other statutory rights, in which case the duration of any statutory
warranties will be limited to the maximum extent permitted by law. IN NO EVENT WILL WE HAVE ANY
LIABILITY FOR ANY LOST PROFITS OR REVENUES OR FOR ANY INDIRECT, SPECIAL, INCIDENTAL,
CONSEQUENTIAL, COVER OR PUNITIVE DAMAGES HOWEVER CAUSED, WHETHER IN
CONTRACT, TORT OR UNDER ANY OTHER THEORY OF LIABILITY, AND WHETHER OR NOT YOU
HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. OUR MAXIMUM AGGREGATE
LIABILITY FOR ANY BREACH OR IN CONNECTION WITH THIS AGREEMENT OR ANY SERVICE IS
ONE HUNDRED DOLLARS ($100) IN THE AGGREGATE OR THE AMOUNT YOU PAID US DURING
THE PRIOR 12 MONTHS. THE FOREGOING DISCLAIMERS WILL NOT APPLY TO THE EXTENT
PROHIBITED BY APPLICABLE LAW AND DO NOT LIMIT EITHER PARTY’S RIGHT TO SEEK AND
OBTAIN EQUITABLE RELIEF.
Payment; Fees
All fees due to BANKTEXT under these Terms are non-cancellable, and the sums paid are non-refundable
and non-creditable, except as otherwise expressly provided in these Terms.
General Provisions
Except as otherwise set forth herein, all notices under the Customer Terms will be by email, although we
may instead choose to provide notice to Customers through the Services (e.g., a bot notification). Notices to
BANKTEXT should be sent to contact@BANKTEXT. A notice will be deemed to have been duly given (a) the
day after it is sent, in the case of a notice sent through email; and (b) the same day, in the case of a notice
sent through the Services.
TERM; TERMINATION.
Term.
When Customer orders, activates, subscribes to, or uses any Services, such Services will be subject to an
initial subscription term or period (the “Initial Subscription Period”) and any renewal terms or periods
applicable thereto (collectively, the “Subscription Period” or “Order Term”); unless expressly provided
otherwise, the Initial Subscription Period is 12 months from the initial order, activation, subscription, or use
date and automatically renews for successive 12 month periods thereafter, unless terminated or not renewed
in accordance with these Customer Terms. If you do not want to renew, you must following our non-
renewal processes and stop using the applicable Services.
These Customer Terms will begin on the Effective Date and will continue thereafter so long as one or more
Subscription Period(s) remain in effect or until terminated by either party as outlined in this Section (the
"Term").
Termination Rights.
a. Renewal. Unless a party gives written notice of non-renewal or termination at least thirty (30) days prior to
the expiration of the relevant Term, this Agreement will automatically renew for a period equal to the
previous Term. Any Fees for a renewed Term are due upon the date of renewal.
b. For Cause. Either party may terminate this Agreement and any Order Forms immediately upon 30 days’
written notice to the other party in the event of any material breach of this Agreement (including without
limitation, any failure to pay any amounts when due hereunder, your failure to comply with restrictions under
this Agreement, including those set out in Section 3) by such party where such material breach is not cured
during such notice period. Either party may also terminate this Agreement and all Order Forms, without
notice, (i) upon the institution by or against the other party of insolvency, receivership or bankruptcy
proceedings (provided such proceedings are not dismissed within one hundred twenty (120) days of such
institution), (ii) upon the other party's making an assignment for the benefit of creditors, or (iii) upon the other
party's dissolution or ceasing to do business without a successor.
c. Vendors and Third Party Apps: Where BANKTEXT relies on Vendors or Third Party Apps (as defined
below) to provide a Service or any function or feature relating to our Services (e.g. Apple for Apple Business
Chat integrations), BANKTEXT reserves the right to change, suspend, limit, or discontinue your use of the
Services, function, or feature at any time (i) if the Vendor revokes the status of BANKTEXT as an
intermediary to provide You such Service, function, or feature; or (ii) at the request of the Vendor, such
requests being at the discretion of the Vendor, without notice or liability.
Effect of Termination or Expiration. Termination or expiration shall not relieve You of the obligation to pay
any fees or other amounts accrued or payable to BANKTEXT including fees for the remainder of the
Subscription Period(s) after an earlier termination. If BANKTEXT terminates for cause, Customer will
immediately pay all amounts due and payable for the remainder of the Subscription Period(s) without
limiting BANKTEXT’s other rights and remedies. Without prejudice to any other rights, upon termination,
You must cease all use of the Services, Software, and Documentation and destroy or return (upon request
by BANKTEXT) all copies of the Services, Software, and Documentation. You further acknowledge and
agree that You will retrieve Your User Data or copies of Your User Data from BANKTEXT within thirty (30)
business days of the termination or expiration of these Customer Terms. Unless in accordance with our
internal policies, contractual, legal, or other obligation, You acknowledge and agree that BANKTEXT has
the right to delete Your User Data, including any and all copies thereof. Your User Data, once deleted, will
not be able to be recovered.
Privacy Policy
Please review our Privacy Policy for more information on how we collect and use data relating to the use
and performance of our products and services.
Modifications
As our business evolves, we may change these Customer Terms. If we make a material change to the
Customer Terms, we will provide you with reasonable notice prior to the change taking effect either by
emailing the email address associated with your account or by messaging you through the Services. You
can review the most current version of the Customer Terms at any time by visiting this page. Any material
revisions to these Customer Terms will become effective on the date set forth in our notice, and all other
changes will become effective on the date we publish the change. If you use the Services after the effective
date of any changes, that use will constitute your acceptance of the revised terms and conditions.
Waiver
No failure or delay by either party in exercising any right under the Customer Terms will constitute a waiver
of that right. No waiver under the Customer Terms will be effective unless made in writing and signed by an
authorized representative of the party being deemed to have granted the waiver.
Severability
The Customer Terms will be enforced to the fullest extent permitted under applicable law. If any provision of
the Customer Terms is held by a court of competent jurisdiction to be contrary to law, the provision will be
modified by the court and interpreted so as best to accomplish the objectives of the original provision to the
fullest extent permitted by law, and the remaining provisions of the Customer Terms will remain in effect.
Assignment
You may not assign any of your rights or delegate your obligations under these Customer Terms, whether by
operation of law or otherwise, without the prior written consent of us (not to be unreasonably withheld). We
may assign these Customer Terms in their entirety (including all terms and conditions incorporated herein by
reference), without your consent, to a corporate affiliate or in connection with a merger, acquisition, corporate
reorganization, or sale of all or substantially all of our assets.
Governing Law. Any dispute, controversy, or claim arising out of or in connection with these Terms shall be
sought settled through negotiations in good faith. This Agreement and any disputes arising out of or related
to this Agreement shall be governed by and construed in accordance with applicable law as outlined in
Section, without regard to any conflict of law provisions. The terms of the United Nations Convention on
Contracts for the Sale of Goods do not apply to these Terms. The Uniform Computer Information
Transactions Act (UCITA) will not apply to these Terms regardless of when or where adopted.
Applicable Law. All references to BANKTEXT,’ ‘we,’ or ‘us’ under the Contract, what law will apply in any
dispute or lawsuit arising out of or in connection with the Contract, and which courts have jurisdiction over
any such dispute or lawsuit, depending on where Customer is domiciled.
BANKTEXT Contract
Domicile Governing Law Venue
Entity
The Agreement, and any disputes arising out of or related hereto will be governed exclusively by the
applicable governing law above. The courts located in the applicable venue above will have exclusive
jurisdiction to adjudicate any dispute arising out of or relating to the Agreement or its formation,
interpretation, or enforcement. Each party hereby consents and submits to the exclusive jurisdiction of such
courts.
Attorneys’ Fees. If any legal action or other proceeding is brought to enforce the provisions of this
Agreement, the prevailing party shall be entitled to recover reasonable attorney fees and other costs
incurred in the action or proceeding, in addition to any other relief to which the prevailing party may be
entitled.
Dispute Resolution. In the event of any controversy or claim arising out of or relating to these Terms, the
parties will consult and negotiate with each other and, recognizing their mutual interests, attempt to reach a
solution satisfactory to both parties. If the parties do not reach a settlement within a period of sixty (60) days,
either party may pursue relief as may be available under these Terms pursuant to Governing Law and
Jurisdiction Sections. All negotiations pursuant to this Section will be confidential and treated as
compromise and settlement negotiations for purposes of all rules and codes of evidence of applicable
legislation and jurisdictions.
Injunctive Relief; Enforcement. Notwithstanding the provisions of Dispute Resolution and Governing Law
Sections, nothing in these Terms will prevent us from seeking injunctive relief with respect to a violation of
intellectual property rights, confidentiality obligations, or enforcement or recognition of any award or order in
any appropriate jurisdiction.
Language. If this Agreement is translated into a language other than English and there are conflicts
between the translations of this Agreement, you agree that the English version of this Agreement shall
prevail and control.
App Listing The listing for each App will identify the provider of the App (“Vendor”), which may be
BANKTEXT or a third party. Apps for which BANKTEXT is the Vendor are "BANKTEXT Apps,” and Apps
for which the Vendor is a third party are “Third Party Apps”.
Orders You can place Orders on the Marketplace. Your Order will identify the Vendor, your authorized scope
of use of the App and license or subscription term, as applicable. For any Third Party App, you agree that
BANKTEXT is the Vendor’s commercial agent and that you are required to make any related payments
directly to BANKTEXT, except where Third Party Apps may be enabled or paid for through a third party
Vendor’s own website and this is indicated in the App listing. Once you complete your Order, BANKTEXT
will provide you with access to the applicable Apps. Apps are provided on a license or subscription basis
and you do not acquire any ownership rights in the Marketplace or the Apps. You may terminate your Order
of an App under these Terms, for no reason or any reason, by providing notice of termination to us no later
than fourteen (14) days after the Order date for such App. In the event you terminate your initial Order, we
will refund you the amount paid under the Order for that App. This termination and refund right applies only
to your initial Order of the App and only if you exercise your termination right within the period specified
above, and does not apply to Additional Services or anything else. The Marketplace may also offer free trial
periods for Apps. After expiration of the trial period, if you do not place an Order for the App, the App will
cease to function and you must cease using and delete your copies of the App.
Usage of Apps Without limiting the disclaimers, restrictions or other provisions in these Terms of Use,
usage of Apps is subject to license or subscription terms, privacy policies and other applicable terms
specified by the Vendor (“Vendor Terms”). Vendor Terms are typically included on the App’s listing page or
presented through the Order process. You may not use an App if you do not agree to the relevant Vendor
Terms.
Third Party Apps are subject to the third party’s Vendor Terms, not BANKTEXT Terms. By ordering,
installing or enabling any Third Party App, you are entering into the Vendor Terms directly with the
applicable third party Vendor. Any support and maintenance of Third Party Apps will be provided by the
applicable Vendor to the extent described in the applicable Vendor Terms.
Access to Data If you place an Order for Apps, you authorize Vendors to access or use certain data in the
applicable BANKTEXT Products. This may include transmitting, transferring, modifying or deleting such
data, or storing such data on Vendor or third party systems. For BANKTEXT Apps, this access and use is
covered by our privacy policy. Any third party Vendor’s use of accessed data (whether data in the
BANKTEXT Products or separately collected from you or your device) is subject to the applicable Vendor
Terms. You are solely responsible for your decision to permit any third party Vendor or Third Party App to
access or use data to which you’ve granted access. It is your responsibility to carefully review the Vendor
Terms, as provided by the applicable third party Vendor.
Notice Regarding Apple as a Third Party Vendor. You agree to be bound by the then-current Apple
Business Register Terms of Use as found on Apple’s website: https://register.apple.com/tou/abr/latest/en if
you order, access, or use the applicable Apple services, functions, or features described therein in
connection with BANKTEXT Services. In addition, you acknowledge that these Terms are between You and
BANKTEXT only, not with Apple Inc. (“Apple”), and Apple is not responsible for the Services or the content
thereof. Apple has no obligation to furnish any maintenance and support services with respect to the
Services we provide you. To the maximum extent permitted by applicable law, Apple has no warranty
obligations with respect to the Services. Apple is not responsible for addressing any claims by You or any
third party relating to the Services or your possession and/or use of the Services, including: (a) product
liability claims; (b) any claim that the Services fail to conform to any applicable legal or regulatory
requirement; or (c) claims arising under consumer protection or similar legislation. Apple is not responsible
for the investigation, defense, settlement and discharge of any third party claim that the Services and/or Your
possession and use of the Services infringe a third party’s intellectual property rights. Apple and Apple’s
subsidiaries are third party beneficiaries of these Terms, and upon Your acceptance of these Terms, Apple
will have the right (and will be deemed to have accepted the right) to enforce these Terms against You as a
third party beneficiary of these Terms. You agree to comply with any applicable third party terms when using
the Services. You hereby represent and warrant that: (i) You are not located in a country that is subject to a
U.S. Government embargo, or that has been designated by the U.S. Government as a “terrorist supporting”
country; and (ii) You are not listed on any U.S. Government list of prohibited or restricted parties. At all times
any personal information collected through use of the Services will be treated in accordance with Apple's
Privacy Policy which can be viewed at: http://www.apple.com/legal/privacy/.
Responsibilities You represent and warrant that you have all necessary authority to enter into and be
legally bound by these Customer Terms, Vendor Terms, to place any Orders and to authorize Vendors to
access and use your data and information.
Marketplace Disclaimers and Liability Third party Vendors are solely responsible for their Apps and any
related content or materials included in their Apps. BANKTEXT has no liability or responsibility whatsoever
for any Third Party Apps, even if BANKTEXT has reviewed, certified, or approved the Third Party App. Any
use of Third Party Apps is at your sole discretion and risk. Vendors are solely responsible for the information
they provide. At any time, BANKTEXT may remove an App from the Marketplace in accordance with
applicable policies, and Vendors may also update, modify or remove their own Apps at any time.
BANKTEXT makes no guarantee that any Apps will work properly with BANKTEXT Products as they
change over time.
Entire Agreement
The Customer Terms, including any terms, subscriptions, or order forms incorporated by reference into the
Customer Terms, constitute the entire agreement between you and us and supersede all prior and
contemporaneous agreements, proposals or representations, written or oral, concerning its subject matter.
To the extent of any conflict or inconsistency between the provisions in these Customer Terms and any
pages referenced in these Customer Terms, the terms of these Customer Terms will first prevail, followed by
the pages referenced in these Customer Terms (e.g., the Privacy Policy).
Contacting BANKTEXT
Please also feel free to contact us if you have any questions about BANKTEXT’s Customer Terms. You may
contact us at contact@BANKTEXT or at our mailing address below:
BANKTEXT Technologies Corp. 251 Little Falls Rd Wilmington, DE, 19808 USA
Master Services Agreement for Self Managed
Workspaces
The Agreement covers the provision of services by BANKTEXT to You for self-managed (otherwise known
as "on-premise") deployment of BANKTEXT and generally comes with an Order Form that specifies
services and product editions for a particular initial term or period (the “Initial Order Term”) and any renewal
terms or periods indicated therein (collectively, the “Order Term”); unless expressly provided otherwise, the
Initial Order Term is 12 months from the effective date of the Order and renewals are for successive 12
months periods. It does explicitly not cover the mere provision of the Community Edition of our product or
any other edition of our product which does not come with a reference to this Agreement.
1. DEFINITIONS.
1.1 Affiliates means an entity controlled by, under common control with, or controlling such party, where
control is denoted by having fifty percent (50%) or more of the voting power (or equivalent) of the applicable
entity. Subject to the terms and conditions of this Agreement, Your Affiliates may use the license granted
hereunder. All references to BANKTEXT shall be deemed to be references to BANKTEXT and its Affiliates.
1.2 Agreement means this Master Services Agreement, and any applicable Order Form attached hereto.
1.3 Devices means (whether physical or virtual) a server, system, workstation, computer, mobile device, or
endpoint upon which or through which the Services are used and/or on which the Software is installed.
1.4 Documentation means the official user documentation prepared and provided by BANKTEXT to You
on the use of the Services or Software (as updated from time to time). For the avoidance of doubt, any online
community site, unofficial documentation, videos, white papers, or related media, or feedback do not
constitute Documentation.
1.5 Order Form means the BANKTEXT ordering document that specifies Your purchase of the Services,
pricing, and other related information. All Order Form(s) will be attached to and made a part of this
Agreement.
1.6 Personal Data means any information that can be used to identify an individual as that term is defined
under applicable law, which may include EU’s "General Data Protection Regulation" (“GDPR”) as and if
applicable.
1.7 Services means the products and Software services, including any support and application
programming interface that accesses functionality, that is provided to the Customer by BANKTEXT.
1.8 Software means the object code version of any software to which Customer is provided access as part
of the Service, including any updates or new versions.
1.9 Support means the standard maintenance or support provided by BANKTEXT or its designated agents
as set forth in this Agreement.
1.10 User means an individual authorized by You to use the Services, Software, and Documentation.
1.11 Your Data or Data means data, files, or information, including data, files, or information that include
Personal Data, accessed, used, communicated, stored, or submitted by You or Your Users related to Your or
Your User’s use of the Services or Software.
2. PROVISION OF SERVICES.
2.1 Services License. Upon payment of fees and subject to continuous compliance with this Agreement,
BANKTEXT hereby grants Customer a limited, non-exclusive, non-transferable license to access, use, and
install (if applicable) the Services, Software, and Documentation during the Term (defined below). You may
provide, make available to, or permit Your Users to use or access the Services, the Software, or
Documentation, in whole or in part. You agree that BANKTEXT may deliver the Services or Software to You
with the assistance of its Affiliates, licensors, and service providers. During the Term (as defined herein),
BANKTEXT may update or modify the Services or Software to reflect changes in, among other things, laws,
regulations, rules, technology, industry practices, patterns of system use, and availability of a third-party
program. BANKTEXT’s updates or modifications to the Services or Software will not materially reduce the
level of performance, functionality, security, or availability of the Services or Software during the Term.
2.2 Customization and Implementation. Subject to the terms and conditions of this Agreement and
applicable Order Form, BANKTEXT will customize the Software for the Customer in accordance with the
functional requirements specification which will be mutually developed during the customization effort.
2.3 Hosting is Not Covered. Our hosted offerings are not covered by this Agreement.
2.4 Support. Subject to the terms and conditions of this Agreement and applicable Order Form, as part of
the Services, BANKTEXT will provide Customer the support and maintenance services as described in the
applicable Order Form during the Term. BANKTEXT will provide the Customer with the Support subject to
payment of the applicable fees as defined in the applicable Order Form. By the open source nature of
BANKTEXT and according to its License found at
https://github.com/RocketChat/BANKTEXT/blob/master/LICENSE, the Customer may make modifications to
the software, but BANKTEXT's support will only cover original code, published by BANKTEXT in its own
repositories.
3.2 Your Obligations. You acknowledge, agree, and warrant that: (i) You will be responsible for Your and
Your Users’ activity and compliance with this Agreement, and if You become aware of any violation, You will
immediately terminate the offending party’s access to the Services, Software, and Documentation and notify
BANKTEXT; (ii) You and Your Users will comply with all applicable local, state, federal, and international
laws; (iii) You are legally able to process Your Data and are able to legally provide Your Data to BANKTEXT
and its Affiliates, including obtaining appropriate consents or rights for such processing, as outlined further
herein, and have the right to access and use Your infrastructure if requested by You, including any system or
network, to obtain the Services and Software and will be solely responsible for the accuracy, security,
quality, integrity, and legality of the same; and (iv) You will keep your registration information, billing
information, passwords and technical data accurate, complete, secure and current for the Term of this
Agreement.
3.3 Representations and Warranties. Each party represents and warrants that: (i) such party has the full
power and authority to enter into this Agreement; (ii) this Agreement is duly authorized by all necessary
action and has been duly executed and delivered; (iii) such party is in compliance with all applicable
requirements of law, other than where the failure to be in compliance would not have a material adverse
effect upon such party’s execution, delivery or performance of this Agreement or consummation of the
transactions contemplated hereby; and (iv) such party has not entered into any agreement with any other
entity that contains restrictive provisions that may impair its ability to perform its obligations under this
Agreement.
3.4 API Fair Use Many of our services work via API calls managed under a central infrastructure of us. You
may not place excessive API calls or otherwise deliberately try to overburden this API system. We may
throttle your use of the APIs in case we deem it necessary to facilitate an overall acceptable service level
across our infrastructure (e.g. such as in the case of continued, excessive API usage). We may monitor use
of the APIs for compliance with these rules, and we may deny you access to the API or shut down your
Integration if you try to go around or break the policies we set. If your Order Form includes a defined API limit
or minimum, then the Order Form controls.
4. PROPRIETARY RIGHTS.
4.1 Ownership of BANKTEXT Intellectual Property. The Services, Software, and Documentation are
licensed, not sold. Use of the term "purchase" in conjunction with licenses of the Services, Software, and
Documentation shall not imply a transfer of ownership. Except for the limited rights expressly granted by
BANKTEXT to Customer in this Agreement, Customer acknowledges and agrees that all right, title and
interest in and to all copyright, trademark, patent, trade secret, intellectual property (including without
limitation algorithms, business processes, improvements, enhancements, modifications, derivative works,
information collected and analyzed in connection with the Services) and other proprietary rights, arising out
of or relating to the Services, the Software, the provision of the Services or Software, and the
Documentation, belong exclusively to BANKTEXT or its suppliers or licensors. All rights, title, and interest in
and to content, which may be accessed through the Services or the Software, is the property of the
respective owner and may be protected by applicable intellectual property laws and treaties. This
Agreement gives Customer no rights to such content, including the use of the same. BANKTEXT is hereby
granted a royalty-free, fully-paid, worldwide, transferable, sub-licensable, irrevocable and perpetual license
to use or incorporate into its products and services suggestions, enhancement requests, recommendations
or other feedback provided by You or Your Users relating to the Services or Software. To clarify: this
mentioned license does not extend to any data of You or Your users, but is aimed to allow us to incorporate
Your feedback et al. into our products and services. All rights not expressly granted under this Agreement
are reserved by BANKTEXT.
4.2 Ownership of Data. BANKTEXT does not obtain ownership in data that is submitted into our Services
or Software. Unless agreed otherwise between Customer and User, Customer acknowledges and agrees
that when a User submits content or information to the Services, such as messages or files, all such content
and information, is generally owned by the User and that User grants Customer a license to operate the
Services, Software and Support in accordance with the agreement between Customer and User (e.g. a
customer contract).
Customer in turn grants BANKTEXT a sublicense of said license for the purposes of operating the Services,
Software and Support as described in this Agreement, where this sublicense is needed (e.g. to analyze
bugs by being granted access to user data by Customer). Other than as specifically provided in this
Agreement and the BANKTEXT Privacy Policy, BANKTEXT will not release, transmit, or utilize Customer
Data, in particular not store or repurpose it.
5. TERM; TERMINATION.
5.1 Term. This Agreement will begin on the Effective Date and will continue so long as any Order Term
remains in effect or until terminated by either party as outlined in this Section (the "Term").
a. Renewal. Unless a party gives written notice of non-renewal or termination at least thirty (30) days prior to
the expiration of the relevant Term, this Agreement will automatically renew for a period equal to the
previous Term. Any Fees for a renewed Term are due upon the date of renewal.
b. For Cause. Either party may terminate this Agreement and any Order Forms immediately upon 30 days’
written notice to the other party in the event of any material breach of this Agreement (including without
limitation, any failure to pay any amounts when due hereunder, your failure to comply with restrictions under
this Agreement, including those set out in Section 3) by such party where such material breach is not cured
during such notice period. Either party may also terminate this Agreement and all Order Forms, without
notice, (i) upon the institution by or against the other party of insolvency, receivership or bankruptcy
proceedings (provided such proceedings are not dismissed within one hundred twenty (120) days of such
institution), (ii) upon the other party's making an assignment for the benefit of creditors, or (iii) upon the other
party's dissolution or ceasing to do business without a successor.
5.3 Effect of Termination or Expiration. Termination or expiration shall not relieve You of the obligation to
pay any fees or other amounts accrued or payable to BANKTEXT, including fees for the remainder of the
Order Term(s) after an earlier termination. If BANKTEXT terminates for cause, or Customer terminates for
convenience, Customer will immediately pay all amounts due and payable for the remainder of the Order
Term without limiting BANKTEXT’s other rights and remedies. Without prejudice to any other rights, upon
termination or expiration, You must cease all use of the Services, Software, and Documentation and destroy
or return (upon request by BANKTEXT) all copies of the Services, Software, and Documentation. You
further acknowledge and agree that You will retrieve Your Data or copies of Your Data from BANKTEXT
within thirty (30) business days of the termination or expiration. Unless in accordance with our internal
policies, contractual, legal, or other obligation, You acknowledge and agree that BANKTEXT has the right to
delete Your Data, including any and all copies thereof. Your Data, once deleted, will not be able to be
recovered. Sections 1, 3, 4, 5.3, 6, 8, 9, 10, 11, and 12, shall survive any termination or expiration of this
Agreement.
6.1 Fees and Payment. All Order Forms placed will be considered final upon acceptance by BANKTEXT.
Fees will be due and payable as set forth on the Order Form, which are attached to and made part of this
Agreement. Unless otherwise set forth herein, fees shall be at BANKTEXT’s then-standard rates at the time
of invoice or, if applicable, as set forth in the Order Form. If You fail to pay, BANKTEXT shall be entitled, at
its sole discretion, to (i) suspend the provision of the Services until You fulfill Your pending payment
obligations; (ii) charge You an interest rate designated by BANKTEXT at the time of invoice; and/or (iii)
terminate this Agreement and all Order Forms. Unless otherwise stated, all payments made under this
Agreement shall be in United States dollars. Fees and payments are non-refundable except to the extent
expressly described otherwise. All fees due to BANKTEXT under these Terms are non-cancellable, and the
sums paid are non-refundable and non-creditable, except as otherwise expressly provided in these Terms.
6.2 Taxes. All fees are exclusive of taxes and You shall pay or reimburse BANKTEXT for all taxes arising
out of transactions contemplated by this Agreement. As reasonably requested, You will provide
documentation to BANKTEXT showing that taxes have been paid to the relevant taxing authority. "Taxes"
means any sales, VAT, use, and other taxes (other than taxes on BANKTEXT’s income), export and import
fees, customs duties and similar charges imposed by any government or other authority. You hereby confirm
that BANKTEXT can rely on the name and address that You provide to BANKTEXT when You agree to the
fees or in connection with Your payment method as being the place of supply for sales tax and income tax
purposes or as being the place of supply for VAT purposes where You have established Your business.
You agree that BANKTEXT and its Affiliates will process configuration, performance, usage, and
consumption data about You and Your Users use of the Services and Software to assist with the necessary
operation and function of the Services and Software and to improve BANKTEXT products and Services and
Your and Your Users’ experience with BANKTEXT and its Affiliates pursuant to the BANKTEXT Privacy
Notice, available at https://BANKTEXT/privacy.
7.2 Protection of Your Data. Each party shall comply with its respective obligations under applicable data
protection laws. Each party shall maintain appropriate administrative, physical, technical and organizational
measures that ensure an appropriate level of security for Confidential Information and Personal Data. You
are responsible for ensuring that the security of the Services is appropriate for Your intended use and the
storage, hosting, or processing of Personal Data. Information on how BANKTEXT protects personal data is
in BANKTEXT´s Privacy Policy.
8. CONFIDENTIAL INFORMATION.
As used in this Agreement, "Confidential Information" means any nonpublic information or materials
disclosed by either party to the other party, either directly or indirectly, in writing, orally, or by inspection of
tangible objects that the disclosing party clearly identifies as confidential or proprietary. For clarity,
Confidential Information includes Personal Data and BANKTEXT Confidential Information includes the
Services, Software, Documentation, and any information or materials relating to the Services, Software
(including pricing), or otherwise. Confidential Information may also include confidential or proprietary
information disclosed to a disclosing party by a third party.
The receiving party will: (i) hold the disclosing party’s Confidential Information in confidence and use
reasonable care to protect the same; (ii) restrict disclosure of such Confidential Information to those
employees or agents with a need to know such information and who are under a duty of confidentiality
respecting the protection of Confidential Information substantially similar to those of this Agreement; and (iii)
use Confidential Information only for the purposes for which it was disclosed, unless otherwise set forth
herein. The restrictions will not apply to Confidential Information, excluding Personal Data, to the extent it (i)
is (or through no fault of the recipient, has become) generally available to the public; (ii) was lawfully
received by the receiving party from a third party without such restrictions; (iii) was known to the receiving
party without such restrictions prior to receipt from the disclosing party; or (iv) was independently developed
by the receiving party without breach of this Agreement or access to or use of the Confidential Information.
The receiving party will return to the disclosing party or destroy all Confidential Information of the disclosing
party in the receiving party’s possession or control and permanently erase all electronic copies of such
Confidential Information promptly upon the written request of the disclosing party upon the termination of this
Agreement. The receiving party will certify in writing signed by an officer of the receiving party that it has fully
complied with its obligations under this Section 8.
The receiving party may disclose Confidential Information to the extent the disclosure is required by law,
regulation, or judicial order, provided that the receiving party will provide to the disclosing party prompt
notice, where permitted, of such order and will take reasonable steps to contest or limit the steps of any
required disclosure. The parties agree that any material breach of Section 3 or this Section 8 will cause
irreparable injury and that injunctive relief in a court of competent jurisdiction will be appropriate to prevent
an initial or continuing breach of these Sections in addition to any other relief to the applicable party may be
entitled.
9. DISCLAIMER.
THE SERVICES, SOFTWARE, DOCUMENTATION, AND ALL OTHER PRODUCTS AND SERVICES
PROVIDED UNDER THE TERMS OF THIS AGREEMENT AND/OR APPLICABLE ORDER FORM,
INCLUDING HOSTED SERVICES, ARE PROVIDED ON "AS IS" AND “AS AVAILABLE” BASIS.
BANKTEXT DISCLAIMS ALL REPRESENTATIONS AND WARRANTIES OF ANY KIND, EXPRESS,
IMPLIED, OR STATUTORY, INCLUDING ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE, TITLE, NON-INFRINGEMENT, ACCURACY, RELIABILITY, SECURITY, LOSS
OR CORRUPTION OF YOUR DATA, CONTINUITY, OR ABSENCE OF DEFECT RELATING TO THE
SERVICES, SOFTWARE, DOCUMENTATION, ANY OTHER PRODUCT OR SERVICES, OR RESULTS
OF THE SAME PROVIDED TO YOU UNDER THIS AGREEMENT. BANKTEXT DOES NOT WARRANT
THAT THE SPECIFICATIONS OR FUNCTIONS CONTAINED IN THE SERVICES OR SOFTWARE WILL
MEET YOUR REQUIREMENTS OR THAT DEFECTS IN THE SERVICES OR SOFTWARE WILL BE
CORRECTED.
10. INDEMNIFICATION.
10.1 BANKTEXT Indemnification. BANKTEXT will indemnify, defend, and hold You harmless from any
third party claim brought against You that the Services, as provided by BANKTEXT, infringe or
misappropriate any U.S. patent, copyright, trademark, trade secret, or other intellectual property rights of a
third party, provided (i) use of the Services by You is in conformity with the Agreement and Documentation;
(ii) the infringement is not caused by modification or alteration of the Services; and/or (iii) the infringement
was not caused by a combination or use of the Services with products not supplied by BANKTEXT.
BANKTEXT’s indemnification obligations are contingent upon You: (i) promptly notifying BANKTEXT in
writing of the claim; (ii) granting BANKTEXT sole control of the selection of counsel, defense, and
settlement of the claim; and (iii) providing BANKTEXT with reasonable assistance, information, and
authority required for the defense and settlement of the claim. This Section states BANKTEXT’s entire
liability (and shall be Your sole and exclusive remedy) with respect to indemnification to You.
10.2 Your Indemnification. You agree to indemnify, defend, and hold harmless BANKTEXT and its
Affiliates, and its directors, employees, and agents from and against any claims arising out of or due to: (i)
Your Data; (ii) Your (or Your User’s) breach of this Agreement; (iii) Your (or Your User’s) use of the Services,
Software, or Documentation in violation of third party rights, including any intellectual property or privacy
rights, or any applicable laws; or (iv) Your (or Your User’s) misuse of the Services, Software, or
Documentation.
11. LIMITATION OF LIABILITY.
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, (I) IN NO EVENT WILL BANKTEXT
AND ITS AFFILIATES, DIRECTORS, EMPLOYEES, OR AGENTS HAVE ANY LIABILITY, CONTINGENT
OR OTHERWISE, FOR ANY INDIRECT, SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE,
STATUTORY OR EXEMPLARY DAMAGES ARISING OUT OF OR RELATING TO THIS AGREEMENT,
THE SERVICES, SOFTWARE, DOCUMENTATION, OR ANY OTHER PRODUCTS OR SERVICES
PROVIDED HEREUNDER, INCLUDING, BUT NOT LIMITED TO LOST PROFITS, LOST OR
CORRUPTED DATA, LOSS OF GOODWILL, WORK STOPPAGE, EQUIPMENT FAILURE OR
MALFUNCTION, PROPERTY DAMAGE OR ANY OTHER DAMAGES OR LOSSES, EVEN IF A PARTY
HAS BEEN ADVISED OF THE POSSIBILITY THEREOF, AND REGARDLESS OF THE LEGAL OR
EQUITABLE THEORY (CONTRACT, TORT, STATUTE, INDEMNITY OR OTHERWISE) UPON WHICH
ANY SUCH LIABILITY IS BASED; AND (II) THE AGGREGATE LIABILITY OF BANKTEXT AND ITS
AFFILIATES, DIRECTORS, EMPLOYEES, AND AGENTS, AND THE SOLE REMEDY AVAILABLE TO
YOU ARISING OUT OF OR RELATING TO THIS AGREEMENT, THE SERVICES, SOFTWARE, OR ANY
PRODUCTS OR SERVICES PROVIDED HEREUNDER SHALL BE LIMITED TO TERMINATION OF THIS
AGREEMENT AND DAMAGES NOT TO EXCEED THE TOTAL AMOUNT PAYABLE OR PAID TO
BANKTEXT BY YOU UNDER THIS AGREEMENT DURING THE TWELVE (12) MONTHS PRIOR TO
TERMINATION.
12. GENERAL.
12.1 Notices. All notices must be in writing and shall be mailed by registered or certified mail to
BANKTEXT Technologies Corp., 251 Little Falls Drive, Wilmington, DE, 19808, or sent via email to
legal@BANKTEXT (with evidence of the effective transmission).
12.2 Entire Agreement. This Agreement and the exhibits and attachments hereto constitute the entire
agreement between the parties relating to the Services, Software, and Documentation provided hereunder
and supersedes all prior or contemporaneous communications, agreements, and understandings, written or
oral, with respect to the subject matter hereof. If other BANKTEXT terms or conditions conflict with this
Agreement, this Agreement shall prevail and control with respect to the Services, Software, and
Documentation provided hereunder. In addition, any and all additional or conflicting terms provided by You,
whether in a purchase order, an alternative license, or otherwise, shall be void and shall have no effect.
12.3 Export Control Laws. The Services, Software, and Documentation delivered to You under this
Agreement are subject to export control laws and regulations and may also be subject to import and export
laws of the jurisdiction in which it was accessed, used, or obtained, if outside those jurisdictions. You shall
abide by all applicable export control laws, rules, and regulations applicable to the Services, Software, and
Documentation. You agree that You are not located in or are not under the control of or a resident of any
country, person, or entity prohibited to receive the Services, Software, or Documentation due to export
restrictions and that You will not export, re-export, transfer, or permit the use of the Services, Software, or
Documentation, in whole or in part, to or in any of such countries or to any of such persons or entities.
12.4 Modifications. Unless as otherwise set forth herein, this Agreement shall not be amended or modified
by You except in writing signed by authorized representatives of each party.
12.5 Severability. If any provision of this Agreement is held to be unenforceable, illegal, or void, that shall
not affect the enforceability of the remaining provisions. The parties further agree that the unenforceable
provision(s) shall be deemed replaced by a provision(s) that is binding and enforceable and that differs as
little as possible from the unenforceable provision(s), with considerations of the object and purpose of this
Agreement.
12.6 Waiver. The delay or failure of either party to exercise any right provided in this Agreement shall not be
deemed a waiver of that right.
12.7 Force Majeure. BANKTEXT will not be liable for any delay or failure to perform obligations under this
Agreement due to any cause beyond its reasonable control, including acts of God; labor disputes; industrial
disturbances; systematic electrical, telecommunications or other utility failures; earthquakes, storms, or other
elements of nature; blockages; embargoes; riots; acts or orders of government; acts of terrorism; pandemics,
public health crisis and war.
12.8 Construction. Paragraph headings are for convenience and shall have no effect on interpretation.
Governing Law. Any dispute, controversy, or claim arising out of or in connection with these Terms shall be
sought settled through negotiations in good faith. This Agreement and any disputes arising out of or related
to this Agreement shall be governed by and construed in accordance with applicable law as outlined in
Section, without regard to any conflict of law provisions. The terms of the United Nations Convention on
Contracts for the Sale of Goods do not apply to these Terms. The Uniform Computer Information
Transactions Act (UCITA) will not apply to these Terms regardless of when or where adopted.
Applicable Law. All references to BANKTEXT,’ ‘we,’ or ‘us’ under the Contract, what law will apply in any
dispute or lawsuit arising out of or in connection with the Contract, and which courts have jurisdiction over
any such dispute or lawsuit, depending on where Customer is domiciled.
BANKTEXT Contract
Domicile Governing Law Venue
Entity
The Agreement and any disputes arising out of or related hereto will be governed exclusively by the
applicable governing law above. The courts located in the applicable venue above will have exclusive
jurisdiction to adjudicate any dispute arising out of or relating to the Agreement or its formation,
interpretation, or enforcement. Each party hereby consents and submits to the exclusive jurisdiction of such
courts.
Attorneys’ Fees. If any legal action or other proceeding is brought to enforce the provisions of this
Agreement, the prevailing party shall be entitled to recover reasonable attorney fees and other costs
incurred in the action or proceeding, in addition to any other relief to which the prevailing party may be
entitled.
Dispute Resolution. In the event of any controversy or claim arising out of or relating to these Terms, the
parties will consult and negotiate with each other and, recognizing their mutual interests, attempt to reach a
solution satisfactory to both parties. If the parties do not reach a settlement within a period of sixty (60) days,
either party may pursue relief as may be available under these Terms pursuant to Governing Law and
Jurisdiction Sections. All negotiations pursuant to this Section will be confidential and treated as
compromise and settlement negotiations for purposes of all rules and codes of evidence of applicable
legislation and jurisdictions.
Injunctive Relief; Enforcement. Notwithstanding the provisions of Dispute Resolution and Governing Law
Sections, nothing in these Terms will prevent us from seeking injunctive relief with respect to a violation of
intellectual property rights, confidentiality obligations, or enforcement or recognition of any award or order in
any appropriate jurisdiction.
Language. If this Agreement is translated into a language other than English and there are conflicts
between the translations of this Agreement, you agree that the English version of this Agreement shall
prevail and control.
12.10 Third Party Rights. Other than as expressly provided herein, this Agreement does not create any
rights for any person who is not a party to it, and no person not a party to this Agreement may enforce any of
its terms or rely on an exclusion or limitation contained in it.
12.11 Relationship of the Parties. The parties are independent contractors. This Agreement does not
create a partnership, franchise, joint venture, agency, fiduciary, or employment relationship between the
parties.
Master Service Agreement for Professional
Services
This Professional Services Master Agreement (“Agreement”) describes your (“Customer’s”) rights and
responsibilities when using our (“BANKTEXT’s”) professional services.
This Agreement applies to all Customers of BANKTEXT’s Professional Services and governs each
Statement of Work (SOW) and Order Form that specifies services for a particular term or period (the
“Order/SOW Term”).
We may update this Agreement and we will let you know when we do through the Services (e.g., a bot
notification) or by the Customer email address provided to BANKTEXT.
1. Definitions
"Affiliate" of a Person means any other Person that directly or indirectly, through one or more
intermediaries, controls, is controlled by, or is under common control with, such Person. The term "control"
(including the terms "controlled by" and "under common control with") means the possession, directly or
indirectly, of the power to direct or cause the direction of the management and policies of a Person, whether
through the ownership of voting securities, by contract, or otherwise.
"Authorized Service Recipients" means the Affiliates of Customer as may be identified by Customer to
BANKTEXT from time to time, or Persons identified as such in a Statement of Work.
"Confidential Information" means any information that is treated as confidential by a party, including but
not limited to all non-public information about its business affairs, products or services, Intellectual Property
Rights, trade secrets, third-party confidential information, and other sensitive or proprietary information,
whether disclosed orally or in written, electronic, or other form or media, and whether or not marked,
designated, or otherwise identified as "confidential". Confidential Information shall not include information
that: (a) is already known to the Receiving Party without restriction on use or disclosure prior to receipt of
such information from the Disclosing Party; (b) is or becomes generally known by the public other than by
breach of this Agreement by, or other wrongful act of, the Receiving Party; (c) is developed by the Receiving
Party independently of, and without reference to, any Confidential Information of the Disclosing Party; or (d)
is received by the Receiving Party from a third party who is not under any obligation to the Disclosing Party
to maintain the confidentiality of such information.
"Customer Contract Manager" has the meaning set forth in Section 4.1(a).
"Customer Materials" means any documents, data, know-how, methodologies, software, and other
materials provided to BANKTEXT by Customer[, including computer programs, reports, and specifications.
"Deliverables" means all documents, work product, and other materials that are delivered to Customer
hereunder or prepared by or on behalf of BANKTEXT in the course of performing the Services, including
any items identified as such in a Statement of Work.
"Disclosing Party" means a party that discloses Confidential Information under this Agreement.
“Documentation” means the official user documentation prepared and provided by BANKTEXT to
Customer on the use of the Services or BANKTEXT software (as updated from time to time). For the
avoidance of doubt, any online community site, unofficial documentation, videos, white papers, or related
media, or feedback do not constitute Documentation.
"Effective date" means the signature date of the SOW or Order Form in which the Services provided under
this Agreement are foreseen.
"Intellectual Property Rights" means all (a) patents, patent disclosures, and inventions (whether
patentable or not), (b) trademarks, service marks, trade dress, trade names, logos, corporate names, and
domain names, together with all of the goodwill associated therewith, (c) copyrights and copyrightable works
(including computer programs), and rights in data and databases, (d) trade secrets, know-how, and other
Confidential Information, and (e) all other intellectual property rights, in each case whether registered or
unregistered and including all applications for, and renewals or extensions of, such rights, and all similar or
equivalent rights or forms of protection in any part of the world.
"Key Personnel" means any BANKTEXT personnel identified as being key in a Statement of Work.
"Losses" mean all losses, damages, liabilities, deficiencies, actions, judgments, interest, awards,
penalties, fines, costs, or expenses of whatever kind, including reasonable attorneys' fees and the cost of
enforcing any right to indemnification hereunder and the cost of pursuing any insurance providers.
“Person” means any individual or business entity that obtains Services as defined below.
"Pre-Existing Materials" means the pre-existing materials specified in a Statement of Work, such as
documents, data, know-how, methodologies, software, and other materials.
"Project Milestone" means an event or task described in a Statement of Work which shall be completed by
the relevant date set forth in the Statement of Work.
"Receiving Party" means a party that receives or acquires Confidential Information directly or indirectly
under this Agreement.
"BANKTEXT Contract Manager" means a primary contact with respect to this Agreement who will have
the authority to act on behalf of BANKTEXT in connection with matters pertaining to this Agreement
"BANKTEXT Personnel" means all employees and Subcontractors, if any, engaged by BANKTEXT to
perform the Services.
"Services" mean the professional and other services to be provided by BANKTEXT under this Agreement,
as described in more detail in a Statement of Work, and BANKTEXT's obligations under this Agreement.
"Statement of Work" or "SOW" means each Statement of Work entered into by the parties.
2. Services
2.1 General. BANKTEXT shall provide the Services to Customer and the Authorized Service Recipients as
described in more detail in each SOW/Order Form in accordance with the terms and conditions of this
Agreement. Customer acknowledges that (a) all aspects of the scope of work are described in the applicable
SOW and no aspect of the scope of work is implied; (b) the signed SOW and the receipt of a purchase order
constitutes authorization for BANKTEXT to perform the Services under this Agreement and the applicable
SOW and issue invoices as set forth in Section 7.
2.2 Statement of Work. Each Statement of Work shall include the following information, if applicable: a
detailed description of the Services to be performed pursuant to the SOW; the date upon which the Services
will commence and the term of such SOW; the names of BANKTEXT Contract Manager and any Key
Personnel; the fees to be paid to BANKTEXT under the SOW; Project Milestones and payment schedules;
any criteria for completion of the Services; procedures for the testing and acceptance of the Services and
Deliverables by Customer; and any other terms and conditions agreed upon by the parties in connection
with the Services to be performed pursuant to such SOW.
2.3 Documentation. The content and format of all Documentation produced under this Agreement and its
supplements will be created according to BANKTEXT standard practices. Except if clearly defined as part of
the Services to be performed, Services under this Agreement do not include architecture for high availability
or failover systems. 2.4 Service Language. All Services will be provided in a single language mutually
agreed to by the parties and specified within the SOW. If no other language is specified in the Agreement or
its supplements, the default language for Services provided will be English. 2.5 Business Hours. The
Services performed under this Agreement will be executed during business hours mutually agreed to by
BANKTEXT and the Customer Contract Manager. BANKTEXT will not exceed the total estimated number of
business days or hours described in the applicable SOW without prior written approval from Customer, as
set forth in Section 5.
3. BANKTEXT's Obligations.
(a) before the date on which the Services are to start, obtain, and at all times during the term of this
Agreement maintain, all necessary licenses and consents and comply with all relevant Laws applicable to
the provision of the Services;
(b) comply with, and ensure that all BANKTEXT Personnel comply with, all rules, regulations, and policies
of Customer that are communicated to BANKTEXT in writing, including security procedures concerning
systems and data and remote access thereto, building security procedures and general security practices
and procedures; and;
(c) provide (if applicable) the Customer with a project implementation plan including the timeframe within the
term established in the applicable SOW.
3.2 BANKTEXT Personnel. BANKTEXT is responsible for all BANKTEXT Personnel and for the payment
of their compensation, including, if applicable, withholding of income taxes, and the payment and
withholding of social security and other payroll taxes, unemployment insurance, workers' compensation
insurance payments, and disability benefits.
3.3 Timeframe. BANKTEXT shall use reasonable efforts to meet any performance dates specified in a
Statement of Work, and any such dates shall be estimates only.
4. Customer's Obligations.
4.1 Customer shall: cooperate with BANKTEXT in all matters relating to the Services and appoint a
Customer employee to serve as the primary contact with respect to this Agreement and who will have the
authority to act on behalf of Customer with respect to matters pertaining to this Agreement (the "Customer
Contract Manager"); respond promptly to any BANKTEXT request to provide direction, information,
approvals, authorizations, or decisions that are reasonably necessary for BANKTEXT to perform Services in
accordance with the requirements of this Agreement; provide such information as BANKTEXT may request,
in order to carry out the Services, in a timely manner, and ensure that it is complete and accurate in all
material respects; provide (if applicable), access to Customer's premises and such office accommodations
and other facilities as may reasonably be required by BANKTEXT, for the purposes of performing the
Services; notify BANKTEXT of any laws, regulations, and/or statutes specific to Customer’s industry that
BANKTEXT will be required to know to fulfill their obligations under this Agreement; provide suitably
equipped and knowledgeable resource(s) to work with BANKTEXT to refine the requirements, design, build
and test the solution as per the scope of work section outlined in each SOW; provide the necessary
resources to participate in meetings/workshops/communications needed to provide the required data or
inputs necessary to deliver the contracted services (within a defined timeframe); take responsibility for the
content of any Customer data file, control access to the files, and maintain their backup and recovery; obtain
and maintain all necessary licenses and consents and comply with all applicable law in relation to the
Services to the extent that such licenses, consents, and law relate to Customer's business, premises, staff,
and equipment, in all cases before the date on which the Services are to start;
4.2 Customer failure and delay. Customer acknowledges that any failure or delay in complying with the
obligations described in this Section 4 may impact the estimated schedule and produce other effects as set
forth in Section 5 ("Change Order").
5. Change Orders.
5.1 Change Orders Procedure. If either party wishes to change the scope or performance of the Services, it
shall submit details of the requested change to the other party in writing in accordance with the notice
provisions in Section 13.2. BANKTEXT shall, within a reasonable time (not to exceed 30 days) after
receiving a Customer-initiated request, or at the same time that BANKTEXT initiates such a request, provide
a written estimate to Customer of: (a) the likely time required to implement the change; (b) any necessary
variations to the fees and other charges for the Services arising from the change; (c) the likely effect of the
change on the Services; (d) any other impact the change might have on the performance under this
Agreement; and (e) any other information reasonably requested by the Customer. 5.2 Change Orders
Agreement. Promptly after receipt of the written estimate, the parties shall negotiate and agree in writing on
the terms of such change (a "Change Order"). Neither party shall be bound by any Change Order unless
mutually agreed upon in writing in accordance with Section 13.6.
6. Term and Termination
6.1 Term. This Agreement shall commence as of the Effective Date and shall continue thereafter until the
completion of the Services under all SOWs, unless sooner terminated pursuant to this Section 6.
6.2 Termination for Cause. Either party may terminate this Agreement or any SOW, effective upon written
notice to the other party (the "Defaulting Party"), if the Defaulting Party: materially breaches this Agreement,
and such breach is incapable of cure, or with respect to a material breach capable of cure, the Defaulting
Party does not cure such breach within 30 days after receipt of written notice of such breach; or (i) becomes
insolvent or admits its inability to pay its debts generally as they become due; (ii) becomes subject,
voluntarily or involuntarily, to any proceeding under any domestic or foreign bankruptcy or insolvency law,
which is not fully stayed within 30 business days or is not dismissed or vacated within 30 days after filing;
(iii) is dissolved or liquidated or takes any corporate action for such purpose; (iv) makes a general
assignment for the benefit of creditors; or (v) has a receiver, trustee, custodian, or similar agent appointed by
order of any court of competent jurisdiction to take charge of or sell any material portion of its property or
business.
6.3 Effects of Termination or Expiration. Upon expiration or termination of this Agreement for any reason:
BANKTEXT shall promptly deliver to Customer all Deliverables (whether complete or incomplete) for which
Customer has paid. Each party shall (i) return to the other party all documents and tangible materials (and
any copies) containing, reflecting, incorporating, or based on the other party's Confidential Information, (ii)
permanently delete all of the other party's Confidential Information from its computer systems, and (iii) certify
in writing to the other party that it has complied with the requirements of this clause.
6.4 Survival. The rights and obligations of the parties set forth in this Section 6.5 and Section 1 (Definitions),
Section 8 (Intellectual Property Rights; Ownership), Section 9 (Confidential Information), Section 10
Representations and Warranties., Section 12 (Limitation of Liability), Section 6.4 Effects of Termination or
Expiration, and Section 13 (Miscellaneous), and any right or obligation of the parties to this Agreement
which, by its nature, should survive termination or expiration of this Agreement, will survive any such
termination or expiration of this Agreement.
7.1 General. In consideration of the provision of the Services by the BANKTEXT and the rights granted to
Customer under this Agreement, Customer shall pay the fees as follows: Time and Materials. For Services
provided on a time and materials basis, Customer shall pay fees (the "Fees") calculated in accordance with
BANKTEXT's daily/hourly fee rates as set forth in [the applicable SOW. Fixed Price. Where Services are
provided for a fixed price, the total Fees shall be the amount set out in the applicable SOW. 7.2 Expense
Reimbursement. Customer agrees to reimburse BANKTEXT for all actual, documented, and reasonable
travel and out-of-pocket expenses incurred by BANKTEXT in connection with the performance of the
Services; 7.3 Invoicing and Payment. All information regarding payment and invoices such as payment
terms and fines shall be set forth in the applicable SOW. Unless expressly provided otherwise in the SOW,
payments shall be paid prior to the execution of the Services.
7.4 Taxes. Customer shall be responsible for all sales, use, and excise taxes, and any other similar taxes,
duties, and charges of any kind imposed by any federal, state, or local governmental entity on any amounts
payable by Customer hereunder except for any taxes imposed on, or with respect to, BANKTEXT's income,
revenues, gross receipts, personnel, or real or personal property or other assets.
8. Intellectual Property Rights; Ownership.
8.1 Intellectual Property Rights. As between Customer and BANKTEXT, all Intellectual Property Rights
and all other rights in and to the Deliverables (except for any Confidential Information of Customer or
Customer Materials) and the Pre-Existing Materials shall be owned by BANKTEXT. BANKTEXT hereby
grants Customer and the Authorized Service Recipients a license to use all such rights to the extent
necessary to enable the Customer to make reasonable use of the Deliverables and the Services. 8.2
Ownership. Customer and its licensors are, and shall remain, the sole and exclusive owner of all right, title,
and interest in and to the Customer Materials, including all Intellectual Property Rights therein. BANKTEXT
shall have no right or license to use any Customer Materials except solely during the term of this Agreement
to the extent necessary to provide the Services to Customer. All other rights in and to the Customer Materials
are expressly reserved by Customer.
9. Confidential Information.
9.1 The Receiving Party agrees: not to disclose or otherwise make available Confidential Information of
the Disclosing Party to any third party without the prior written consent of the Disclosing Party; provided,
however, that the Receiving Party may disclose the Confidential Information of the Disclosing Party to its
and its Affiliates, and their officers, employees, consultants, and legal advisors who have a "need to know",
who have been apprised of this restriction, and who are themselves bound by nondisclosure obligations at
least as restrictive as those set forth in this Section 9; to use the Confidential Information of the Disclosing
Party only for the purposes of performing its obligations under the Agreement or, in the case of Customer, to
make use of the Services and Deliverables; and to immediately notify the Disclosing Party in the event it
becomes aware of any loss or disclosure of any of the Confidential Information of Disclosing Party.
9.2 Compelled disclosure. If the Receiving Party becomes legally compelled to disclose any Confidential
Information, the Receiving Party shall provide: (a) prompt written notice of such requirement so that the
Disclosing Party may seek, at its sole cost and expense, a protective order or other remedy; and (b)
reasonable assistance, at the Disclosing Party's sole cost and expense, in opposing such disclosure or
seeking a protective order or other limitations on disclosure. If, after providing such notice and assistance as
required herein, the Receiving Party remains required by Law to disclose any Confidential Information, the
Receiving Party shall disclose no more than that portion of the Confidential Information which, on the advice
of the Receiving Party's legal counsel, the Receiving Party is legally required to disclose and, upon the
Disclosing Party's request, shall use commercially reasonable efforts to obtain assurances from the
applicable court or agency that such Confidential Information will be afforded confidential treatment.
9.3 Nothing in this Agreement shall prevent either party from using any general methodologies or know-how
contained in the unaided memory of such party's personnel or those of its Affiliates developed or disclosed
under this Agreement, provided that in doing so it is not in breach of its obligations of confidentiality under
this section or using any Intellectual Property Rights of the other party or any of its Affiliates.
10.1 Mutual. Each party represents and warrants to the other party that: (a) it has the full right, power, and
authority to enter into this Agreement, to grant the rights and licenses granted hereunder and to perform its
obligations hereunder; and (b) when executed and delivered by such party, this Agreement will constitute
the legal, valid and binding obligation of such party, enforceable against such party in accordance with its
terms.
10.2 BANKTEXT. BANKTEXT represents and warrants to Customer that: (a) it shall perform the Services
in a professional and workmanlike manner and in compliance with all applicable laws, and shall devote
adequate resources to meet its obligations under this Agreement; (b) the Services and Deliverables shall
conform in all respects with the specifications and will be performed to Customer's reasonable satisfaction;
and (c) the Services and Deliverables, and Customer's use thereof, do not and will not infringe any third
party rights.
10.3 EXCEPT FOR THE EXPRESS WARRANTIES IN THIS SECTION 10, (A) EACH PARTY HEREBY
DISCLAIMS ALL WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE UNDER
THIS AGREEMENT, AND (B) BANKTEXT SPECIFICALLY DISCLAIMS ALL IMPLIED WARRANTIES OF
MERCHANTABILITY.
11. Indemnification.
11.1 General. Each party ("Indemnifying Party") shall indemnify, defend, and hold harmless the other party
("Indemnified Party") against any and all losses, damages, liabilities, deficiencies, claims, actions,
judgments, settlements, interest, awards, penalties, fines, costs (collectively, "Losses"), relating to any claim
of a third party arising out of or occurring in connection with: (a) bodily injury, death of any person or damage
to real or tangible, personal property resulting from Indemnifying Party's willful, fraudulent or negligent acts
or omissions; or (b) Indemnifying Party's negligence, willful misconduct, or material breach of this
Agreement, including but not limited to material breach of any representation or warranty made by
Indemnifying Party in this Agreement.
11.2 Intellectual Property Infringement. BANKTEXT shall defend, indemnify, and hold harmless the
Customer from and against all losses based on a claim that any of the Services or Deliverables or
Customer's receipt or use thereof infringes any Intellectual Property Right of a third party; provided, however,
that BANKTEXT shall have no obligations under this Section 11.2 with respect to claims to the extent
arising out of (a) any instruction, information, designs, specifications, or other materials provided by
Customer in writing to BANKTEXT; (b) Customer's use of the Deliverables in combination with any
materials or equipment not supplied to Customer or specified by BANKTEXT in writing; or (c) any
modifications or changes made to the Deliverables other than by BANKTEXT.
13. Miscellaneous.
13.1 Independent Contractors. The parties are independent contractors, and nothing contained in this
Agreement shall be construed as creating any agency, partnership, joint venture or other form of joint
enterprise, employment, or fiduciary relationship between them. Neither party shall be authorized to contract
for or bind the other party in any manner whatsoever
13.2 Notices. Except as otherwise set forth herein, all notices under this Agreement and its appendices
shall be by email. Notices to customer shall be addressed to addresses set forth on the SOW, although
BANKTEXT may instead choose to provide notice to Customer through the Services (e.g., a bot
notification). Notices to BANKTEXT should be sent to legal@BANKTEXT and include in copy BANKTEXT’s
primary point of contact defined in the SOW. A notice will be deemed to have been duly given (a) the day
after it is sent, in the case of a notice sent through email; and (b) the same day, in the case of a notice sent
through the Services. Customer must keep all of its account information with BANKTEXT current.
13.3 Entire Agreement; Order of Precedence. This Agreement, together with all schedules, exhibits, and
Statements of Work, and any other documents incorporated herein by reference, constitutes the sole and
entire agreement of the parties to this Agreement with respect to the subject matter contained herein, and
supersedes all prior and contemporaneous understandings and agreements, both written and oral, with
respect to such subject matter. In the event of any conflict between the terms and provisions of this
Agreement and those of any schedule, exhibit or Statement of Work, the following order of precedence shall
govern: (a) first, this Agreement, exclusive of its exhibits and schedules; (b) second, the applicable
Statement of Work; and (c) third, any exhibits and schedules to this Agreement.
13.4 Assignment and Subcontractors. This Agreement shall be assignable by BANKTEXT. Customer
acknowledges that from time to time, Rocket. Chat may enlist a subcontractor to perform some of the
Services provided to the Customer. In the event services to be performed as outlined in this Agreement are
subcontracted to a third party, the third party shall accept responsibility for the performance of such activities.
BANKTEXT will cease to bear any responsibility related to the performance of subcontracted services;
however BANKTEXT will act as a liaison between the subcontractor and Customer, to monitor the
performance of services to be provided by any third party.
13.5 No Third-Party Beneficiaries. This Agreement is for the sole benefit of the parties hereto and their
respective successors and permitted assigns and nothing herein, express or implied, is intended to or shall
confer upon any other Person any legal or equitable right, benefit, or remedy of any nature whatsoever,
under or by reason of this Agreement.
13.6 Amendment and Modification; Waiver. As our business evolves, we may change this Agreement. If
we make a material change to these provisions, we will provide you with reasonable notice prior to the
change taking effect either by emailing the email address associated with your account or by messaging you
through the Services. You can review the most current version of the Customer Terms at any time by visiting
this page: https://docs.BANKTEXT/legal/master-service-agreement-for-professional-services. Any material
revisions to these Customer Terms will become effective on the date set forth in our notice, and all other
changes will become effective on the date we publish the change. If you use the Services after the effective
date of any changes, that use will constitute your acceptance of the revised terms and conditions. No failure
to exercise any right, remedy, power or privilege ("Rights") arising under this Agreement shall operate or be
construed as a waiver thereof. No single or partial exercise of any Right hereunder precludes any other or
further exercise thereof or the exercise of any other Right.
13.7 Severability. No invalidity, illegality, or unenforceability of any provision herein in any jurisdiction, shall
affect any other term or provision of this Agreement or invalidate or render such provision unenforceable in
any other jurisdiction. If any provision is determined to be invalid, illegal, or unenforceable, the parties hereto
shall negotiate in good faith to modify this Agreement so as to effect the original intent of the parties as
closely as possible.
13.8 Governing Law: Submission to Jurisdiction. This Agreement shall be governed by the laws of the
State of Delaware and of the United States, without regard to any conflict of law provisions, except that the
United Nations Convention on the International Sale of Goods and the provisions of the Uniform Computer
Information Transactions Act shall not apply to this Agreement. Customer hereby consent to the jurisdiction
of the state and federal courts of Delaware. If this Agreement is translated into a language other than English
and there are conflicts between the translations of this Agreement, Customer agrees that the English version
of this Agreement shall prevail and control.
13.9 Non-Exclusivity. BANKTEXT retains the right to perform the same or similar type of services for third
parties during the term of this Agreement.
13.10 Force Majeure. Neither Party will be liable for nonperformance or delays caused by acts of God,
wars, riots, strikes, fires, floods, hurricanes, earthquakes, government restrictions, terrorist acts or other
causes beyond its reasonable control. In addition, BANKTEXT shall have no liability for any failure or delay
of performance by BANKTEXT that is caused by or results from any failure or delay of performance by the
Customer of any obligations it is required to undertake or deliverables it is required to provide under this
Agreement, an SOW or any applicable Supplement.
13.11 Equitable Relief; Cumulative Remedies. Each party acknowledges that a breach of Section 8
(Intellectual Property Rights; Ownership) or Section 9 (Confidentiality) may cause the non-breaching party
irreparable damages, for which an award of damages would not be adequate compensation. In the event of
such breach or threatened breach, the non-breaching party will be entitled to seek equitable relief. Except as
expressly set forth in this Agreement, the rights and remedies under this Agreement are cumulative and in
addition to any other rights or remedies available at law or in equity or otherwise.
13.12 Headings. The headings in this Agreement are for reference only and shall not affect the
interpretation of this Agreement.
13.13 Counterparts. This Agreement may be executed in counterparts, each of which shall be deemed an
original, but all of which together shall be deemed to be one and the same agreement. A signed copy of this
Agreement delivered by facsimile, email or other means of electronic transmission shall be deemed to have
the same legal effect as delivery of an original signed copy of this Agreement.
Code of Conduct for our services
Applicable to the Server hosted by us (https://open.BANKTEXT)
BANKTEXT provides numerous spaces for our community to interact and experience our product. Among
these are: Open.BANKTEXT, an open chat community for bringing people together and to showcase
BANKTEXT´s community edition. In addition, new features are tested on the server on a regular basis.
github.com/RocketChat, our source code repositories where we discuss issues and plan new features
Forums.BANKTEXT, our webforum to announce new features and provide ways for direct interaction with our
developers
Introduction
The main objective of the BANKTEXT community spaces is bringing people together to discuss and
experience BANKTEXT - our awesome communication platform. This Code of Conduct is mainly written in
mind for Open.BANKTEXT, but in its spirit will be applied to other BANKTEXT community spaces as well.
When new visitors enter a channel, you should acknowledge their arrival especially if you're engaged in
social chit-chat / passing time. Failure to do so is likely to result in them leaving the channel feeling
unwelcome.
You should try to minimize the chances of conflict by being open-minded and accepting of others.
Understand that we each have a unique set of values, and we are all entitled to our own opinions.
Feel free to share your views on someone else's problem as an outsider, but avoid using excessive force,
and don't expect your thoughts and ideas to be accepted all of the time.
We're mainly an English speaking community but welcome all nationalities. If you find yourself speaking
primarily in a different language in an open channel or discussion, please PM that person to continue the
conversation in a separate channel.
Unwanted behavior
Posting of links (URLs) to offensive material, sites hosting malware, initiating downloads or promoting
illegal activities
Flooding the chat, spamming, multiple repeats of the same or slightly modified messages
Reregistering under another account after you have been banned and still under a ban period
Depending on the severity of the misbehavior, users can get banned without warning or be issued a
warning. Should administrators deem a subject matter to be inappropriate for the channel and / or the current
audience, they may at their discretion make contact via Private Message, making clear any requirement to
cease discussing the topic, or - as per their permission level - ban the user. A ban may be temporary (in form
of a ban period) or permanent. In addition, the server administrator has the right to remove your user
account.
When being corrected by an administrator, please do not argue with them in the main chat. You should
request a PM session to help avoid conflict and keep the involvement of others to a minimum.
Attacking administrators in a channel will likely result in a ban. Any genuine visitor should respect their
decisions - they have nothing to gain from issuing bans / mutes and are doing so to the best of their ability,
on behalf of the community.
Administrators may also choose to request users to leave if they're deemed to be a risk to the safety of the
general users / guests within the channel. Not adhering to the request will result in manual removal;
If you believe that an administrator has misused their authority and you have complied 100% with the rules
documented on this page, please forward the following details to support@BANKTEXT, including the
following information:
administrator's open.BANKTEXT nickname;
What you believe they have done that demonstrates an abuse of power;
Associated dates and times - required to review log files etc.
Note that it can take some time to review log files and liaise with the administrator team, so please don't
expect an immediate response.
In case of a ban period issued, you are welcome to return to the channel once your ban period expires, but
please be mindful of the reason(s) you got banned, abide by the rules and take into account any
administrator feedback received.
Censorship and Harmful Content
BANKTEXT is built to be an open and free communication platform. We want everyone to be able to run it
and use our platform freely, and to improve people's lives. Today, our platform is used for myriads of different
purposes, according to how our users deem it fit for their purposes.
We also do not want to be the judges on what constitutes the “right” way to use BANKTEXT. Moral values
differ from person to person, and laws often collide over highly debated issues such as free speech. We
believe the users of BANKTEXT know best how to use our platform to their and everyone else's benefit.
Sometimes, our organization receives a request from a law enforcement body with the aim to produce a
certain set of user data to aid in a criminal investigation. Or there might be a request to take down content
that has been deemed illegal. We treat these requests very carefully and - where we are able and obliged to
help - bring this to the attention of the administrator of the instance. Oftentimes, we cannot do anything,
though.
That is because we have no way to access or control self-managed BANKTEXT servers. Self-managed
means that BANKTEXT is installed on a server we do not own. Our platform is open source and has no
backdoors or whatsoever to allow us to access your installations remotely.
In case of BANKTEXT instances hosted by us for others, we forward reports to the respective administrator
and if determined an obvious breach of terms of service we can terminate the hosting. Where the request is
about content on a server directly under our control, such as our Open Server, you can contact us directly
under legal@BANKTEXT and we will take action.
On the same side, we also see that many organizations using our platform are subject to strict content
moderation requirements. We are already providing various features for these organizations to administer
their instance. For example, notifications for keywords can help to identify potential abuse quickly.
Administrators that want to use these features can use them but are not forced by us to use them. Ultimately,
the administrator is the one responsible for what content is being processed within their BANKTEXT
instance.
With this being the current situation, we wanted to share our stance on how we plan to deal with addressing
harmful content soon.
Our principles
Our policy principles in this matter are:
We do not endorse illegal or unethical usage of BANKTEXT in any way. We understand these terms to
be relative and to be interpreted in their local context.
We want BANKTEXT to be a platform that allows for free and unrestricted communication. We do not
plan or want to build any kind of backdoor, censorship tool, or hidden remote control mechanism into
BANKTEXT.
Administrators are the ones in control over their installation. Administrators are responsible for
configuration and content moderation decisions within their instance.
We comply with valid local or international law enforcement requests to remove content or produce user
data and inform our users affected by these requests.
On our Open Server run by us, we want to provide users a positive and fun environment to test our
platform and get in touch with us.
While none of these principles are absolute, they are guiding our actions.
If you encounter another BANKTEXT instance that is not hosted by us and which you think contains illegal
or otherwise harmful content, we recommend you reach out to the administrator of that instance to moderate
the related content.
If you do not know who your administrator is, you can check the DNS records for contact information. For
instances that are hosted by us, we can contact the administrator on your behalf. We have published a tool
where you can find out if a BANKTEXT instance is hosted by us (server lookup). This is not always clear
because no one is obliged to use the BANKTEXT logo or name.
As an ultimate resort, you may want to contact the law enforcement body in charge of investigating the
potential offense in question. They will tell you the legal remedies available and the potential next steps to
take.
For administrators: If you are an administrator, you might be interested in moderating the content that users
create or put in your instance. Notable features that can help you with that are:
Making use of the “moderator”-permission in channels to appoint individuals to purge or modify
inappropriate messages
Turning on GoogleVision integration for image uploads, which has options to block images containing
graphic or adult content
All of these features are optional to choose, so you have the total flexibility in what to apply in your specific
case. Let us know which kind of features you are currently missing - but would find useful - by opening
feature requests in our Github repository.
For law enforcement: We sometimes receive requests from law enforcement to remove content from
certain BANKTEXT instances. We have published guidelines for law enforcement, how we deal with
requests and what to consider before submitting a request to us as the legal entity behind BANKTEXT.
In summary: In most cases, we cannot remove the majority of content, because it is outside of our control
on servers we do not have (and do not want) access to. If the content in question is on our Open Server, we
remove it if it is a breach of our code of conduct or if we are compelled by a law enforcement request. For
servers hosted by us and under control of our customers, we remove content after notifying and in
collaboration with the customer or directly as a violation of our terms of service. For questions or contact,
please use legal@BANKTEXT
For reporters and media requests: Are you researching for an article about BANKTEXT or where
BANKTEXT plays a role?
We would love to explain to you our stance in detail or get a chance to comment before you publish your
article. Please reach out to contact@BANKTEXT to get a comment from us on the topic in question.
Guidelines for Law Enforcement
These guidelines are intended for law enforcement authorities seeking information about BANKTEXT
accounts. More general information is available in our Privacy Policy and Terms of Service.
What is BANKTEXT?
BANKTEXT is a free and open source team chat collaboration platform that allows users to communicate
securely in real-time on web, desktop or mobile and to customize their interface with a range of plugins,
themes and integrations with other key software. Anyone in the world can download and run a BANKTEXT
server at any time.
As a platform, BANKTEXT can be deployed various ways. The interaction on the platform between users
happens via user accounts.
Deployment options
In short, there are three relevant deployment options of BANKTEXT, that affect the process for requesting
information:
1. servers hosted by us (BANKTEXT Technologies Corp.) and managed by us directly (such as our
community servers)
2. servers hosted by us, but managed by a customer (our hosted offering)
3. servers hosted by a third party (private servers)
For clarification purposes: a server, on which BANKTEXT is running, **** can contain various
instances of BANKTEXT, depending on the configuration. An instance of BANKTEXT is each a
unique community of users communicating with each other. In the following, we refer to servers,
that run whichever number of BANKTEXT instances (1 or more).
https://open.BANKTEXT
Any other BANKTEXT server you access is not operated by BANKTEXT Technologies Corp. and is
subjected to the usage warning above.
That said, BANKTEXT Technologies Corp. provides a cloud service for hosting BANKTEXT servers. The
user data, messages, and files on those servers are subject to our Terms of Use.
To know if a server belongs to BANKTEXT cloud, please contact us, use the aforementioned server lookup
or use domain information systems.
BANKTEXT does not keep a log of IPs used to access either Community Server or BANKTEXT
Cloud servers.
Community Server
When someone registers an account at our community server, hosted at https://open.BANKTEXT, we ask
for a name, an e-mail and a password, and they have to verify their e-mail address. BANKTEXT does not
monitor any public or private channels activities other than for the company's own use, such as the #general,
#support and #dev public channels.
BANKTEXT Cloud
When someone signs up for a BANKTEXT Cloud server, we ask for a name, e-mail, workspace name and
domain they'd like to use. The e-mail is then verified before the server is deployed. Every message and file
sent is stored within BANKTEXT cloud servers and databases are hosted with a third-party hosting provider.
BANKTEXT does not actively scan the content activity in Cloud servers.
Private Servers
You need to be aware that any private BANKTEXT server may be operated by arbitrary businesses, groups
or individuals with no relationship to BANKTEXT Technologies Corp.
In particular:
BANKTEXT Technologies Corp. do not have access to these servers.
BANKTEXT Technologies Corp. does not and cannot control or regulate how these servers are
operated.
BANKTEXT Technologies Corp. cannot access, determine or regulate any contents or
information flow on these servers.
Administrators of private servers may opt-in to register their servers for additional connected services by
BANKTEXT (e.g. push notifications for mobile devices).
The registration requires a working email address, a name or pseudonym and the server URL. More
information is generally not available. We do not store content that passes through our gateways to provide
the connectivity services.
firstname.lastname
These accounts are unique to the deployed server of the BANKTEXT platform. So if information is
requested for an individual user account of the platform, this information goes only as far as the scope of that
specific, individual server of BANKTEXT.
To identify the proper user account, the specific server therefore must be named as well (generally in
form of the URL).
The aforementioned restrictions with regards to the deployment options apply to users as well. User
information cannot be produced by us for user accounts of private BANKTEXT servers. Requests for such
information should be targeted at the administrator of the private server. If the administrator is unknown, the
request should be targeted at the owner of the DNS record of the private server domain.
Preservation requests
We accept requests from law enforcement to preserve records, which constitute potentially relevant
evidence in legal proceedings. We will preserve, but not disclose, a temporary snapshot of the relevant
account records for 90 days pending service of valid legal process.
have a valid return official email address; and be sent on law enforcement letterhead;
include the server URL of the subject offense and any other information that may help us identify the
offending server and/or user.
We may honor requests for extensions of preservation requests, but encourage law enforcement agencies to
seek records through the appropriate channels in a timely manner, as we cannot guarantee that requested
information will be available.
Law enforcement and government preservation requests for user information must be submitted to our legal
team at legal@BANKTEXT. You can find further instructions below.
Non-public information about BANKTEXT users will not be released to law enforcement except in response
to appropriate legal process such as a subpoena, court order, or other valid legal process – or in response to
a valid emergency request, as described below.
Requests for the contents of communications (e.g., messages, files) require a valid search warrant or
equivalent from an agency with proper jurisdiction over BANKTEXT.
Yes. BANKTEXT's policy is to notify users of requests for their BANKTEXT account information, which
includes a copy of the request, as soon as we are able (e.g., prior to or after disclosure of account
information) unless we are prohibited from doing so (e.g., an order under 18 U.S.C. § 2705(b)). We ask that
any non-disclosure provisions include a specified duration (e.g., 90 days) during which BANKTEXT is
prohibited from notifying the user. Exceptions to user notice may include exigent or counterproductive
circumstances, such as emergencies regarding imminent threat to life, child sexual exploitation, or terrorism.
Requests for user account information in accordance with applicable law, are required to include the
following information:
Include the BANKTEXT server URL (!) and @username of the subject BANKTEXT account in
question;
Provide details about what specific information is requested (e.g., messages, files, account information)
and its relationship to your investigation;
Include a valid official email address (e.g., name@agency.gov) so we may get back in touch with you
upon receipt of your legal process;
Be issued on law enforcement letterhead.
Law enforcement and government requests for user information should be submitted through
legal@BANKTEXT. You can find further instructions below.
Production of records
Unless otherwise agreed upon, we currently provide responsive records in electronic format (i.e., text files
that can be opened with any word processing software such as Word or TextEdit).
Records authentication
The records that we produce are self-authenticating. Additionally, the records are electronically signed to
ensure their integrity at the time of production. If you require a declaration, please indicate it in your
submission.
Cost reimbursement
BANKTEXT may seek reimbursement for costs associated with information produced pursuant to legal
process and as permitted by law (e.g. under 18 U.S.C. §2706).
BANKTEXT evaluates emergency disclosure requests on a case-by-case basis in compliance with relevant
law (e.g., 18 U.S.C. § 2702(b)(8)). If we receive information that provides us with a good faith belief that there
is an exigent emergency involving the danger of death or serious physical injury to a person, we may
provide information necessary to prevent that harm, if we have it.
If there is an exigent emergency that involves the danger of death or serious physical injury to a person that
BANKTEXT may have information necessary to prevent, law enforcement officers must submit an
emergency disclosure request through legal@BANKTEXT.
The specific information requested and why that information is necessary to prevent the emergency;
The signature of the submitting law enforcement officer; and
All other available details or context regarding the particular circumstances (e.g. names of channels,
timeframe for which information is requested, etc.)
Contact information
Our address details are:
BANKTEXT Technologies Corp. 251 Little Falls Drive, Wilmington, DE, 19808
Receipt of correspondence is for convenience only and does not waive any objections, including the lack of
jurisdiction or proper service.
To find out if a BANKTEXT server is hosted by us or by a third party (e.g. if you want to contact the server
administrator), use this lookup form:
https://BANKTEXT/server-lookup
DMCA Policy
If you believe that material or content residing on or accessible through the services infringes your copyright
(or the copyright of someone whom you are authorized to act on behalf of), please send a notice of copyright
infringement containing the following information to BANKTEXT’s Designated Agent to Receive Notification
of Claimed Infringement (our “Designated Agent,” whose contact details are listed below):
(a) A physical or electronic signature of a person authorized to act on behalf of the owner of the copyright
that has been allegedly infringed;
(b) Identification of works or materials being infringed;
(c) Identification of the material that is claimed to be infringing including information regarding the location of
the infringing materials that the copyright owner seeks to have removed, with sufficient detail so that
BANKTEXT is capable of finding and verifying its existence;
(d) Contact information about the notifier including address, telephone number and, if available, email
address;
(e) A statement that the notifier has a good faith belief that the material identified in (1)(c) is not authorized by
the copyright owner, its agent, or the law; and
(f) A statement made under penalty of perjury that the information provided is accurate and the notifying
party is authorized to make the complaint on behalf of the copyright owner.
(2) Once Proper Bona Fide Infringement Notification is Received by the Designated Agent.
Upon receipt of a proper notice of copyright infringement, we reserve the right to:
If the content provider believes that the material that was removed (or to which access was disabled) is not
infringing, or the content provider believes that it has the right to post and use such material from the
copyright owner, the copyright owner's agent, or, pursuant to the law, the content provider may send us a
counter-notice containing the following information to the Designated Agent:
(a) A physical or electronic signature of the content provider;
(b) Identification of the material that has been removed or to which access has been disabled and the
location at which the material appeared before it was removed or disabled;
(c) A statement that the content provider has a good faith belief that the material was removed or disabled as
a result of mistake or misidentification of the material; and
(d) Content provider's name, address, telephone number, and, if available, email address, and a statement
that such person or entity consents to the jurisdiction of the Federal Court for the judicial district in which the
content provider’s address is located, or, if the content provider's address is located outside the United
States, for any judicial district in which BANKTEXT is located, and that such person or entity will accept
service of process from the person who provided notification of the alleged infringement.
If a counter-notice is received by the Designated Agent, BANKTEXT may, in its discretion, send a copy of
the counter-notice to the original complaining party informing that person that BANKTEXT may replace the
removed material or cease disabling it in 10 business days. Unless the copyright owner files an action
seeking a court order against the content provider accused of committing infringement, the removed material
may be replaced or access to it restored in 10 to 14 business days or more after receipt of the counter-notice,
at BANKTEXT's discretion.
Marcelo Schmidt
marcelo.schmidt@BANKTEXT
Rua Jorge Fayet 757
Porto Alegre – RS – Brazil
91330-330
BANKTEXT privacy and security
BANKTEXT Privacy Policy
BANKTEXT Technologies Corp. ("us", "we", or "our") operates the https://BANKTEXT website, the
https://open.BANKTEXT community server, the Marketplace, incl. associated BANKTEXT Apps, BANKTEXT
´s Cloud Offering and the BANKTEXT mobile applications (the "Service").
This page informs you of our policies regarding the collection, use, and disclosure of personal data when
you use our Service and the choices you have associated with that data.
We use your data to provide and improve the Service. By using the Service, you agree to the collection and
use of information in accordance with this policy. Unless otherwise defined in this Privacy Policy, terms used
in this Privacy Policy have the same meanings as in our Terms and Conditions.
Summary
Definitions
Service
Service means the https://BANKTEXT website, the https://open.BANKTEXT community server, the
BANKTEXT Marketplace, incl. associated BANKTEXT Apps, the https://cloud.BANKTEXT service
offering, push notification gateways and the BANKTEXT mobile applications operated by BANKTEXT
Technologies Corp.
Personal Data
Personal Data means data about a living individual who can be identified from those data (or from those
and other information either in our possession or likely to come into our possession).
Usage Data
Usage Data is data collected automatically either generated by the use of the Service or from the
Service infrastructure itself (for example, the duration of a page visit).
Cookies
Cookies are small pieces of data stored on your device (computer or mobile device).
Data Controller
Data Controller means the natural or legal person who (either alone or jointly or in common with other
persons) determines the purposes for which and the manner in which any personal information are, or
are to be, processed.
For the purpose of this Privacy Policy, we are a Data Controller of your Personal Data.
Personal Data
While using our Service, we may ask you to provide us with certain personally identifiable information that
can be used to contact or identify you ("Personal Data"). Personally identifiable information may include, but
is not limited to:
Email address
First name and last name
Cookies and Usage Data
We may use your Personal Data to contact you with newsletters, marketing or promotional materials, and
other information that may be of interest to you, if you have provided consent to this processing or if we can
base this processing on a legitimate interest that is not overridden by your fundamental rights. You may in
the future withdraw that consent or object to receiving any, or all, of these communications from us by
following the unsubscribe link or instructions provided in any email we send or by contacting us.
Account Data
Some Services may allow or require that you register for a personalized account. Account data may include
in addition your account name, authentication information, registration date, contact information, payment
information, and any other information associated with your account.
Usage Data
We may also collect information that your browser sends whenever you visit our Service or when you
access the Service, incl. by or through a mobile device ("Usage Data").
This Usage Data may include information such as your computer's Internet Protocol address (e.g. IP
address), browser type, browser version, the pages of our Service that you visit, the time and date of your
visit, the time spent on those pages, unique device identifiers and other diagnostic data.
When you access the Service by or through a mobile device, this Usage Data may include information such
as the type of mobile device you use, the IP address of your mobile device, your mobile operating system,
the app version, the type of mobile Internet browser you use, unique device identifiers and other diagnostic
data.
As a byproduct of the usage data within a BANKTEXT instance, Administrators may choose to share
aggregated and therefore anonymous, non-personal data with us to help us learn more about how our
product is being used. This setting is described here. The information shared is the same information as is
shown on the "info"-page of the administration panel of an instance. E.g. these statistics sharing would
transmit the total # of channels, but it would not transmit the actual channel names, and so on, preserving
the privacy of your workspace. This is completely optional to use and can be activated and deactivated at
any time.
Location Data
We may use and store information about your location if you give us permission to do so (“Location Data”).
We use this data to provide features of our Service (only to allow you to share your location to another user
via BANKTEXT, if it was enabled by the administrator).
You can enable or disable location services when you use our Service at any time, through your device
settings.
App Data
When you use the Marketplace, you may choose to install Apps provided by BANKTEXT. These Apps
process data from your instance of BANKTEXT and therefore nonpersonal data, such as software version,
amount of users, and similar. Depending on the purpose and your actual usage of the App (e.g. enabling
certain features), Personal Data may however be processed. E.g. you enable an integration, which
processes your users' information. The description of the App will make the types of personal data
sufficiently clear as well as any potential deviations from this policy.
For Third-Party Apps on the Marketplace, the Vendor will provide you with a specific privacy policy that
governs his Third-Party App.
When you use our Services you may provide content into that service (e.g. upload file, send a message).
We use cookies and similar tracking technologies to track the activity on our Service and hold certain
information. We DO NOT track activity in your self-managed instances. We regularly monitor aggregated
activity data on our infrastructure, but it is not tracking of individual users in the sense of this paragraph,
which only occurs when we have a legitimate interest to do so (e.g. for security and compliance purposes).
We do perform regular tracking on our community server.
Cookies are files with a small amount of data which may include an anonymous unique identifier. Cookies
are sent to your browser from a website and stored on your device. Tracking technologies also used are
beacons, tags, and scripts to collect and track information and to improve and analyze our Service.
You can instruct your browser to refuse all cookies or to indicate when a cookie is being sent. However, if
you do not accept cookies, you may not be able to use some portions of our Service.
Preference Cookies. We use Preference Cookies to remember your preferences and various settings.
Security Cookies. We use Security Cookies for security purposes.
Distinction of data collection between Self Managed Workspaces and Hosted Workspaces
The following paragraph applies to data processing in BANKTEXT workspaces and is for clarification
purposes only. Self Managed workspaces and workspaces hosted by us differ in the kind of data we are
processing from you because, in the case of our hosted offering, all data put into the workspaces is
technically processed on our infrastructure.
There is also a difference between registered, self-managed workspaces (which consume services from
us) and unregistered, self-managed workspaces.
See the following table for a general distinction between the data that is processed in each case. Keep in
mind that this can differ in individual circumstances, such as cases where apps are installed on unregistered
workspaces via workarounds.
Self Managed (not Self Managed
Data type Hosted
registered) (registered)
no - content is not
yes - as part of using
processed, unless it
the hosted workspac
falls under the
on our infrastructure
aforementioned (e.g.
User content no End-to-end encrypte
the content of a push
content is only store
notification sent via our
in encrypted form.
gateway)
We collect and use your personal data to comply various legal and regulatory obligations, such as:
Anti-money laundering regulations and counter-financing of terrorism regulations, including Know Your
Customer (KYC) obligations.
Regulations relating to international financial sanctions and embargoes.
We also use your personal data to fulfill our legitimate interests, which include the following:
If processing of certain personal data requires your consent (e.g. cookies), we will inform you of this
including details of the specific processing activity and request your consent to such processing. You may
request to revoke your consent at any time.
Retention of Data
BANKTEXT Technologies Corp. will retain your Personal Data only for as long as is necessary for the
purposes set out in this Privacy Policy. We will retain and use your Personal Data to the extent necessary to
comply with our legal obligations (for example, if we are required to retain your data to comply with
applicable laws), resolve disputes, and enforce our legal agreements and policies.
BANKTEXT Technologies Corp. will also retain Usage Data for internal analysis purposes. Usage Data is
generally retained for a shorter period of time, except when this data is used to strengthen the security or to
improve the functionality of our Service, or we are legally obligated to retain this data for longer time periods.
Transfer of Data
Your information, including Personal Data, may be transferred to — and maintained on — computers located
outside of your state, province, country or other governmental jurisdiction where the data protection laws
may differ than those from your jurisdiction.
If you are located outside United States and choose to provide information to us, please note that we transfer
the data, including Personal Data, to the United States or other jurisdictions deemed not not have an
adequate level of data protection deemed by the competent authorities of your residence. BANKTEXT
Technologies Corp. will take all steps reasonably necessary to ensure that your data is treated securely and
in accordance with this Privacy Policy and no transfer of your Personal Data will take place to an
organization or a country unless there are adequate controls in place including the security of your data and
other personal information.
Disclosure of Data
Business Transaction
If BANKTEXT Technologies Corp. is involved in a merger, acquisition or asset sale, your Personal Data
may be transferred. We will provide notice before your Personal Data is transferred and becomes subject to
a different Privacy Policy.
Under certain circumstances, BANKTEXT Technologies Corp. may be required to disclose your Personal
Data if required to do so by law or in response to valid requests by public authorities (e.g. a court or a
government agency).
Legal Requirements
BANKTEXT Technologies Corp. may disclose your Personal Data in the good faith belief that such action is
necessary to:
To comply with a legal obligation
Your data can only be accessed by persons for whom it is necessary in relation to their work.
We may outsource our processing of personal data to external service providers. In such events we enter
into appropriate agreements with the providers in order to ensure that your personal data is processed in
accordance with this Privacy Policy and any applicable laws. We also have received internationally
recognised security certifications.
Although we do our best, given the nature of communications and information processing technology, we
cannot guarantee that Information during transmission through the Internet or while stored on our systems or
otherwise in our care will be absolutely safe from intrusion by others.
"Do Not Track" Signals Under California Online Privacy Protection Act
(CalOPPA)
We do not support Do Not Track ("DNT"). Do Not Track is a preference you can set in your web browser to
inform websites that you do not want to be tracked.
You can enable or disable Do Not Track by visiting the Preferences or Settings page of your web browser.
Your Rights
In accordance with applicable regulations and where applicable, you have the following rights:
To access: you can obtain information relating to the processing of your personal data, and a copy of
such personal data.
To rectify: where you consider that your personal data are inaccurate or incomplete, you can request
that such personal data be modified accordingly.
To erase: you can require the deletion of your personal data, to the extent permitted by law.
To restrict: you can request the restriction of the processing of your personal data.
To object: you can object to the processing of your personal data, on grounds relating to your particular
situation. You have the right to object to the processing of your personal data for direct marketing
purposes, which includes profiling related to such direct marketing.
To withdraw your consent: where you have given your consent for the processing of your personal
data, you have the right to withdraw your consent at any time.
To data portability: where legally applicable, you have the right to have the personal data you have
provided to us be returned to you or, where technically feasible, transferred to a third party.
If you wish to exercise the rights listed above, please send your request to our Data Protection Office, the
contact information of which is provided at the end of this Privacy Policy.
Please include a scan/copy of your proof of identity for identification purposes when required.
In accordance with applicable regulations, in addition to your rights above, you are also entitled to lodge a
complaint with the competent supervisory authority.
These third parties have access to your Personal Data only to perform these tasks on our behalf and are
obligated not to disclose or use it for any other purpose.
Subprocessors
We employ subprocessors to process personal data. The current list of subprocessors can be found here.
Analytics
We may use third-party Service Providers to monitor and analyze the use of our Service.
Google Analytics
Google Analytics is a web analytics service offered by Google that tracks and reports website traffic.
Google uses the data collected to track and monitor the use of our Service. This data is shared with
other Google services. Google may use the collected data to contextualize and personalize the ads of its
own advertising network.
For more information on the privacy practices of Google, please visit the Google Privacy & Terms web
page: https://policies.google.com/privacy?hl=en
Firebase
Firebase is analytics service provided by Google Inc.
You may opt-out of certain Firebase features through your mobile device settings, such as your device
advertising settings or by following the instructions provided by Google in their Privacy Policy:
https://policies.google.com/privacy?hl=en
We also encourage you to review the Google's policy for safeguarding your data:
https://support.google.com/analytics/answer/6004245. For more information on what type of information
Firebase collects, please visit please visit the Google Privacy & Terms web page:
https://policies.google.com/privacy?hl=en
We have no control over and assume no responsibility for the content, privacy policies or practices of any
third party sites or services.
Children's Privacy
Our Service does not address anyone under the age of 18 ("Children").
We do not knowingly collect personally identifiable information from anyone under the age of 18. If you are a
parent or guardian and you are aware that your child has provided us with Personal Data, please contact us.
If we become aware that we have collected Personal Data from children without verification of parental
consent, we take steps to remove that information from our servers.
With regards to some of our Cloud Products, Customers have certain options to select the processing
location of data and to configure the privacy-relevant settings of the instance. If you are the customer of one
of these instances, you can contact us and get more information on where your instance is running.
Where required, we also offer to sign Standard Contractual Clauses approved by the European Commission
to guarantee an adequate level of data protection or other mechanisms relevant for the Customer.
The amount of Personal Data we process with our Cloud Offerings is limited to what the Customer and his
users enter into the Service. In the cloud offering, we will not process the personalized cookie or analytics
data described above. The purposes of processing the data are strictly limited to providing and improving
the Service and in accordance with the Data Controller´s instructions. We never access workspace data (i.e.
the actual content the customer is entering in his instance), unless the customer asks us to in form of a
support request, we are bound by a valid law enforcement request or to protect our own interests, such as
investigating potential abuse of the service.
Once your usage of our cloud offering ceases, we will remove all your data, including backups, after a short
grace period - or immediately, if you tell us to.
We will let you know via email and/or a prominent notice on our Service, prior to the change becoming
effective and update the "effective date" at the top of this Privacy Policy.
You are advised to review this Privacy Policy periodically for any changes. Changes to this Privacy Policy
are effective when they are posted on this page.
Contact Us
If you have any questions about this Privacy Policy, please contact us:
We have updated this policy. For the previous version of this policy, please expand the section below.
The list below identifies sub-contractors (sub-processors) that may be engaged by BANKTEXT to Process
personal data during the provisioning of our Services.
What is a Subprocessor
Due Diligence
The following entities are members of the BANKTEXT Group. Accordingly, they function as sub-processors
to provide the Services.
Objecting to a subprocessor
You may object to a subprocessor by submitting your objection by email to privacy@BANKTEXT with the
subject line “Subprocessor Objection," along with your name, company name, name of the BANKTEXT
service, name of the subprocessor, and objectively justifiable grounds for objection unless otherwise
provided for in your service agreement with BANKTEXT which terms control.
For more information on BANKTEXT's privacy practices, please visit our Privacy Policy. If you have
questions regarding this page, please get in touch with us at privacy@BANKTEXT.
BANKTEXT-Subprocessors-list-01-05-2023.pdf 138KB
PDF
Subprocessors-list-10-23-20.pdf 50KB
PDF
Privacy Policy Facebook Messenger
We use your data to provide and improve the Service. By using the Service, you agree to the collection and
use of information in accordance with this policy. Unless otherwise defined in this Privacy Policy, the terms
used in this Privacy Policy have the same meanings as in our Terms and Conditions.
We have created a general information security policy and specific policies for related topics and are
working to put them in place. These policies are necessary to set up secure processes and demonstrate our
compliance with industry standards towards our customers. You can also find the annual acknowledgment
forms here.
In case of any questions, contact the security team. More information on this page
Do you want a short summary? You can find a security one pager here!
Policy Acknowledgment, an acknowledgment for our current policies. Mandatory to complete annually
by all employees
Security configuration, a checklist to set up a basic secure configuration of your tools. Mandatory to
complete annually by all employees.
Purpose
BANKTEXT places a great emphasis on protecting its information. Such information includes e.g.
information we manage on behalf of our customers, personnel files, our intellectual property.
At BANKTEXT, we aim to ensure at all times that information we manage is appropriately secured to protect
against the consequences of breaches of confidentiality, failures of integrity or interruptions to the availability
of that information.
The protections we apply to information assets will be in proportion to the value and sensitivity of the
information, and will balance the sensitivity of the information against the cost of controls, the impact of
the controls on the effectiveness of business operations and the risks against confidentiality, integrity
and availability of the information
We will ensure that these controls are accepted by all employees, vendors, service providers,
representatives and associates of our company who may have access to our information. This includes
ensuring that all personnel at all levels are aware of, and are held accountable for safeguarding
information assets
This information security policy provides management direction and support for information security across
the organisation. Specific, subsidiary information security policies, procedures and guidelines are
considered an integral part of this information security policy, because only when followed in its entirety, we
can ensure the objectives of this policy are met. This policy has been ratified by BANKTEXT´s management
team and forms part of its policies and procedures. It is applicable to and will be communicated to our staff,
contractors, students and other relevant parties.
Responsibilities
Everyone handling BANKTEXT information has the responsibility to keep the information safe, no matter
where the information is located. This includes our staff members, contractors, students, etc., but also our
suppliers (e.g. those that provide us with our tools to work) and other recipients of that information.
To determine the appropriate levels of security measures applied to information systems, a process of risk
assessment is carried out to identify the probability and impact of security failures.
To manage information security within the organisation an information security oversight committee is
established, chaired by BANKTEXT´s Security Lead and consisting of senior members of our relevant
teams. The objective of this committee is to ensure that there is clear direction and visible management
support for security initiatives. This oversight group shall promote security through appropriate commitment
and adequate resourcing.
An information security working party, comprising management representatives from all relevant parts of the
organisation, shall devise and coordinate the implementation of information security controls. The
responsibility for ensuring the protection of information systems and ensuring that specific security
processes are carried out shall lie with the head of the department managing that information system.
Specialist advice on information security is available throughout the organisation. Any member of the
organization can contact his manager or directly BANKTEXT´s Security Lead.
BANKTEXT will establish and maintain appropriate contacts with other organisations, law enforcement
authorities, regulatory bodies, and network and telecommunications operators.
Violations of our policies will be handled in accordance with the severity of the violation and applicable
rules and regulations, including up to termination of contract for severe violations.
Review
This policy is reviewed and updated regularly to ensure that it remains appropriate in the light of any
relevant changes to the law, our other policies or contractual obligations. We will inform relevant parties
about the updates.
The implementation of the information security policy shall be reviewed independently of those charged with
its implementation.
Organization
We maintain a RASCI-chart that contains the responsibilities around information security. Conflicts of
interest in these responsibilities must be avoided and tasks that create these conflicts be assigned to
different persons. Where this is not possible, compensating controls (e.g. four-eyes principle) should be
considered.
The roles of data protection officer and security lead are currently taken by one person and cases of
conflict of interest will be raised to the management team to resolve.
The company maintains relevant contacts with authorities and agencies, those relevant for BANKTEXT
being mostly:
In project management, the project leads are responsible to ensure security is properly addressed in a
project.
Personnel Security
All personnel is screened before entering a position and subject to a Terms of employment, including a duty
of confidentiality. The screening process is in relation to the applicable laws and regulations as well as the
requirements of the position. All personnel is subject to contractual terms that describe their duties. The
Information Security Team ensures that all personnel is aware of BANKTEXT´s Security policies. Personnel
that is leaving BANKTEXT must certify that all assets have been returned to the company and then will be
de-registered from the user directories.
The details of these processes are implemented and the records kept by the Human Resources Team.
Asset Management
All assets must be inventoried. An asset is something of value for BANKTEXT (e.g. information itself, a
device, intellectual property). We maintain a list of all devices and all software used, including additional
information relevant per type of asset. References to sublists for assets (e.g. virtual machine inventories,
mobile device lists) are allowed and should be referenced. The amount of effort needed to maintain a
detailed list of assets should correspond to the criticality of the asset.Assets must be returned to BANKTEXT
once an owner leaves the organization. Ownership of an asset and the risks associated with an asset are
separated to focus on overarching risk mitigation without boundaries between assets.
Scope:
This data classification policy applies to all data and to all user-developed data sets and systems that may
access these data, regardless of the environment where the data reside (including cloud systems, servers,
personal computers, mobile devices, etc.). The policy applies regardless of the media on which data reside
(including electronic, microfiche, printouts, CD, etc.) or the form they may take (text, graphics, video, voice,
etc.) Your private opinion, e.g. what you share on social media under your personal name, is not in scope of
this policy. You should always make clear if you are posting in the name of BANKTEXT or privately, if the
context leaves room for ambiguity.
Classifications:
All data you create, modify, receive or otherwise process in connection with BANKTEXT, must be handled
confidentially and protected according to the risk related to it. (Confidential Data). Your NDA includes more
details on what is considered confidential and what not. We do not distinguish between various levels of
confidentiality (like secret, top secret, super secret, ...).
An exception to confidentiality of data applies when the data in question is specifically targeted at a broader
audience outside the organization (e.g. blog posts, webinars, public source code). This data is classified as
"public". (Public Data).
In case a customer has a different way of classifying data and we are required to follow the customer's
classification scheme (either by contract or because it is custom), then the customer classification scheme
applies. (Customer Data Classification)
Unless stated otherwise, the creator of data is considered its owner and has to ensure the provisions of this
policy are followed. Our general policy is that access to data is denied by default within the company, unless
the owner has authorized access to it (e.g. to an individual, to a role or to a group of individuals). This
granting or changing of access must be logged and the access control lists regularly reviewed by the owner.
This also means we follow the principle of discretionary access control, meaning that owners of data grant
access to this data by themselves.
Confidential data: We generally do not tag or otherwise mark confidential information. Instead we store
information in secure repositories and grant access to information only when there is a legitimate need to it
("need-to-know"-access). Unauthorized access must be prevented with the features of the tools you are
using. E.g. you should set links to a file with the correct sharing permission. Before sharing confidential data
with individuals outside the BANKTEXT organization, an NDA must be signed. This NDA signature is the
responsiblity of the HR team for employees and contractors and of the Sales team for potential clients and
customers. In case you are in doubt of the existence of an NDA, contact these teams respectively before
sharing confidential data. For confidential information shared from us to customers or other external parties
(e.g. a slidedeck), you must tag it with the BANKTEXT logo to indicate its origin and minimize intellectual
property infringement. Where the context warrants an additional note to the recipient, you should consider
putting a footer like "Confidential material. Do not reproduce" on your document. Secure ways of sharing
data (e.g. PGP-encrypted mailing, end-to-end encrypted channels on BANKTEXT) should be preferred. For
sending confidential material via hardcopy, only use legitimate mail services and avoid marking that draws
attention to the content of the package.
Public data: Public data is also not marked specifically, instead it is characterized as being public when you
put it on a place where the intended audience can access it (e.g. on our website or a public GitHub
repository). To distinguish public data and confidential data, consider where it is being placed. Consider
also that all data you put on the web is potentially replicated in other places (e.g. wayback machine,
reupload on youtube, etc.) so be sure to check in advance if the data in question is really intended to be
public.
Customer Data Classification: For information that is received from customers or regularly exchanged with
them (e.g. slidedecks, RFQs, etc.) stick to the customer´s classification method and mark it appropriately.
Other handling and marking methods depending on tools and systems you use: When you work with
specific tools and systems, these systems often come with their own classification schemes (e.g. GitHub
Public vs Private Repositories) and mechanisms (access control lists, metadata, etc.). You should use these
classification mechanisms in the spirit of this policy and the context of how you use the system.
Deletion of data:
Once data is considered no longer necessary, it should be deleted. Keep in mind that we are required to
keep certain data for a minimum or maximum amount of time (e.g. for legal reasons). Use secure methods
for deleting data, e.g. DBAN Contact the security team in case you are in doubt of deleting data. Public data
generally does not need to be deleted since the risk associated with it is low and our external audience
often expects this data to be available (e.g. in our public source code repositories).
Acceptable Use
This section is about general acceptable use of equipment, systems, the internet, etc. when you are using
those in a capacity for BANKTEXT. We have additional, specific policies for device types, which are
presented in the upcoming sections.
Applicability:
This policy applies to assets, when these assets are provided by BANKTEXT or when they are provided by
you and used in the name of BANKTEXT. Assets are: Internet/Intranet/Extranet-related systems, including
but not limited to computer equipment, software, operating systems, storage media, network accounts
providing electronic mail, WWW browsing, and FTP. It does not apply to the usage of e.g. your private
internet at home when not working for BANKTEXT.
Acceptable Use:
Assets must primarily be used for business purposes in serving the interests of the company, and of our
clients and customers in the course of normal operations. You are responsible for exercising good judgment
regarding the reasonability of personal use. Personal use may never endanger the objectives of our policies
(e.g. via actions regarded as unacceptable use)
Unacceptable Use:
Violations of the law or of rights of any person or company, e.g. copyrights, patents, trademarks
Accessing data, a server or an account for any purpose other than conducting company business
Exporting technology in violation of international or regional export control laws
Introduction of malicious programs into the network or server
Revealing your account password to others or allowing use of your account by others. This includes
family and other household members when work is being done at home.
Making statements about warranty, expressly or implied, unless it is a part of normal job duties
Effecting security breaches or disruptions of network communication, e.g. port scanning or security
scanning
Circumventing user authentication or security of any host, network or account.
Certain exceptions to the items listed under acceptable use apply when such behaviour listed is expressly
part of your job duties (e.g. to perform vulnerability scanning) or with prior authorization of senior
management.
Enforcement:
For security and network maintenance purposes, authorized individuals within BANKTEXT may monitor
equipment, systems and network traffic at any time. This also includes equipment that you privately own, but
use for business purposes. BANKTEXT reserves the right to audit networks and systems on a periodic
basis to ensure compliance with this policy. In case additional software is needed to run on a system or
device, you must facilitate the installation of the software and not interfere with its intended function.
General
Keep on updating your operating system and local software to the latest version as soon as it becomes
available.
Run a full anti-malware check at least monthly.
In case of a virus/malware warning, run a full scan and resolve all findings.
Use software and OS that still receive security updates from their vendors.
Do not install software that could cause security risks (e.g. not from official app stores). You are
responsible to determine if a new software you are about to install poses a security risk.
Limit your privileges to what is necessary (e.g. do not run programs with administrator privileges that do
not need them).
When decommissioning a workstation, securely wipe it with DBAN or an alternative (e.g. factory reset)
before using it in another way (e.g. selling it).
Portable Storage
Portable Storage (e.g. USB sticks, external HDDs) creates some additional risks, especially to availability of
information and the risk of theft. That is why portable storage is generally not allowed to be used for
BANKTEXT information. You may use portable storage in limited circumstances when you have custody of
the device (e.g. you own it) and it is used:
For non-sensitive purposes (e.g. marketing material to be shared with a customer on a USB stick)
For encrypted backups of your workstation
To extend the storage of your mobile devices
Portable storage you acquire in a used state or not directly from a vendor (e.g. a gift you received, lost &
found devices) may never be connected to your devices and should be returned or destroyed because they
could be infected with Malware, even after wiping them. Instead of using portable storage, you should
always use shared network resources (e.g. GSuite).
Porto Alegre
Configure a secure home network, you can use a guide like: link 1 or link 2
Use VPN when working outside of your home office (e.g. in a coffee shop)
Block sight lines of others, so that only you can see your screen when it contains confidential
information
Keep printouts with work data to an absolute minimum and destroy them securely once done. In general,
most of your work should be done paperless.
Keep your workstation secure at all times (e.g. not leave it in a car)
Cryptography
Cryptographic requirements are adressed in the other parts of the subpolicies and must follow the general
principles as described by OWASP Cryptography in our products will be described in the product
documentation.
On the BANKTEXT servers you use for business purposes and share sensitive business information, you
must set your End-to-End-Encryption key when logging in the first time on a new device and encrypt the
relevant channels before sharing the sensitive information.
Always keep your passwords in a secure and encrypted location like your password manager
(preferred, e.g. ZOHO Vault) or your head.
Never share your passwords with anyone. Credential sharing is not allowed. An exception to this
applies if the password is shared by nature.
Shared Passwords
Shared passwords & secrets should only be used, if a personal password can NOT be used. Always prefer
using your own passwords (tied with your own account/credential). Shared passwords must be stored in an
approved secure and auditable password storage system. Our current standard is ZOHO Vault, its
integrations are approved (e.g. the browser extension).
Abide our password policies (complexity, length), unless the target system/use case does not allow this
or prescribes a different standard
Have one or multiple owners, default owner is the creator of the shared password. In Zoho, this is called
“Authorizer” or “Owner”.
Always be maintained in the central storage system. Do not update passwords and keep an outdated
password in ZOHO. ZOHO is single source of truth.
Be put in folders (ZOHO: “Chambers”), with a preconfigured set of persons with access. This makes it
easier to manage access control.
Not be exported out of Zoho.
When a person leaves the company, he must transfer ownership of the shared password to a successor.
Click on “more actions” → “Transfer Ownership” in ZOHO.
Authentication Policy
Access to confidential BANKTEXT data is only allowed after successfully and securely authenticating an
individual. Your main account is your BANKTEXT account and serves as your main digital identity. You
will receive your account during your onboarding process as well as other, potentially needed digital
identities.
You should always use your firstname.lastname@BANKTEXT identity. Exceptions apply when you are
testing out a service or you specifically want to access the service under a pseudonym. You may not
circumvent authentication or use different identities unless this is specifically part of your duties.
In terms of authentication methods, you should always opt for using SSO/SAML authentication where
possible. Since your identity is tied to a Google account, you can also click on the "Sign up with Google"
button or similar phrasing, in case SAML/SSO is not available. If you get an error when authenticating via
SAML or SSO, contact the person who invited you to enable it properly.
2- Factor- or Multifactor-Authentication is required before accessing critical assets and will be set as
mandatory there.
Features or changes involving components that could affect overall system security (e.g. authentication,
encryption, access control) should consider the following steps:
be subject to the regular tests (including security tests) before a release and not be introduced after
these tests
should check if documentation needs to be updated and if so, update it
Changes to assets should only occur when a change is necessary. All changes must be controlled. All
changes related to source code must occur through the authorized version control system (e.g. GitHub). In
case a change is urgent, the change control process may be shortened by decision of management, in order
to mitigate potential damages to the organization.
When it is necessary for us to fulfill our contractual obligations (e.g. to act proactively to prevent an
instance from failing)
Access is strictly limited to the data needed to fulfill the request. You may not access data of other
customers. No customer data may be extracted unless this is strictly requested by the customer. All data
extracted must be stored safely and deleted when it is no longer necessary.
You must terminate the session immediately after the reason for your access has been resolved. You must
as soon as possible inform the customer of the outcome of your access.
Incident Management
An incident is any event that has the potential to affect the confidentiality, integrity or availability of
BANKTEXT information, in any format, or IT systems in which this information is held. Violations of laws,
policies, contractual obligations or also external requests should also be considered as incidents in this
sense.
Lost devices
A suspicious and successful log in
Malware incident
Ransomware attack
5. Resolution, including implementation, testing, as well as reaching out to other parties necessary. Before
advancing, the affected user or customer must also be in agreement that the incident has been
resolved.
6. Closing
The Security Team will produce metrics on the incidents occurring in order to reduce their occurrence and
improve our process. The detailed process is in the playbooks section of the security team.
Incidents happen and it is important for BANKTEXT to be aware of them and taking proper action. In case
you feel you are in a conflict of interest or in fear of potential repercussions of reporting an incident, you can
confidentially contact the HR team or the Security team and your incident report will be submitted
anonymously.
Disaster recovery means restoring vital support systems and is a subset of business continuity.
Disaster prevention:
Disaster prevention is everyone´s responsibility. This means that every employee must actively prevent
disasters from occurring and report potential risks of a disaster to management. Most controls to prevent
disasters are taken on a system level by the respective system administrator and will be performed against a
system specific control catalog (e.g. backup configuration). Since many of our systems rely on third party
providers, following our policies for third parties is critical. Disaster Prevention controls include:
Criticality ratings:
BANKTEXT maintains a list of all systems, including a rating of their criticality on our business processes.
This criticality is mostly based on tolerable downtime. The criticality ratings are defined in specific DR
documents. Criticality ratings to a system may be adjusted on a case-by-case basis where the
circumstances justify the adjustment. BANKTEXT also runs a risk management program to identify and
manage risks, including risks of a disaster occuring.
Disaster Recovery:
In case of a disaster, we will form an incident response team consisting of the respective members of our
management team, security and other individuals, depending on the type of disaster. The members of the
team will communicate using BANKTEXT - or where this is not possible - email or phone. We will inform all
affected employees via the BANKTEXT channel "important" or others where relevant. In case the disaster
has taken down the BANKTEXT servers, we will notify via email or - where warranted - contact you via the
phone numbers you have given us during onboarding. The incident response team will also ensure that
affected customers are informed via the proper methods.
Testing:
Annually, we test our business continuity and disaster recovery capabilities. The scope and method of
testing are related to our risk management process and decided by management. The results of these tests
are shared in the company and may lead to updates to this policy.
Procurement
All Systems procured must comply with defined information security requirements. Those requirements are
defined before a procurement decision is made.
Supplier Relationships
This policy applies to the security and compliance of supplier relationships. Maintaining a secure supply
chain is important because often vulnerabilities and risks are introduced through supplier relationships.
Suppliers can be SaaS providers, hardware suppliers and similar.
Relationships with suppliers must be based on written agreements/contracts. Such contracts must include
provisions on information security when necessary. Service levels of suppliers must be agreed upon and
monitored, e.g. by monitoring uptime reports, quality of service, and in case the service does not meet the
expected level, the supplier be notified to remediate the issues. Changes to the provision of services by
vendors, including changes to agreements, must be recorded (e.g. a contract amendment).
Suppliers accessing or processing BANKTEXT data must be subject to an NDA or other confidentiality
clauses. They must follow either our privacy policy or have their own, legally compliant privacy policy.
Supplier compliance:
Supplier compliance is assessed on a risk-based approach and against the requirements of our security
policies. Suppliers must demonstrate the same level of compliance for their supply chain.
Auditing
The Information Security Team will audit the design and implementation of these policies on a regular basis,
with a focus on risks identified in the risk management process. Where a potential conflict of interest takes
place, the audit will be delegated to another individual with such conflict or other compensating controls be
taken.
Security and Compliance Guides
BANKTEXT Security Documentation
One-Stop-Shop
Here you can find all BANKTEXT security- and compliance-related Documentation with links to the different
sections to navigate our documentation more efficiently.
Learn more
Compliance Resources, including certifications like ISO 27001 to help your organization to determine, if
BANKTEXT fits your needs.
Security fixes and update - an overview of vulnerabilities that have recently been closed and in which
versions.
End-to-End Encryption Specifications - an overview of our algorithms and functionality.
Outside Resources
Below are related resources in other sections of BANKTEXT's Documentation.
Security Solutions - features, testimonials, and use cases on how BANKTEXT can help you to secure
your data.
Privacy
Report Vulnerabilities - how to best let us know about the security vulnerabilities you have found.
Code of Conduct - rules that apply to our servers.
White Hat Hall of Fame - Famous contributors that made BANKTEXT more secure.
BANKTEXT Handbook
On this page, we provide you with resources around compliance of BANKTEXT with industry standards,
regulations and best practices. Also our certifications are listed here. Contact our specialists for further
information under mayara.santos@BANKTEXT.
Compliance certifications
BANKTEXT is ISO 27001 certified. ISO 27001 is an internationally recognized standard for information
security management systems. Our organization is audited on an annual basis by an independent third-
party auditor to verify the design and operational effectiveness of the management system.
Certificate:
Certificate 2020.pdf 522KB
Use cases for BANKTEXT users: due diligence, security review, regulatory compliance, internal audit,
supply chain audit
Security fixes and updates
This page includes regular updates about recently patched security issues in BANKTEXT.
Do you want to report a security issue yourself? Please have a look at our Responsible Disclosure Policy.
We appreciate your reports.
New issues are listed below, at first without details to give administrators and users sufficient time to
upgrade. Details to the issue are added in with the next version release, e.g.: fixes introduced in version x.1
will be added when version x.2 is available.
Providing fixes for legacy versions of BANKTEXT becomes increasingly difficult due to the code
differences, which is why we focus on providing fixes for the most recent versions only. Please
see our support policy, which outlines our supported versions.
Please make sure to follow new version updates by subscribing to our newsletters or activating the
announcement feature for new releases directly in the BANKTEXT server administration settings. We
recommend updating to the newest version as soon as possible to always have the newest security fixes.
Known vulnerabilities
We address a CVE for all vulnerabilities found in our product, you can check it by accessing the following
page:
https://www.cvedetails.com/vulnerability-list/vendor_id-17468/BANKTEXT.html
cve-2022-32211
Dear customers,
Recently our security team received from an external researcher a report related to some vulnerabilities. As
soon as we received it we took some actions to fix the vulnerabilities and applied the patches for the
versions 3.18.x, 4.4.x, and 4.7.x
All our cloud instances are already upgraded to this version and our incident response team guarantees that
we didn't have any incident related to this vulnerability. We kindly ask all our customers that upgrade the
instances for the versions 3.18.7, 4.4.5, and 4.7.4 to avoid any security breaches.
We will keep you updated about any news regarding this vulnerability and soon we will release the cve-
2022-32211
security team
End-to-End Encryption Specifications
The following contains an overview of the implemented mechanisms of the
BANKTEXT End to End Encryption feature. It provides technical information and
supplements the user guide.
Bots or other ancillary systems interacting via webhooks or REST API will not be able to read
E2EE encrypted messages
File uploads are not encrypted
BANKTEXT enables users to reset their private E2EE key to avoid permanent loss of data
during the beta period
Upon login, the client auto-generates the encryption password and asks the user to save it. This password is
used to generate a secure 256-bit AES-CBC encryption key, called “Master Key.”
For using end-to-end encryption (E2EE), the client (C) of a user (U) needs to have a Public-Private key pair
(Ku, Kr). This key pair is generated when the user logs in with a client for the first time. The public key is
sent to the server and stored in the database in the User model. The private key is first encrypted using the
Master key and then sent to the server for storing in the User model database. If a public-private key pair
already exists in the database for the user, instead of generating it again, it is downloaded from the server.
The downloaded public key is used as-is, and the encrypted private key is first decrypted using the master
key. If the master key has not been decrypted client-side already, the user is prompted to enter the master
key again.
The public key is used to encrypt a persistent session key (Ks), which is then used for the actual encryption
of messages and files. This encrypted session key is stored in the database, in the Subscription model for
every user in a room (including the user who initiates the E2EE session). Note that this method works for
direct messages as well as groups since direct messaging is just a room with only two people in it.
When starting a new E2EE session, first, if an existing session key exists in the room subscription of the
current user, it is downloaded and decrypted using the user’s private key and then used to encrypt future
messages. In case an existing session key is not found in the database, a new session key is generated by
the current user and then stored in the database encrypted for every user in the room.
Once a session key has been obtained in the above manner, we enter E2EE mode, and all messages sent
henceforth are encrypted using this session key.
Because keys are stored in the database and are persistent, the other users in the room do not need to be
online to participate in an E2EE conversation.
Code
The relevant code for E2EE is located in
(BANKTEXT/app/e2e/client)
https://github.com/RocketChat/BANKTEXT/tree/2bf8edab056dbc5e0d40aeae2c4472f729ec09d9/app/e2e/c
lient
(BANKTEXT/app/e2e/client)
https://github.com/RocketChat/BANKTEXT/tree/2bf8edab056dbc5e0d40aeae2c4472f729ec09d9/app/e2e/c
lient
And
https://github.com/RocketChat/BANKTEXT/blob/2bf8edab056dbc5e0d40aeae2c4472f729ec09d9/app/e2e/
client/helper.js
https://github.com/RocketChat/BANKTEXT/blob/2bf8edab056dbc5e0d40aeae2c4472f729ec09d9/app/e2e/
client/helper.js
Algorithms Used
Specifically, E2EE uses:
Architectural Specifications
1. User Login: As soon as the user logs in, we ask for their “E2E password”. Using this password with a
PBKDF (Password-based Key Derivation Function), we generate a “Master Key.” We then check the
server database for whether a public-private key pair exists for this user. If it does, we download that key
pair. The public key is used as-is. The private key is in encrypted form and will be decrypted using the
master key before it can be used.
2. Client Startup: Using startClient() in rocketchat.e2e.js , check the local storage of the
client to determine whether this is a new client or not. If local storage does not have the public-private
key pair for this client, then this is treated as a new client, and this RSA-OAEP key pair is generated
using a function call to: crypto.subtle.generateKey({name: 'RSA-OAEP',
modulusLength: 2048, publicExponent: new Uint8Array([0x01, 0x00, 0x01]),
hash: {name: 'SHA-256'}}, true, ['encrypt', 'decrypt']); This key pair is finally
stored in the client’s local storage in a serialized form (JSON-stringified). This serial form of the public
key and encrypted private key is also sent over to the server database using a server-method call to
addKeyToChain() .
3. The client starts the encryption session from the E2E flex tab button: The handshake() function in
rocketchat.e2e.room.js is called for the room where the client started the session. First, try fetching an
encrypted session key from the subscription for this user-room pair from the database. If this key is
found, decrypt this using the client’s private key, and the E2EE session is started using this decrypted
key. If the user’s subscription to this room does not contain a key, generate a new AES-CBC session
key for use. This is done by a function call to: RocketChat.E2E.crypto.generateKey({name:
'AES-CBC', length: 128}, true, ['encrypt', 'decrypt']) Once a key has been
generated, it has to be stored, encrypted in the subscriptions of all users in the current room. This is
done by: Fetch public keys for all users in the room using server-method calls to
getUsersOfRoom() and fetchKeychain() . One by one, encrypt the newly generated session
key using each of these public keys, and store this encrypted key in the corresponding user’s
subscription to this room using a server-method call to updateGroupE2EKey() . E2EE session is
now started using the generated session key. 4. Client sends a message: Making use of the
onClientBeforeSendMessage event when the user sends the message, the message object is
encrypted using the session key obtained in the previous step when E2E is in session. This encrypted
message is wrapped in another object, in a “msg” parameter, and a new parameter for type, called “t”, is
added to this new object with the value “e2e” to distinguish it from a regular message. Thus, the new
object becomes:
final_message: {
msg: <encrypted_message>,
T: “e2e” }
This new object is sent to the other client. Note that the original message is not visible to anyone, and only
the encrypted message is sent.
1. The client receives a message: When a message object is received, using the
` onClientMessageReceived event, we intercept it and check whether the “t” type parameter of the
message object is “e2e”, like we set when sending the message. If it is not, we don't need to decrypt it
as it is a plaintext message, and E2EE was not used. If it is an encrypted message, we take the “msg”
parameter’s value and decrypt that message using the session key.
Note that if the receiving client does not have the session key in its local storage, it will have to
download the encrypted session key from the server using the fetchGroupE2EKey `method, and
then decrypt it using its own private key, and then use this key for decryption of the incoming message.
Server Methods
1. addKeyToChain(key)
For saving a newly generated public key to the database for the current user.
Request:
key = {
The keys have been converted from ArrayBuffer to String format before sending them.
Response: null
2. fetchGroupE2EKey(rid)
For fetching the encrypted session key for a conversation, for the current user.
Request:
Response:
The E2EE session key for the current user for that conversation.
3. fetchKeychain(userId)
For fetching the public key of a user (to be used for encrypting the session key for that user).
Request:
RSA-EPrivKey: “< The private key, encrypted using the master key>”
Request:
key = The E2EE Session key for that user, for that conversation
Response:
5. emptyKeychain()
Clears out the current user’s public and encrypted private keys from the server database.
Request: {}
Response: {}
6. fetchMyKeys()
Fetches current user’s public and encrypted private keys from the server database.
Request: {}
Response:
GET e2e.fetchGroupE2EKey(rid)
GET e2e.fetchKeychain(uid)
GET e2e.fetchMyKeys()
POST e2e.emptyKeychain()
Process
The server sends Push notifications. The server, however, doesn't store the unencrypted content of any
message from an E2EE room, because only the encrypted string is stored on the server. These encrypted
strings can only be decrypted using the private key of a user that is stored locally on clients.
When a new push notification from a E2EE message arrives, it has a messageType: ' e2e '. The mobile
client then starts decrypting the message, within the push payload, checking for the locally stored private
key of a user and the E2EE key of the room that the message came from. If both are found, the message is
decrypted locally on the device and then shows the plaintext message. In this process, only the encrypted
message content passed via the push notification gateways.
Fetching full message content from the server on receipt (Enterprise Edition only)
To add an additional layer of security, there exists another feature for push notifications:
This means to request the push message content from the server to display it, and it does not pass any
message content - encrypted or not - via Google/Apple/other push gateways. Instead, the message content
itself is fetched by and within the BANKTEXT client itself. What passes via the gateways is only the
information that a new message should be fetched and then shown as a push notification. Once the client
receives this, the client will fetch the content. This way, you can prevent that the message content (even in
encrypted form) passes via a separate gateway.
Keys are exchanged when the OTR invitation is accepted by the counterpart, that is why all participants
need to be online. Messages from an OTR session are removed when the session storage is cleared.
Data Processing Agreement
Are you a BANKTEXT customer and looking for a GDPR-compliant Data Processing Agreement (DPA)?
You can find one here: Link to Data Processing Agreement Signature Form
It is pre-signed and only needs to be signed from your end for your compliance purposes. It contains EU
standard contract clauses as a data transfer mechanism for data controllers subject to EU law. Keep in mind
that our privacy policy is already part of any customer agreement and therefore already is deemed sufficient
by most jurisdictions as a "contractual agreement" to prescribe our processing of personal data.
The DPA covers our hosted offering. The DPA can also cover cases of customers, that run a self-managed
instance of BANKTEXT, but connect to BANKTEXT services such as the push notification gateway or
the marketplace. For this, you generally need to register your server. In these cases, personal data is
processed by us to provide you with these services and you might be required by the applicable laws to
have a DPA in place. Our DPA is flexible enough to cover for these cases as well.
Info: The DPA is not valid for individual BANKTEXT users (individual persons). For them, only the privacy
policy of their BANKTEXT workspace (provided by the data controller) applies. This DPA also does not
cover processing of third-party apps from our marketplace (beyond us providing the capability to consume
such apps) and in case of multiple DPAs being submitted, only the most recent version applies.
1. Click the link to request your copy. Enter your email-address and you will receive an
authentication code to your email.
2. Enter your authentication code and accept the ZOHO Sign Terms and Conditions for
Electronic Signature.
3. Fill out the remaining fields, such as company name and address. Check optional fields and
enter additional information into the text boxes. Keep in mind that excluding certain types of
personal data but effectively entering them into our services does not preclude us from
processing such data. You can forward the document to be signed by someone else, by using
the function within ZOHO Sign.
4. Once all mandatory fields are filled out, click "finish".
5. Choose your delivery method (download a copy or send via email). A copy of the DPA with
your signature will be mailed to us automatically.
A summary of BANKTEXT's overall GDPR readiness strategy for this project can be found below:
#9769
The following are some of the more recent GDPR updates that are now part of the core codebase:
Right of Access
#9767 (implemented #9906)
Right to be forgotten/erased
#9766 (implemented #9947)
Data Portability
#9768 (implemented in #9906)
Other rights
Other rights for the data subjects are either covered by features already built into our codebase, or outside
the scope of the open source software project, including:
Right to Rectification
The codebase can be configured to support user modification/correction/rectification of any data supplied
(entered) by the user.
This is outside the scope of the open source software project, and is up to the controller ( administrator /
deployer / operator of the the server system) to enforce.
Right to Object
This is outside the scope of the open source software project, and is up to the controller ( administrator /
deployer / operator of the server system) to enforce.
Community compliance
The above will allow our community members to build and deploy GDPR compliant systems and services.
We know and understand that all of you have custom installation, configuration and deployment
environments and that you are working to ensure your own deployment of BANKTEXT is compliant with
GDPR if necessary.
Meanwhile, we would welcome any advice, input, or questions you may have regarding BANKTEXT’s
GDPR readiness. Please help us by emailing your thoughts to privacy@BANKTEXT.
Thank you!