Changelog

Important changes in Cord SDK


You can find all important changes to the Cord product on this page.

31 May, 2023

Add typing field to Thread REST API

We have added a new field typing to update a thread using the Thread API. The new field accepts an array of user ids, and will force show a typing indicator in the thread.

29 May, 2023

JavaScript User API

We have a new client-side JavaScript API to fetch details about users you've synced to Cord. See the documentation for the User API for more details.

26 May, 2023

Applications REST API

We have a new Applications REST API which has multiple endpoints you can use to manipulate your applications. This API will enable you to create new applications and update, delete or view details of your existing ones.

25 May, 2023

Update Cord's Server to Version 0.0.42

If you're using our server JS SDK @cord-sdk/server in order to sign Cord tokens with the function getClientAuthToken please update to the latest version to ensure it's passed a user ID and organization ID.

Don't worry, we haven't found any security holes or vulnerabilities in our code. We've rolled out this new version as an extra guardrail for clients who may have improperly implemented our API, and created a way to call the function with a completely empty payload. While this should be prevented by the TypeScript types, we just want to advise customers that, if called without a user ID and organization ID, the resulting token will actually be an administrative token that's usable for any query in the REST API.

We don't anticipate many customers will be affected, but we recommend updating as a failsafe. As a reminder of how to implement the API, check out our guides on our server-side libraries and our authentication reference.

24 May, 2023

Message component

The Message component is now available! It is a separate component that allows you to render thread messages individually. You can use it with our Thread API to put together unique custom experiences way beyond what we provide.

19 May, 2023

JS SDK 0.0.41

This version adds a threadID parameter to the navigate override function.

3 May, 2023

Avatar and Facepile components

The Avatar and Facepile components are now available! They are lower level breakdowns of our existing Presence components, so you can use them with our APIs to build custom presence experiences.

3 May, 2023

Pass threadID to useCordAnnotationClickHandler callback

In addition to id and location, we now supplythreadID in the object passed to the callback given to theuseCordAnnotationClickHandler hook. This could be used, for example, if a user clicks a message in the ThreadList which is no longer visible on the page. The threadID can be passed to a Thread component to render the comment independently.

2 May, 2023

New and updated JavaScript thread APIs

We have a number of new APIs for getting information about threads in JavaScript. They complement our existing thread APIs. Altogether, we now offer the following thread functions:

28 April, 2023

Add showScreenshot to screenshot options in initialization call

When initializing Cord, there is now an additional option within the screenshot options to allow you to hide screenshots in messages. This is useful if you want to disable viewing any pre-existing screenshots. (The existing captureWhen option lets you disable taking new screenshots.)

27 April, 2023

Add screenshotUrlOverride to ScreenshotConfig API

A new screenshotUrlOverride property for ScreenshotConfig API allows to specify a URL to an image to use as screenshot, rather than having Cord create one.

19 April, 2023

Add auto-scrolling to ThreadList Component

When using the ThreadList component highlightThreadId prop, if the thread id exists within the list then it will auto scroll to show you the thread. The ThreadList also auto scrolls when using the FloatingThreads component and setting the highlightThreadId to true.

19 April, 2023

JS SDK 0.0.36

This SDK version sets the stage for some naming changes which will make our function and React hook APIs more consistent. (Components names will be unaffected.) Old names are maintained for backwards-compatibility as well. Our documentation will be updated in the coming days to reflect the new names.

18 April, 2023

New prop highlightThreadId added to ThreadList Component

The ThreadList component now highlights a thread if you pass the thread id into the prop highlightThreadId. If there is also a FloatingThreads component then the highlightThreadId prop will take priority over the behavior described here.

13 April, 2023

Update of placeholders in components

TheThread component prop showPlaceholder will be set to trueby default. If set to true it will show a placeholder containing users from the org and a prompt to send a new message. If set to false the user will just see the composer if the thread has no messages.

The Sidebar and SidebarLauncher placeholders in the conversation view has been updated to show users from the org, and a composer to prompt the user to create a new message.

The components ThreadList, Inbox, InboxLauncher, NotificationList, and NotificationListLauncher will have updated placeholders that include an icon before the text prompt.

Cord sidebar and sidebar launcher component showing updated placeholder
Updated placeholder for sidebar components
Cord thread list component showing updated placeholder
Updated placeholder for thread list component
Cord inbox and inbox launcher component showing updated placeholder
Updated placeholder for inbox components
Cord notification list and notification list launcher component showing updated placeholder
Updated placeholder for notification components

6 April, 2023

Screenshot Options API

All screenshot related configurations have been merged into a single ScreenshotOptions API.

  • blurScreenshots is now screenshotOptions.blur
  • showBlurredScreenshots is now screenshotOptions.showBlurred
  • enableScreenshotCapture is now screenshotOptions.captureWhen

Existing code using the old names will continue to work for the foreseeable future, but we recommend using the new names in any new code

5 April, 2023

Placeholders in components available in JS SDK 0.0.35

The components ThreadList, Inbox, InboxLauncher, NotificationList, and NotificationListLauncher now have a showPlaceholder prop set to true by default that will show a placeholder when there are no threads. If set to false the user will see an empty list.

TheThread component now has a showPlaceholder prop set to false by default temporarily. If set to true it will show a placeholder containing users from the org and a prompt to send a new message. If set to false the user will just see the composer if the thread has no messages.

Cord thread component showing the placeholder
Placeholder in thread component

4 April, 2023

Thread and Notification updates

Thread component metadata attribute
The Thread component now has a metadata attribute. The attribute's value is a JSON object that can be used to store arbitrary data about the thread. For example, you could use the metadata attribute to store the URL of a task in your internal task tracker that relates to the thread.

Correspondingly, the ThreadList component now has a filter attribute. The attribute's value is a JSON object that can be used to filter the list of threads. Currently the only valid key is metadata. The value for a metadata entry should be an object representing the metadata key/value to filter on. For example, to show only threads where the metadata entry for the key "category" has a value of "sales", set the filter to { metadata: { category: "sales" } }.

Notification List and Notification List Launcher
The NotificationList component and NotificationListLauncher component are now available to keep users up to date with things directly related to them.

Notification Summary API and React hook
A new API is available to fetch information for a users' notifications. The Notification Summary API can be used to get the number of unread notifications for the current user. The data is updated in real-time.

3 April, 2023

Thread List onThreadClick event returns threadSummary

The ThreadList component has a second threadSummary argument passed to its onThreadClick event in addition to threadID.

3 April, 2023

Thread Summary Javascript API and React hook

A new API is available to fetch information for a thread ID. The Thread Summary API can be used to get the number of messages in a thread, the id`s of the participants, who is currently typing and more. All data is updated in real-time.

22 March, 2023

Default Thread List highlight behavior with Floating Threads

The ThreadList component now highlights a thread if there is also a FloatingThreads component at the same location, and the corresponding thread is opened. This default behavior can be overridden by settinghighlightOpenFloatingThread=false on the ThreadList component.

15 March, 2023

Thread List onLoading and onRender props

The ThreadList component now hasonLoading and onRender props that are useful for building a custom loading UI.

9 March, 2023

Thread List and Floating Threads props to show/hide screenshots

The ThreadList component now has a new prop showScreenshotPreviewInMessage which is true by default. If the developer sets it to false, messages in the ThreadList will no longer show the screenshot preview element (also known as the Annotation Pill).

The FloatingThreads component gains a similar showScreenshotPreview prop which is false by default. If the developer sets it to true, users will see a screenshot preview elements (also known as the Annotation Pill) in the first message of Floating Threads.

3 March, 2023

Thread List mouseenter and mouseleave events

The ThreadList component now emits events when users `mouseover` and `mouseleave` a thread.

20 February, 2023

Presence defaults to exact matching

The JavaScript Presence API has changed to do exact matching on the provided location by default, with a partial_match argument to invoke partial matching.

31 January, 2023

JS SDK v0.0.30

The JavaScript SDK is updated to version 0.0.30. This version adds an experimental notifications launcher button component into the beta components. Documentation and more information will be provided later, as the component stabilizes.

27 January, 2023

JS SDK v0.0.29

This fixes an issue in our JavaScript SDK when used with server-side rendering.

23 January, 2023

JS SDK v0.0.28

The JavaScript SDK is updated to version 0.0.28. This version adds an experimental notifications component into thebeta components. Documentation and more information will be provided later, as the component stabilizes.

10 January, 2023

Thread autofocus

The Thread component now has an autofocus property, used to focus its composer on render.

3 January, 2023

Thread List resolve and reopen events

The ThreadList component now emits events when it is aware that a thread has been resolved or reopened. This allows developers to implement custom behavior using the threadID.

16 December, 2022

Screenshot targets and disable buttons

Screenshot targets
Adding data-cord-screenshot-target="true" data attribute to an element will crop the screenshot to include that specific element only.

New Disabled property
New property available from SDK version 0.0.24. Used to disable the button of cord-inbox-launcher component andcord-floating-threads component.

28 November, 2022

Sidebar thread open and close events

The Sidebar component now emits events whenever a thread is opened or closed. This allows developers to implement custom behavior based on the threadID, like showing a message, scrolling the page to the right section, etc.

23 November, 2022

CSS variables and Annotations

New CSS Variables
New CSS variables to change the height and border of the following buttons: cord-sidebar-launcher component, cord-inbox-launcher component, cord-floating-threads component. See each component's page for more information.

Only allow annotations on some parts of a page
Adding data-cord-annotation-allowed="false" data attribute to an element prevents users from annotating it. Documented here.

Deprecated Annotation Mode
Deprecated annotationMode. Use data-cord-annotation-allowed instead.

14 October, 2022

Set New Thread Titles

There is a new threadName property on the cord-sidebar component and thecord-thread component. This property sets the thread title for any new threads created by those components.

11 October, 2022

Sidebar onOpen Width

The Sidebar component's onOpen property is now passed the width of the sidebar.

3 October, 2022

Disable SidebarLauncher button

The SidebarLauncher component has a new optional disabled boolean attribute, which disables the button if the value provided is true.

27 September, 2022

Short User Names

The user API has a new short_name field. If supplied, this will be used to refer to a user in most places (such as message headers) instead of the name field.

In addition, the first_name and last_name fields are being deprecated. They aren't currently used for any purpose and calls can omit them without any effect. They'll keep being accepted and stored for now, but eventually they'll stop being returned when fetching a user's details.

13 September, 2022

Annotation Mode

We are adding a new option to the SDK to specify that annotations operate in targeted mode. In this mode, annotations can only be placed on designated targets. To use this, please pass annotationMode: 'custom_targets_only' when initializing the SDK or CordProvider.

7 September, 2022

✨ We have a changelog!

This is the beginning of Cord's changelog. From now on, new features, SDK changes and improvements, and important bug fixes will appear here.