Skip to main content
POST
/
threads
Create thread
curl --request POST \
  --url https://productlane.com/api/v1/threads \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "text": "<string>",
  "painLevel": "UNKNOWN",
  "contactEmail": "jsmith@example.com",
  "title": "<string>",
  "state": "NEW",
  "origin": "INAPP",
  "contactName": "<string>",
  "assigneeId": "<string>",
  "projectId": "<string>",
  "issueId": "<string>",
  "companyId": "<string>",
  "createdAt": "2023-11-07T05:31:56Z",
  "updatedAt": "2023-11-07T05:31:56Z",
  "notify": {
    "slack": true,
    "email": true
  }
}
'
{
  "id": "<string>",
  "createdAt": "2023-11-07T05:31:56Z",
  "updatedAt": "2023-11-07T05:31:56Z",
  "isDeleted": true,
  "isRead": true,
  "lastInboundMessageAt": "2023-11-07T05:31:56Z",
  "lastOutboundMessageAt": "2023-11-07T05:31:56Z",
  "lastStateChangeAt": "2023-11-07T05:31:56Z",
  "text": "<string>",
  "painLevel": "UNKNOWN",
  "state": "NEW",
  "origin": "INAPP",
  "title": "<string>",
  "snoozedUntil": "2023-11-07T05:31:56Z",
  "workspaceId": "<string>",
  "contactId": "<string>",
  "companyId": "<string>",
  "reporterId": "<string>",
  "assigneeId": "<string>",
  "attachments": "<array>",
  "recordingId": "<string>",
  "videoId": "<string>",
  "slackChannelId": "<string>",
  "linearAttachmentId": "<string>",
  "intercomId": "<string>",
  "frontId": "<string>",
  "zendeskId": "<string>",
  "hubspotId": "<string>",
  "plainId": "<string>",
  "productboardId": "<string>",
  "slackReplyId": "<string>",
  "uniqueId": "<string>",
  "linkedProjects": "<array>",
  "linkedIssues": "<array>",
  "workspace": {
    "id": "<string>",
    "name": "<string>",
    "domain": "<string>",
    "remainingGeneratedThreadTitles": 123,
    "slackSettings": {
      "notificationChannelId": "<string>"
    }
  },
  "company": {
    "id": "<string>",
    "name": "<string>",
    "workspaceId": "<string>",
    "createdAt": "2023-11-07T05:31:56Z",
    "updatedAt": "2023-11-07T05:31:56Z",
    "isDeleted": true,
    "version": 123,
    "linearCustomerId": "<string>",
    "size": 123,
    "revenue": 123,
    "statusId": "<string>",
    "statusName": "<string>",
    "statusColor": "<string>",
    "tierId": "<string>",
    "tierName": "<string>",
    "logoUrl": "<string>",
    "domains": [
      "<string>"
    ],
    "autoAdd": true,
    "intercomId": "<string>",
    "hubspotId": "<string>",
    "productboardId": "<string>",
    "externalIds": [
      "<string>"
    ],
    "slugId": "<string>"
  },
  "contact": {
    "id": "<string>",
    "email": "<string>",
    "name": "<string>",
    "imageUrl": "<string>",
    "companyId": "<string>",
    "workspaceId": "<string>",
    "createdAt": "2023-11-07T05:31:56Z",
    "updatedAt": "2023-11-07T05:31:56Z",
    "isDeleted": true,
    "version": 123,
    "intercomId": "<string>",
    "hubspotId": "<string>",
    "productboardId": "<string>",
    "zendeskId": "<string>"
  },
  "reporter": {
    "id": "<string>",
    "name": "<string>",
    "email": "<string>",
    "role": "<string>",
    "imageUrl": "<string>",
    "selectedTeamIds": [
      "<string>"
    ],
    "createdAt": "2023-11-07T05:31:56Z",
    "updatedAt": "2023-11-07T05:31:56Z"
  }
}

Create Thread

Create a new thread for communication and feedback collection.

Request Body

painLevel
string
required
Pain level associated with this thread
email
string
required
Email address of the person creating the thread
actorName
string
required
Name of the person creating the thread
title
string
required
Thread title
text
string
required
Thread content
actorImage
string
URL of the actor’s profile image
name
string
Display name for the thread creator

Response

id
string
Unique identifier for the created thread

Example Request

{
  "painLevel": "MEDIUM",
  "email": "user@example.com",
  "actorName": "John Doe",
  "title": "Feature Request: Dark Mode",
  "text": "It would be great to have a dark mode option for the application. This would help reduce eye strain during night usage.",
  "actorImage": "https://example.com/avatar.jpg",
  "name": "John"
}

Example Response

{
  "id": "thread_123456789"
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
text
string
required
Minimum string length: 1
painLevel
enum<string>
required
Available options:
UNKNOWN,
LOW,
MEDIUM,
HIGH
contactEmail
string<email>
required
Maximum string length: 254
title
string
Maximum string length: 512
state
enum<string>

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.

Available options:
NEW,
PROCESSED,
COMPLETED,
SNOOZED,
UNSNOOZED
origin
enum<string>
Available options:
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
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

Response

Successful response

id
string
required
createdAt
string<date-time>
required
updatedAt
string<date-time>
required
isDeleted
boolean
required
isRead
boolean
required
lastInboundMessageAt
string<date-time> | null
required
lastOutboundMessageAt
string<date-time> | null
required
lastStateChangeAt
string<date-time> | null
required
text
string
required
painLevel
enum<string>
required
Available options:
UNKNOWN,
LOW,
MEDIUM,
HIGH
state
enum<string>
required
Available options:
NEW,
PROCESSED,
COMPLETED,
SNOOZED,
UNSNOOZED
origin
enum<string>
required
Available options:
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
title
string | null
required
snoozedUntil
string<date-time> | null
required
workspaceId
string
required
contactId
string | null
required
companyId
string | null
required
reporterId
string | null
required
assigneeId
string | null
required
attachments
array
required
recordingId
string | null
required
videoId
string | null
required
slackChannelId
string | null
required
linearAttachmentId
string | null
required
intercomId
string | null
required
frontId
string | null
required
zendeskId
string | null
required
hubspotId
string | null
required
plainId
string | null
required
productboardId
string | null
required
slackReplyId
string | null
required
uniqueId
string | null
required
linkedProjects
array
required
linkedIssues
array
required
workspace
object
required
company
object
required
contact
object
required
reporter
object
required