---
title: Featurebase API Integration on Truto
slug: featurebase
category: Ticketing
canonical: "https://truto.one/integrations/detail/featurebase/"
---

# Featurebase API Integration on Truto



**Category:** Ticketing  
**Status:** Generally available

## MCP-ready AI tools

Truto exposes 171 tools for Featurebase that AI agents can call directly.

- **featurebase_admin_assignment_limits_bulk_update** — Update an admin assignment limit. Updates the admin capacity mode or paused state. mode can be inherit, custom, or unlimited. custom requires limit. Omitted fields keep their current value. Required: admin_id.
- **featurebase_admin_away_states_bulk_update** — Update admin away state. Updates an admin away state. awayReasonId uses a stable managed-reason ID. Omit it to preserve the current reason, or send null to clear the reason. Required: admin_id, enabled.
- **list_all_featurebase_admin_roles** — List admin roles. Returns all available admin roles and their permissions. This endpoint returns all roles at once (typically a small list). No pagination is supported. Returns every record in one response: Featurebase does not page this endpoint, so limit and cursor are not supported and are ignored if sent.
- **featurebase_admin_workloads_bulk_update** — Bulk update admin workload state. Atomically updates away state or assignment limits for up to 50 admins. One request performs one operation type. Assignment-limit operations require an explicit paused value. Required: adminIds, operation.
- **list_all_featurebase_admins** — List admins. Returns all admins for your organization. This endpoint returns all admins at once (typically a small list). No pagination is supported. Returns every record in one response: Featurebase does not page this endpoint, so limit and cursor are not supported and are ignored if sent.
- **get_single_featurebase_admin_by_id** — Get an admin by ID. Retrieves a single admin by their unique identifier. Returns the admin object if found and they belong to your organization. Required: id.
- **list_all_featurebase_audit_logs** — List audit logs. Returns a list of audit log events in your organization using cursor-based pagination (newest first).
- **list_all_featurebase_away_reasons** — List managed away reasons. Returns active managed away reasons. Set includeArchived=true to include historical reasons. Returns every record in one response: Featurebase does not page this endpoint, so limit and cursor are not supported and are ignored if sent.
- **list_all_featurebase_boards** — List all boards. Returns all boards (post categories) for the authenticated organization. Boards are containers for posts/feedback. Each board can have different. Returns every record in one response: Featurebase does not page this endpoint, so limit and cursor are not supported and are ignored if sent.
- **get_single_featurebase_board_by_id** — Get a board by ID. Retrieves a single board by its unique identifier. Returns the full board object including all access controls, feature toggles, and localization settings. Required: id.
- **list_all_featurebase_brands** — List all brands. Returns all brands in your organization with cursor-based pagination.
- **get_single_featurebase_brand_by_id** — Get brand by ID. Retrieves a single brand by its Featurebase ID. Required: id.
- **create_a_featurebase_changelog_publication** — Publish a changelog. Publishes a changelog and optionally sends an email notification to subscribers. Required: changelog_id.
- **featurebase_changelog_subscribers_bulk_create** — Add changelog subscribers. Adds email addresses as changelog subscribers in bulk. Subscribers will receive email notifications when new changelogs are published (if email notifications are enabled during publishing). Required: emails.
- **featurebase_changelog_subscribers_bulk_delete** — Remove changelog subscribers. Removes email addresses from changelog subscribers in bulk. Removed subscribers will no longer receive email notifications when new changelogs are published. Required: emails.
- **create_a_featurebase_changelog_unpublication** — Unpublish a changelog. Unpublishes a changelog, removing it from public view. Required: changelog_id.
- **list_all_featurebase_changelogs** — List all changelogs. Returns all changelogs for the authenticated organization. Changelogs are release notes and updates that keep users informed about new features, improvements, and bug fixes. Each changelog can have.
- **create_a_featurebase_changelog** — Create a new changelog. Creates a new changelog for the authenticated organization. Required: title.
- **get_single_featurebase_changelog_by_id** — Get a changelog by ID. Retrieves a single changelog by its unique identifier or slug. Returns the full changelog object including. Required: id.
- **update_a_featurebase_changelog_by_id** — Update a changelog. Updates an existing changelog by its unique identifier. You can update. Required: id.
- **delete_a_featurebase_changelog_by_id** — Delete a changelog. Deletes a changelog by its unique identifier. Required: id.
- **list_all_featurebase_comments** — List comments. Returns comments for your organization. Comments are threaded discussions. Each comment can have.
- **create_a_featurebase_comment** — Create a new comment. Creates a new comment or reply to an existing comment. You can create a comment for a post or changelog. Comments support. Required: content.
- **get_single_featurebase_comment_by_id** — Get a comment by ID. Retrieves a single comment by its unique identifier. Returns the full comment object including. Required: id.
- **update_a_featurebase_comment_by_id** — Update a comment. Updates an existing comment by its unique identifier. You can update. Required: id.
- **delete_a_featurebase_comment_by_id** — Delete a comment. Deletes a comment by its unique identifier. Required: id.
- **featurebase_comments_search** — Search comments. Search comments with a structured filter AST, full-text search, sorting, and cursor pagination.
- **list_all_featurebase_companies** — List all companies. Returns all companies in your organization with cursor-based pagination.
- **create_a_featurebase_company** — Create or update a company. Creates a new company or updates an existing one. Uses the external companyId as the unique identifier for upsert matching. If a company with the given companyId already exists, it will be updated. Otherwise, a new company will be created. Required: companyId, name.
- **get_single_featurebase_company_by_id** — Get company by ID. Retrieves a single company by its Featurebase ID. Required: id.
- **delete_a_featurebase_company_by_id** — Delete a company. Deletes a company by its Featurebase ID. This will also remove the company from all linked users' associations. Required: id.
- **featurebase_companies_search** — Search companies. Search companies with a structured filter AST, sorting, and cursor pagination.
- **delete_a_featurebase_companies_by_company_id_by_id** — Delete a company by external company ID. Permanently deletes a company by its external company ID (the companyId from your system). This will also remove the company from all linked users' associations. Required: id.
- **list_all_featurebase_company_contacts** — List contacts attached to a company. Returns all contacts (customers) attached to a specific company. Only returns contacts with type "customer" that have the company in their companyIds array. Uses cursor-based pagination. Required: company_id.
- **create_a_featurebase_company_contact** — Attach a contact to a company. Attaches a contact (customer) to a company. Adds the company to the contact's companyIds array and embedded companies array. This operation is additive - existing company associations are preserved. Also increments the linkedUsers count on the company. Required: company_id, contactId.
- **delete_a_featurebase_company_contact_by_id** — Remove a contact from a company. Removes a contact (customer) from a company. Removes the company from the contact's companyIds array and embedded companies array. Also decrements the linkedUsers count on the company. Required: id, company_id.
- **create_a_featurebase_contact_block** — Block a contact. Blocks a contact by their Featurebase ID using the global moderation system. Required: contact_id.
- **list_all_featurebase_contact_email_preferences** — Get contact email preferences by ID. Retrieves the email preference state for a customer contact by their Featurebase ID. Required: contact_id.
- **featurebase_contact_email_preferences_bulk_update** — Update contact email preferences by ID. Updates one or more email preferences for a customer contact by their Featurebase ID. Required: contact_id, preferences.
- **list_all_featurebase_contact_email_preferences_by_user_id** — Get contact email preferences by external user ID. Retrieves the email preference state for a customer contact by their external user ID. This endpoint only supports customer contacts and mirrors the existing by-user-id lookup pattern used across the contact API. Required: user_id.
- **featurebase_contact_email_preferences_by_user_id_bulk_update** — Update contact email preferences by external user ID. Updates one or more email preferences for a customer contact by their external user ID. This endpoint only supports customer contacts and mirrors the existing by-user-id lookup pattern used across the contact API. Required: user_id, preferences.
- **create_a_featurebase_contact_merge** — Merge a lead into a customer. Merges a lead into a customer. Use it when a lead becomes a user of your product. The source contact must be a lead and the destination contact must be a customer. Both must belong to the authenticated organization. When the merge completes. Required: destinationContactId, sourceContactId.
- **create_a_featurebase_contact_unblock** — Unblock a contact. Unblocks a contact by their Featurebase ID from the global moderation system. Required: contact_id.
- **list_all_featurebase_contacts** — List contacts. Returns a list of contacts (customers and leads) in your organization using cursor-based pagination.
- **create_a_featurebase_contact** — Create or update a contact. Creates a new contact or updates an existing one. If a contact with the given email or userId already exists, it will be updated. Otherwise, a new contact will be created.
- **get_single_featurebase_contact_by_id** — Get contact by ID. Retrieves a single contact by their Featurebase ID. Returns both customers and leads. Required: id.
- **delete_a_featurebase_contact_by_id** — Delete contact by ID. Permanently deletes a contact by their Featurebase ID. Supports deleting both customers and leads. Required: id.
- **featurebase_contacts_search** — Search contacts. Search contacts (customers and leads) with a structured filter AST, sorting, and cursor pagination.
- **get_single_featurebase_contacts_by_user_id_by_id** — Get contact by external user ID. Retrieves a single contact by their external user ID (from your system via SSO). Required: id.
- **delete_a_featurebase_contacts_by_user_id_by_id** — Delete contact by external user ID. Permanently deletes a contact by their external user ID. Required: id.
- **list_all_featurebase_conversation_attributes** — List conversation custom attributes. Returns conversation custom attribute definitions configured in your organization. Conversation payloads expose customAttributes keyed by stable attribute IDs. Use this endpoint to map those IDs to display names, identifiers, data types, field subtypes, and select options. By default, archived definitions are excluded. Returns every record in one response: Featurebase does not page this endpoint, so limit and cursor are not supported and are ignored if sent.
- **get_single_featurebase_conversation_attribute_by_id** — Get a conversation custom attribute by ID. Retrieves a single conversation custom attribute definition by its stable ID. Use this when a conversation response contains a customAttributes key and you need the corresponding display name, identifier, data type, field subtype, or options. Required: id.
- **create_a_featurebase_conversation_draft** — Put a draft in an admin’s composer. Puts a reply or internal note draft into an admin's composer for a conversation. Nothing is sent: the admin reviews the draft in the dashboard and sends it. Use this instead of Reply to a conversation when a person asks you to draft, prepare or write a response for them. Required: conversation_id, adminId, bodyMarkdown.
- **featurebase_conversation_drafts_bulk_delete** — Discard an admin’s draft. Discards the draft that Put a draft in an admin's composer put into an admin's composer for a conversation. The composer goes back to what it held before the draft, in every browser. Text the admin typed into the draft in a browser stays there. adminId names the admin, the same way as when the draft was put in. Required: conversation_id, adminId.
- **create_a_featurebase_conversation_participant** — Add a contact to a conversation. Adds a contact (customer or lead) as a participant to an existing conversation. Required: conversation_id, participant.
- **delete_a_featurebase_conversation_participant_by_id** — Remove a contact from a conversation. Removes a contact (customer or lead) from an existing conversation. Required: id (the id), conversation_id.
- **create_a_featurebase_conversation_redaction** — Redact a conversation part. Redacts a conversation part (message) from a conversation. Redaction permanently removes the message content while preserving the conversation structure. Only human message types can be redacted. Required: conversationId, conversationPartId, type.
- **create_a_featurebase_conversation_reply** — Reply to a conversation. Adds a reply to an existing conversation. Supports both contact (customer/lead) and admin replies. Required: conversation_id, bodyMarkdown, messageType, type.
- **create_a_featurebase_conversation_tag** — Attach a tag to a conversation. Attaches a workspace tag to a conversation. This endpoint requires both the tag ID to attach and the actingAdminId of the admin on whose behalf the mutation is recorded. Required: conversation_id, actingAdminId, tagId.
- **delete_a_featurebase_conversation_tag_by_id** — Detach a tag from a conversation. Removes a workspace tag from a conversation. This endpoint requires the actingAdminId of the admin on whose behalf the mutation is recorded. Required: id, conversation_id, actingAdminId.
- **list_all_featurebase_conversations** — List conversations. Returns a list of conversations in your organization using cursor-based pagination.
- **create_a_featurebase_conversation** — Create a conversation. Creates a new conversation. Supports both contact-initiated (customer/lead) and admin-initiated (outreach) conversations. Required: bodyMarkdown, from.
- **get_single_featurebase_conversation_by_id** — Get conversation by ID. Retrieves a single conversation by its ID, including conversation parts (messages). Required: id.
- **update_a_featurebase_conversation_by_id** — Update a conversation. Updates a conversation's properties. Supports partial updates - only provided fields will be updated. Required: id.
- **delete_a_featurebase_conversation_by_id** — Delete a conversation. Permanently deletes a conversation by its short ID. Required: id.
- **featurebase_conversations_search** — Search conversations. Search conversations with a structured filter AST and an optional full-text query. The endpoint has two modes that are picked automatically from the body.
- **list_all_featurebase_custom_fields** — List custom fields. Returns all custom fields configured in your organization. This endpoint returns all custom fields at once (typically a small list). No pagination is supported. Returns every record in one response: Featurebase does not page this endpoint, so limit and cursor are not supported and are ignored if sent.
- **get_single_featurebase_custom_field_by_id** — Get a custom field by ID. Retrieves a single custom field by its unique identifier. Returns the custom field object if found in your organization. Required: id.
- **list_all_featurebase_help_center_api_pages** — Retrieve the API tab pages. Returns the guide pages of the API tab: the landing article ( introArticleId ) and the sidebar sections above the endpoint groups. A section lists the articles of a collection ( collection ) or a titled group of articles ( articles ).
- **featurebase_help_center_api_pages_bulk_update** — Replace the API tab pages. Replaces the landing article and the sidebar sections of the API tab. Send the full list: sections that are not in the list are removed. Every article and collection must be in the same help center. An article can be in one section only. Limits: 20 sections, 100 articles per section, 300 articles in all. Required: sections.
- **create_a_featurebase_help_center_api_spec_draft_discard** — Discard the draft. Discards the draft that waits for review. The live revision does not change. Send the draft revision as draftRevision . Required: spec_id, draftRevision.
- **list_all_featurebase_help_center_api_spec_drafts** — Retrieve the draft and its changes. Returns the draft that waits for review, with the change report against the live revision: endpoints added, removed, changed (one line per change) and moved, whether a change is breaking, and whether the servers or security schemes changed. Required: spec_id.
- **list_all_featurebase_help_center_api_spec_endpoints** — List endpoints. Lists the endpoints of a version: method, path, stableKey , operationId , summary, tag, and hasIntro (an intro exists). Use it to find the stableKey (and operationId ) to send to PUT …/intros . Search with q (method, path, summary, operationId) or filter by tag . Required: spec_id.
- **create_a_featurebase_help_center_api_spec_import** — Import an OpenAPI spec as a draft. Imports a new OpenAPI 3 spec into a version. The result is always a draft : nothing changes in the help center until you publish it. Auto-publish never applies here. Required: spec_id.
- **list_all_featurebase_help_center_api_spec_intros** — List endpoint intros. Lists the intros of a version. An intro is free text shown above one endpoint's reference; it is never changed by a new import. An intro whose endpoint left the live spec is orphaned (kept, not shown). Required: spec_id.
- **featurebase_help_center_api_spec_intros_bulk_update** — Create or replace an endpoint intro. Creates or replaces the intro shown above one endpoint of an API spec version, keyed by stableKey (from help_center_api_spec_endpoints.list). body is Markdown or HTML (max 1 MB); send operationId so the intro follows the endpoint when its path changes. Required: spec_id, body, stableKey.
- **featurebase_help_center_api_spec_intros_bulk_delete** — Delete an endpoint intro. Deletes the intro of one endpoint ( stableKey query parameter). Required: spec_id, stableKey.
- **create_a_featurebase_help_center_api_spec_publication** — Publish the draft. Publishes the draft you reviewed. Send its revision as draftRevision and its baseRevision . The call fails with 409 when a newer draft arrived or the live revision changed since you read the draft: read the draft again. The help center and search update within a minute. Use draftRevision = the draft's revision and baseRevision = its baseRevision; for the first publish send baseRevision: null explicitly (omitting it is rejected). Required: spec_id, baseRevision, draftRevision.
- **list_all_featurebase_help_center_api_spec_revisions** — List revisions. Lists the newest revisions of a version (up to 10) that can be published or rolled back to: the live one, the draft and the older ones that are kept, with their change counts. Returns every record in one response: Featurebase does not page this endpoint, so limit and cursor are not supported and are ignored if sent. Required: spec_id.
- **create_a_featurebase_help_center_api_spec_rollback** — Roll back to a revision. Makes an older revision live again. Send the live revision you expect as expectedLiveRevision ; the call fails with 409 when it changed. Required: spec_id, expectedLiveRevision, toRevision.
- **create_a_featurebase_help_center_api_spec_sync** — Sync an API reference spec from CI. Pushes a new OpenAPI 3 spec for one API reference version. Call it from your CI after the spec changes. Send the OpenAPI 3 document itself as the JSON body, or {url} for an https URL. Required: spec_id.
- **get_single_featurebase_help_center_api_spec_sync_by_id** — Get the status of a CI sync or import. Returns the status of one sync of an API reference version. Poll it from your CI after a sync call. The last 20 syncs of each version are kept. Send an Idempotency-Key header with the sync call to make retries safe: a retry with the same key (within 24 hours) returns the first syncId and creates no second draft. Required: id, spec_id.
- **create_a_featurebase_help_center_api_spec_url_check** — Check the source URL now. Fetches the source URL of a version now (the same as "Check now" in the dashboard). Only for versions whose source is a URL. The version's source URL can only be set in the Featurebase dashboard; imports with url fetch once and do not set it, so other versions answer 400. Required: spec_id.
- **list_all_featurebase_help_center_api_specs** — List API reference versions. Lists the API reference versions of your help centers. One version is one OpenAPI spec: its source, the live revision, whether a draft waits for review, and the last sync. Filter with helpCenterId to get the versions of one help center. A help center has at most 50 versions, so every version comes back in one page. Returns every record in one response: Featurebase does not page this endpoint, so limit and cursor are not supported and are ignored if sent.
- **create_a_featurebase_help_center_api_spec** — Create an API reference version. Creates an empty API reference version in a help center. Then import a spec into it (help_center_api_spec_imports.create), review the draft and publish it. The first version of a help center becomes the default. versionSlug must be unique in the help center (lower-case letters, digits and dashes). Required: name, versionLabel, versionSlug.
- **get_single_featurebase_help_center_api_spec_by_id** — Retrieve an API reference version. Returns one API reference version: status, visibility, default flag, source (type and URL; secret-looking query values are masked), live revision, whether a draft waits for review, and the last CI sync or import. Required: id.
- **update_a_featurebase_help_center_api_spec_by_id** — Update an API reference version. Updates the settings of a version. Send only the fields to change. Required: id.
- **delete_a_featurebase_help_center_api_spec_by_id** — Delete an API reference version. Deletes a version and removes its pages from the help center and from search. Deleting the default version makes the next published version the default (active before deprecated, then the newest); without one, the request is refused. Required: id.
- **create_a_featurebase_help_center_article_body_edit** — Edit an article body (find/replace). Surgically edit an article's body with a find/replace instruction, without re-uploading the whole HTML. Designed for AI agents doing high-precision, byte-stable edits (for example renaming a product across many articles). Required: article_id, newText, oldText.
- **list_all_featurebase_help_center_articles** — List articles. Returns a paginated list of articles within your organization's help center. Articles are the main content pieces that contain documentation, guides, and FAQs. Without state only live articles are returned; pass state=all to include drafts.
- **create_a_featurebase_help_center_article** — Create an article. Creates a new article in your organization's help center. Required: title.
- **get_single_featurebase_help_center_article_by_id** — Get an article by ID. Retrieves a specific article by its unique identifier. Returns the article object if found in your organization's help center. Required: id.
- **update_a_featurebase_help_center_article_by_id** — Update an article. Updates an existing article. Only include the fields you wish to update. Required: id.
- **delete_a_featurebase_help_center_article_by_id** — Delete an article. Deletes an existing article. Required: id.
- **featurebase_help_center_articles_search** — Search articles. Search help-center articles by structured filters and/or hybrid full-text search, with sort and cursor pagination. This endpoint mirrors conversations.search. Two modes, dispatched off whether you pass search.
- **list_all_featurebase_help_center_collections** — List collections. Returns a paginated list of collections within your organization's help center. Collections are used to organize articles into logical groups.
- **create_a_featurebase_help_center_collection** — Create a collection. Creates a new collection in your organization's help center. Required: name.
- **get_single_featurebase_help_center_collection_by_id** — Get a collection by ID. Retrieves a specific collection by its unique identifier. Returns the collection object if found in your organization's help center. Required: id.
- **update_a_featurebase_help_center_collection_by_id** — Update a collection. Updates an existing collection. Only include the fields you wish to update. Required: id.
- **delete_a_featurebase_help_center_collection_by_id** — Delete a collection. Deletes an existing collection. Required: id.
- **list_all_featurebase_help_center_redirect_rules** — List redirect rules. Returns a paginated list of redirect rules within your organization. Redirect rules map old Help Center URLs to new article or collection destinations, enabling seamless migration from legacy help center systems. Only Help Centers with a custom domain configured support redirect rules.
- **create_a_featurebase_help_center_redirect_rule** — Create a redirect rule. Creates a new redirect rule in your organization. The fromUrl is normalized on creation: query parameters and hash fragments are stripped, the hostname is lowercased, and trailing slashes are removed. The fromUrl hostname must match the Help Center's configured custom domain. fromUrl must be an absolute URL on the help center's custom domain. Required: fromUrl, helpCenterId, locale, targetId, targetType.
- **get_single_featurebase_help_center_redirect_rule_by_id** — Get a redirect rule by ID. Retrieves a specific redirect rule by its unique identifier. Returns the redirect rule object if found in your organization. Required: id.
- **update_a_featurebase_help_center_redirect_rule_by_id** — Update a redirect rule. Updates an existing redirect rule. Only include the fields you wish to update. If fromUrl is provided, it will be re-normalized and validated against the Help Center's custom domain. If targetType or targetId is changed, the new target must exist and have a resolvable URL. Required: id.
- **delete_a_featurebase_help_center_redirect_rule_by_id** — Delete a redirect rule. Deletes an existing redirect rule. The associated Redis cache entry is also invalidated. Required: id.
- **list_all_featurebase_help_center_redirect_rules_by_url** — Get a redirect rule by URL. Retrieves a specific redirect rule by its source URL. The url query parameter is normalized before matching: query parameters and hash fragments are stripped, the hostname is lowercased, and trailing slashes are removed. This is the same normalization applied when creating a redirect rule. Required: url.
- **list_all_featurebase_help_centers** — List help centers. Returns all help centers configured in your Featurebase organization. Currently, Featurebase only supports one help center per organization, but we plan on supporting multiple help centers in the future.
- **get_single_featurebase_help_center_by_id** — Get a help center by ID. Retrieves a single help center by its unique identifier. Returns the help center object if found in your organization. Required: id.
- **create_a_featurebase_post_insight_link** — File a post as an insight under a request. An insight is a customer's own words kept as evidence under a request — a quote, not a request of its own, and never returned by posts.list. This endpoint turns the post id into an insight under the request issueId . Required: post_id, issueId.
- **create_a_featurebase_post_insight_unlink** — Detach an insight from its request. Detaches the insight id from the request it was filed under. Required: post_id.
- **list_all_featurebase_post_insights** — List the insights filed under a request. Returns the insights filed under the request id — the customer quotes kept as evidence for it. Newest first. Posts linked with attachTo are not listed here: they are posts, not insights, and they stay in posts.list. This endpoint lists exactly the rows that post_insight_links.create filed under this request. Required: post_id.
- **create_a_featurebase_post_issue_conversion** — Promote an insight into a request. Promotes the insight id into a request of its own — the way back from link-insight . kind becomes issue , any link to another request is cleared (that request's linkedInsightCount is recounted), and the row is a post again: posts.get answers it, and posts.list lists it. Required: post_id.
- **create_a_featurebase_post_merge** — Merge two posts. Merges a source post into a destination post. The source post is removed from public post lists. Its votes, comments, and supported integration links are moved to the destination post. Both posts must belong to the authenticated organization. Neither post can already be merged, and a post cannot be merged into itself. Required: destinationPostId, sourcePostId.
- **list_all_featurebase_post_statuses** — List all post statuses. Returns all post statuses for the authenticated organization. Post statuses define workflow stages for posts. Each status has. Returns every record in one response: Featurebase does not page this endpoint, so limit and cursor are not supported and are ignored if sent.
- **get_single_featurebase_post_status_by_id** — Get a post status by ID. Retrieves a single post status by its unique identifier. Returns the full post status object including name, color, type, and default flag. Required: id.
- **create_a_featurebase_post_unmerge** — Unmerge a post. Restores a post that was previously merged. The restored post returns to public post lists. Its votes and comments are removed from the destination post and restored on the source post. Retrying an unmerge after it succeeds is safe and returns the restored post. The response contains the restored post. Required: postId.
- **list_all_featurebase_post_voters** — List voters on a post. Returns all voters (upvoters) for a specific post. Voters are users who have upvoted the post. Each voter is returned in the standard user format with. Required: post_id.
- **create_a_featurebase_post_voter** — Add a voter to a post. Adds a voter (upvote) to a post. Required: post_id.
- **featurebase_post_voters_bulk_delete** — Remove a voter from a post. Removes a voter (upvote) from a post. Required: post_id.
- **list_all_featurebase_posts** — List all posts. Returns all posts (feedback submissions) for the authenticated organization. Posts are user-submitted feedback items. Each post belongs to a board and can have.
- **create_a_featurebase_post** — Create a new post. Creates a new post (feedback submission) in the specified board.
- **get_single_featurebase_post_by_id** — Get a post by ID. Retrieves a single post by its unique identifier. Returns the full post object including. Required: id.
- **update_a_featurebase_post_by_id** — Update a post. Updates an existing post. Only provided fields will be modified. Required: id.
- **delete_a_featurebase_post_by_id** — Delete a post. Permanently deletes a post. This action cannot be undone. Required: id.
- **featurebase_posts_search** — Search posts. Search feedback posts with a structured filter AST, full-text search, sorting, and cursor pagination.
- **list_all_featurebase_report_datasets** — List report datasets. Returns the reporting catalog: every dataset available to your workspace with its metrics and attributes. This is the discovery endpoint for the reporting API — read it before building query payloads. Returns every record in one response: Featurebase does not page this endpoint, so limit and cursor are not supported and are ignored if sent.
- **featurebase_report_drill_ins_search** — Drill into report rows. Returns the paginated row-level records behind a metric — either the whole reporting window, or one specific data point from a previous reports.search response. Required: endDate, granularity, metric, startDate.
- **featurebase_report_filter_capabilities_search** — List supported filters for a metric route. Returns the filter attribute IDs supported by the selected metric and optional grouping route. Use this operation before constructing metric-level filters. It applies the same routing rules as the dashboard and prevents clients from offering filters that the selected metric, group, or segment path cannot execute. Required: metricId.
- **featurebase_report_filter_values_search** — Look up report filter values. Returns the available values for a filterable attribute — use it to build valid filters rules for reports.search. Works for attributes whose values live in your workspace data (tags, teammates, teams, companies, plans, countries, ...). Required: fieldId.
- **featurebase_reports_search** — Run a report query. Executes an ad-hoc reporting query: one metric + aggregation over a date range, with optional filters, grouping, segmentation and period-over-period comparison. Required: aggregation, endDate, granularity, metric, startDate.
- **list_all_featurebase_survey_responses** — Get survey responses. Retrieves all user responses for a specific survey. Required: survey_id.
- **list_all_featurebase_surveys** — List surveys. Returns all surveys configured in your Featurebase organization.
- **get_single_featurebase_survey_by_id** — Get a survey by ID. Retrieves a single survey by its unique identifier. Returns the survey object if found in your organization. Required: id.
- **list_all_featurebase_tags** — List workspace tags. Returns the live conversation tags available in the workspace tag catalog. These are the canonical tags that power conversation payloads, filters, and tag mutation endpoints. Returns every record in one response: Featurebase does not page this endpoint, so limit and cursor are not supported and are ignored if sent.
- **create_a_featurebase_tag** — Create or rename a tag. Creates a new workspace conversation tag when only name is provided. If id is also provided, the existing tag is renamed instead. Required: name.
- **get_single_featurebase_tag_by_id** — Get tag by ID. Returns a single conversation tag by its Featurebase tag ID. Archived tags can still be retrieved directly by ID, while permanently deleted tags return 404 . Required: id.
- **delete_a_featurebase_tag_by_id** — Delete a tag. Deletes a conversation tag from the workspace catalog and removes it from aggregate conversation tag state. Archived and historical part applications remain part of the audit trail where applicable. Note: on 2026-10-22 Featurebase answered every tag delete with 500 database_error, on API versions 2026-08-19.orbit and 2026-01-01.nova alike (a vendor-side bug). Required: id.
- **list_all_featurebase_team_metrics** — Get team workload metrics. Returns Intercom-style per-admin team metrics with open, snoozed, waiting, idle, capacity limit, pause, and away state. Results use cursor pagination. Part of workload management: needs the Featurebase Enterprise plan (403 otherwise). Required: team_id.
- **list_all_featurebase_teams** — List all teams. Returns all teams in your organization. Returns every record in one response: Featurebase does not page this endpoint, so limit and cursor are not supported and are ignored if sent.
- **get_single_featurebase_team_by_id** — Get team by ID. Retrieves a single team by its Featurebase ID. Required: id.
- **list_all_featurebase_ticket_categories** — List ticket categories. Returns all ticket categories for the authenticated organization. Ticket categories organize tickets into distinct containers. Each category can have different. Returns every record in one response: Featurebase does not page this endpoint, so limit and cursor are not supported and are ignored if sent.
- **get_single_featurebase_ticket_category_by_id** — Get a ticket category by ID. Retrieves a single ticket category by its unique identifier. Returns the full category object including access controls, feature toggles, and localization settings. Required: id.
- **list_all_featurebase_ticket_custom_fields** — List custom fields. Returns all custom fields configured in your organization that can be used on tickets. This endpoint returns all custom fields at once. No pagination is supported. Returns every record in one response: Featurebase does not page this endpoint, so limit and cursor are not supported and are ignored if sent.
- **get_single_featurebase_ticket_custom_field_by_id** — Get a custom field by ID. Retrieves a single custom field by its unique identifier. Required: id.
- **create_a_featurebase_ticket_reply** — Reply to a ticket. Adds a reply to a ticket's linked conversation. Supports both contact and admin replies. Tickets are addressed by their ticketNumber (an integer), not by the object id. Required: ticket_id, body, type.
- **list_all_featurebase_ticket_statuses** — List ticket statuses. Returns all ticket statuses for the authenticated organization. Ticket statuses define workflow stages. Each status has. Returns every record in one response: Featurebase does not page this endpoint, so limit and cursor are not supported and are ignored if sent.
- **get_single_featurebase_ticket_status_by_id** — Get a ticket status by ID. Retrieves a single ticket status by its unique identifier. Returns the status object including name, color, type, and default flag. Required: id.
- **list_all_featurebase_tickets** — List tickets. Returns a list of tickets in your organization using cursor-based pagination.
- **create_a_featurebase_ticket** — Create a ticket. Creates a new ticket. Required: author, ticketCategoryId, title.
- **get_single_featurebase_ticket_by_id** — Get a ticket. Retrieves a single ticket by its ticket number. Tickets are addressed by their ticketNumber (an integer), not by the object id. Required: id.
- **update_a_featurebase_ticket_by_id** — Update a ticket. Updates a ticket's properties. Only provided fields will be updated. Tickets are addressed by their ticketNumber (an integer), not by the object id. Required: id.
- **delete_a_featurebase_ticket_by_id** — Delete a ticket. Permanently deletes a ticket by its ticket number. Tickets are addressed by their ticketNumber (an integer), not by the object id. Required: id.
- **featurebase_training_data_search** — Search existing knowledge for a passage. Searches one passage or claim across Q&A, training files, and live help-center articles. Returns ranked candidates and query-focused excerpts without judging or writing. Required: query.
- **list_all_featurebase_training_data_files** — List training files. Returns uploaded training files, newest first, with cursor pagination. Filter by externalId (exact) or source . The extracted text is omitted from list responses — compare contentHash to detect changes, and retrieve a single file to read it.
- **create_a_featurebase_training_data_file** — Add a training file. Adds a document the AI agent can learn from. Provide exactly one source.
- **get_single_featurebase_training_data_file_by_id** — Get a training file. Returns a training file including its extracted text ( content ). Poll this endpoint after an upload until status is completed . Required: id.
- **update_a_featurebase_training_data_file_by_id** — Update a training file. Renames a training file, replaces content, or sets externalId / source. Indexing is attempted before returning when content is available. Check status and indexStatus; HTTP success alone does not establish search readiness. Serialize updates to a source identity in your pipeline. Required: id.
- **delete_a_featurebase_training_data_file_by_id** — Delete a training file. Removes a training file from the workspace and attempts search-index cleanup. In-flight answers may already contain earlier knowledge. Required: id.
- **list_all_featurebase_training_data_qna** — List Q&A entries. Returns Q&A entries, newest first, with cursor pagination. Filter by externalId or source . Entries include their full questions and answer.
- **create_a_featurebase_training_data_qna** — Create a Q&A entry. Creates or updates question variants and an answer. Optional externalId is a stable, caller-owned key, unique within workspace Q&A. Otherwise a normalized question addresses an existing entry. POST appends variants (maximum 50) and replaces supplied content; PATCH replaces the question list. Required: answer, questions.
- **get_single_featurebase_training_data_qna_by_id** — Get a Q&A entry. Returns a single Q&A entry by ID. Required: id.
- **update_a_featurebase_training_data_qna_by_id** — Update a Q&A entry. Updates title, questions, answer, or source. Questions replaces the whole list; preserve the union yourself when merging. Supply expectedRevision from GET or oracle existing / oracle target to apply only to the version you reviewed. Required: id.
- **delete_a_featurebase_training_data_qna_by_id** — Delete a Q&A entry. Removes a Q&A entry from the workspace and attempts search-index cleanup. Delete only entries your pipeline owns; a merged entry may have several contributing sources. Required: id.
- **featurebase_training_data_qna_validate** — Ask what to do with a Q&A entry. Checks a proposed Q&A without writing. Optional externalId or an existing normalized question addresses a target. Changed content is compared with that entry even if retrieval or excludeIds misses it. The judge continues past agreement to detect later contradictions; uncertainty takes precedence over agreement. Required: answer, questions.
- **create_a_featurebase_webhook_secret** — Refresh webhook signing secret. Generates a new signing secret for a webhook. The previous secret is immediately invalidated. Required: webhook_id.
- **list_all_featurebase_webhooks** — List webhooks. Returns a list of webhooks in your organization using cursor-based pagination.
- **create_a_featurebase_webhook** — Create a webhook. Creates a new webhook to receive event notifications. Required: name, topics, url.
- **get_single_featurebase_webhook_by_id** — Get webhook by ID. Retrieves a single webhook by its unique identifier. Required: id.
- **update_a_featurebase_webhook_by_id** — Update a webhook. Updates a webhook's properties. Supports partial updates - only provided fields will be updated. Required: id.
- **delete_a_featurebase_webhook_by_id** — Delete a webhook. Permanently deletes a webhook. Required: id.
- **list_all_featurebase_workload_snapshots** — Get a live workload snapshot. Returns live workspace, team, and admin workload. Admin rows use cursor pagination. teamId and adminId filter admin and team rows. The summary stays workspace-wide. The snapshot is cached for five seconds. Needs the Featurebase Enterprise plan (403 otherwise).

## How it works

1. **Link your customer's Featurebase account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Featurebase.** The Proxy API is a 1-to-1 mapping of the Featurebase API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Sync CRM accounts into Featurebase for revenue-weighted feedback** — RevOps and CRM platforms can push account tier, MRR, and churn risk into Featurebase Companies and Contacts, letting their users prioritize feature requests by actual customer value instead of raw upvote counts.
- **Turn support conversations into product insights** — CX and conversation intelligence tools can automatically detect feature requests in call transcripts or chats and file them as insights linked to existing Featurebase posts, so product teams never lose feedback buried in support channels.
- **Automate changelog and API docs from CI/CD** — Developer tooling platforms can trigger changelog drafts and push OpenAPI spec syncs to the Featurebase Help Center on every merged PR, keeping release notes and API reference in lockstep with deployments.
- **Embed native feedback and voting inside your app** — Product adoption and in-app engagement platforms can render Featurebase posts and submit votes through their own UI, giving end users a white-labeled roadmap experience without redirecting them to a public portal.
- **Ground the Fibi AI agent with your knowledge base** — Knowledge management and onboarding tools can push articles, PDFs, and curated Q&A pairs into Featurebase training data, so their customers' AI support agent answers accurately using the latest internal content.

## What you can build

- **Two-way account and contact sync** — Keep Featurebase Companies and Contacts continuously aligned with your internal workspace, tenant, or CRM records including custom fields.
- **In-app roadmap and voting widget** — List posts, boards, and statuses inside your product UI and let end users upvote feature requests with a single API call.
- **Conversation-to-insight pipeline** — Convert detected feature mentions from calls or chats into Featurebase posts or attach them as insight evidence under existing requests.
- **Automated changelog publishing from your release pipeline** — Draft, publish, and notify subscribers of changelog entries whenever a deployment ships, with programmatic control over publication state.
- **Help Center API spec auto-sync** — Push OpenAPI 3 specs to Featurebase on every merge, with URL checks, revisions, and rollback support built into your CI flow.
- **AI knowledge base ingestion** — Create and update training data files and Q&A pairs programmatically to keep the Fibi AI agent grounded on your customer's live documentation.

## FAQs

### How do end users connect their Featurebase account?

Truto handles the auth flow and credential storage for Featurebase on your behalf, so your users complete a standard connect flow in your app and you get a tenant-scoped connection you can call the Featurebase API with.

### Which Featurebase objects can I read and write through Truto?

Truto exposes the full Featurebase surface area including Posts, Comments, Voters, Insights, Boards, Changelogs, Conversations, Tickets, Contacts, Companies, Help Center articles, API specs, Training Data, Webhooks, Teams, Admins, and Reports.

### Can I subscribe to real-time events from Featurebase?

Yes. You can programmatically create and manage Featurebase webhooks through Truto to receive events for posts, comments, conversations, tickets, and other objects without each customer manually configuring them.

### Does Truto support Featurebase custom fields and ticket custom fields?

Yes. You can list conversation attributes, custom fields, and ticket custom fields through Truto so your integration can render and write to tenant-specific schemas without hardcoding.

### Can I attach a customer quote as evidence under an existing feature request?

Yes. Truto exposes the post insight link and unlink operations, so you can file verbatim quotes from external sources as insights on the relevant Featurebase post.

### How does Truto handle pagination and rate limits for Featurebase?

Truto normalizes pagination across list endpoints and transparently handles Featurebase's rate limiting with retries and backoff, so you can iterate large datasets like posts, conversations, or contacts without writing that logic yourself.

## Related reading

- [Connect Featurebase to Claude: Automate Support and Knowledge Base](https://truto.one/blog/connect-featurebase-to-claude-automate-support-and-knowledge-base/) — Learn how to connect Featurebase to Claude using an MCP server. Automate product feedback, changelogs, and support operations with AI agents and Truto.
- [Connect Featurebase to ChatGPT: Manage Product Feedback and Roadmaps](https://truto.one/blog/connect-featurebase-to-chatgpt-manage-product-feedback-and-roadmaps/) — Learn how to connect Featurebase to ChatGPT using a managed MCP server. Automate feedback triage, roadmaps, and customer insights with AI agents.
- [Connect Featurebase to AI Agents: Automate User Insights](https://truto.one/blog/connect-featurebase-to-ai-agents-automate-user-insights-and-reporting/) — Learn how to connect Featurebase to AI Agents using Truto's /tools API. Automate user insights, reporting, and feedback triage with frameworks like LangChain.
