TalkJS Changelog logo
Back to Homepage

Changelog

Subscribe to Updates

Labels

  • All Posts
  • Bug fix
  • Announcement
  • Improvement
  • Chat UI
  • JavaScript SDK
  • REST API
  • Dashboard
  • Deprecated
  • New
  • React Native SDK
  • Flutter SDK
  • Security
  • React

Jump to Month

  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • January 2023
  • October 2022
  • September 2022
  • August 2022
  • July 2022
  • June 2022
  • May 2022
  • March 2022
  • February 2022
  • December 2021
  • November 2021
  • October 2021
  • August 2021
  • July 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • September 2020
  • July 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
Changelog byAnnounceKit

Create yours, for free!

Bug fixImprovementChat UIJavaScript SDKReact Native SDKFlutter SDKSecurity
3 weeks ago

Custom sender address for notifications, and more

Use a custom sender address for notifications

An email address with a long, randomly generated string at the top. From that long address there’s an arrow pointing downward. At the center, the email address domain@r.talkjs.com is typed out.

You can now use a custom sender address for email notifications. 

Previously, email notifications would be sent from a randomly generated address, such as jbvxkmldkrihi.mjh4b43vrl4m3tfhh455l2vwcr@r.talkjs.com. If you recently signed up, then by default all email notifications are sent by the much friendlier address notifications@r.talkjs.com. 

Are you using a custom email domain? Then you can also configure the local part of the sender address (the part before the @-symbol) directly from the details page of your email domain to change the settings.

Would you also like to use a custom email address for notifications? Get in touch to enable a custom email address for notifications for your project.

Overview of other changes

Added

  • TalkJS Core (1.0.0): Initial release. The @talkjs/core package is stable and you can confidently use it to read, update, and subscribe to all your chat messaging data. Backward-compatibility guaranteed.
  • TalkJS Core (1.0.1): Exported types for GenericFileMetadata, AudioFileMetadata, ImageFileMetadata, VideoFileMetadata, and VoiceRecordingFileMetadata. 
  • JavaScript SDK (0.37.0): Added a new messages marker (readUntil), to show users where they left off in a conversation.
  • JavaScript SDK (0.36.0): Added support for a new way of creating a session, using userId: string instead of the me: Talk.User parameter.
  • Added support for localizing the chat UI into Icelandic (is-IS). Is your preferred language still missing? Get in touch to get it added.

Changed

  • JavaScript SDK (0.36.0): Updated the email and phone fields when creating or editing a user. These fields now accept a string in addition to string[]. If you pass a single string, it gets converted to a single-element array.
  • Flutter SDK (0.15.1): Upgraded talkjs_flutter_inappwebview dependency. 

Fixed

  • React Native SDK (0.13.1): Fixed an issue where, on iOS, opening the keyboard would intermittently add extra padding.
  • Fixed an issue where emojis used in messages would be rendered differently from emojis used in the emoji reactions.

Security

  • Fixed an issue where, using the JavaScript Data API, under certain conditions, users could perform calls that should have been restricted to app administrators. 




Feature spotlight: AI chatbot 

Add an AI chatbot to your chat to boost engagement, conversion and retention. 

A chat interface with an AI chatbot integrated. At the top there’s a spacey profile picture with next to it the name ‘TalkGPT’. Within the chat window, the chatbot states: ‘Hi! I’m the TalkJS ChatGPT chatbot’. Next, a user asks: ‘Hi! How can I add chat to my React site?’. The chatbot responds with instructions on adding a 1-on-1 chat, and provide links to getting started guides that can help the user get started.

You can add any AI system to your TalkJS chat. To get started, you can use one of the following tutorials:

  • Create a custom AI chatbot with Claude → 
  • Create a custom AI chatbot with Gemini →
  • Create a custom AI chatbot with the OpenAI API →

Want to try it out right now? Check out the AI chatbot demo.




👋 Thoughts? Questions? Get in touch.

✨ Follow TalkJS on LinkedIn, Bluesky or 𝕏 to stay up to date.

👩🏾‍💻 Come join TalkJS! Check out the jobs page.

Bug fixFlutter SDKReact
5 months ago

Flutter SDK and React SDK updates

Added

  • Flutter SDK (0.15.0): Added registerBackgroundHandler property to Android Settings passed to registerPushNotificationHandlers().
  • Flutter SDK (0.15.0): Added a Talk.handleFCMBackgroundMessage function.

Changed

  • React SDK (0.1.11): Externalized react/jsx-runtime dependency (thanks to @KlotzJesse 🙌).
  • React SDK (0.1.11): Removed react-dom peer dependency.

Fixed

  • Fixed an issue where email notifications didn’t properly preserve whitespace.

💡Did you know that you can directly download over 50 TalkJS example projects? Check out the  talkjs-examples GitHub repo to get started. 




New case studies 

You’re doing amazing things with TalkJS! 

Two new case studies this month: how Caspar Health uses TalkJS to enable patients and healthcare professionals to communicate securely, and how Hotplate empowers home chefs to talk directly with their customers.




👋 Thoughts? Questions? Get in touch.

✨Follow TalkJS on 𝕏 and LinkedIn to stay up to date.

👩🏾‍💻We’re hiring! Check out our jobs page.

Bug fixAnnouncementImprovementJavaScript SDKDeprecatedFlutter SDKReact
6 months ago

Multiple webhooks, accessibility improvements, messages on the Realtime API, and more

Highlights

Multiple webhooks

You can now add multiple webhooks to your app. Webhooks can be useful as part of a chatbot interface, to inspect messages as they happen, or to trigger custom domain-specific actions.

A section of a page with the header ‘Webhooks’, and a button ‘Add New Webhook’. Below the button is a table which, for each webhook, the webhook URL, the events that are subscribed to, as well as buttons to either edit or delete the webhook.

To add a new webhook, go to the Settings page of your TalkJS dashboard, and select Add new webhook. Add your webhook URL, select the events that you’d like to subscribe to, and save your settings. 

You can add up to three webhooks if you’re on the Growth plan or higher.

Read more about webhooks.

Accessibility improvements

Chat just got more accessible:

  • Keyboard navigation: The scrollable area in the chatbox is now keyboard accessible. The area can get focus, so you can use your keyboard’s up and down arrow keys to scroll the container.
  • Screen reader: If you’ve got a conversation in focus and someone sends a new message into that conversation, a screen reader will read out the new message.

Do you have more accessibility wishes for your chat? We’d love to hear from you! Get in touch.

Messages on the Realtime API

Messages are available on the Realtime API. That means that you can now access a continuous, up-to-date flow of data related to messages, without needing to send repeated requests or open a chat UI. 

Version 0.31.0 of the JavaScript SDK adds the following:

  • ConversationRef.message: Reference to a message in a given conversation.
  • ConversationRef.subscribeMessages: Subscribe to the messages in a given conversation.
  • MessageSubscription: Subscription to the messages in a given conversation. 
  • MessageRef: Reference to a message.
  • MessageSnapshot.content: The main body of a given message. The body is a list of content blocks with entity trees, which means that you can render the message exactly as it would appear in the frontend.
  • ReferencedMessageSnapshot: Snapshot of a message's attributes at a given moment in time. 
  • MessageSnapshot.referencedMessage: Snapshot of the message that the given message is a reply to, or null if this message is not a reply. 
  • EditMessageParams, SendMessageParams, and MessageActiveState.

Overview of other changes

Added

  • JavaScript SDK (0.31.0): Added ConversationRef.send.
  • JavaScript SDK (0.30.0): Added ConversationSnapshot.lastMessage.
  • JavaScript SDK (0.29.0): Added ConversationRef.markAsRead and ConversationRef.markAsUnread
  • JavaScript SDK (0.28.0): Added ParticipantRef to the Realtime API.
  • JavaScript SDK (0.28.0): Added ConversationRef.participant to get a participant for a given conversation to the Realtime API.
  • JavaScript SDK (0.28.0): Added ConversationSnapshot.joinedAt to the Realtime API.
  • JavaScript SDK (0.27.0): Added ConversationRef.set and ConversationRef.createIfNotExists to the Realtime API.
  • Added the option to mark conversations as read or unread to the Realtime API.
  • Flutter SDK (0.14.0): Added the onUnreadsChange property to Session.

Changed

  • React SDK (0.1.10): Allow null as a value for the conversationId prop.
  • Changed the options for @mentioning a user. Only users who are a current participant in a conversation can be mentioned in that conversation. You can no longer mention guest users. 

Deprecated

  • Flutter SDK (0.14.0): Deprecated the unreads property of Session.

Fixed

  • Fixed a bug in Realtime API batching, where in some cases calls would be executed out-of-order.
  • Fixed an issue where the main chat would scroll down when you scrolled in a message search.
  • Fixed a bug where a participant who had been removed from a conversation could still be @mentioned in that conversation.




New guides and tutorials 

How to add a forward message feature to your chat

Create a custom AI chatbot with TalkJS and Claude

Create a custom chatbot with TalkJS and Gemini




👋 Thoughts? Questions? Get in touch.

✨Follow TalkJS on 𝕏 and LinkedIn to stay up to date.

👩🏾‍💻We’re hiring! Check out our jobs page.

Bug fixImprovementJavaScript SDKFlutter SDK
7 months ago

Realtime API updates, better accessibility labels, and more

Create and get conversations and participants with the Realtime API  ✨ preview  ✨

The Realtime API provides you with a continuous, up-to-date flow of your TalkJS data without the need to send repeated requests or open a chat UI. And the options available on the Realtime API keep expanding. From version 0.27.0 of the JavaScript SDK, you can use ConversationRef.set, which allows you to set properties of a conversation and manage a user’s participation within it. Additionally, with ConversationRef.createIfNotExists you can streamline the process of creating a conversation if it doesn’t already exist, and to automatically add the current user as a participant if they aren't already one.

Version 0.28.0 then adds ParticipantRef, which allows you to reference a specific user's participation in a conversation. This can be useful for operations such as joining or leaving a conversation, or controlling a user’s access. In addition, ConversationRef.participant offers easy access to a participant reference within a conversation, while ConversationSnapshot.joinedAt provides the date and time (as a Unix timestamp in milliseconds) that a user joined the conversation. With these updates, you have even greater flexibility in accessing and managing conversation conversations and participants of your chat.

Changed

  • The CloseButton, SearchButton  and ActionMenu built-in components available in ChatHeader now accept a label prop that allows you to set your own label for these buttons. Setting your own label can be useful if you’d like to add your own custom translation for these labels.
  • The count of the number of unread messages a user has in a conversation is now capped at a thousand. A user can have more than a thousand unread messages, but the count won’t increase beyond a thousand.
  • Users accessing TalkJS with multiple IDs on the same device can now manage their desktop notification preference settings separately, on a per-user basis.

Fixed

  • Flutter SDK (0.13.1): Fixed a stack overflow issue when comparing sessions.
  • Fixed issues where Flutter webview faced a build issue on Xcode 15 and Xcode 16/iOS 18.
  • Fixed an issue where the conversation actions button in the chat header didn't have an aria-label and title attribute set for screen readers.




New tutorial




👋 Thoughts? Questions? Get in touch.

✨Follow TalkJS on 𝕏 and LinkedIn to stay up to date.

👩🏾‍💻We’re hiring! Check out our jobs page.

Bug fixImprovementChat UIJavaScript SDKREST APIDashboardReact Native SDKFlutter SDK
9 months ago

Customizable search UI, more push notifications options, and other changes

Highlights

Customizable search UI

You can now customize the conversation list search as part of your theme, to match your own brand’s look and feel. The conversation list search allows users to search for both conversations and messages when using the Inbox pre-built chat UI. 

Components that you can customize as part of your theme include: 

  • ConversationListSearchBox
  • MessageSearchResult
  • NoSearchResults
  • SearchResultHeader 
  • SearchResultFooter

For more information about customizing your search UI, check out the documentation for these theme components.

More push notification options on the Expo SDK

Are you using the Expo SDK for React Native? Then you now have yet more flexibility when setting up push notifications. In addition to Firebase, you can now also use Apple Push Notification Service (APNs) for push notifications when working with the React Native Expo SDK. You can choose either the expo-notifications or the @react-native-firebase/messaging library for your push notifications. 

For more details on setting up push notifications for Expo, see: Mobile Push Notifications: Expo.

Overview of other changes

Added

  • Added the option to have multiple secret keys. You can also rotate your secret keys directly from your TalkJS dashboard.
  • Added the option to mark a conversation as read or unread via the REST API.
  • JavaScript SDK (0.23.0): Added a ConversationRef to fetch and manipulate data about conversations on the Realtime API.
  • JavaScript SDK (0.23.0): Added Session.conversation(id: string): ConversationRef to get a reference to a conversation by its conversation ID.
  • React Native SDK (0.11.0): Added a scrollToMessage prop to the Chatbox component.
  • Flutter SDK (0.13.0): Added a scrollToMessage property to the Chatbox component.

Changed

  • Changed the option to get a conversation on the REST API to expose isUnread for each participant in a conversation, to identify whether or not the conversation is unread for that participant.

Fixed

  • Fixed an issue with pasting lists into the chat from Google Docs on Chrome on Windows.
  • Fixed an issue where scrolling to a specific message didn’t work properly when calling select. 
  • Fixed an issue where, under certain conditions, it wasn’t possible to run multiple sessions concurrently.
  • JavaScript SDK (0.23.1): Fixed ConversationSnapshot.createdAt and ConversationSnapshot.lastMessageAt to be number instead of Date.
  • React Native SDK (0.11.0): Fixed an issue where the device token wasn’t registered properly if the Session component was used immediately after the app had been launched.
  • Flutter SDK (0.13.0): Fixed an issue where the push notification device token registration didn’t work correctly in release builds.
  • Flutter SDK (0.13.0): Fixed an issue where Session.hasValidCredentials didn’t work correctly.

New guides and tutorials 

How to add chat to a Blazor web app with TalkJS
How to build a Django chat app with TalkJS


👋 Thoughts? Questions? Get in touch.

✨ Follow TalkJS on 𝕏 and LinkedIn to stay up to date.

👩🏾‍💻 We’re hiring! Check out our jobs page.

Bug fixJavaScript SDKREST APINewFlutter SDKReact
10 months ago

OpenAPI spec, status page, SDK updates, and more

Added

  • Added an OpenAPI specification for the TalkJS REST API. The specification is available in both YAML and JSON formats for the most recent version (2024-01-01) of the REST API.
  • Added a status page where you can monitor the current health status of the TalkJS infrastructure: status.talkjs.com.
  • JavaScript SDK (0.22.0): Added the UserRef.set and UserRef.createIfNotExists methods to the RealTime API.
  • React SDK (v0.1.9): Added a "use client" banner to build outputs.

Fixed

  • Fixed an issue due to which it was temporarily impossible to batch update users using the REST API.
  • Fixed an issue due to which the decimal expiry of JWT for authentication didn't work correctly.
  • Flutter SDK (0.12.1): Fixed a conflict with the flutter_inappwebview package.

New tutorial

  • Add chat to a Next.js app with TalkJS




👋 Thoughts? Questions? Get in touch.

✨Follow TalkJS on 𝕏 and LinkedIn to stay up to date.

👩🏾‍💻We’re hiring! Check out our jobs page.

Bug fixImprovementChat UIJavaScript SDKReact Native SDKFlutter SDKSecurityReact
11 months ago

More secure authentication, comments theme, and more

Highlights

More secure authentication

Using authentication for your chat helps you protect your user’s messages and data. You can now also enable more secure authentication on your chat using industry-standard JSON Web Tokens (JWTs). 

Token-based authentication is more secure. Because tokens can be set to expire, if a token accidentally gets leaked or stolen, any attacker only has a limited window of time in which they could carry out their attack—giving you the confidence of better protecting your chat data.

The new authentication guide walks you through the basic steps to take to:

  • Generate a token
  • Pass a token
  • Activate token-based authentication on your dashboard

You can also use token-based authentication for the REST API.

Read the authentication guide and further details:

  • Security: Authentication
  • REST API authentication

Comments theme

Two windows with comments. On the left a static comment thread in a white chat. On the right a comment box in black, where comments are actively being posted on the topic of hybrid working.

Preset themes let you select a complete look and feel of your TalkJS user interface in one go. The new comments preset theme is tailored for any in-app commenting experience, such as for a:

  • Text or code editor
  • Whiteboard
  • Media player
  • Collaboration tool

With the comments preset theme, you can seamlessly embed comments, mentions, and reactions into your app. Moreover, using ready-made components, you can customize the commenting experience to meet your exact needs.

You can enable the comments theme directly from the Themes page of your dashboard.

Learn more about the Comments preset theme.

Overview of other changes

Added

JavaScript SDK

0.21.0

  • Added support for JSON Web Token (JWT)-based session authentication, adding SessionOptions.token and SessionOptions.tokenFetcher. For more details on how to use JWT-based authentication, see the authentication documentation.

0.20.0

  • Added the first aspects of the Realtime API.
  • Added UserRef to fetch and manipulate data about users.
  • Added Session.currentUser: UserRef to get a reference to the current user for use in the Realtime API.
  • Added Session.user(): UserRef to get a reference to an arbitrary user.

0.19.0

  • Added the option messageId to Inbox.select.

React SDK

0.1.8

  • Added token and tokenFetcher props to Session. For more details on how to use JWT-based authentication, see the authentication documentation.

React Native SDK

0.10.0

  • Added token and tokenFetcher props to Session. For more details on how to use JWT-based authentication, see the authentication documentation.

0.9.0

  • Added disableZoom prop to Chatbox and ConversationList. This allows you to choose whether the user can pinch to zoom in and out of the UI. By default its value is false and the user can zoom into the UI.

Flutter SDK

0.12.0

  • Added token and tokenFetcher properties to Session. For more details on how to use JWT-based authentication, see the authentication documentation.

0.11.0

  • Added the enableZoom property to Chatbox.
  • Added the sendMessage method to Conversation.

Changed

  • Made the ReferencedMessage component customizable in the Theme editor. The ReferencedMessage component renders the contents of the message that is being replied to.

Deprecated

  • JavaScript SDK (version 0.21.0): Deprecated SessionOptions.signature. Signature-based authentication will continue to be supported indefinitely, but JWT-based authentication is recommended for new projects.
  • React SDK (version 0.1.8): Deprecated the signature prop on the Session component. Signature-based authentication continues to be supported indefinitely, but JWT-based authentication is recommended for new projects.
  • React Native SDK (version 0.10.0): Deprecated the signature prop on the Session component. Signature-based authentication will continue to be supported indefinitely, but JWT-based authentication is recommended for new projects.
  • Flutter SDK (version 0.12.0): Deprecated the signature prop on the Session component. Signature-based authentication will continue to be supported indefinitely, but JWT-based authentication is recommended for new projects.

Fixed

  • Fixed an error where a certain combination of unicode characters in emoticons could cause a page to crash.
  • Fixed an issue where, under certain conditions, updating a user’s presence (such as by typing, or focusing a window) would result in errors.
  • Fixed an issue where performing a search didn’t respect feed filters.
  • React Native SDK (version 0.9.1): Fixed a regression with messages not getting marked as read when loading the Chatbox.
  • React Native SDK (version 0.9.0): Fixed unnecessary warnings in iOS when calling MessageField methods.

New guides and tutorials

  • How to integrate chat into a Framer site with TalkJS
  • How to show a system message only to a specific user




👋 Thoughts? Questions? Get in touch.

✨Follow TalkJS on 𝕏 and LinkedIn to stay up to date.

👩🏾‍💻We’re hiring! Check out our jobs page.

Bug fixImprovementDashboardReact Native SDKFlutter SDK
a year ago

Search all messages, a fresh activity dashboard, and more

Highlights

Search all messages and conversations

You can now include a search box in your chat, to allow users to search all their messages and conversations. 

Overview of the top of the conversation list on the left side of the Inbox pre-built chat UI. At the top is a toggle with the label ‘Browser notifications’, below that is a search box with space to add search terms and a magnifying glass to initiate the search. Below that is the first conversation from the conversation list.

If enabled, the search box appears at the top of the conversation list of the user's inbox in the Inbox pre-built chat UI. 

To enable the search functionality, go to the Settings page of your dashboard. In the Search section, check the Search enabled checkbox.

Section in the Settings page of the TalkJS dashboard with the header ‘Search’. Next to the header is a green label stating ‘Growth plan feature’ with a check mark. Below the header is a check box with the text ‘Search enabled’. At the bottom is a button with the text ‘Index all messages’, with the associated text ‘Messages since April 15, 2024 are indexed and searchable’.

Once you’ve enabled search, all new messages are directly searchable. To also be able to search older messages, select the Index all messages button.

The search messages feature is available on the Growth plan or higher.

Fresh new activity dashboard

With a fresh new Activity overview, it has just become yet easier to analyze chat activity and monitor conversations.

Overview of the Activity page of the TalkJS dashboard. At the top is a header ‘Activity’, with below that a ‘Timeframe’ dropdown menu to select a timeframe, and a list of the number of active users, conversations created, active conversation, and messages in the selected timeframe. Below that is a header ‘Conversation history’, with a table with columns for ‘ID’, ‘Last message’, ‘Subject’, ‘Participants’, ‘Messages’, and ‘Details’, the latter with a button labeled ‘View’ to view the conversation details.

On the Activity page of your TalkJS dashboard, you immediately have an overview of the number of messages sent, active users, as well as conversations created and active. 

You also have direct access to the conversation history of all conversations in your app. To access the details for a specific conversation, select View in the conversation’s row.

Overview of other changes

Added

  • Added the option to separate email notification replys based on a regular expression (regex). 

Changed

  • The sort filter in the TalkJS template language now accepts a key to sort by.
  • React Native SDK (version 0.8.1): The ConversationList no longer highlights the first conversation by default.

Fixed

  • Fixed an issue where audio playback would produce a crackling sound when using Android WebView.
  • Fixed an issue where voice messages wouldn’t correctly play back on iOS 17.3 and lower.
  • React Native SDK (version 0.8.3): Fixed an issue where getNotificationHandler was undefined.
  • React Native SDK (version 0.8.2): Fixed an issue where errors didn’t show up in debug mode.
  • Flutter SDK (version 0.10.2): Fixed an issue where push notifications didn’t work correctly on Android when an app had been terminated.
  • Flutter SDK (version 0.10.2): Fixed an issue where MessageFieldOptions didn’t work correctly.




New guides and tutorials 

  • How to integrate chat into your Softr app with TalkJS 
  • How to shard a group chat in TalkJS 
  • How to customize the popup open and close button 
  • How to make clickable tabs for conversations 
  • New JavaScript getting started guides by use case: 1-on-1 chat, group chat, and large group chat
  • New React getting started guides by use case: 1-on-1 chat, group chat, and large group chat




👋  Thoughts? Questions? Get in touch.

✨ Follow TalkJS on 𝕏 and LinkedIn to stay up to date.

👩🏾‍💻 We’re hiring! Check out our jobs page.

Bug fixAnnouncementImprovementChat UIReact Native SDKFlutter SDKReact
a year ago

Control the style of absolutely anything with CSS overrides, and more

Highlight

Control the style of absolutely anything with CSS overrides

You can now style absolutely any aspect of your TalkJS UI, using the global CSS overrides tab in your theme editor. 

Global CSS overrides complement the ability to edit and style chat components. A vast number of parts of the TalkJS UI are currently exposed as components that you can edit directly in your theme editor. However, if that’s not enough, the global CSS overrides tab gives you full control to customize your chat UI. 

For example, with a global CSS overrides you can customize the background of a chat panel however you like, such as by setting an image as the background:

.Panel {
   background-image:url('https://example.com/image.jpg');
   background-size:cover;
}

With the following result:

A TalkJS chat UI with a custom image background. The custom background shows a landscape with luscious green hills and a cloudy sky. The chat itself contains a link to a video about hiking in the Lake District, and posts asking about an upcoming hike.

Chat UI with an image set as the background of a chat panel

Using global CSS overrides, you could for instance also hide the day marker that separates messages sent on different days, by setting DayMarker to display: none:

.DayMarker {
   display: none;
}

The difference between showing and hiding the day marker would be as follows:

Two instances of the same chat conversation side by side. On the left, a message sent on February 14 and a message sent just now are separated by a line, with at the center the word ‘Today’. On the right, the same messages are shown directly following one another, without a day marker separator.

Chat UI with and without a day marker 

You can find the global CSS override tab in the Themes section of your dashboard when editing a theme.

Overview of the theme editor in the TalkJS dashboard, with the Global CSS override file indicated in the sidebar navigation, above the list with built-in components. Inside the global CSS override file is a code comment that reads: ‘This file can be used to override default TalkJS styling outside your components. Any styles that you add here will be applied globally to the entire TalkJS UI.’

Global CSS override the the theme editor of the dashboard

Any CSS styles added to the global CSS overrides section of the theme editor get applied globally, to all parts of the TalkJS UI. To add a style only to a specific component, update that component directly in your theme editor.

For more information, see: Global CSS overrides.

Overview of other changes

Added

  • Added support for rich text shortcodes in the message editor. Ctrl-B (on Windows) or Cmd-B (on MacOS) now adds markup for bold text, while Ctrl-I or Cmd-I adds markup for italics.
  • React SDK (version 0.1.7): Added a show prop to Popup, that allows you to specify whether the pop-up widget pre-built chat UI should be shown or hidden.
  • React Native SDK (version 0.8.0): Added support for push notifications via Firebase on iOS. Note: For push notifications to iOS on Expo, we currently only support using Firebase, not APNs.
  • React Native SDK (version 0.8.0): Added onMessage and onUnreadsChange props to the Session component.
  • React Native SDK (version 0.8.0): Added hasValidCredentials, clearPushRegistration, setPushRegistation and unsetPushRegistration methods to the Session component.
  • Flutter SDK (version 0.10.0): Added support for Firebase push notifications on iOS.
  • Flutter SDK (version 0.10.0): Added compound predicates to Chatbox and ConversationList.
  • Flutter SDK (version 0.10.0): Added a missing themeOptions property in ConversationList.

Changed

  • React Native SDK (version 0.8.0) Removed an implicit push notification permissions request. Users of this library must explicitly request for push notification permissions on iOS and Android 13+.
  • React Native SDK (version 0.8.0): Removed bounce in iOS when the UI reached the edge of the content.
  • React Native SDK (version 0.8.0): Renamed the AndroidChannel interface to AndroidSettings, and the IOSPermissions interface to IOSSettings.
  • React Native SDK (version 0.8.1): The ConversationList no longer highlights the first conversation by default.

Fixed

  • Fixed an issue where a group chat with only guests wouldn’t show usernames alongside messages in the default preset themes.
  • Fixed an issue where external links would open inside an app even when Cordova InAppBrowser is used.
  • Flutter SDK (version 0.10.0): Fixed a push notification error when a sender's photoUrl is invalid.
  • Flutter SDK (version 0.10.0): Fixed a build issue on Android Gradle Plugin (AGP) 8.0+.
  • React Native SDK (version 0.8.0): Fixed bug in Session when user synchronization is disabled.
  • React Native SDK (version 0.8.0): Fixed bug with MessageField.setText and MessageField.typeText that would cause a crash when given certain strings.
  • React Native SDK (version 0.8.0): Fixed bug where, under certain conditions, the HTMLPanel wouldn’t load.

New guides and tutorials 

  • How to set up the Inbox UI mode as a pop-up
  • How to create a poll in TalkJS
  • Integrate chat into your Bildr webapp with TalkJS
  • Integrate chat into a Webflow site with TalkJS

👋 Thoughts? Questions? Get in touch.

✨Follow TalkJS on 𝕏 and LinkedIn to stay up to date.

👩🏾‍💻We’re hiring! Check out our jobs page.

Bug fixImprovementJavaScript SDKREST APIDashboardDeprecatedFlutter SDK
a year ago

Flutter SDK updates, filter by creation time, and more

Highlights

Filter by creation time

Need to get all of a user’s messages sent last week? You can now filter both conversations and messages by their creation date.

Using the createdAt predicate, you can select exactly those messages or conversations that were created within a particular time interval.

Read more on filtering by creation time for messages, and for conversations.

Edit app metadata from your dashboard

You can now edit metadata for your application directly from your dashboard. 

With the app metadata editor, you can easily store and edit custom metadata for your app, for example the app’s name, or a custom website URL. Once stored, you can make these app metadata variables available in other places throughout your app, such as in roles, themes, or in your email notification templates.

Overview of the TalkJS dashboard, under the Settings tab, under the heading ‘General’, there is an overview of your app ID, secret key, and a heading ‘App metadata’ with the option to edit metadata for your app. Already listed are {{app.name}}, followed by an empty field where you can fill out the app’s name, and {{app.custom.__}} with the placeholder text 'fieldname', the option to fill out the value for this field, and a ‘Delete’ button to delete this entire custom metadata field. Another button ‘Add custom field’ allows you to add another field. At the bottom of the section is a button ‘Save metadata’ to save all changes.

Edit your app’s metadata directly from your dashboard

You can find the metadata editor under the Settings tab of your TalkJS dashboard, and access your custom app metadata in roles, themes, and notification settings with {{app.custom.}}. 

Multi-line inputs are supported.

Read more on using app custom fields.

Flutter SDK v0.9.1

The Flutter SDK just got better. With the release of version 0.9.1, you can use the Flutter SDK to pass data to themes, and to automatically sync the keyboard color of the chat interface based on your app's theme. 

The Flutter SDK now also has support for custom conversation actions, and ensures that various properties and methods are available for a Session object, including methods for setting, unsetting, and clearing push registrations, and for tracking the number of unread conversations in a session.

Get started with the Flutter SDK.

Overview of other changes

Added

  • Added participant access right information (that is, whether a participant has read-only or read-and-write access) in a conversation to that conversation’s ConversationData in the JavaScript SDK.
  • Added the option to define custom message actions that are available only for messages from other conversation participants.

Changed

  • Simplified adding emoji reactions to themes. You can now pass the Reaction object as a whole to the EmojiReactionButton subcomponent in themes.

Deprecated

  • Deprecated InboxOptions.selected. Instead, use Inbox.select from the JavaScript SDK.

Fixed

  • Fixed an issue where the REST API batch user update did not handle invalid input data correctly.
  • Fixed an issue where having multiple tabs open for a conversation would send multiple browser notifications.
  • Fixed a bug where, when using the Flutter SDK, messages would only get marked as 'read' after clicking the message field, rather than when loading the chatbox.
  • Fixed a bug where a custom sub-component with the same name as a top-level component would get treated as a top-level component, and hence would not be deletable.
  • Fixed an issue where a failed authentication was unable to distinguish between failure due to connection issues, and an expired authentication token.

👋 Thoughts? Questions? Get in touch.

✨ Follow TalkJS on 𝕏 and LinkedIn to stay up to date.

👩🏾‍💻 We’re hiring! Check out our jobs page.