---
title: "Create Mattermost integration"
method: POST
path: "/mattermost-integration/project/{projectId}"
tags: ["Mattermost"]
---

# Create Mattermost integration

`POST /mattermost-integration/project/{projectId}`

## Request

- Base URL: `https://cloud.kaneo.app/api`
- URL: `https://cloud.kaneo.app/api/mattermost-integration/project/{projectId}`
- Auth: HTTP bearer

Create or replace the Mattermost integration for a project. The webhook URL must use HTTPS and pass destination validation; delivery failures surface later.

## Path parameters

- `projectId` string, required

## Request body

- object
  - `webhookUrl` string, required
  - `channelName` string
  - `events` object
    - `taskCreated` boolean
    - `taskStatusChanged` boolean
    - `taskPriorityChanged` boolean
    - `taskTitleChanged` boolean
    - `taskDescriptionChanged` boolean
    - `taskCommentCreated` boolean

## Response `200`

The stored integration

- MattermostIntegration, nullable
  - `id` string, required
  - `projectId` string, required
  - `channelName` string, nullable, required
  - `webhookConfigured` boolean, required
  - `maskedWebhookUrl` string, required: The webhook URL with its secret path segment masked, or an empty string when none is set.
  - `events` IntegrationEvents, required
    - `taskCreated` boolean, required
    - `taskStatusChanged` boolean, required
    - `taskPriorityChanged` boolean, required
    - `taskTitleChanged` boolean, required
    - `taskDescriptionChanged` boolean, required
    - `taskCommentCreated` boolean, required
  - `isActive` boolean, nullable, required
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time, required

## Other responses

- `400`: The webhook URL failed validation
- `401`: Missing or invalid credentials
- `403`: No access to the project, or missing workspace:manage_settings
- `404`: Project not found
- `429`: The API key exceeded its rate limit or usage quota. Wait the number of seconds in Retry-After before retrying. The X-RateLimit headers are sent only when the rate limit was hit.

## Changes

- **2026-10-09** `c9984766c765`: 1 info
  - added the non-success response with the status `404`
- **2026-10-08** `c7b8a842601b`: 3 breaking, 4 info
  - removed the media type `text/plain` for the response with the status `400`
  - removed the media type `text/plain` for the response with the status `403`
  - removed the media type `text/plain` for the response with the status `429`
  - added the media type `application/json` for the response with the status `400`
  - …3 more
- **2026-10-08** `2ed51b8af657`: 3 breaking, 3 info
  - removed the media type `application/json` for the response with the status `400`
  - removed the media type `application/json` for the response with the status `401`
  - removed the media type `application/json` for the response with the status `403`
  - added the media type `text/plain` for the response with the status `400`
  - …2 more
- **2026-10-07** `df1439c724ee`: 2 breaking, 3 info
  - removed the media type `text/plain` for the response with the status `400`
  - removed the media type `text/plain` for the response with the status `403`
  - added the media type `application/json` for the response with the status `400`
  - added the media type `application/json` for the response with the status `401`
  - …1 more
- **2026-09-06** `2c2489611b7d`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/usekaneo/apis/kaneo-api/changes/mattermost-integration/project/:projectId/post.md)

---

[API](https://skmtc.dev/usekaneo/apis/kaneo-api.md) - [All operations](https://skmtc.dev/usekaneo/apis/kaneo-api/llms.txt) - [OpenAPI document](https://skmtc.dev/usekaneo/apis/kaneo-api/revisions/93f78789100c?raw)
