### Example Response Source: https://docs.featurebase.app/rest-api/conversations/replytoconversation This is an example of the response received after successfully adding a conversation part. It includes the conversation part details and author information. ```json { "object": "conversation_part", "id": "3", "partType": "user_msg", "bodyHtml": "Thank you for your help!", "bodyMarkdown": "Thank you for your help!", "author": { "type": "customer", "id": "676f0f6765bdaa7d7d760f88", "name": "John Doe", "email": "john@example.com" }, "channel": "desktop", "createdAt": "2025-01-15T10:40:00.000Z", "updatedAt": "2025-01-15T10:40:00.000Z" } ``` -------------------------------- ### Example Response Object Source: https://docs.featurebase.app/rest-api/conversations/createconversation This is an example of the conversation object returned upon successful creation with a 201 Created status. ```json { "object": "conversation", "id": "12345", "state": "open", "priority": false, "adminAssigneeId": null, "participants": [ { "type": "customer", "id": "676f0f6765bdaa7d7d760f88" } ], "source": { "channel": "desktop", "deliveredAs": "customer_initiated", "bodyHtml": "Hello, I have a question about your product.", "bodyMarkdown": "Hello, I have a question about your product.", "author": { "type": "customer", "id": "676f0f6765bdaa7d7d760f88" } }, "createdAt": "2025-01-15T10:30:00.000Z", "updatedAt": "2025-01-15T10:30:00.000Z" } ``` -------------------------------- ### Example Brand Response Source: https://docs.featurebase.app/rest-api/brands/listbrands This is an example of a successful response when listing brands. It includes the 'object' type, an array of 'data' containing brand objects, and 'nextCursor' for pagination. ```json { "object": "list", "data": [ { "object": "brand", "id": "507f1f77bcf86cd799439011", "name": "Default Brand", "isDefault": true, "createdAt": "2025-01-01T12:00:00.000Z", "updatedAt": "2025-01-10T15:30:00.000Z", "helpCenterId": "11", "senderEmailAddressId": "507f1f77bcf86cd799439012" } ], "nextCursor": null } ``` -------------------------------- ### Full Post Update Webhook Payload Example Source: https://docs.featurebase.app/guides/webhooks/consuming.md This example shows a complete webhook payload for a 'post.updated' event, detailing all fields including organization, webhook IDs, timestamps, and detailed changes. ```json { "object": "notification_event", "id": "notif_0193a70c-3015-757c-a260-22ae37c86608", "topic": "post.updated", "organizationId": "6595518396205e06b897ad65", "webhookId": "675346db13af7340748ce850", "createdAt": "2024-12-08T16:13:34.102Z", "deliveryStatus": "pending", "data": { "object": "notification_event_data", "item": { "object": "post", "id": "67546dfb6e1363426b90707f", "title": "New title", "content": "
New content
", "boardId": "6755d0970b5d5b1fefdf54f4", "status": { "object": "post_status", "name": "Completed", "color": "Green", "type": "completed" }, "author": { "id": "5fef50c5e9458a0012f82456", "name": "Admin", "email": "admin@example.com" }, "createdAt": "2024-12-08T17:06:30.577Z", "updatedAt": "2024-12-08T17:06:30.577Z" }, "changes": [ { "field": "title", "oldValue": "Old title", "newValue": "New title" }, { "field": "content", "oldValue": "Old content
", "newValue": "New content
" } ] } } ``` -------------------------------- ### Example Conversation Response JSON Source: https://docs.featurebase.app/rest-api/conversations.md This is an example of the updated conversation object returned after adding or removing participants. ```json { "object": "conversation", "id": "12345", "participants": [ { "type": "customer", "id": "676f0f6765bdaa7d7d760f88" }, { "type": "customer", "id": "676f0f6765bdaa7d7d760f89" } ], ... } ``` -------------------------------- ### Example Team Response Source: https://docs.featurebase.app/rest-api/teams.md This is an example of the JSON response structure when listing all teams in an organization. It includes details for each team such as ID, name, color, icon, and members. ```json { "object": "list", "data": [ { "object": "team", "id": "507f1f77bcf86cd799439011", "name": "Support Team", "color": "#3B82F6", "icon": { "value": "👥", "type": "emoji" }, "members": ["5fef50c5e9458a0012f82456", "5fef50c5e9458a0012f82457"] } ] } ``` -------------------------------- ### Get Conversation by ID Example Source: https://docs.featurebase.app/rest-api/conversations/getconversationbyid This JSON object represents a sample response when retrieving a conversation by its ID. It includes conversation metadata and a list of recent conversation parts. ```json { "object": "conversation", "id": "12345", "title": "Question about pricing", "state": "open", "priority": false, "adminAssigneeId": "507f1f77bcf86cd799439011", "participants": [ { "type": "customer", "id": "676f0f6765bdaa7d7d760f88" } ], "conversationParts": [ { "object": "conversation_part", "id": "1", "partType": "user_msg", "bodyHtml": "Hello, I have a question about your pricing plans.", "bodyMarkdown": "Hello, I have a question about your pricing plans.", "author": { "type": "customer", "id": "676f0f6765bdaa7d7d760f88", "name": "John Doe", "email": "john@example.com" }, "channel": "desktop", "createdAt": "2025-01-15T10:30:00.000Z", "updatedAt": "2025-01-15T10:30:00.000Z" }, { "object": "conversation_part", "id": "2", "partType": "admin_msg", "bodyHtml": "Hi John! I'd be happy to help you with pricing information.", "bodyMarkdown": "Hi John! I'd be happy to help you with pricing information.", "author": { "type": "admin", "id": "507f1f77bcf86cd799439011", "name": "Support Agent" }, "channel": "desktop", "createdAt": "2025-01-15T10:35:00.000Z", "updatedAt": "2025-01-15T10:35:00.000Z" } ], "createdAt": "2025-01-15T10:30:00.000Z", "updatedAt": "2025-01-15T10:35:00.000Z" } ``` -------------------------------- ### Get Webhook by ID Response Example Source: https://docs.featurebase.app/rest-api/webhooks/getwebhookbyid This JSON object represents the successful response when retrieving a webhook by its ID. It includes details about the webhook's configuration, subscription topics, status, and delivery metrics. ```json { "object": "webhook", "id": "507f1f77bcf86cd799439011", "name": "Production Webhook", "url": "https://example.com/webhooks", "description": "Handles all production events", "topics": ["post.created", "post.updated"], "status": "active", "requestConfig": { "timeoutMs": 5000, "headers": {} }, "lastStatus": { "code": 200, "message": "Success", "timestamp": "2025-01-15T10:30:00.000Z" }, "health": { "lastResponseTime": 150, "avgResponseTime": 200, "lastSuccessAt": "2025-01-15T10:30:00.000Z", "errorsSinceLastSuccess": 0, "consecutiveFailures": 0 }, "createdAt": "2025-01-01T00:00:00.000Z", "updatedAt": "2025-01-15T10:30:00.000Z" } ``` -------------------------------- ### Contact Response Example Source: https://docs.featurebase.app/rest-api/contacts/listcontacts Illustrates the structure of a successful response when listing contacts. The `nextCursor` will be null if there are no more results. ```json { "object": "list", "data": [ { "object": "contact", "id": "676f0f6765bdaa7d7d760f88", "email": "john@example.com", "name": "John Doe", "type": "customer", ... } ], "nextCursor": "eyJpZCI6IjUwN2YxZjc3YmNmODZjZDc5OTQzOTAxMSJ9" } ``` -------------------------------- ### Get Contact by User ID Example Source: https://docs.featurebase.app/rest-api/contacts/getcontactbyuserid This JSON represents the expected response when retrieving a contact by their external user ID. It includes details such as the contact's ID, userId, email, name, and type. ```json { "object": "contact", "id": "676f0f6765bdaa7d7d760f88", "userId": "usr_12345", "email": "john@example.com", "name": "John Doe", "type": "customer", ... } ``` -------------------------------- ### List Help Centers Source: https://docs.featurebase.app/rest-api/help-centers/listhelpcenters Fetches a list of all help centers. Supports pagination using `limit` and `cursor` query parameters. ```APIDOC ## GET /v2/help_center/help_centers ### Description 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. ### Method GET ### Endpoint /v2/help_center/help_centers ### Query Parameters - **limit** (integer) - Optional - Number of items to return (1-100, default 10) - **cursor** (string) - Optional - Cursor for pagination ### Header Parameters - **Featurebase-Version** (string) - Optional - API version for this request. Defaults to your organization's configured API version if not specified. Example: "2026-01-01.nova" ### Response #### Success Response (200) - **object** (string) - Always "list" - **data** (array) - Array of help center objects - **id** (string) - Unique identifier - **displayName** (string) - Help center display name - **title** (string) - Help center title - **description** (string) - Help center description - **isPublic** (boolean) - Whether the help center is publicly accessible - **defaultLocale** (string) - Default locale for content - **availableLocales** (array) - Array of available locales - **navItems** (object) - Navigation items configuration - **urls** (object) - URL configuration (subpath, custom domain) - **createdAt** (string) - ISO 8601 timestamp when created - **updatedAt** (string) - ISO 8601 timestamp when last updated - **nextCursor** (string) - Cursor for next page (null if no more results) ### Response Example ```json { "object": "list", "data": [ { "id": "hc_123", "displayName": "Support Center", "title": "Featurebase Support", "description": "Official support documentation for Featurebase.", "isPublic": true, "defaultLocale": "en-US", "availableLocales": ["en-US", "es-ES"], "navItems": {}, "urls": {"subpath": "/support"}, "createdAt": "2023-01-01T10:00:00Z", "updatedAt": "2023-01-01T10:00:00Z" } ], "nextCursor": "some_cursor_string" } ``` ``` -------------------------------- ### Example Admin-Initiated Outreach (Email) Source: https://docs.featurebase.app/rest-api/conversations/createconversation Use this JSON payload for admin-initiated outreach via email. Include the 'channel' as 'email', 'subject', and provide recipient email addresses or contact IDs. ```json { "from": { "type": "admin", "id": "507f1f77bcf86cd799439011" }, "bodyMarkdown": "Hi! Just following up on your inquiry.", "channel": "email", "subject": "Following up on your inquiry", "recipients": { "to": { "emails": ["john@example.com"] }, "cc": { "emails": ["manager@example.com"] } } } ``` -------------------------------- ### Example Single Team Response Source: https://docs.featurebase.app/rest-api/teams.md This is an example of the JSON response structure when retrieving a single team by its ID. It provides the details of a specific team. ```json { "object": "team", "id": "507f1f77bcf86cd799439011", "name": "Support Team", "color": "#3B82F6", "icon": { "value": "👥", "type": "emoji" }, "members": ["5fef50c5e9458a0012f82456", "5fef50c5e9458a0012f82457"] } ``` -------------------------------- ### Create an article Source: https://docs.featurebase.app/rest-api/help-centers.md Creates a new article in your organization's help center. You must provide at least a title. ```APIDOC ## Create an article ### Description Creates a new article in your organization's help center. ### Method POST ### Endpoint /v2/help_center/articles ### Request Body #### Required attributes - **title** (string) - The title of the article #### Optional attributes - **description** (string) - A brief description of the article - **body** (string) - The HTML content of the article (supports external image URLs and base64 data URIs) - **formatter** (string) - Content formatter: "default" or "ai" (AI converts markdown/html to Featurebase format) - **parentId** (string) - The ID of the parent collection - **icon** (object) - Icon object with type and value - **state** (string) - "live" or "draft" (defaults to "draft") - **translations** (object) - Dictionary of translations keyed by locale ### Response #### Success Response (200) Returns the created article object with: - id (string) - Unique identifier - title (string) - Article title - description (string) - Article description - body (string) - Article content (HTML) - slug (string) - URL slug - icon (object) - Article icon (emoji or custom) - parentId (string) - Parent collection ID - helpCenterId (string) - ID of the help center this article belongs to - organization (string) - Organization ID - state (string) - Article state (live or draft) - author (object) - Author information (name, authorId, avatarUrl) - translations (object) - Translations for different locales - createdAt (string) - ISO 8601 timestamp when created - updatedAt (string) - ISO 8601 timestamp when last updated ``` -------------------------------- ### Example Event Payload Source: https://docs.featurebase.app/guides/webhooks/delivery.md This is an example of a notification event payload that your webhook might receive. It includes the object type, the topic of the event, and a unique ID. ```json { "object": "notification_event", "topic": "post.updated", "id": "notif_0193a6e6-fb6b-78ef-b71f-15008d9f9cde" } ``` -------------------------------- ### List Help Centers Source: https://docs.featurebase.app/rest-api.md Returns all help centers configured in your Featurebase organization. Supports pagination. ```APIDOC ## List help centers ### Description Returns all help centers configured in your Featurebase organization. ### Method GET ### Endpoint /v2/help_center/help_centers ### Query Parameters - **limit** (number) - Optional - Number of items to return (1-100, default 10) - **cursor** (string) - Optional - Cursor for pagination ### Response #### Success Response (200) Returns a list object with: - **object** (string) - Always "list" - **data** (array) - Array of help center objects - **nextCursor** (string) - Cursor for next page (null if no more results) ### Help Center Object Each help center includes: - **id** (string) - Unique identifier - **displayName** (string) - Help center display name - **title** (string) - Help center title - **description** (string) - Help center description - **isPublic** (boolean) - Whether the help center is publicly accessible - **defaultLocale** (string) - Default locale for content - **availableLocales** (array) - Array of available locales - **navItems** (object) - Navigation items configuration - **urls** (object) - URL configuration (subpath, custom domain) - **createdAt** (string) - ISO 8601 timestamp when created - **updatedAt** (string) - ISO 8601 timestamp when last updated ``` -------------------------------- ### Create Article Source: https://docs.featurebase.app/rest-api/help-centers/createarticle Creates a new article in your organization's help center. You can specify various attributes like title, description, body content, formatter, parent collection, icon, state, and translations. ```APIDOC ## POST /v2/help_center/articles ### Description Creates a new article in your organization's help center. ### Method POST ### Endpoint /v2/help_center/articles ### Header parameters - **Featurebase-Version** (string) - API version for this request. Defaults to your organization's configured API version if not specified. Example: "2026-01-01.nova" ### Request Body #### Request Body (application/json) - **title** (string, required) - The title of the article Example: "Getting Started Guide" - **description** (string) - A brief description of the article Example: "Learn how to get started with our platform" - **body** (string) - The HTML content of the article (supports external image URLs and base64 data URIs) Example: "Welcome to our getting started guide.
" - **formatter** (string) - Content formatter: "default" or "ai" (AI converts markdown/html to Featurebase format) Enum: "default", "ai" - **parentId** (string) - The ID of the parent collection Example: "6474684" - **icon** (object, null) - Icon object for the article - **icon.value** (string, required) - Icon value Example: "📖" - **icon.type** (string, required) - Type of icon (emoji or predefined only) Enum: "emoji", "predefined" - **state** (string) - "live" or "draft" (defaults to "draft") Enum: "live", "draft" - **translations** (object) - Dictionary of translations keyed by locale - **translations.bn** (object) - **translations.bn.title** (string) - Article title in this locale Example: "Getting Started Guide" - **translations.bn.description** (string) - Article description in this locale Example: "Learn how to get started" - **translations.bn.body** (string) - Article body content in this locale (HTML or markdown) Example: "Welcome to our guide.
" (Other locales like bs, pt-BR, bg, ca, hr, cs, da, nl, en, et, fi, fr, de, el, hi, hu, id, it, ja, ko, lv, lt, ms, mn, nb, pl, pt, ro, ru, sr, zh-CN, sk, sl, es, sw, sv, th, zh-TW, tr, uk, vi are also supported) ### Response #### Success Response (200) Returns the created article object with: - **id** (string) - Unique identifier - **title** (string) - Article title - **description** (string) - Article description - **body** (string) - Article content (HTML) - **slug** (string) - URL slug - **icon** (object) - Article icon (emoji or custom) - **parentId** (string) - Parent collection ID - **helpCenterId** (string) - ID of the help center this article belongs to - **organization** (string) - Organization ID - **state** (string) - Article state (live or draft) - **author** (object) - Author information (name, authorId, avatarUrl) - **translations** (object) - Translations for different locales - **createdAt** (string) - ISO 8601 timestamp when created - **updatedAt** (string) - ISO 8601 timestamp when last updated #### Response Example { "id": "123e4567-e89b-12d3-a456-426614174000", "title": "Getting Started Guide", "description": "Learn how to get started with our platform", "body": "Welcome to our getting started guide.
", "slug": "getting-started-guide", "icon": { "value": "📖", "type": "emoji" }, "parentId": "6474684", "helpCenterId": "hc_abc123", "organization": "org_xyz789", "state": "draft", "author": { "name": "Jane Doe", "authorId": "user_456", "avatarUrl": "https://example.com/avatar.png" }, "translations": {}, "createdAt": "2023-10-27T10:00:00Z", "updatedAt": "2023-10-27T10:00:00Z" } ``` -------------------------------- ### Example Contact-Initiated Conversation Request Source: https://docs.featurebase.app/rest-api/conversations/createconversation Use this JSON payload to create a conversation initiated by a contact or lead. Ensure the 'from.type' is 'contact' and provide a valid Featurebase contact ID. ```json { "from": { "type": "contact", "id": "676f0f6765bdaa7d7d760f88" }, "bodyMarkdown": "Hello, I have a question about your product.", "channel": "desktop" } ``` -------------------------------- ### Redacted Conversation Part Response Example Source: https://docs.featurebase.app/rest-api/conversations/redactconversationpart This example shows the structure of the response after a conversation part has been successfully redacted. Note the `redacted: true` field on the conversation part. ```json { "object": "conversation", "id": "12345", "conversationParts": [ { "object": "conversation_part", "id": "67890", "partType": "user_msg", "bodyHtml": "", "bodyMarkdown": "", "redacted": true, ... } ], ... } ``` -------------------------------- ### Example Response Structure Source: https://docs.featurebase.app/rest-api/companies/listcompanycontacts The response contains a list of contact objects, the object type, and a cursor for the next page of results. If 'nextCursor' is null, there are no more pages. ```json { "object": "list", "data": [ { "object": "contact", "id": "507f1f77bcf86cd799439011", "userId": "usr_12345", "email": "john@acme.com", "name": "John Doe", "type": "customer", "companies": [...], "createdAt": "2025-01-01T12:00:00.000Z" } ], "nextCursor": "eyJpZCI6IjUwN2YxZjc3YmNmODZjZDc5OTQzOTAxMSJ9" } ``` -------------------------------- ### Example Conversation Response Source: https://docs.featurebase.app/rest-api/conversations/removeparticipantfromconversation This JSON object shows an example of the updated conversation object returned after a participant has been successfully removed. It includes conversation details and a list of remaining participants. ```json { "object": "conversation", "id": "12345", "participants": [ { "type": "customer", "id": "676f0f6765bdaa7d7d760f89" } ], ... } ``` -------------------------------- ### Example Response JSON Source: https://docs.featurebase.app/rest-api/webhooks/listwebhooks This JSON structure represents a list of webhooks, including pagination information and individual webhook details. ```json { "object": "list", "data": [ { "object": "webhook", "id": "507f1f77bcf86cd799439011", "name": "Production Webhook", "url": "https://example.com/webhooks", "topics": ["post.created", "post.updated"], "status": "active", ... } ], "nextCursor": "eyJpZCI6IjUwN2YxZjc3YmNmODZjZDc5OTQzOTAxMSJ9" } ``` -------------------------------- ### Create a collection Source: https://docs.featurebase.app/rest-api/help-centers.md Creates a new collection in your organization's help center. ```APIDOC ## Create a collection ### Description Creates a new collection in your organization's help center. ### Method POST ### Endpoint /v2/help_center/collections ### Request Body Required attributes: - **name** (String) - The name of the collection Optional attributes: - **description** (String) - A description of the collection - **icon** (Object) - An icon object representing the collection icon (with type and value) - **parentId** (String) - The ID of the parent collection, if any - **translations** (Object) - A dictionary of translations keyed by locale ``` -------------------------------- ### Get Ticket Response Fields Source: https://docs.featurebase.app/rest-api/tickets/getticket This snippet outlines the structure of the successful response (200 OK) for the Get Ticket API, detailing the fields available for GitHub, Azure DevOps, and HubSpot integrations. ```APIDOC ## Response 200 fields (application/json) ### Integrations - GitHub - `integrations.github.repositoryName` (string, required) - Repository name. Example: "frontend" - `integrations.github.repositoryFullName` (string, required) - Full repository name (owner/repo). Example: "acme/frontend" - `integrations.github.url` (string, required) - URL to the GitHub issue. Example: "https://github.com/acme/frontend/issues/42" - `integrations.github.title` (string, required) - GitHub issue title. Example: "Login page returns 403" ### Integrations - Azure DevOps - `integrations.devops` (array, required) - `integrations.devops.id` (number, required) - Azure DevOps work item ID. Example: 789 - `integrations.devops.url` (string, required) - URL to the work item. Example: "https://dev.azure.com/org/project/_workitems/edit/789" - `integrations.devops.projectId` (string, required) - Azure DevOps project ID. Example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890" - `integrations.devops.projectName` (string, required) - Azure DevOps project name. Example: "My Project" - `integrations.devops.title` (string, required) - Work item title. Example: "Implement SSO" ### Integrations - HubSpot - `integrations.hubspot` (array, required) - `integrations.hubspot.objectId` (number, required) - HubSpot object ID. Example: 12345 - `integrations.hubspot.type` (string, required) - HubSpot object type. Enum: "TICKET", "DEAL", "CONTACT" - `integrations.hubspot.dealAmount` (number,null, required) - Deal amount (for DEAL type). Example: 5000 - `integrations.hubspot.dealClosed` (boolean,null, required) - Whether the deal is closed (for DEAL type). ``` -------------------------------- ### List help centers Source: https://docs.featurebase.app/rest-api/help-centers.md Returns all help centers configured in your Featurebase organization. Currently, only one help center is supported per organization. ```APIDOC ## List help centers ### Description Returns all help centers configured in your Featurebase organization. ### Method GET ### Endpoint /v2/help_center/help_centers ### Query Parameters - **limit** (Number) - Optional - Number of items to return (1-100, default 10) - **cursor** (String) - Optional - Cursor for pagination ### Response #### Success Response (200) Returns a list object with: - **object** (String) - Always "list" - **data** (Array) - Array of help center objects - **nextCursor** (String) - Cursor for next page (null if no more results) ### Help Center Object Each help center includes: - **id** (String) - Unique identifier - **displayName** (String) - Help center display name - **title** (String) - Help center title - **description** (String) - Help center description - **isPublic** (Boolean) - Whether the help center is publicly accessible - **defaultLocale** (String) - Default locale for content - **availableLocales** (Array) - Array of available locales - **navItems** (Array) - Navigation items configuration - **urls** (Object) - URL configuration (subpath, custom domain) - **createdAt** (String) - ISO 8601 timestamp when created - **updatedAt** (String) - ISO 8601 timestamp when last updated ``` -------------------------------- ### Get brand by ID (GET /v2/brands/{id}) Source: https://docs.featurebase.app/rest-api/brands.md Retrieves a single brand's details using its Featurebase internal ID. This endpoint is available in API version 2026-01-01.nova and newer. A 404 error is returned if the brand does not exist. ```json { "object": "brand", "id": "507f1f77bcf86cd799439011", "name": "Default Brand", "isDefault": true, "createdAt": "2025-01-01T12:00:00.000Z", "updatedAt": "2025-01-10T15:30:00.000Z", "helpCenterId": "11", "senderEmailAddressId": "507f1f77bcf86cd799439012" } ``` -------------------------------- ### Get Ticket Source: https://docs.featurebase.app/rest-api/tickets.md Retrieves a single ticket by its ticket number. ```APIDOC ## Get Ticket ### Description Retrieves a single ticket by its ticket number. ### Method GET ### Endpoint /v2/tickets/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The ticket number (e.g. 42 from TK-42) ### Response #### Success Response (200) Returns the ticket object, including conversationParts from the linked conversation (message history). ```