Skip to main content
POST
/
insights
Create thread
curl --request POST \
  --url https://productlane.com/api/v1/insights \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "text": "<string>",
  "painLevel": "UNKNOWN",
  "contactEmail": "jsmith@example.com",
  "title": "<string>",
  "origin": "INAPP",
  "contactName": "<string>",
  "projectId": "<string>",
  "issueId": "<string>",
  "companyId": "<string>",
  "notify": {
    "slack": true,
    "email": true
  }
}
'
{
  "id": "<string>",
  "createdAt": "2023-11-07T05:31:56Z",
  "updatedAt": "2023-11-07T05:31:56Z",
  "isDeleted": true,
  "showRecordCall": 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 (note) for your workspace. The text can be HTML formatted for things like line breaks, lists, formatting and headings.

Request Body

text
string
required
Thread content (minimum 1 character). Can be HTML formatted for line breaks, lists, formatting and headings.
painLevel
string
required
Pain level associated with this thread
contactEmail
string
required
Email address of the contact who provided this thread
title
string
Optional title for the thread
origin
string
Source of the thread
contactName
string
Name of the contact who provided this thread
projectId
string
ID of the project this thread is related to
notify
object
Notification preferences
notify.slack
boolean
Whether to send Slack notification
notify.email
boolean
Whether to send email notification

Response

id
string
Unique identifier for the created thread
text
string
Thread content
title
string
Thread title
painLevel
string
Pain level of the thread
origin
string
Source of the thread
contactEmail
string
Email of the contact who provided the thread
contactName
string
Name of the contact who provided the thread
projectId
string
ID of the related project
state
string
Current state of the thread (NEW, PROCESSED, COMPLETED, SNOOZED, UNSNOOZED)
createdAt
string
Timestamp when the thread was created
updatedAt
string
Timestamp when the thread was last updated
workspaceId
string
ID of the workspace this thread belongs to

Example Request

{
  "text": "The current dashboard is too cluttered and hard to navigate. Users are struggling to find the most important metrics.",
  "painLevel": "HIGH",
  "contactEmail": "john@acme.com",
  "title": "Dashboard Navigation Issues",
  "origin": "API",
  "contactName": "John Doe",
  "projectId": "proj_123",
  "notify": {
    "slack": true,
    "email": false
  }
}

Example Response

{
  "id": "insight_123456789",
  "text": "The current dashboard is too cluttered and hard to navigate. Users are struggling to find the most important metrics.",
  "title": "Dashboard Navigation Issues",
  "painLevel": "HIGH",
  "origin": "API",
  "contactEmail": "john@acme.com",
  "contactName": "John Doe",
  "projectId": "proj_123",
  "state": "NEW",
  "createdAt": "2024-01-15T10:30:00Z",
  "updatedAt": "2024-01-15T10:30:00Z",
  "workspaceId": "ws_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
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
contactName
string
projectId
string
issueId
string
companyId
string
notify
object

Response

Successful response

id
string
required
createdAt
string<date-time>
required
updatedAt
string<date-time>
required
isDeleted
boolean
required
showRecordCall
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
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