---
title: "Create thread"
method: POST
path: "/threads"
tags: ["threads"]
---

# Create thread

`POST /threads`

## Request

- Base URL: `https://productlane.com/api/v1`
- URL: `https://productlane.com/api/v1/threads`
- Auth: HTTP bearer

Create a new thread for your workspace. Authentication is required. The "text" can be HTML formatted for things like line breaks, lists, formatting and headings.

## Request body

- object
  - `title` string
  - `text` string, required
  - `painLevel` 'UNKNOWN' | 'LOW' | 'MEDIUM' | 'HIGH', required
  - `state` 'NEW' | 'PROCESSED' | 'COMPLETED' | 'SNOOZED' | 'UNSNOOZED': Processing status of the thread. Possible values: NEW, PROCESSED, COMPLETED, SNOOZED, UNSNOOZED. Note: this does not directly control which inbox tab the thread appears in - tab placement is determined by multiple factors including state, snooze timing, and workspace settings.
  - `origin` 'INAPP' | 'PORTAL' | 'SUPPORT_PORTAL' | 'API' | 'SLACK' | 'SLACK_CONNECT' | 'INTERCOM' | 'INTERCOM_ATTACHMENT' | 'ZENDESK_ATTACHMENT' | 'ZENDESK' | 'FRONT_ATTACHMENT' | 'EMAIL' | 'ZAPIER' | 'HUBSPOT' | 'PLAIN' | 'CALENDAR' | 'WIDGET' | 'AI_CHAT' | 'UPVOTE' | 'LIVE_CHAT' | 'TEAMS' | 'LINEAR' | 'CUSTOM'
  - `contactEmail` string, email, required
  - `contactName` string
  - `assigneeId` string: ID of the workspace member to assign this thread to
  - `projectId` string
  - `issueId` string
  - `companyId` string
  - `createdAt` string, date-time
  - `updatedAt` string, date-time
  - `notify` object
    - `slack` boolean
    - `email` boolean

## Response `200`

Successful response

- object
  - `id` string, required
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time, required
  - `isDeleted` boolean, required
  - `isRead` boolean, required
  - `lastInboundMessageAt` string, date-time, nullable, required
  - `lastOutboundMessageAt` string, date-time, nullable, required
  - `lastStateChangeAt` string, date-time, nullable, required
  - `text` string, required
  - `painLevel` 'UNKNOWN' | 'LOW' | 'MEDIUM' | 'HIGH', required
  - `state` 'NEW' | 'PROCESSED' | 'COMPLETED' | 'SNOOZED' | 'UNSNOOZED', required
  - `origin` 'INAPP' | 'PORTAL' | 'SUPPORT_PORTAL' | 'API' | 'SLACK' | 'SLACK_CONNECT' | 'INTERCOM' | 'INTERCOM_ATTACHMENT' | 'ZENDESK_ATTACHMENT' | 'ZENDESK' | 'FRONT_ATTACHMENT' | 'EMAIL' | 'ZAPIER' | 'HUBSPOT' | 'PLAIN' | 'CALENDAR' | 'WIDGET' | 'AI_CHAT' | 'UPVOTE' | 'LIVE_CHAT' | 'TEAMS' | 'LINEAR' | 'CUSTOM', required
  - `title` string, nullable, required
  - `snoozedUntil` string, date-time, nullable, required
  - `workspaceId` string, required
  - `contactId` string, nullable, required
  - `companyId` string, nullable, required
  - `reporterId` string, nullable, required
  - `assigneeId` string, nullable, required
  - `attachments` unknown[], required
    - unknown
  - `recordingId` string, nullable, required
  - `videoId` string, nullable, required
  - `slackChannelId` string, nullable, required
  - `linearAttachmentId` string, nullable, required
  - `intercomId` string, nullable, required
  - `frontId` string, nullable, required
  - `zendeskId` string, nullable, required
  - `hubspotId` string, nullable, required
  - `plainId` string, nullable, required
  - `productboardId` string, nullable, required
  - `slackReplyId` string, nullable, required
  - `uniqueId` string, nullable, required
  - `linkedProjects` unknown[], required
    - unknown
  - `linkedIssues` unknown[], required
    - unknown
  - `workspace` object, required
    - `id` string, required
    - `name` string, required
    - `domain` string, nullable, required
    - `remainingGeneratedThreadTitles` number, nullable, required
    - `slackSettings` object, nullable, required
      - `notificationChannelId` string, nullable, required
  - `company` object, nullable, required
    - `id` string, required
    - `name` string, required
    - `workspaceId` string, required
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `isDeleted` boolean, required
    - `version` number, required
    - `linearCustomerId` string, nullable, required
    - `size` number, nullable, required
    - `revenue` number, nullable, required
    - `statusId` string, nullable, required
    - `statusName` string, nullable, required
    - `statusColor` string, nullable, required
    - `tierId` string, nullable, required
    - `tierName` string, nullable, required
    - `logoUrl` string, nullable, required
    - `domains` string[], required
    - `autoAdd` boolean, nullable, required
    - `intercomId` string, nullable, required
    - `hubspotId` string, nullable, required
    - `productboardId` string, nullable, required
    - `externalIds` string[], required
    - `slugId` string, nullable, required
  - `contact` object, nullable, required
    - `id` string, required
    - `email` string, required
    - `name` string, nullable, required
    - `imageUrl` string, nullable, required
    - `companyId` string, nullable, required
    - `workspaceId` string, required
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `isDeleted` boolean, required
    - `version` number, required
    - `intercomId` string, nullable
    - `hubspotId` string, nullable
    - `productboardId` string, nullable
    - `zendeskId` string, nullable
  - `reporter` object, nullable, required
    - `id` string, required
    - `name` string, nullable, required
    - `email` string, nullable, required
    - `role` string, nullable, required
    - `imageUrl` string, nullable, required
    - `selectedTeamIds` string[]
    - `createdAt` string, date-time
    - `updatedAt` string, date-time

## Other responses

- `default`: Error response

---

[API](https://skmtc.dev/productlane/apis/productlane-api.md) · [All operations](https://skmtc.dev/productlane/apis/productlane-api/llms.txt) · [OpenAPI document](https://skmtc.dev/productlane/apis/productlane-api/revisions/9325a8425b36?raw)
