---
title: "Create a new message"
method: POST
path: "/v1/org/{orgId}/message"
tags: ["message"]
---

# Create a new message

`POST /v1/org/{orgId}/message`

## Path parameters

- `orgId` string, required

## Request body

- PartialMessage
  - `id` string — globally unique id
  - `orgId` string — parent organization id
  - `type` 'CHAT' | 'EMAIL' | 'WEB' — type of message
  - `notificationType` 'SUCCESS' | 'WARN' | 'ERROR' | 'COMMENT' | 'TASK_COMPLETED' | 'TASK_ASSIGNED' | 'REMINDER' | 'ANNOUNCEMENT' | 'PROCESS_ERROR' | 'PROCESS_DONE' | 'SHARE' — type of notification (SUCCESS, ERR, ANNOUNCEMENT etc.)
  - `userId` string — user who receives the message
  - `content` object — message content
  - `title` string — message title
  - `messageUrl` string — link to message content (if applicable)
  - `key` string — key of message if applicable (e.g. product-tour, import-complete-{id})
  - `readAt` string — read timestamp
  - `seenAt` string — seen timestamp
  - `createId` string — created by user id
  - `createBehalfId` string — created on behalf of user id
  - `createAttribution` Attribution
    - `principalUserId` string
    - `agentUserIds` string[]
    - `eventId` string
    - `aiChatId` string
    - `aiToolUseId` string
    - `channel` 'WEB' | 'MOBILE' | 'SLACK' | 'TEAMS' | 'MCP'
  - `createAt` string — created timestamp

## Response `201`

message created

- Message
  - `id` string, required — globally unique id
  - `orgId` string, required — parent organization id
  - `type` 'CHAT' | 'EMAIL' | 'WEB', required — type of message
  - `notificationType` 'SUCCESS' | 'WARN' | 'ERROR' | 'COMMENT' | 'TASK_COMPLETED' | 'TASK_ASSIGNED' | 'REMINDER' | 'ANNOUNCEMENT' | 'PROCESS_ERROR' | 'PROCESS_DONE' | 'SHARE', required — type of notification (SUCCESS, ERR, ANNOUNCEMENT etc.)
  - `userId` string, required — user who receives the message
  - `content` object — message content
  - `title` string — message title
  - `messageUrl` string — link to message content (if applicable)
  - `key` string — key of message if applicable (e.g. product-tour, import-complete-{id})
  - `readAt` string — read timestamp
  - `seenAt` string — seen timestamp
  - `createId` string — created by user id
  - `createBehalfId` string — created on behalf of user id
  - `createAttribution` Attribution
    - `principalUserId` string
    - `agentUserIds` string[]
    - `eventId` string
    - `aiChatId` string
    - `aiToolUseId` string
    - `channel` 'WEB' | 'MOBILE' | 'SLACK' | 'TEAMS' | 'MCP'
  - `createAt` string, required — created timestamp

## Other responses

- `400` — invalid data
- `401` — not authorized
- `403` — permission denied

---

[API](https://skmtc.net/charthop/apis/charthop-api.md) · [All operations](https://skmtc.net/charthop/apis/charthop-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/charthop/charthop-api/revisions/2de21f45f447/schema)
