# Custom channels

Build your own integrations with Missive using custom channels. Receive messages from any source via API and optionally send outgoing messages through webhooks.

Custom channels are for developers who want to integrate proprietary systems, niche platforms, or internal tools with Missive.

## Use cases

* **Internal ticketing systems:** Route support tickets to Missive
* **CRM integrations:** Sync customer communications
* **Proprietary platforms:** Connect platforms without native Missive support
* **IoT and monitoring:** Receive alerts as conversations
* **Custom chat widgets:** Build your own chat solution

## Message types

When creating a custom channel, choose a message type. This cannot be changed after creation.

| Type      | Description                                        | Use case                           |
| --------- | -------------------------------------------------- | ---------------------------------- |
| **Text**  | Basic text with emojis, attachments, bubble colors | Chat-like messages, alerts         |
| **HTML**  | Rich-text HTML content with attachments            | Formatted notifications, reports   |
| **Email** | Subject, From/To/Cc/Bcc, HTML body                 | Email-like messages (receive only) |

## How to create

{% stepper %}
{% step %}
**Open account settings**

Go to **Settings** > **Accounts** and click **Add account**.

{% hint style="info" %}
To open Settings, click your avatar in the bottom-left corner of the sidebar, then **Settings** (or press <kbd>⌘,</kbd>).
{% endhint %}
{% endstep %}

{% step %}
**Select Custom**

Click the **Others** tab, then select **Custom**.
{% endstep %}

{% step %}
**Choose sharing options**

Select if this is a personal or shared account.
{% endstep %}

{% step %}
**Configure basic settings**

Enter:

* **Username:** Display name for this channel in Missive
* **Message type:** Text, HTML, or Email (cannot be changed later)
  {% endstep %}

{% step %}
**Configure message settings**

Set up outgoing message options:

* **Allow sending new messages:** Enable to compose new messages
* **Allow replying:** Enable to reply to incoming messages
* **Allow editing recipients:** Let users change recipient fields

Configure recipient fields:

* **Allow recipient ID:** Custom identifier for routing
* **Allow recipient name:** Display name for recipients
* **Allow recipient username:** Username or handle
  {% endstep %}

{% step %}
**Set up aliases (optional)**

Add sender identities your team can use when sending:

* **ID:** Internal identifier
* **Name:** Display name
* **Username:** Handle or email-like address
  {% endstep %}

{% step %}
**Configure webhook (if sending enabled)**

If outgoing messages are enabled:

* **Outgoing webhook URL:** Endpoint that receives message payloads
* **Signature secret:** HMAC SHA256 key for request validation

{% hint style="info" %}
The webhook receives a POST request when messages are sent from Missive.
{% endhint %}
{% endstep %}

{% step %}
**Create the channel**

Click **Connect** to create your custom channel. Note the channel ID for API integration.
{% endstep %}
{% endstepper %}

## Receiving messages

Send messages to your custom channel via the Missive REST API.

```
POST /v1/messages
```

Include the `channel_id` in your request. See the [Custom Channels API documentation](https://github.com/missive/docs-guides/blob/main/docs-developers/custom-channels/README.md) for details.

## Sending messages (webhook)

When users send or reply from Missive, your webhook receives a POST request with:

* Message content
* Recipient information
* Sender alias details
* Conversation context

### Webhook validation

If you set a signature secret, validate requests using HMAC SHA256:

1. Get the `X-Missive-Signature` header
2. Compute HMAC SHA256 of the raw request body using your secret
3. Compare signatures using constant-time comparison

## Customization

**Bubble colors** (Text type)

Set custom colors for incoming message bubbles.

**Aliases**

Define multiple sender identities for your team.

**Recipient fields**

Control which recipient fields users can set.

## Developer documentation

For complete API details, see:

* [Custom Channels API](https://github.com/missive/docs-guides/blob/main/docs-developers/custom-channels/README.md)
* [REST API reference](https://github.com/missive/docs-guides/blob/main/docs-developers/rest-api/README.md)
* [Webhooks](https://github.com/missive/docs-guides/blob/main/docs-developers/webhooks/README.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://missiveapp.com/docs/core-features/connected-accounts/other-channels/custom-channels.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
