> ## Documentation Index
> Fetch the complete documentation index at: https://v0.x-docs.novu.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Chat Channel Overview

> Learn the process of configuring and using chat providers with Novu

export const MissingProvider = ({channelName}) => <span>
    Are we missing a provider you'd like to use for {channelName ? channelName : "this"} channel? Please consider adding a new feature request on <a href="https://github.com/novuhq/novu/issues/new?assignees=&amp;labels=feature&amp;projects=&amp;template=feature_request.yml&amp;title=%F0%9F%9A%80+Feature%3A+">github</a> or help us upvoting the existing ones on our public <a href="https://roadmap.novu.co/roadmap">roadmap</a>
  </span>;

Novu can be used to deliver chat messages to your customers using a unified delivery API. You can easily integrate your favorite chat provider using the built-in integration store.

<iframe src="https://www.loom.com/embed/09ab7cc396e544beb17df541e2584d7e" width="100%" height="400px" frameBorder="0" allowFullScreen />

## Configuring chat providers

To configure a chat provider, you need to add a new integration to your Novu account. You can do this by navigating to the integration store and clicking on the **Add a provider** button and then select the chat provider you want to configure. You can find the [integration store](https://web.novu.co/integrations?utm_campaign=docs-chat-overview) in the left sidebar of the Novu dashboard.

Each chat provider requires defferent type of credentials. There are few providers which does not require any credentials example: `Discord`

## Sending chat message

Steps to send a chat message using Novu:-

1. Add a chat provider integration to your Novu account from the integration store. Enter credentials if required and save the integration. Follow corresponding provider documentation to get the required credentials.
2. Create a new subscriber

> Step 2 can be skipped if you already have a subscriber. You can use the `subscriberId` of an existing subscriber.

3. [Update](/channels-and-providers/chat/overview#update-credential-webhookurl) the subscriber credential `webhookUrl` for this provider and integration.

4. Create a new [worklow](/workflows/notification-workflows) or use an existing workflow. Add chat channel and [write content](/content-creation-design/notification-content-creation#chat) for the message.

5. Trigger this workflow to above `subscriberId` using trigger identifier

6. Check the chat provider if message is received. If not, check the logs in [activity feed](/activity-feed/introduction) for for any errors.

## Update credential webhookUrl

<Tabs>
  <Tab title="Node.js">
    ```javaScript theme={null}
    import {
      Novu,
      ChatProviderIdEnum
    } from '@novu/node';

    const novu = new Novu("<NOVU_API_KEY>");

    await novu.subscribers.setCredentials('subscriberId', ChatProviderIdEnum.Slack, {
      webhookUrl: "<WEBHOOK_URL>",
    });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -L -X PUT 'https://api.novu.co/v1/subscribers/<SUBSCRIBER_ID>/credentials' \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: ApiKey <NOVU_API_KEY>' \
    -d '{
      "providerId": "slack",
      "credentials": {
          "webhookUrl": "<WEBHOOK_URL>"
      },
      "integrationIdentifier": "slack-MnGLxp8uy"
    }'
    ```
  </Tab>
</Tabs>

Checkout the [API reference](/api-reference/subscribers/update-subscriber-credentials) for more details.

<Info> Integration identifier is similar to Provider identifier but it is different than Provider Id. It is unique for each integration. You can find the `integrationIdentifier` in the integration store page.  </Info>

## Common errors

Common erros and reason of those errors while sending chat messages using Novu.

1. Subscriber does not have a configured channel.
   * if the subscriber does not have credentials set up for any of the chat provider.
2. Webhook URL for the chat channel is missing.
   * `webhookUrl` field is null, undefined or not set. Check using [get subscriber api](/api-reference/subscribers/get-subscriber).
3. Subscriber does not have an active integration.
   * if subscriber have credentials set but integration is either not active or deleted for this credential.

<Tip>
  <MissingProvider channelName="SMS" />
</Tip>
