> ## Documentation Index
> Fetch the complete documentation index at: https://www.text.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Recipes

## Chat transcript feature

To implement the chat transcript feature, you need to set the `transcript_email` thread property in the `routing` namespace. The value of this property should be set to the email address of the requester.

```js theme={null}
customerSDK
  .updateThreadProperties({
    chatId: "ON0X0R0L67",
    threadId: "OS0C0W0Z1B",
    properties: {
      routing: {
        transcript_email: "john.doe@example.com",
      },
    },
  })
  .then((response) => {
    console.log(response);
  })
  .catch((error) => {
    console.log(error);
  });
```

## Hard limit error handling

In order to handle [hard limit error](https://platform.text.com/docs/extending-chat-widget/customer-sdk/#users-limit-reached) properly, you can listen for this specific disconnect reason and then react accordingly. In our case, we are showing simple information that our agents are not available at the moment.

```js theme={null}
customerSDK.on("disconnected", ({ reason }) => {
  if (reason === "users_limit_reached") {
    console.log("Our agents are not available at the moment");
  }
});
```
