Reply to a ticket
POST/v2/tickets/{id}/reply
Adds a reply to a ticket’s linked conversation. Supports both contact and admin replies.
Path Parameters
id- The ticket number
Contact Reply
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | Must be “contact” |
contactId | string | No* | Featurebase contact ID |
contactEmail | string | No* | Contact email |
body | string | Yes | Message content (HTML) |
messageType | string | No | Always “comment” for contacts |
attachmentUrls | string[] | No | Attachment URLs (max 10) |
skipNotifications | boolean | No | Skip notifications (default false) |
createdAt | string | No | ISO 8601 timestamp to backdate the reply |
*At least one of contactId or contactEmail is required.
Admin Reply
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | Must be “admin” |
adminId | string | Yes | ID of the admin authoring the reply |
body | string | Yes | Message content (HTML) |
messageType | string | No | ”comment” (default) or “note” for internal notes |
attachmentUrls | string[] | No | Attachment URLs (max 10) |
skipNotifications | boolean | No | Skip notifications (default false) |
createdAt | string | No | ISO 8601 timestamp to backdate the reply |
Response
Returns a reply confirmation object.
Reply to a ticket
curl https://do.featurebase.app/v2/tickets/$ID/reply \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $FEATUREBASE_API_KEY" \
-d '{
"body": "<p>Thank you for your help!</p>",
"type": "contact",
"contactEmail": "john@example.com",
"contactId": "507f1f77bcf86cd799439011",
"createdAt": "2025-01-15T10:30:00.000Z",
"messageType": "comment"
}'{
"id": "507f1f77bcf86cd799439011",
"assigneeId": "507f1f77bcf86cd799439013",
"author": {
"id": "507f1f77bcf86cd799439011",
"email": "john@example.com",
"name": "John Doe",
"profilePicture": "https://cdn.example.com/avatars/john.png",
"type": "customer"
},
"categoryType": "customer",
"companyId": "507f1f77bcf86cd799439015",
"content": "<p>I get a 403 error when logging in.</p>",
"createdAt": "2025-01-15T10:30:00.000Z",
"customFields": {
"priority": "bar",
"507f1f77bcf86cd799439099": "bar"
},
"integrations": {
"clickup": [
{
"id": "86a1b2c3d",
"title": "Fix login bug",
"url": "https://app.clickup.com/t/86a1b2c3d"
}
],
"devops": [
{
"id": 789,
"projectId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"projectName": "My Project",
"title": "Implement SSO",
"url": "https://dev.azure.com/org/project/_workitems/edit/789"
}
],
"github": [
{
"id": "1234567890",
"number": "42",
"repositoryFullName": "acme/frontend",
"repositoryName": "frontend",
"title": "Login page returns 403",
"url": "https://github.com/acme/frontend/issues/42"
}
],
"hubspot": [
{
"dealAmount": 5000,
"dealClosed": false,
"objectId": 12345,
"type": "DEAL"
}
],
"jira": [
{
"issueId": "PROJ-456",
"issueUrl": "https://company.atlassian.net/browse/PROJ-456"
}
],
"linear": [
{
"issueId": "LIN-123",
"issueUrl": "https://linear.app/team/issue/LIN-123"
}
]
},
"linkedConversations": [
{
"id": "507f1f77bcf86cd799439011",
"role": "customer"
}
],
"object": "ticket",
"open": true,
"snoozedUntil": "2025-01-16T09:00:00.000Z",
"status": {
"id": "507f1f77bcf86cd799439011",
"color": "Blue",
"isDefault": false,
"name": "In Progress",
"object": "post_status",
"type": "active"
},
"teamAssigneeId": "507f1f77bcf86cd799439014",
"ticketCategoryId": "507f1f77bcf86cd799439011",
"ticketNumber": 42,
"ticketUrl": "https://feedback.example.com/p/cannot-login",
"title": "Cannot login to dashboard",
"updatedAt": "2025-01-15T12:30:00.000Z",
"conversationParts": [
{
"id": "1",
"bodyHtml": "<p>Hello, I have a question about your product.</p>",
"bodyMarkdown": "Hello, I have a question about your product.",
"channel": "desktop",
"createdAt": "2025-01-15T10:30:00.000Z",
"object": "conversation_part",
"partType": "user_msg",
"updatedAt": "2025-01-15T10:30:00.000Z",
"author": {
"id": "676f0f6765bdaa7d7d760f88",
"type": "customer",
"email": "john@example.com",
"name": "John Doe",
"profilePicture": "https://cdn.example.com/avatars/user.png"
},
"redacted": false,
"tagApplications": [
{
"appliedAt": "2025-01-15T10:30:00.000Z",
"tagId": "67ec1234abcd5678ef901234",
"appliedBy": {
"type": "admin",
"id": "507f1f77bcf86cd799439011",
"name": "John Doe"
},
"removedAt": "2025-01-15T11:00:00.000Z",
"removedBy": {
"type": "admin",
"id": "507f1f77bcf86cd799439011",
"name": "John Doe"
},
"tag": {
"id": "67ec1234abcd5678ef901234",
"name": "Churn",
"type": "tag"
}
}
]
}
]
}Returns Examples
{
"id": "507f1f77bcf86cd799439011",
"assigneeId": "507f1f77bcf86cd799439013",
"author": {
"id": "507f1f77bcf86cd799439011",
"email": "john@example.com",
"name": "John Doe",
"profilePicture": "https://cdn.example.com/avatars/john.png",
"type": "customer"
},
"categoryType": "customer",
"companyId": "507f1f77bcf86cd799439015",
"content": "<p>I get a 403 error when logging in.</p>",
"createdAt": "2025-01-15T10:30:00.000Z",
"customFields": {
"priority": "bar",
"507f1f77bcf86cd799439099": "bar"
},
"integrations": {
"clickup": [
{
"id": "86a1b2c3d",
"title": "Fix login bug",
"url": "https://app.clickup.com/t/86a1b2c3d"
}
],
"devops": [
{
"id": 789,
"projectId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"projectName": "My Project",
"title": "Implement SSO",
"url": "https://dev.azure.com/org/project/_workitems/edit/789"
}
],
"github": [
{
"id": "1234567890",
"number": "42",
"repositoryFullName": "acme/frontend",
"repositoryName": "frontend",
"title": "Login page returns 403",
"url": "https://github.com/acme/frontend/issues/42"
}
],
"hubspot": [
{
"dealAmount": 5000,
"dealClosed": false,
"objectId": 12345,
"type": "DEAL"
}
],
"jira": [
{
"issueId": "PROJ-456",
"issueUrl": "https://company.atlassian.net/browse/PROJ-456"
}
],
"linear": [
{
"issueId": "LIN-123",
"issueUrl": "https://linear.app/team/issue/LIN-123"
}
]
},
"linkedConversations": [
{
"id": "507f1f77bcf86cd799439011",
"role": "customer"
}
],
"object": "ticket",
"open": true,
"snoozedUntil": "2025-01-16T09:00:00.000Z",
"status": {
"id": "507f1f77bcf86cd799439011",
"color": "Blue",
"isDefault": false,
"name": "In Progress",
"object": "post_status",
"type": "active"
},
"teamAssigneeId": "507f1f77bcf86cd799439014",
"ticketCategoryId": "507f1f77bcf86cd799439011",
"ticketNumber": 42,
"ticketUrl": "https://feedback.example.com/p/cannot-login",
"title": "Cannot login to dashboard",
"updatedAt": "2025-01-15T12:30:00.000Z",
"conversationParts": [
{
"id": "1",
"bodyHtml": "<p>Hello, I have a question about your product.</p>",
"bodyMarkdown": "Hello, I have a question about your product.",
"channel": "desktop",
"createdAt": "2025-01-15T10:30:00.000Z",
"object": "conversation_part",
"partType": "user_msg",
"updatedAt": "2025-01-15T10:30:00.000Z",
"author": {
"id": "676f0f6765bdaa7d7d760f88",
"type": "customer",
"email": "john@example.com",
"name": "John Doe",
"profilePicture": "https://cdn.example.com/avatars/user.png"
},
"redacted": false,
"tagApplications": [
{
"appliedAt": "2025-01-15T10:30:00.000Z",
"tagId": "67ec1234abcd5678ef901234",
"appliedBy": {
"type": "admin",
"id": "507f1f77bcf86cd799439011",
"name": "John Doe"
},
"removedAt": "2025-01-15T11:00:00.000Z",
"removedBy": {
"type": "admin",
"id": "507f1f77bcf86cd799439011",
"name": "John Doe"
},
"tag": {
"id": "67ec1234abcd5678ef901234",
"name": "Churn",
"type": "tag"
}
}
]
}
]
}