Skip to content
Dashboard

Posts

User-submitted feedback and feature requests. Posts belong to boards and can be upvoted, commented on, and tracked through statuses.

List all posts
client.feedback.posts.list(PostListParams { boardId, cursor, inReview, 7 more } params?, RequestOptionsoptions?): CursorPage<Post { id, access, assigneeId, 20 more } >
GET/v2/posts
Create a new post
client.feedback.posts.create(PostCreateParams { boardId, title, assigneeId, 14 more } params, RequestOptionsoptions?): Post { id, access, assigneeId, 20 more }
POST/v2/posts
Get a post by ID
client.feedback.posts.retrieve(stringid, PostRetrieveParams { featurebaseVersion } params?, RequestOptionsoptions?): Post { id, access, assigneeId, 20 more }
GET/v2/posts/{id}
Update a post
client.feedback.posts.update(stringid, PostUpdateParams { assigneeId, author, boardId, 13 more } params, RequestOptionsoptions?): Post { id, access, assigneeId, 20 more }
PATCH/v2/posts/{id}
Delete a post
client.feedback.posts.delete(stringid, PostDeleteParams { featurebaseVersion } params?, RequestOptionsoptions?): PostDeleteResponse { id, deleted, object }
DELETE/v2/posts/{id}
ModelsExpand Collapse
Post { id, access, assigneeId, 20 more }
id: string

Unique identifier

access: Access { companyExternalIds, userIds }
companyExternalIds: Array<string>

External company IDs explicitly granted access to this post. Empty array means no company-level restrictions. Non-empty means only users belonging to these companies can see the post.

userIds: Array<string>

User IDs explicitly granted access to this post. Empty array means no user-level restrictions (post uses board/org visibility). Non-empty means only these users (plus admins) can see the post.

assigneeId: string | null

ID of the admin assigned to this post, null if unassigned

author: Author | null
id: string | null

Author unique identifier

email: string | null

Author email (if available)

name: string

Author display name

profilePicture: string | null

Author profile picture URL

type: "admin" | "customer" | "guest" | 3 more

Type of user who authored the post

One of the following:
"admin"
"customer"
"guest"
"integration"
"bot"
"lead"
boardId: string

Board (category) ID this post belongs to

commentCount: number

Total number of comments

content: string

Post content in HTML format

createdAt: string

ISO 8601 timestamp when created

customFields: Record<string, unknown>

Custom field values keyed by field ID

eta: string | null

Estimated completion time as ISO 8601 timestamp, null if not set

features: Features { commentsEnabled }
commentsEnabled: boolean

Whether comments are allowed on this post

inReview: boolean

Whether the post is pending moderation review

integrations: Integrations { clickup, devops, github, 4 more }

Third-party integration links associated with this post

clickup: Array<Clickup>
id: string

ClickUp task ID

title: string

ClickUp task title

url: string

URL to the ClickUp task

devops: Array<Devop>
id: number

Azure DevOps work item ID

projectId: string

Azure DevOps project ID

projectName: string

Azure DevOps project name

title: string

Work item title

url: string

URL to the work item

github: Array<GitHub>
id: string

GitHub issue ID

number: string

GitHub issue number

repositoryFullName: string

Full repository name (owner/repo)

repositoryName: string

Repository name

title: string

GitHub issue title

url: string

URL to the GitHub issue

hubspot: Array<Hubspot>
dealAmount: number | null

Deal amount (for DEAL type)

dealClosed: boolean | null

Whether the deal is closed (for DEAL type)

objectId: number

HubSpot object ID

type: "TICKET" | "DEAL" | "CONTACT"

HubSpot object type

One of the following:
"TICKET"
"DEAL"
"CONTACT"
jira: Array<Jira>
issueId: string

Jira issue ID

issueUrl: string | null

URL to the Jira issue

linear: Array<Linear>
issueId: string

Linear issue ID

issueUrl: string | null

URL to the Linear issue

salesforce: Array<Salesforce>
amount: number | null

Opportunity amount (for Opportunity type)

isClosed: boolean | null

Whether the opportunity is closed (for Opportunity type)

objectId: string

Salesforce record ID

objectType: "Opportunity" | "Case"

Salesforce object type

One of the following:
"Opportunity"
"Case"
isPinned: boolean

Whether the post is pinned to the top

object: "post"

Object type identifier

opportunityAmount: number | null

Total opportunity amount from linked HubSpot deals and Salesforce opportunities

postUrl: string

Full URL to view the post

slug: string

URL-friendly slug

status: PostStatus { id, color, isDefault, 3 more }
id: string

Unique identifier

color: string

Color for UI display

isDefault: boolean

Whether this is the default status for new posts

name: string

Display name

object: "post_status"

Object type identifier

type: "reviewing" | "unstarted" | "active" | 2 more

The workflow stage this status represents

One of the following:
"reviewing"
"unstarted"
"active"
"completed"
"canceled"
tags: Array<Tag>

Tags attached to this post

id: string

Tag unique identifier

color: string | null

Tag color hex code

name: string

Tag name

title: string

Post title

updatedAt: string

ISO 8601 timestamp when last modified

upvotes: number

Total number of upvotes

PostDeleteResponse { id, deleted, object }
id: string

Unique identifier of the deleted post

deleted: true

Indicates the resource was deleted

object: "post"

Object type identifier

PostsVoters

User-submitted feedback and feature requests. Posts belong to boards and can be upvoted, commented on, and tracked through statuses.

List voters on a post
client.feedback.posts.voters.list(stringid, VoterListParams { cursor, limit, featurebaseVersion } params?, RequestOptionsoptions?): CursorPage<VoterListResponse { id, name, object, 16 more } >
GET/v2/posts/{id}/voters
Add a voter to a post
client.feedback.posts.voters.add(stringid, VoterAddParams { id, email, name, 3 more } params, RequestOptionsoptions?): VoterAddResponse { id, added, object, postId }
POST/v2/posts/{id}/voters
Remove a voter from a post
client.feedback.posts.voters.remove(stringid, VoterRemoveParams { id, email, userId, featurebaseVersion } params, RequestOptionsoptions?): VoterRemoveResponse { id, object, postId, removed }
DELETE/v2/posts/{id}/voters
ModelsExpand Collapse
VoterListResponse { id, name, object, 16 more }
id: string

Unique identifier

name: string

User display name

object: "contact"

Object type identifier

type: "admin" | "customer" | "guest" | 3 more

Type of user

One of the following:
"admin"
"customer"
"guest"
"integration"
"bot"
"lead"
commentsCreated?: number

Number of comments created

companies?: Array<Company { id, companyId, companySize, 11 more } >

Companies the user belongs to

id: string

Featurebase internal ID

companyId: string

External company ID from your system

companySize: number | null

Company employee headcount

createdAt: string | null

ISO date when company was created

industry: string | null

Industry

lastActivity: string | null

ISO date of last activity

linkedUsers: number | null

Number of users linked to this company

monthlySpend: number | null

Monthly spend

name: string

Company name

object: "company"

Object type identifier

plan: string | null

Plan or tier name

updatedAt: string | null

ISO date when company was last updated

website: string | null

Company website URL

customFields?: Record<string, unknown>

Custom field values

customFields?: Record<string, unknown>

Custom field values on the user

description?: string

User description/bio

email?: string | null

User email

lastActivity?: string

Last activity ISO timestamp

locale?: string

User locale

manuallyOptedOutFromChangelog?: boolean

Whether manually opted out from changelog

organizationId?: string

Organization ID the user belongs to

postsCreated?: number

Number of posts created

profilePicture?: string | null

Profile picture URL

roles?: Array<string>

User roles

subscribedToChangelog?: boolean

Whether subscribed to changelog

userId?: string

External user ID from SSO

verified?: boolean

Whether email is verified

VoterAddResponse { id, added, object, postId }
id: string

Voter unique identifier

added: true

Indicates the voter was added

object: "voter"

Object type identifier

postId: string

Post ID the voter was added to

VoterRemoveResponse { id, object, postId, removed }
id: string

Voter unique identifier

object: "voter"

Object type identifier

postId: string

Post ID the voter was removed from

removed: true

Indicates the voter was removed