featurebase-node 0.13.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/api-promise.d.mts +1 -0
- package/api-promise.d.mts.map +1 -1
- package/api-promise.d.ts +1 -0
- package/api-promise.d.ts.map +1 -1
- package/api-promise.mjs +1 -0
- package/api-promise.mjs.map +1 -1
- package/client.d.mts +9 -3
- package/client.d.mts.map +1 -1
- package/client.d.ts +9 -3
- package/client.d.ts.map +1 -1
- package/client.js +6 -0
- package/client.js.map +1 -1
- package/client.mjs +6 -0
- package/client.mjs.map +1 -1
- package/core/api-promise.d.mts.map +1 -1
- package/core/api-promise.d.ts.map +1 -1
- package/core/api-promise.mjs.map +1 -1
- package/core/error.mjs.map +1 -1
- package/core/pagination.d.mts.map +1 -1
- package/core/pagination.d.ts.map +1 -1
- package/core/pagination.mjs.map +1 -1
- package/core/resource.d.mts.map +1 -1
- package/core/resource.d.ts.map +1 -1
- package/core/uploads.d.mts.map +1 -1
- package/core/uploads.d.ts.map +1 -1
- package/core/uploads.mjs.map +1 -1
- package/error.d.mts +1 -0
- package/error.d.mts.map +1 -1
- package/error.d.ts +1 -0
- package/error.d.ts.map +1 -1
- package/error.mjs +1 -0
- package/error.mjs.map +1 -1
- package/index.d.mts.map +1 -1
- package/index.d.ts.map +1 -1
- package/index.mjs.map +1 -1
- package/internal/detect-platform.mjs.map +1 -1
- package/internal/headers.mjs.map +1 -1
- package/internal/parse.d.mts.map +1 -1
- package/internal/parse.d.ts.map +1 -1
- package/internal/parse.mjs.map +1 -1
- package/internal/qs/formats.d.mts.map +1 -1
- package/internal/qs/formats.d.ts.map +1 -1
- package/internal/qs/index.d.mts +2 -2
- package/internal/qs/index.d.mts.map +1 -1
- package/internal/qs/index.d.ts +2 -2
- package/internal/qs/index.d.ts.map +1 -1
- package/internal/qs/index.mjs.map +1 -1
- package/internal/qs/stringify.d.mts.map +1 -1
- package/internal/qs/stringify.d.ts.map +1 -1
- package/internal/qs/stringify.mjs.map +1 -1
- package/internal/qs/utils.d.mts.map +1 -1
- package/internal/qs/utils.d.ts.map +1 -1
- package/internal/qs/utils.mjs.map +1 -1
- package/internal/request-options.d.mts.map +1 -1
- package/internal/request-options.d.ts.map +1 -1
- package/internal/shims.d.mts +6 -0
- package/internal/shims.d.mts.map +1 -1
- package/internal/shims.d.ts +6 -0
- package/internal/shims.d.ts.map +1 -1
- package/internal/to-file.d.mts.map +1 -1
- package/internal/to-file.d.ts.map +1 -1
- package/internal/to-file.mjs.map +1 -1
- package/internal/types.d.mts +4 -4
- package/internal/types.d.mts.map +1 -1
- package/internal/types.d.ts +4 -4
- package/internal/types.d.ts.map +1 -1
- package/internal/uploads.d.mts.map +1 -1
- package/internal/uploads.d.ts.map +1 -1
- package/internal/uploads.mjs.map +1 -1
- package/internal/utils/base64.mjs.map +1 -1
- package/internal/utils/log.d.mts.map +1 -1
- package/internal/utils/log.d.ts.map +1 -1
- package/internal/utils/log.mjs.map +1 -1
- package/internal/utils/path.mjs.map +1 -1
- package/internal/utils/query.mjs.map +1 -1
- package/internal/utils/values.mjs.map +1 -1
- package/internal/utils.d.mts.map +1 -1
- package/internal/utils.d.ts.map +1 -1
- package/internal/utils.mjs.map +1 -1
- package/package.json +16 -10
- package/pagination.d.mts +1 -0
- package/pagination.d.mts.map +1 -1
- package/pagination.d.ts +1 -0
- package/pagination.d.ts.map +1 -1
- package/pagination.mjs +1 -0
- package/pagination.mjs.map +1 -1
- package/resource.d.mts +1 -0
- package/resource.d.mts.map +1 -1
- package/resource.d.ts +1 -0
- package/resource.d.ts.map +1 -1
- package/resource.mjs +1 -0
- package/resource.mjs.map +1 -1
- package/resources/changelogs/changelogs.d.mts +106 -106
- package/resources/changelogs/changelogs.d.mts.map +1 -1
- package/resources/changelogs/changelogs.d.ts +106 -106
- package/resources/changelogs/changelogs.d.ts.map +1 -1
- package/resources/changelogs/changelogs.js +74 -74
- package/resources/changelogs/changelogs.js.map +1 -1
- package/resources/changelogs/changelogs.mjs +74 -74
- package/resources/changelogs/changelogs.mjs.map +1 -1
- package/resources/changelogs/index.d.mts +1 -1
- package/resources/changelogs/index.d.mts.map +1 -1
- package/resources/changelogs/index.d.ts +1 -1
- package/resources/changelogs/index.d.ts.map +1 -1
- package/resources/changelogs/index.mjs.map +1 -1
- package/resources/changelogs/subscribers.d.mts.map +1 -1
- package/resources/changelogs/subscribers.d.ts.map +1 -1
- package/resources/changelogs/subscribers.mjs.map +1 -1
- package/resources/changelogs.d.mts.map +1 -1
- package/resources/changelogs.d.ts.map +1 -1
- package/resources/changelogs.mjs.map +1 -1
- package/resources/conversation-attributes.d.mts +117 -0
- package/resources/conversation-attributes.d.mts.map +1 -0
- package/resources/conversation-attributes.d.ts +117 -0
- package/resources/conversation-attributes.d.ts.map +1 -0
- package/resources/conversation-attributes.js +61 -0
- package/resources/conversation-attributes.js.map +1 -0
- package/resources/conversation-attributes.mjs +57 -0
- package/resources/conversation-attributes.mjs.map +1 -0
- package/resources/feedback/boards.d.mts +17 -17
- package/resources/feedback/boards.d.mts.map +1 -1
- package/resources/feedback/boards.d.ts +17 -17
- package/resources/feedback/boards.d.ts.map +1 -1
- package/resources/feedback/boards.js +20 -20
- package/resources/feedback/boards.js.map +1 -1
- package/resources/feedback/boards.mjs +20 -20
- package/resources/feedback/boards.mjs.map +1 -1
- package/resources/feedback/comments.d.mts +129 -191
- package/resources/feedback/comments.d.mts.map +1 -1
- package/resources/feedback/comments.d.ts +129 -191
- package/resources/feedback/comments.d.ts.map +1 -1
- package/resources/feedback/comments.js +93 -93
- package/resources/feedback/comments.js.map +1 -1
- package/resources/feedback/comments.mjs +93 -93
- package/resources/feedback/comments.mjs.map +1 -1
- package/resources/feedback/custom-fields.d.mts +34 -34
- package/resources/feedback/custom-fields.d.mts.map +1 -1
- package/resources/feedback/custom-fields.d.ts +34 -34
- package/resources/feedback/custom-fields.d.ts.map +1 -1
- package/resources/feedback/custom-fields.js +36 -36
- package/resources/feedback/custom-fields.js.map +1 -1
- package/resources/feedback/custom-fields.mjs +36 -36
- package/resources/feedback/custom-fields.mjs.map +1 -1
- package/resources/feedback/feedback.d.mts +7 -7
- package/resources/feedback/feedback.d.mts.map +1 -1
- package/resources/feedback/feedback.d.ts +7 -7
- package/resources/feedback/feedback.d.ts.map +1 -1
- package/resources/feedback/feedback.js.map +1 -1
- package/resources/feedback/feedback.mjs.map +1 -1
- package/resources/feedback/index.d.mts +5 -5
- package/resources/feedback/index.d.mts.map +1 -1
- package/resources/feedback/index.d.ts +5 -5
- package/resources/feedback/index.d.ts.map +1 -1
- package/resources/feedback/index.js.map +1 -1
- package/resources/feedback/index.mjs.map +1 -1
- package/resources/feedback/post-statuses.d.mts +18 -18
- package/resources/feedback/post-statuses.d.mts.map +1 -1
- package/resources/feedback/post-statuses.d.ts +18 -18
- package/resources/feedback/post-statuses.d.ts.map +1 -1
- package/resources/feedback/post-statuses.js +23 -23
- package/resources/feedback/post-statuses.js.map +1 -1
- package/resources/feedback/post-statuses.mjs +23 -23
- package/resources/feedback/post-statuses.mjs.map +1 -1
- package/resources/feedback/posts/index.d.mts +1 -1
- package/resources/feedback/posts/index.d.mts.map +1 -1
- package/resources/feedback/posts/index.d.ts +1 -1
- package/resources/feedback/posts/index.d.ts.map +1 -1
- package/resources/feedback/posts/index.js.map +1 -1
- package/resources/feedback/posts/index.mjs.map +1 -1
- package/resources/feedback/posts/posts.d.mts +187 -260
- package/resources/feedback/posts/posts.d.mts.map +1 -1
- package/resources/feedback/posts/posts.d.ts +187 -260
- package/resources/feedback/posts/posts.d.ts.map +1 -1
- package/resources/feedback/posts/posts.js +75 -75
- package/resources/feedback/posts/posts.js.map +1 -1
- package/resources/feedback/posts/posts.mjs +75 -75
- package/resources/feedback/posts/posts.mjs.map +1 -1
- package/resources/feedback/posts/voters.d.mts.map +1 -1
- package/resources/feedback/posts/voters.d.ts.map +1 -1
- package/resources/feedback/posts/voters.mjs.map +1 -1
- package/resources/feedback/posts.d.mts.map +1 -1
- package/resources/feedback/posts.d.ts.map +1 -1
- package/resources/feedback/posts.mjs.map +1 -1
- package/resources/feedback.d.mts.map +1 -1
- package/resources/feedback.d.ts.map +1 -1
- package/resources/feedback.mjs.map +1 -1
- package/resources/help-center/articles.d.mts +98 -152
- package/resources/help-center/articles.d.mts.map +1 -1
- package/resources/help-center/articles.d.ts +98 -152
- package/resources/help-center/articles.d.ts.map +1 -1
- package/resources/help-center/articles.js +73 -73
- package/resources/help-center/articles.js.map +1 -1
- package/resources/help-center/articles.mjs +73 -73
- package/resources/help-center/articles.mjs.map +1 -1
- package/resources/help-center/collections.d.mts +64 -64
- package/resources/help-center/collections.d.mts.map +1 -1
- package/resources/help-center/collections.d.ts +64 -64
- package/resources/help-center/collections.d.ts.map +1 -1
- package/resources/help-center/collections.js +65 -65
- package/resources/help-center/collections.js.map +1 -1
- package/resources/help-center/collections.mjs +65 -65
- package/resources/help-center/collections.mjs.map +1 -1
- package/resources/help-center/help-center.d.mts +5 -5
- package/resources/help-center/help-center.d.mts.map +1 -1
- package/resources/help-center/help-center.d.ts +5 -5
- package/resources/help-center/help-center.d.ts.map +1 -1
- package/resources/help-center/help-center.js.map +1 -1
- package/resources/help-center/help-center.mjs.map +1 -1
- package/resources/help-center/help-centers.d.mts +43 -43
- package/resources/help-center/help-centers.d.mts.map +1 -1
- package/resources/help-center/help-centers.d.ts +43 -43
- package/resources/help-center/help-centers.d.ts.map +1 -1
- package/resources/help-center/help-centers.js +43 -43
- package/resources/help-center/help-centers.js.map +1 -1
- package/resources/help-center/help-centers.mjs +43 -43
- package/resources/help-center/help-centers.mjs.map +1 -1
- package/resources/help-center/index.d.mts +4 -4
- package/resources/help-center/index.d.mts.map +1 -1
- package/resources/help-center/index.d.ts +4 -4
- package/resources/help-center/index.d.ts.map +1 -1
- package/resources/help-center/index.js.map +1 -1
- package/resources/help-center/index.mjs.map +1 -1
- package/resources/help-center/redirect-rules.d.mts +117 -117
- package/resources/help-center/redirect-rules.d.mts.map +1 -1
- package/resources/help-center/redirect-rules.d.ts +117 -117
- package/resources/help-center/redirect-rules.d.ts.map +1 -1
- package/resources/help-center/redirect-rules.js +112 -112
- package/resources/help-center/redirect-rules.js.map +1 -1
- package/resources/help-center/redirect-rules.mjs +112 -112
- package/resources/help-center/redirect-rules.mjs.map +1 -1
- package/resources/help-center.d.mts.map +1 -1
- package/resources/help-center.d.ts.map +1 -1
- package/resources/help-center.mjs.map +1 -1
- package/resources/index.d.mts +4 -3
- package/resources/index.d.mts.map +1 -1
- package/resources/index.d.ts +4 -3
- package/resources/index.d.ts.map +1 -1
- package/resources/index.js +3 -1
- package/resources/index.js.map +1 -1
- package/resources/index.mjs +1 -0
- package/resources/index.mjs.map +1 -1
- package/resources/organization/admins.d.mts +23 -23
- package/resources/organization/admins.d.mts.map +1 -1
- package/resources/organization/admins.d.ts +23 -23
- package/resources/organization/admins.d.ts.map +1 -1
- package/resources/organization/admins.js +25 -25
- package/resources/organization/admins.js.map +1 -1
- package/resources/organization/admins.mjs +25 -25
- package/resources/organization/admins.mjs.map +1 -1
- package/resources/organization/brands.d.mts +50 -50
- package/resources/organization/brands.d.mts.map +1 -1
- package/resources/organization/brands.d.ts +50 -50
- package/resources/organization/brands.d.ts.map +1 -1
- package/resources/organization/brands.js +54 -54
- package/resources/organization/brands.js.map +1 -1
- package/resources/organization/brands.mjs +54 -54
- package/resources/organization/brands.mjs.map +1 -1
- package/resources/organization/index.d.mts +3 -3
- package/resources/organization/index.d.mts.map +1 -1
- package/resources/organization/index.d.ts +3 -3
- package/resources/organization/index.d.ts.map +1 -1
- package/resources/organization/index.mjs.map +1 -1
- package/resources/organization/organization.d.mts +3 -3
- package/resources/organization/organization.d.mts.map +1 -1
- package/resources/organization/organization.d.ts +3 -3
- package/resources/organization/organization.d.ts.map +1 -1
- package/resources/organization/organization.mjs.map +1 -1
- package/resources/organization/teams.d.mts +45 -45
- package/resources/organization/teams.d.mts.map +1 -1
- package/resources/organization/teams.d.ts +45 -45
- package/resources/organization/teams.d.ts.map +1 -1
- package/resources/organization/teams.js +44 -44
- package/resources/organization/teams.js.map +1 -1
- package/resources/organization/teams.mjs +44 -44
- package/resources/organization/teams.mjs.map +1 -1
- package/resources/organization.d.mts.map +1 -1
- package/resources/organization.d.ts.map +1 -1
- package/resources/organization.mjs.map +1 -1
- package/resources/support/conversation-tags.d.mts +40 -40
- package/resources/support/conversation-tags.d.mts.map +1 -1
- package/resources/support/conversation-tags.d.ts +40 -40
- package/resources/support/conversation-tags.d.ts.map +1 -1
- package/resources/support/conversation-tags.js +32 -32
- package/resources/support/conversation-tags.js.map +1 -1
- package/resources/support/conversation-tags.mjs +32 -32
- package/resources/support/conversation-tags.mjs.map +1 -1
- package/resources/support/conversations/conversations.d.mts +599 -705
- package/resources/support/conversations/conversations.d.mts.map +1 -1
- package/resources/support/conversations/conversations.d.ts +599 -705
- package/resources/support/conversations/conversations.d.ts.map +1 -1
- package/resources/support/conversations/conversations.js +289 -288
- package/resources/support/conversations/conversations.js.map +1 -1
- package/resources/support/conversations/conversations.mjs +289 -288
- package/resources/support/conversations/conversations.mjs.map +1 -1
- package/resources/support/conversations/index.d.mts +1 -1
- package/resources/support/conversations/index.d.mts.map +1 -1
- package/resources/support/conversations/index.d.ts +1 -1
- package/resources/support/conversations/index.d.ts.map +1 -1
- package/resources/support/conversations/index.js.map +1 -1
- package/resources/support/conversations/index.mjs.map +1 -1
- package/resources/support/conversations/participants.d.mts.map +1 -1
- package/resources/support/conversations/participants.d.ts.map +1 -1
- package/resources/support/conversations/participants.mjs.map +1 -1
- package/resources/support/conversations.d.mts.map +1 -1
- package/resources/support/conversations.d.ts.map +1 -1
- package/resources/support/conversations.mjs.map +1 -1
- package/resources/support/index.d.mts +3 -3
- package/resources/support/index.d.mts.map +1 -1
- package/resources/support/index.d.ts +3 -3
- package/resources/support/index.d.ts.map +1 -1
- package/resources/support/index.js.map +1 -1
- package/resources/support/index.mjs.map +1 -1
- package/resources/support/support.d.mts +4 -4
- package/resources/support/support.d.mts.map +1 -1
- package/resources/support/support.d.ts +4 -4
- package/resources/support/support.d.ts.map +1 -1
- package/resources/support/support.js.map +1 -1
- package/resources/support/support.mjs.map +1 -1
- package/resources/support/tickets/categories.d.mts +18 -18
- package/resources/support/tickets/categories.d.mts.map +1 -1
- package/resources/support/tickets/categories.d.ts +18 -18
- package/resources/support/tickets/categories.d.ts.map +1 -1
- package/resources/support/tickets/categories.js +25 -25
- package/resources/support/tickets/categories.js.map +1 -1
- package/resources/support/tickets/categories.mjs +25 -25
- package/resources/support/tickets/categories.mjs.map +1 -1
- package/resources/support/tickets/custom-fields.d.mts +20 -20
- package/resources/support/tickets/custom-fields.d.mts.map +1 -1
- package/resources/support/tickets/custom-fields.d.ts +20 -20
- package/resources/support/tickets/custom-fields.d.ts.map +1 -1
- package/resources/support/tickets/custom-fields.js +19 -19
- package/resources/support/tickets/custom-fields.js.map +1 -1
- package/resources/support/tickets/custom-fields.mjs +19 -19
- package/resources/support/tickets/custom-fields.mjs.map +1 -1
- package/resources/support/tickets/index.d.mts +4 -4
- package/resources/support/tickets/index.d.mts.map +1 -1
- package/resources/support/tickets/index.d.ts +4 -4
- package/resources/support/tickets/index.d.ts.map +1 -1
- package/resources/support/tickets/index.mjs.map +1 -1
- package/resources/support/tickets/statuses.d.mts +17 -17
- package/resources/support/tickets/statuses.d.mts.map +1 -1
- package/resources/support/tickets/statuses.d.ts +17 -17
- package/resources/support/tickets/statuses.d.ts.map +1 -1
- package/resources/support/tickets/statuses.js +21 -21
- package/resources/support/tickets/statuses.js.map +1 -1
- package/resources/support/tickets/statuses.mjs +21 -21
- package/resources/support/tickets/statuses.mjs.map +1 -1
- package/resources/support/tickets/tickets.d.mts +69 -69
- package/resources/support/tickets/tickets.d.mts.map +1 -1
- package/resources/support/tickets/tickets.d.ts +69 -69
- package/resources/support/tickets/tickets.d.ts.map +1 -1
- package/resources/support/tickets/tickets.js +44 -44
- package/resources/support/tickets/tickets.js.map +1 -1
- package/resources/support/tickets/tickets.mjs +44 -44
- package/resources/support/tickets/tickets.mjs.map +1 -1
- package/resources/support/tickets.d.mts.map +1 -1
- package/resources/support/tickets.d.ts.map +1 -1
- package/resources/support/tickets.mjs.map +1 -1
- package/resources/support.d.mts.map +1 -1
- package/resources/support.d.ts.map +1 -1
- package/resources/support.mjs.map +1 -1
- package/resources/surveys.d.mts +41 -41
- package/resources/surveys.d.mts.map +1 -1
- package/resources/surveys.d.ts +41 -41
- package/resources/surveys.d.ts.map +1 -1
- package/resources/surveys.js +44 -44
- package/resources/surveys.js.map +1 -1
- package/resources/surveys.mjs +44 -44
- package/resources/surveys.mjs.map +1 -1
- package/resources/users/companies/companies.d.mts +116 -157
- package/resources/users/companies/companies.d.mts.map +1 -1
- package/resources/users/companies/companies.d.ts +116 -157
- package/resources/users/companies/companies.d.ts.map +1 -1
- package/resources/users/companies/companies.js +125 -125
- package/resources/users/companies/companies.js.map +1 -1
- package/resources/users/companies/companies.mjs +125 -125
- package/resources/users/companies/companies.mjs.map +1 -1
- package/resources/users/companies/contacts.d.mts.map +1 -1
- package/resources/users/companies/contacts.d.ts.map +1 -1
- package/resources/users/companies/contacts.mjs.map +1 -1
- package/resources/users/companies/index.d.mts +1 -1
- package/resources/users/companies/index.d.mts.map +1 -1
- package/resources/users/companies/index.d.ts +1 -1
- package/resources/users/companies/index.d.ts.map +1 -1
- package/resources/users/companies/index.mjs.map +1 -1
- package/resources/users/companies.d.mts.map +1 -1
- package/resources/users/companies.d.ts.map +1 -1
- package/resources/users/companies.mjs.map +1 -1
- package/resources/users/contacts/by-user-id/by-user-id.d.mts.map +1 -1
- package/resources/users/contacts/by-user-id/by-user-id.d.ts.map +1 -1
- package/resources/users/contacts/by-user-id/by-user-id.mjs.map +1 -1
- package/resources/users/contacts/by-user-id/email-preferences.d.mts.map +1 -1
- package/resources/users/contacts/by-user-id/email-preferences.d.ts.map +1 -1
- package/resources/users/contacts/by-user-id/email-preferences.mjs.map +1 -1
- package/resources/users/contacts/by-user-id/index.d.mts.map +1 -1
- package/resources/users/contacts/by-user-id/index.d.ts.map +1 -1
- package/resources/users/contacts/by-user-id/index.mjs.map +1 -1
- package/resources/users/contacts/by-user-id.d.mts.map +1 -1
- package/resources/users/contacts/by-user-id.d.ts.map +1 -1
- package/resources/users/contacts/by-user-id.mjs.map +1 -1
- package/resources/users/contacts/contacts.d.mts +196 -235
- package/resources/users/contacts/contacts.d.mts.map +1 -1
- package/resources/users/contacts/contacts.d.ts +196 -235
- package/resources/users/contacts/contacts.d.ts.map +1 -1
- package/resources/users/contacts/contacts.js +186 -184
- package/resources/users/contacts/contacts.js.map +1 -1
- package/resources/users/contacts/contacts.mjs +186 -184
- package/resources/users/contacts/contacts.mjs.map +1 -1
- package/resources/users/contacts/email-preferences.d.mts.map +1 -1
- package/resources/users/contacts/email-preferences.d.ts.map +1 -1
- package/resources/users/contacts/email-preferences.mjs.map +1 -1
- package/resources/users/contacts/index.d.mts +1 -1
- package/resources/users/contacts/index.d.mts.map +1 -1
- package/resources/users/contacts/index.d.ts +1 -1
- package/resources/users/contacts/index.d.ts.map +1 -1
- package/resources/users/contacts/index.mjs.map +1 -1
- package/resources/users/contacts.d.mts.map +1 -1
- package/resources/users/contacts.d.ts.map +1 -1
- package/resources/users/contacts.mjs.map +1 -1
- package/resources/users/index.d.mts +2 -2
- package/resources/users/index.d.mts.map +1 -1
- package/resources/users/index.d.ts +2 -2
- package/resources/users/index.d.ts.map +1 -1
- package/resources/users/index.mjs.map +1 -1
- package/resources/users/users.d.mts +2 -2
- package/resources/users/users.d.mts.map +1 -1
- package/resources/users/users.d.ts +2 -2
- package/resources/users/users.d.ts.map +1 -1
- package/resources/users/users.mjs.map +1 -1
- package/resources/users.d.mts.map +1 -1
- package/resources/users.d.ts.map +1 -1
- package/resources/users.mjs.map +1 -1
- package/resources/webhooks.d.mts +75 -75
- package/resources/webhooks.d.mts.map +1 -1
- package/resources/webhooks.d.ts +75 -75
- package/resources/webhooks.d.ts.map +1 -1
- package/resources/webhooks.js +77 -77
- package/resources/webhooks.js.map +1 -1
- package/resources/webhooks.mjs +77 -77
- package/resources/webhooks.mjs.map +1 -1
- package/resources.d.mts.map +1 -1
- package/resources.d.ts.map +1 -1
- package/resources.mjs.map +1 -1
- package/src/client.ts +25 -3
- package/src/resources/changelogs/changelogs.ts +170 -170
- package/src/resources/changelogs/index.ts +1 -1
- package/src/resources/conversation-attributes.ts +181 -0
- package/src/resources/feedback/boards.ts +28 -28
- package/src/resources/feedback/comments.ts +153 -226
- package/src/resources/feedback/custom-fields.ts +44 -44
- package/src/resources/feedback/feedback.ts +19 -5
- package/src/resources/feedback/index.ts +12 -5
- package/src/resources/feedback/post-statuses.ts +31 -31
- package/src/resources/feedback/posts/index.ts +7 -1
- package/src/resources/feedback/posts/posts.ts +230 -311
- package/src/resources/help-center/articles.ts +123 -186
- package/src/resources/help-center/collections.ts +84 -84
- package/src/resources/help-center/help-center.ts +7 -5
- package/src/resources/help-center/help-centers.ts +55 -55
- package/src/resources/help-center/index.ts +6 -5
- package/src/resources/help-center/redirect-rules.ts +174 -174
- package/src/resources/index.ts +11 -3
- package/src/resources/organization/admins.ts +33 -33
- package/src/resources/organization/brands.ts +66 -66
- package/src/resources/organization/index.ts +3 -3
- package/src/resources/organization/organization.ts +3 -3
- package/src/resources/organization/teams.ts +52 -52
- package/src/resources/support/conversation-tags.ts +59 -59
- package/src/resources/support/conversations/conversations.ts +723 -850
- package/src/resources/support/conversations/index.ts +11 -6
- package/src/resources/support/index.ts +14 -9
- package/src/resources/support/support.ts +21 -11
- package/src/resources/support/tickets/categories.ts +33 -33
- package/src/resources/support/tickets/custom-fields.ts +27 -27
- package/src/resources/support/tickets/index.ts +4 -4
- package/src/resources/support/tickets/statuses.ts +29 -29
- package/src/resources/support/tickets/tickets.ts +95 -95
- package/src/resources/surveys.ts +58 -58
- package/src/resources/users/companies/companies.ts +155 -204
- package/src/resources/users/companies/index.ts +2 -2
- package/src/resources/users/contacts/contacts.ts +235 -282
- package/src/resources/users/contacts/index.ts +3 -3
- package/src/resources/users/index.ts +5 -5
- package/src/resources/users/users.ts +5 -5
- package/src/resources/webhooks.ts +95 -95
- package/src/version.ts +1 -1
- package/uploads.d.mts +1 -0
- package/uploads.d.mts.map +1 -1
- package/uploads.d.ts +1 -0
- package/uploads.d.ts.map +1 -1
- package/uploads.mjs +1 -0
- package/uploads.mjs.map +1 -1
- package/version.d.mts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.mjs +1 -1
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
import { APIResource } from '../../../core/resource';
|
|
4
4
|
import * as ConversationsAPI from './conversations';
|
|
5
|
+
import * as ConversationAttributesAPI from '../../conversation-attributes';
|
|
5
6
|
import * as ConversationTagsAPI from '../conversation-tags';
|
|
7
|
+
import * as PostsAPI from '../../feedback/posts/posts';
|
|
6
8
|
import * as ParticipantsAPI from './participants';
|
|
7
9
|
import { ParticipantAddParams, ParticipantRemoveParams, Participants } from './participants';
|
|
8
10
|
import { APIPromise } from '../../../core/api-promise';
|
|
@@ -17,6 +19,95 @@ import { path } from '../../../internal/utils/path';
|
|
|
17
19
|
export class Conversations extends APIResource {
|
|
18
20
|
participants: ParticipantsAPI.Participants = new ParticipantsAPI.Participants(this._client);
|
|
19
21
|
|
|
22
|
+
/**
|
|
23
|
+
* Returns a list of conversations in your organization using cursor-based
|
|
24
|
+
* pagination.
|
|
25
|
+
*
|
|
26
|
+
* ### Query Parameters
|
|
27
|
+
*
|
|
28
|
+
* - `limit` - Number of conversations to return (1-100, default 10)
|
|
29
|
+
* - `cursor` - Cursor from previous response for pagination
|
|
30
|
+
* - `tagIds` - Optional tag filter as a comma-separated list of tag IDs. Matches
|
|
31
|
+
* conversations that contain all of the provided tags.
|
|
32
|
+
*
|
|
33
|
+
* ### Response Format
|
|
34
|
+
*
|
|
35
|
+
* Returns a list object with:
|
|
36
|
+
*
|
|
37
|
+
* - `object` - Always "list"
|
|
38
|
+
* - `data` - Array of conversation objects
|
|
39
|
+
* - `nextCursor` - Cursor for the next page, or null if no more results
|
|
40
|
+
*
|
|
41
|
+
* ### Conversation Object
|
|
42
|
+
*
|
|
43
|
+
* Each conversation includes:
|
|
44
|
+
*
|
|
45
|
+
* - `id` - Unique conversation identifier (short ID)
|
|
46
|
+
* - `title` - Conversation title
|
|
47
|
+
* - `state` - Current state ("open", "closed", or "snoozed")
|
|
48
|
+
* - `priority` - Whether the conversation is marked as priority
|
|
49
|
+
* - `adminAssigneeId` - ID of assigned admin (if any)
|
|
50
|
+
* - `teamAssigneeId` - ID of assigned team (if any)
|
|
51
|
+
* - `tags` - Current tags applied anywhere in the conversation
|
|
52
|
+
* - `participants` - Array of participants
|
|
53
|
+
* - `source` - Information about the first message
|
|
54
|
+
* - `createdAt` - Creation timestamp
|
|
55
|
+
* - `updatedAt` - Last update timestamp
|
|
56
|
+
*
|
|
57
|
+
* ### Example
|
|
58
|
+
*
|
|
59
|
+
* ```json
|
|
60
|
+
* {
|
|
61
|
+
* "object": "list",
|
|
62
|
+
* "data": [
|
|
63
|
+
* {
|
|
64
|
+
* "object": "conversation",
|
|
65
|
+
* "id": "12345",
|
|
66
|
+
* "title": "Question about pricing",
|
|
67
|
+
* "state": "open",
|
|
68
|
+
* "priority": false,
|
|
69
|
+
* "adminAssigneeId": null,
|
|
70
|
+
* "participants": [
|
|
71
|
+
* { "type": "customer", "id": "676f0f6765bdaa7d7d760f88" }
|
|
72
|
+
* ],
|
|
73
|
+
* ...
|
|
74
|
+
* }
|
|
75
|
+
* ],
|
|
76
|
+
* "nextCursor": "eyJpZCI6IjEyMzQ1In0="
|
|
77
|
+
* }
|
|
78
|
+
* ```
|
|
79
|
+
*
|
|
80
|
+
* ### Version Availability
|
|
81
|
+
*
|
|
82
|
+
* This endpoint is only available in API version 2026-01-01.nova and newer.
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* ```ts
|
|
86
|
+
* // Automatically fetches more pages as needed.
|
|
87
|
+
* for await (const conversation of client.support.conversations.list()) {
|
|
88
|
+
* // ...
|
|
89
|
+
* }
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
list(
|
|
93
|
+
params: ConversationListParams | null | undefined = {},
|
|
94
|
+
options?: RequestOptions,
|
|
95
|
+
): PagePromise<ConversationsCursorPage, Conversation> {
|
|
96
|
+
const { 'Featurebase-Version': featurebaseVersion, ...query } = params ?? {};
|
|
97
|
+
return this._client.getAPIList('/v2/conversations', CursorPage<Conversation>, {
|
|
98
|
+
query,
|
|
99
|
+
...options,
|
|
100
|
+
headers: buildHeaders([
|
|
101
|
+
{
|
|
102
|
+
...(featurebaseVersion?.toString() != null ?
|
|
103
|
+
{ 'Featurebase-Version': featurebaseVersion?.toString() }
|
|
104
|
+
: undefined),
|
|
105
|
+
},
|
|
106
|
+
options?.headers,
|
|
107
|
+
]),
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
|
|
20
111
|
/**
|
|
21
112
|
* Creates a new conversation. Supports both contact-initiated (customer/lead) and
|
|
22
113
|
* admin-initiated (outreach) conversations.
|
|
@@ -275,8 +366,62 @@ export class Conversations extends APIResource {
|
|
|
275
366
|
params: ConversationRetrieveParams | null | undefined = {},
|
|
276
367
|
options?: RequestOptions,
|
|
277
368
|
): APIPromise<Conversation> {
|
|
278
|
-
const { 'Featurebase-Version': featurebaseVersion } = params ?? {};
|
|
369
|
+
const { 'Featurebase-Version': featurebaseVersion, ...query } = params ?? {};
|
|
279
370
|
return this._client.get(path`/v2/conversations/${id}`, {
|
|
371
|
+
query,
|
|
372
|
+
...options,
|
|
373
|
+
headers: buildHeaders([
|
|
374
|
+
{
|
|
375
|
+
...(featurebaseVersion?.toString() != null ?
|
|
376
|
+
{ 'Featurebase-Version': featurebaseVersion?.toString() }
|
|
377
|
+
: undefined),
|
|
378
|
+
},
|
|
379
|
+
options?.headers,
|
|
380
|
+
]),
|
|
381
|
+
});
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
/**
|
|
385
|
+
* Permanently deletes a conversation by its short ID.
|
|
386
|
+
*
|
|
387
|
+
* ### Path Parameters
|
|
388
|
+
*
|
|
389
|
+
* - `id` - The conversation short ID (numeric)
|
|
390
|
+
*
|
|
391
|
+
* ### Response
|
|
392
|
+
*
|
|
393
|
+
* Returns a deletion confirmation object:
|
|
394
|
+
*
|
|
395
|
+
* ```json
|
|
396
|
+
* {
|
|
397
|
+
* "id": "12345",
|
|
398
|
+
* "object": "conversation",
|
|
399
|
+
* "deleted": true
|
|
400
|
+
* }
|
|
401
|
+
* ```
|
|
402
|
+
*
|
|
403
|
+
* ### Caution
|
|
404
|
+
*
|
|
405
|
+
* This operation is **irreversible**. The conversation and all its messages will
|
|
406
|
+
* be permanently deleted.
|
|
407
|
+
*
|
|
408
|
+
* ### Version Availability
|
|
409
|
+
*
|
|
410
|
+
* This endpoint is only available in API version 2026-01-01.nova and newer.
|
|
411
|
+
*
|
|
412
|
+
* @example
|
|
413
|
+
* ```ts
|
|
414
|
+
* const conversation =
|
|
415
|
+
* await client.support.conversations.delete('12345');
|
|
416
|
+
* ```
|
|
417
|
+
*/
|
|
418
|
+
delete(
|
|
419
|
+
id: string,
|
|
420
|
+
params: ConversationDeleteParams | null | undefined = {},
|
|
421
|
+
options?: RequestOptions,
|
|
422
|
+
): APIPromise<ConversationDeleteResponse> {
|
|
423
|
+
const { 'Featurebase-Version': featurebaseVersion } = params ?? {};
|
|
424
|
+
return this._client.delete(path`/v2/conversations/${id}`, {
|
|
280
425
|
...options,
|
|
281
426
|
headers: buildHeaders([
|
|
282
427
|
{
|
|
@@ -309,7 +454,7 @@ export class Conversations extends APIResource {
|
|
|
309
454
|
* | `adminAssigneeId` | string/null | Admin ID to assign, or null to unassign |
|
|
310
455
|
* | `teamAssigneeId` | string/null | Team ID to assign, or null to unassign |
|
|
311
456
|
* | `title` | string | Conversation title |
|
|
312
|
-
* | `customAttributes` | object | Custom attributes to set on the conversation
|
|
457
|
+
* | `customAttributes` | object | Custom attributes to set on the conversation, keyed by conversation custom attribute ID |
|
|
313
458
|
* | `markAsRead` | object | Mark conversation as read for specific users |
|
|
314
459
|
*
|
|
315
460
|
* ### markAsRead Object
|
|
@@ -369,8 +514,8 @@ export class Conversations extends APIResource {
|
|
|
369
514
|
* {
|
|
370
515
|
* "title": "Billing Issue - Priority",
|
|
371
516
|
* "customAttributes": {
|
|
372
|
-
* "
|
|
373
|
-
* "
|
|
517
|
+
* "507f1f77bcf86cd799439011": 10,
|
|
518
|
+
* "507f1f77bcf86cd799439012": true
|
|
374
519
|
* }
|
|
375
520
|
* }
|
|
376
521
|
* ```
|
|
@@ -433,83 +578,119 @@ export class Conversations extends APIResource {
|
|
|
433
578
|
}
|
|
434
579
|
|
|
435
580
|
/**
|
|
436
|
-
*
|
|
437
|
-
*
|
|
581
|
+
* Adds a reply to an existing conversation. Supports both contact (customer/lead)
|
|
582
|
+
* and admin replies.
|
|
438
583
|
*
|
|
439
|
-
* ###
|
|
584
|
+
* ### Path Parameters
|
|
440
585
|
*
|
|
441
|
-
* - `
|
|
442
|
-
* - `cursor` - Cursor from previous response for pagination
|
|
443
|
-
* - `tagIds` - Optional tag filter as a comma-separated list of tag IDs. Matches
|
|
444
|
-
* conversations that contain all of the provided tags.
|
|
586
|
+
* - `id` - The conversation ID (short ID)
|
|
445
587
|
*
|
|
446
|
-
* ###
|
|
588
|
+
* ### Request Body
|
|
447
589
|
*
|
|
448
|
-
*
|
|
590
|
+
* The request body varies based on who is sending the reply:
|
|
449
591
|
*
|
|
450
|
-
*
|
|
451
|
-
* - `data` - Array of conversation objects
|
|
452
|
-
* - `nextCursor` - Cursor for the next page, or null if no more results
|
|
592
|
+
* #### Contact Reply (customer/lead)
|
|
453
593
|
*
|
|
454
|
-
*
|
|
594
|
+
* | Field | Type | Required | Description |
|
|
595
|
+
* | ------------------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
|
596
|
+
* | `type` | string | Yes | Must be "contact" |
|
|
597
|
+
* | `userId` | string | No\* | External user ID from your system |
|
|
598
|
+
* | `id` | string | No\* | Featurebase contact ID (24-character ObjectId) |
|
|
599
|
+
* | `bodyMarkdown` | string | Yes | The message content in markdown format. Images referenced by URL or as base64 data URIs will be automatically uploaded and stored. |
|
|
600
|
+
* | `messageType` | string | Yes | Must be "reply" |
|
|
601
|
+
* | `skipNotifications` | boolean | No | Skip sending notifications (default: false). Useful for bulk imports. |
|
|
455
602
|
*
|
|
456
|
-
*
|
|
603
|
+
* \*At least one of `userId` or `id` is required.
|
|
457
604
|
*
|
|
458
|
-
*
|
|
459
|
-
* - `title` - Conversation title
|
|
460
|
-
* - `state` - Current state ("open", "closed", or "snoozed")
|
|
461
|
-
* - `priority` - Whether the conversation is marked as priority
|
|
462
|
-
* - `adminAssigneeId` - ID of assigned admin (if any)
|
|
463
|
-
* - `teamAssigneeId` - ID of assigned team (if any)
|
|
464
|
-
* - `tags` - Current tags applied anywhere in the conversation
|
|
465
|
-
* - `participants` - Array of participants
|
|
466
|
-
* - `source` - Information about the first message
|
|
467
|
-
* - `createdAt` - Creation timestamp
|
|
468
|
-
* - `updatedAt` - Last update timestamp
|
|
605
|
+
* #### Admin Reply
|
|
469
606
|
*
|
|
470
|
-
*
|
|
607
|
+
* | Field | Type | Required | Description |
|
|
608
|
+
* | ------------------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
|
609
|
+
* | `type` | string | Yes | Must be "admin" |
|
|
610
|
+
* | `id` | string | Yes | Featurebase admin ID (24-character ObjectId) |
|
|
611
|
+
* | `bodyMarkdown` | string | Yes | The message content in markdown format. Images referenced by URL or as base64 data URIs will be automatically uploaded and stored. |
|
|
612
|
+
* | `messageType` | string | Yes | "reply" for customer-visible reply, "note" for internal note |
|
|
613
|
+
* | `skipNotifications` | boolean | No | Skip sending notifications (default: false). Useful for bulk imports. |
|
|
614
|
+
*
|
|
615
|
+
* ### Response
|
|
616
|
+
*
|
|
617
|
+
* Returns the created conversation part object with a **201 Created** status. The
|
|
618
|
+
* response includes both `bodyHtml` (with signed image URLs) and `bodyMarkdown`
|
|
619
|
+
* fields.
|
|
620
|
+
*
|
|
621
|
+
* ### Example Contact Reply
|
|
471
622
|
*
|
|
472
623
|
* ```json
|
|
473
624
|
* {
|
|
474
|
-
* "
|
|
475
|
-
* "
|
|
476
|
-
*
|
|
477
|
-
*
|
|
478
|
-
* "id": "12345",
|
|
479
|
-
* "title": "Question about pricing",
|
|
480
|
-
* "state": "open",
|
|
481
|
-
* "priority": false,
|
|
482
|
-
* "adminAssigneeId": null,
|
|
483
|
-
* "participants": [
|
|
484
|
-
* { "type": "customer", "id": "676f0f6765bdaa7d7d760f88" }
|
|
485
|
-
* ],
|
|
486
|
-
* ...
|
|
487
|
-
* }
|
|
488
|
-
* ],
|
|
489
|
-
* "nextCursor": "eyJpZCI6IjEyMzQ1In0="
|
|
625
|
+
* "type": "contact",
|
|
626
|
+
* "userId": "user_123",
|
|
627
|
+
* "bodyMarkdown": "Thank you for your help!",
|
|
628
|
+
* "messageType": "reply"
|
|
490
629
|
* }
|
|
491
630
|
* ```
|
|
492
631
|
*
|
|
493
|
-
* ###
|
|
632
|
+
* ### Example Admin Reply
|
|
494
633
|
*
|
|
495
|
-
*
|
|
634
|
+
* ```json
|
|
635
|
+
* {
|
|
636
|
+
* "type": "admin",
|
|
637
|
+
* "id": "507f1f77bcf86cd799439011",
|
|
638
|
+
* "bodyMarkdown": "I'm happy to help! Here's what you need to do...",
|
|
639
|
+
* "messageType": "reply"
|
|
640
|
+
* }
|
|
641
|
+
* ```
|
|
496
642
|
*
|
|
497
|
-
*
|
|
498
|
-
*
|
|
499
|
-
*
|
|
500
|
-
*
|
|
501
|
-
*
|
|
643
|
+
* ### Example Admin Note (Internal)
|
|
644
|
+
*
|
|
645
|
+
* ```json
|
|
646
|
+
* {
|
|
647
|
+
* "type": "admin",
|
|
648
|
+
* "id": "507f1f77bcf86cd799439011",
|
|
649
|
+
* "bodyMarkdown": "Customer seems frustrated, escalating to tier 2.",
|
|
650
|
+
* "messageType": "note"
|
|
502
651
|
* }
|
|
503
652
|
* ```
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
653
|
+
*
|
|
654
|
+
* ### Example Response
|
|
655
|
+
*
|
|
656
|
+
* ```json
|
|
657
|
+
* {
|
|
658
|
+
* "object": "conversation_part",
|
|
659
|
+
* "id": "3",
|
|
660
|
+
* "partType": "user_msg",
|
|
661
|
+
* "bodyHtml": "<p>Thank you for your help!</p>",
|
|
662
|
+
* "bodyMarkdown": "Thank you for your help!",
|
|
663
|
+
* "author": {
|
|
664
|
+
* "type": "customer",
|
|
665
|
+
* "id": "676f0f6765bdaa7d7d760f88",
|
|
666
|
+
* "name": "John Doe",
|
|
667
|
+
* "email": "john@example.com"
|
|
668
|
+
* },
|
|
669
|
+
* "channel": "desktop",
|
|
670
|
+
* "createdAt": "2025-01-15T10:40:00.000Z",
|
|
671
|
+
* "updatedAt": "2025-01-15T10:40:00.000Z"
|
|
672
|
+
* }
|
|
673
|
+
* ```
|
|
674
|
+
*
|
|
675
|
+
* ### Version Availability
|
|
676
|
+
*
|
|
677
|
+
* This endpoint is only available in API version 2026-01-01.nova and newer.
|
|
678
|
+
*
|
|
679
|
+
* @example
|
|
680
|
+
* ```ts
|
|
681
|
+
* const conversationPart =
|
|
682
|
+
* await client.support.conversations.reply('12345', {
|
|
683
|
+
* bodyMarkdown: 'Thank you for your help!',
|
|
684
|
+
* messageType: 'reply',
|
|
685
|
+
* type: 'contact',
|
|
686
|
+
* });
|
|
687
|
+
* ```
|
|
688
|
+
*/
|
|
689
|
+
reply(id: string, params: ConversationReplyParams, options?: RequestOptions): APIPromise<ConversationPart> {
|
|
690
|
+
const { 'Featurebase-Version': featurebaseVersion, ...body } = params;
|
|
691
|
+
return this._client.post(path`/v2/conversations/${id}/reply`, {
|
|
692
|
+
body,
|
|
693
|
+
...options,
|
|
513
694
|
headers: buildHeaders([
|
|
514
695
|
{
|
|
515
696
|
...(featurebaseVersion?.toString() != null ?
|
|
@@ -522,28 +703,68 @@ export class Conversations extends APIResource {
|
|
|
522
703
|
}
|
|
523
704
|
|
|
524
705
|
/**
|
|
525
|
-
*
|
|
706
|
+
* Redacts a conversation part (message) from a conversation. Redaction permanently
|
|
707
|
+
* removes the message content while preserving the conversation structure.
|
|
526
708
|
*
|
|
527
|
-
*
|
|
709
|
+
* Only human message types can be redacted:
|
|
528
710
|
*
|
|
529
|
-
* - `
|
|
711
|
+
* - `user_msg` - Messages from customers/leads
|
|
712
|
+
* - `admin_msg` - Messages from admins
|
|
713
|
+
* - `email_msg` - Email messages
|
|
714
|
+
* - `bot_msg` - Bot messages
|
|
715
|
+
*
|
|
716
|
+
* System-generated conversation parts (assignments, status changes, etc.) cannot
|
|
717
|
+
* be redacted.
|
|
718
|
+
*
|
|
719
|
+
* ### Request Body
|
|
720
|
+
*
|
|
721
|
+
* | Field | Type | Required | Description |
|
|
722
|
+
* | -------------------- | ------ | -------- | ------------------------------------------------------------------------------ |
|
|
723
|
+
* | `type` | string | Yes | The type of item to redact. Currently only `"conversation_part"` is supported. |
|
|
724
|
+
* | `conversationId` | string | Yes | The conversation short ID containing the part to redact |
|
|
725
|
+
* | `conversationPartId` | string | Yes | The conversation part short ID to redact |
|
|
726
|
+
* | `actingAdminId` | string | No | Admin ID performing the action (for attribution) |
|
|
530
727
|
*
|
|
531
728
|
* ### Response
|
|
532
729
|
*
|
|
533
|
-
* Returns
|
|
730
|
+
* Returns the updated conversation object.
|
|
731
|
+
*
|
|
732
|
+
* ### Example Request
|
|
733
|
+
*
|
|
734
|
+
* ```json
|
|
735
|
+
* {
|
|
736
|
+
* "type": "conversation_part",
|
|
737
|
+
* "conversationId": "12345",
|
|
738
|
+
* "conversationPartId": "67890",
|
|
739
|
+
* "actingAdminId": "507f1f77bcf86cd799439011"
|
|
740
|
+
* }
|
|
741
|
+
* ```
|
|
742
|
+
*
|
|
743
|
+
* ### Example Response
|
|
534
744
|
*
|
|
535
745
|
* ```json
|
|
536
746
|
* {
|
|
537
|
-
* "id": "12345",
|
|
538
747
|
* "object": "conversation",
|
|
539
|
-
* "
|
|
748
|
+
* "id": "12345",
|
|
749
|
+
* "conversationParts": [
|
|
750
|
+
* {
|
|
751
|
+
* "object": "conversation_part",
|
|
752
|
+
* "id": "67890",
|
|
753
|
+
* "partType": "user_msg",
|
|
754
|
+
* "bodyHtml": "",
|
|
755
|
+
* "bodyMarkdown": "",
|
|
756
|
+
* "redacted": true,
|
|
757
|
+
* ...
|
|
758
|
+
* }
|
|
759
|
+
* ],
|
|
760
|
+
* ...
|
|
540
761
|
* }
|
|
541
762
|
* ```
|
|
542
763
|
*
|
|
543
|
-
* ###
|
|
764
|
+
* ### Error Cases
|
|
544
765
|
*
|
|
545
|
-
*
|
|
546
|
-
*
|
|
766
|
+
* - **400 Bad Request** - Only human messages can be redacted
|
|
767
|
+
* - **404 Not Found** - Conversation or conversation part not found
|
|
547
768
|
*
|
|
548
769
|
* ### Version Availability
|
|
549
770
|
*
|
|
@@ -552,16 +773,17 @@ export class Conversations extends APIResource {
|
|
|
552
773
|
* @example
|
|
553
774
|
* ```ts
|
|
554
775
|
* const conversation =
|
|
555
|
-
* await client.support.conversations.
|
|
776
|
+
* await client.support.conversations.redact({
|
|
777
|
+
* conversationId: '12345',
|
|
778
|
+
* conversationPartId: '67890',
|
|
779
|
+
* type: 'conversation_part',
|
|
780
|
+
* });
|
|
556
781
|
* ```
|
|
557
782
|
*/
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
): APIPromise<ConversationDeleteResponse> {
|
|
563
|
-
const { 'Featurebase-Version': featurebaseVersion } = params ?? {};
|
|
564
|
-
return this._client.delete(path`/v2/conversations/${id}`, {
|
|
783
|
+
redact(params: ConversationRedactParams, options?: RequestOptions): APIPromise<Conversation> {
|
|
784
|
+
const { 'Featurebase-Version': featurebaseVersion, ...body } = params;
|
|
785
|
+
return this._client.post('/v2/conversations/redact', {
|
|
786
|
+
body,
|
|
565
787
|
...options,
|
|
566
788
|
headers: buildHeaders([
|
|
567
789
|
{
|
|
@@ -617,7 +839,7 @@ export class Conversations extends APIResource {
|
|
|
617
839
|
*
|
|
618
840
|
* @example
|
|
619
841
|
* ```ts
|
|
620
|
-
* const
|
|
842
|
+
* const attachedConversationTag =
|
|
621
843
|
* await client.support.conversations.attachTag('12345', {
|
|
622
844
|
* actingAdminId: '507f1f77bcf86cd799439011',
|
|
623
845
|
* tagId: '67ec1234abcd5678ef901234',
|
|
@@ -628,7 +850,7 @@ export class Conversations extends APIResource {
|
|
|
628
850
|
id: string,
|
|
629
851
|
params: ConversationAttachTagParams,
|
|
630
852
|
options?: RequestOptions,
|
|
631
|
-
): APIPromise<
|
|
853
|
+
): APIPromise<AttachedConversationTag> {
|
|
632
854
|
const { 'Featurebase-Version': featurebaseVersion, ...body } = params;
|
|
633
855
|
return this._client.post(path`/v2/conversations/${id}/tags`, {
|
|
634
856
|
body,
|
|
@@ -686,7 +908,7 @@ export class Conversations extends APIResource {
|
|
|
686
908
|
*
|
|
687
909
|
* @example
|
|
688
910
|
* ```ts
|
|
689
|
-
* const
|
|
911
|
+
* const attachedConversationTag =
|
|
690
912
|
* await client.support.conversations.detachTag(
|
|
691
913
|
* '67ec1234abcd5678ef901234',
|
|
692
914
|
* {
|
|
@@ -700,7 +922,7 @@ export class Conversations extends APIResource {
|
|
|
700
922
|
tagID: string,
|
|
701
923
|
params: ConversationDetachTagParams,
|
|
702
924
|
options?: RequestOptions,
|
|
703
|
-
): APIPromise<
|
|
925
|
+
): APIPromise<AttachedConversationTag> {
|
|
704
926
|
const { id, 'Featurebase-Version': featurebaseVersion, ...body } = params;
|
|
705
927
|
return this._client.delete(path`/v2/conversations/${id}/tags/${tagID}`, {
|
|
706
928
|
body,
|
|
@@ -716,225 +938,6 @@ export class Conversations extends APIResource {
|
|
|
716
938
|
});
|
|
717
939
|
}
|
|
718
940
|
|
|
719
|
-
/**
|
|
720
|
-
* Redacts a conversation part (message) from a conversation. Redaction permanently
|
|
721
|
-
* removes the message content while preserving the conversation structure.
|
|
722
|
-
*
|
|
723
|
-
* Only human message types can be redacted:
|
|
724
|
-
*
|
|
725
|
-
* - `user_msg` - Messages from customers/leads
|
|
726
|
-
* - `admin_msg` - Messages from admins
|
|
727
|
-
* - `email_msg` - Email messages
|
|
728
|
-
* - `bot_msg` - Bot messages
|
|
729
|
-
*
|
|
730
|
-
* System-generated conversation parts (assignments, status changes, etc.) cannot
|
|
731
|
-
* be redacted.
|
|
732
|
-
*
|
|
733
|
-
* ### Request Body
|
|
734
|
-
*
|
|
735
|
-
* | Field | Type | Required | Description |
|
|
736
|
-
* | -------------------- | ------ | -------- | ------------------------------------------------------------------------------ |
|
|
737
|
-
* | `type` | string | Yes | The type of item to redact. Currently only `"conversation_part"` is supported. |
|
|
738
|
-
* | `conversationId` | string | Yes | The conversation short ID containing the part to redact |
|
|
739
|
-
* | `conversationPartId` | string | Yes | The conversation part short ID to redact |
|
|
740
|
-
* | `actingAdminId` | string | No | Admin ID performing the action (for attribution) |
|
|
741
|
-
*
|
|
742
|
-
* ### Response
|
|
743
|
-
*
|
|
744
|
-
* Returns the updated conversation object.
|
|
745
|
-
*
|
|
746
|
-
* ### Example Request
|
|
747
|
-
*
|
|
748
|
-
* ```json
|
|
749
|
-
* {
|
|
750
|
-
* "type": "conversation_part",
|
|
751
|
-
* "conversationId": "12345",
|
|
752
|
-
* "conversationPartId": "67890",
|
|
753
|
-
* "actingAdminId": "507f1f77bcf86cd799439011"
|
|
754
|
-
* }
|
|
755
|
-
* ```
|
|
756
|
-
*
|
|
757
|
-
* ### Example Response
|
|
758
|
-
*
|
|
759
|
-
* ```json
|
|
760
|
-
* {
|
|
761
|
-
* "object": "conversation",
|
|
762
|
-
* "id": "12345",
|
|
763
|
-
* "conversationParts": [
|
|
764
|
-
* {
|
|
765
|
-
* "object": "conversation_part",
|
|
766
|
-
* "id": "67890",
|
|
767
|
-
* "partType": "user_msg",
|
|
768
|
-
* "bodyHtml": "",
|
|
769
|
-
* "bodyMarkdown": "",
|
|
770
|
-
* "redacted": true,
|
|
771
|
-
* ...
|
|
772
|
-
* }
|
|
773
|
-
* ],
|
|
774
|
-
* ...
|
|
775
|
-
* }
|
|
776
|
-
* ```
|
|
777
|
-
*
|
|
778
|
-
* ### Error Cases
|
|
779
|
-
*
|
|
780
|
-
* - **400 Bad Request** - Only human messages can be redacted
|
|
781
|
-
* - **404 Not Found** - Conversation or conversation part not found
|
|
782
|
-
*
|
|
783
|
-
* ### Version Availability
|
|
784
|
-
*
|
|
785
|
-
* This endpoint is only available in API version 2026-01-01.nova and newer.
|
|
786
|
-
*
|
|
787
|
-
* @example
|
|
788
|
-
* ```ts
|
|
789
|
-
* const conversation =
|
|
790
|
-
* await client.support.conversations.redact({
|
|
791
|
-
* conversationId: '12345',
|
|
792
|
-
* conversationPartId: '67890',
|
|
793
|
-
* type: 'conversation_part',
|
|
794
|
-
* });
|
|
795
|
-
* ```
|
|
796
|
-
*/
|
|
797
|
-
redact(params: ConversationRedactParams, options?: RequestOptions): APIPromise<Conversation> {
|
|
798
|
-
const { 'Featurebase-Version': featurebaseVersion, ...body } = params;
|
|
799
|
-
return this._client.post('/v2/conversations/redact', {
|
|
800
|
-
body,
|
|
801
|
-
...options,
|
|
802
|
-
headers: buildHeaders([
|
|
803
|
-
{
|
|
804
|
-
...(featurebaseVersion?.toString() != null ?
|
|
805
|
-
{ 'Featurebase-Version': featurebaseVersion?.toString() }
|
|
806
|
-
: undefined),
|
|
807
|
-
},
|
|
808
|
-
options?.headers,
|
|
809
|
-
]),
|
|
810
|
-
});
|
|
811
|
-
}
|
|
812
|
-
|
|
813
|
-
/**
|
|
814
|
-
* Adds a reply to an existing conversation. Supports both contact (customer/lead)
|
|
815
|
-
* and admin replies.
|
|
816
|
-
*
|
|
817
|
-
* ### Path Parameters
|
|
818
|
-
*
|
|
819
|
-
* - `id` - The conversation ID (short ID)
|
|
820
|
-
*
|
|
821
|
-
* ### Request Body
|
|
822
|
-
*
|
|
823
|
-
* The request body varies based on who is sending the reply:
|
|
824
|
-
*
|
|
825
|
-
* #### Contact Reply (customer/lead)
|
|
826
|
-
*
|
|
827
|
-
* | Field | Type | Required | Description |
|
|
828
|
-
* | ------------------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
|
829
|
-
* | `type` | string | Yes | Must be "contact" |
|
|
830
|
-
* | `userId` | string | No\* | External user ID from your system |
|
|
831
|
-
* | `id` | string | No\* | Featurebase contact ID (24-character ObjectId) |
|
|
832
|
-
* | `bodyMarkdown` | string | Yes | The message content in markdown format. Images referenced by URL or as base64 data URIs will be automatically uploaded and stored. |
|
|
833
|
-
* | `messageType` | string | Yes | Must be "reply" |
|
|
834
|
-
* | `skipNotifications` | boolean | No | Skip sending notifications (default: false). Useful for bulk imports. |
|
|
835
|
-
*
|
|
836
|
-
* \*At least one of `userId` or `id` is required.
|
|
837
|
-
*
|
|
838
|
-
* #### Admin Reply
|
|
839
|
-
*
|
|
840
|
-
* | Field | Type | Required | Description |
|
|
841
|
-
* | ------------------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
|
842
|
-
* | `type` | string | Yes | Must be "admin" |
|
|
843
|
-
* | `id` | string | Yes | Featurebase admin ID (24-character ObjectId) |
|
|
844
|
-
* | `bodyMarkdown` | string | Yes | The message content in markdown format. Images referenced by URL or as base64 data URIs will be automatically uploaded and stored. |
|
|
845
|
-
* | `messageType` | string | Yes | "reply" for customer-visible reply, "note" for internal note |
|
|
846
|
-
* | `skipNotifications` | boolean | No | Skip sending notifications (default: false). Useful for bulk imports. |
|
|
847
|
-
*
|
|
848
|
-
* ### Response
|
|
849
|
-
*
|
|
850
|
-
* Returns the created conversation part object with a **201 Created** status. The
|
|
851
|
-
* response includes both `bodyHtml` (with signed image URLs) and `bodyMarkdown`
|
|
852
|
-
* fields.
|
|
853
|
-
*
|
|
854
|
-
* ### Example Contact Reply
|
|
855
|
-
*
|
|
856
|
-
* ```json
|
|
857
|
-
* {
|
|
858
|
-
* "type": "contact",
|
|
859
|
-
* "userId": "user_123",
|
|
860
|
-
* "bodyMarkdown": "Thank you for your help!",
|
|
861
|
-
* "messageType": "reply"
|
|
862
|
-
* }
|
|
863
|
-
* ```
|
|
864
|
-
*
|
|
865
|
-
* ### Example Admin Reply
|
|
866
|
-
*
|
|
867
|
-
* ```json
|
|
868
|
-
* {
|
|
869
|
-
* "type": "admin",
|
|
870
|
-
* "id": "507f1f77bcf86cd799439011",
|
|
871
|
-
* "bodyMarkdown": "I'm happy to help! Here's what you need to do...",
|
|
872
|
-
* "messageType": "reply"
|
|
873
|
-
* }
|
|
874
|
-
* ```
|
|
875
|
-
*
|
|
876
|
-
* ### Example Admin Note (Internal)
|
|
877
|
-
*
|
|
878
|
-
* ```json
|
|
879
|
-
* {
|
|
880
|
-
* "type": "admin",
|
|
881
|
-
* "id": "507f1f77bcf86cd799439011",
|
|
882
|
-
* "bodyMarkdown": "Customer seems frustrated, escalating to tier 2.",
|
|
883
|
-
* "messageType": "note"
|
|
884
|
-
* }
|
|
885
|
-
* ```
|
|
886
|
-
*
|
|
887
|
-
* ### Example Response
|
|
888
|
-
*
|
|
889
|
-
* ```json
|
|
890
|
-
* {
|
|
891
|
-
* "object": "conversation_part",
|
|
892
|
-
* "id": "3",
|
|
893
|
-
* "partType": "user_msg",
|
|
894
|
-
* "bodyHtml": "<p>Thank you for your help!</p>",
|
|
895
|
-
* "bodyMarkdown": "Thank you for your help!",
|
|
896
|
-
* "author": {
|
|
897
|
-
* "type": "customer",
|
|
898
|
-
* "id": "676f0f6765bdaa7d7d760f88",
|
|
899
|
-
* "name": "John Doe",
|
|
900
|
-
* "email": "john@example.com"
|
|
901
|
-
* },
|
|
902
|
-
* "channel": "desktop",
|
|
903
|
-
* "createdAt": "2025-01-15T10:40:00.000Z",
|
|
904
|
-
* "updatedAt": "2025-01-15T10:40:00.000Z"
|
|
905
|
-
* }
|
|
906
|
-
* ```
|
|
907
|
-
*
|
|
908
|
-
* ### Version Availability
|
|
909
|
-
*
|
|
910
|
-
* This endpoint is only available in API version 2026-01-01.nova and newer.
|
|
911
|
-
*
|
|
912
|
-
* @example
|
|
913
|
-
* ```ts
|
|
914
|
-
* const conversationPart =
|
|
915
|
-
* await client.support.conversations.reply('12345', {
|
|
916
|
-
* bodyMarkdown: 'Thank you for your help!',
|
|
917
|
-
* messageType: 'reply',
|
|
918
|
-
* type: 'contact',
|
|
919
|
-
* });
|
|
920
|
-
* ```
|
|
921
|
-
*/
|
|
922
|
-
reply(id: string, params: ConversationReplyParams, options?: RequestOptions): APIPromise<ConversationPart> {
|
|
923
|
-
const { 'Featurebase-Version': featurebaseVersion, ...body } = params;
|
|
924
|
-
return this._client.post(path`/v2/conversations/${id}/reply`, {
|
|
925
|
-
body,
|
|
926
|
-
...options,
|
|
927
|
-
headers: buildHeaders([
|
|
928
|
-
{
|
|
929
|
-
...(featurebaseVersion?.toString() != null ?
|
|
930
|
-
{ 'Featurebase-Version': featurebaseVersion?.toString() }
|
|
931
|
-
: undefined),
|
|
932
|
-
},
|
|
933
|
-
options?.headers,
|
|
934
|
-
]),
|
|
935
|
-
});
|
|
936
|
-
}
|
|
937
|
-
|
|
938
941
|
/**
|
|
939
942
|
* Search conversations with a structured filter AST and an optional full-text
|
|
940
943
|
* query.
|
|
@@ -1059,6 +1062,49 @@ export class Conversations extends APIResource {
|
|
|
1059
1062
|
|
|
1060
1063
|
export type ConversationsCursorPage = CursorPage<Conversation>;
|
|
1061
1064
|
|
|
1065
|
+
export interface AttachedConversationTag {
|
|
1066
|
+
/**
|
|
1067
|
+
* Unique tag identifier
|
|
1068
|
+
*/
|
|
1069
|
+
id: string;
|
|
1070
|
+
|
|
1071
|
+
/**
|
|
1072
|
+
* Current tag name
|
|
1073
|
+
*/
|
|
1074
|
+
name: string;
|
|
1075
|
+
|
|
1076
|
+
/**
|
|
1077
|
+
* Object type identifier for a tag
|
|
1078
|
+
*/
|
|
1079
|
+
type: 'tag';
|
|
1080
|
+
|
|
1081
|
+
/**
|
|
1082
|
+
* ISO timestamp when the tag was applied
|
|
1083
|
+
*/
|
|
1084
|
+
appliedAt?: string | null;
|
|
1085
|
+
|
|
1086
|
+
/**
|
|
1087
|
+
* Actor that applied the tag
|
|
1088
|
+
*/
|
|
1089
|
+
appliedBy?: ConversationTagMutationActor | null;
|
|
1090
|
+
|
|
1091
|
+
/**
|
|
1092
|
+
* ISO timestamp when the tag was removed, if applicable
|
|
1093
|
+
*/
|
|
1094
|
+
removedAt?: string | null;
|
|
1095
|
+
|
|
1096
|
+
/**
|
|
1097
|
+
* Actor that applied the tag
|
|
1098
|
+
*/
|
|
1099
|
+
removedBy?: ConversationTagMutationActor | null;
|
|
1100
|
+
|
|
1101
|
+
/**
|
|
1102
|
+
* Reply/message ID used as the deterministic attachment target for this
|
|
1103
|
+
* conversation tag mutation.
|
|
1104
|
+
*/
|
|
1105
|
+
targetPartId?: string | null;
|
|
1106
|
+
}
|
|
1107
|
+
|
|
1062
1108
|
export interface Conversation {
|
|
1063
1109
|
/**
|
|
1064
1110
|
* Unique conversation identifier
|
|
@@ -1188,6 +1234,19 @@ export interface Conversation {
|
|
|
1188
1234
|
*/
|
|
1189
1235
|
csatSummary?: Conversation.CsatSummary;
|
|
1190
1236
|
|
|
1237
|
+
/**
|
|
1238
|
+
* Custom conversation attributes keyed by custom attribute ID. Only org-defined,
|
|
1239
|
+
* non-archived conversation attributes are returned; internal workflow metadata is
|
|
1240
|
+
* omitted.
|
|
1241
|
+
*/
|
|
1242
|
+
customAttributes?: { [key: string]: unknown };
|
|
1243
|
+
|
|
1244
|
+
/**
|
|
1245
|
+
* Custom conversation attribute values expanded with definition metadata. Returned
|
|
1246
|
+
* only when `include=customAttributeDefinitions` is provided.
|
|
1247
|
+
*/
|
|
1248
|
+
customAttributeValues?: Array<ConversationAttributeValue>;
|
|
1249
|
+
|
|
1191
1250
|
/**
|
|
1192
1251
|
* Whether customer replies are disabled
|
|
1193
1252
|
*/
|
|
@@ -1203,7 +1262,7 @@ export interface Conversation {
|
|
|
1203
1262
|
*/
|
|
1204
1263
|
readReceipts?: Array<Conversation.ReadReceipt>;
|
|
1205
1264
|
|
|
1206
|
-
source?:
|
|
1265
|
+
source?: MessageSource;
|
|
1207
1266
|
|
|
1208
1267
|
/**
|
|
1209
1268
|
* Conversation title
|
|
@@ -1237,13 +1296,16 @@ export namespace Conversation {
|
|
|
1237
1296
|
* ISO timestamp when first-time submissions stop being accepted
|
|
1238
1297
|
*/
|
|
1239
1298
|
lateSubmitWindowEndsAt?: string;
|
|
1299
|
+
|
|
1300
|
+
slackDelivery?: ConversationsAPI.CsatSlackDelivery;
|
|
1240
1301
|
}
|
|
1241
1302
|
|
|
1242
1303
|
export interface CsatHistory {
|
|
1243
1304
|
/**
|
|
1244
|
-
* Channel used for the CSAT request
|
|
1305
|
+
* Channel used for the CSAT request. `desktop` = web messenger, `email` =
|
|
1306
|
+
* follow-up email, `slack` = Block Kit prompt in the conversation thread.
|
|
1245
1307
|
*/
|
|
1246
|
-
channel: 'desktop' | 'email';
|
|
1308
|
+
channel: 'desktop' | 'email' | 'slack';
|
|
1247
1309
|
|
|
1248
1310
|
/**
|
|
1249
1311
|
* Whether this row represents the currently effective CSAT request for the
|
|
@@ -1315,6 +1377,8 @@ export namespace Conversation {
|
|
|
1315
1377
|
*/
|
|
1316
1378
|
score?: number;
|
|
1317
1379
|
|
|
1380
|
+
slackDelivery?: ConversationsAPI.CsatSlackDelivery;
|
|
1381
|
+
|
|
1318
1382
|
workflow?: ConversationsAPI.CsatWorkflowLink;
|
|
1319
1383
|
}
|
|
1320
1384
|
|
|
@@ -1341,7 +1405,7 @@ export namespace Conversation {
|
|
|
1341
1405
|
/**
|
|
1342
1406
|
* Channel used for the latest CSAT request when known
|
|
1343
1407
|
*/
|
|
1344
|
-
channel?: 'desktop' | 'email';
|
|
1408
|
+
channel?: 'desktop' | 'email' | 'slack';
|
|
1345
1409
|
|
|
1346
1410
|
/**
|
|
1347
1411
|
* ISO timestamp when the request expired
|
|
@@ -1402,40 +1466,43 @@ export namespace Conversation {
|
|
|
1402
1466
|
*/
|
|
1403
1467
|
userType: 'admin' | 'customer' | 'lead';
|
|
1404
1468
|
}
|
|
1469
|
+
}
|
|
1405
1470
|
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1471
|
+
export interface ConversationAttributeValue {
|
|
1472
|
+
/**
|
|
1473
|
+
* Stable machine identifier used as the key in conversation.customAttributes.
|
|
1474
|
+
*/
|
|
1475
|
+
id: string;
|
|
1411
1476
|
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1477
|
+
/**
|
|
1478
|
+
* Storage-level data type used for validation and search.
|
|
1479
|
+
*/
|
|
1480
|
+
dataType: 'string' | 'number' | 'boolean' | 'date' | 'array' | 'object';
|
|
1416
1481
|
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1482
|
+
/**
|
|
1483
|
+
* Conversation field subtype that controls the expected value shape.
|
|
1484
|
+
*/
|
|
1485
|
+
fieldSubType: 'text' | 'number' | 'select' | 'multi-select' | 'checkbox' | 'date';
|
|
1421
1486
|
|
|
1422
|
-
|
|
1487
|
+
/**
|
|
1488
|
+
* Stable internal identifier for the attribute definition.
|
|
1489
|
+
*/
|
|
1490
|
+
identifier: string;
|
|
1423
1491
|
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1492
|
+
/**
|
|
1493
|
+
* Human-readable attribute name shown in Featurebase.
|
|
1494
|
+
*/
|
|
1495
|
+
name: string;
|
|
1428
1496
|
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1497
|
+
/**
|
|
1498
|
+
* Allowed values for select and multi-select attributes.
|
|
1499
|
+
*/
|
|
1500
|
+
options?: Array<ConversationAttributesAPI.ConversationAttributeOption>;
|
|
1433
1501
|
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
}
|
|
1502
|
+
/**
|
|
1503
|
+
* The conversation-specific custom attribute value.
|
|
1504
|
+
*/
|
|
1505
|
+
value?: unknown;
|
|
1439
1506
|
}
|
|
1440
1507
|
|
|
1441
1508
|
/**
|
|
@@ -1483,7 +1550,7 @@ export namespace ConversationPart {
|
|
|
1483
1550
|
/**
|
|
1484
1551
|
* Channel through which the message was sent
|
|
1485
1552
|
*/
|
|
1486
|
-
channel: 'unknown' | 'desktop' | 'android' | 'ios' | 'email';
|
|
1553
|
+
channel: 'unknown' | 'desktop' | 'android' | 'ios' | 'email' | 'slack';
|
|
1487
1554
|
|
|
1488
1555
|
/**
|
|
1489
1556
|
* ISO timestamp when the part was created
|
|
@@ -1512,6 +1579,12 @@ export namespace ConversationPart {
|
|
|
1512
1579
|
*/
|
|
1513
1580
|
redacted?: boolean;
|
|
1514
1581
|
|
|
1582
|
+
/**
|
|
1583
|
+
* Safe Slack message identifiers. Only present for Slack-backed messages while the
|
|
1584
|
+
* organization has Slack integration enabled.
|
|
1585
|
+
*/
|
|
1586
|
+
slack?: ConversationsAPI.SlackMessageDetails;
|
|
1587
|
+
|
|
1515
1588
|
/**
|
|
1516
1589
|
* Reply-level tag applications and provenance for this conversation part
|
|
1517
1590
|
*/
|
|
@@ -1540,7 +1613,7 @@ export namespace ConversationPart {
|
|
|
1540
1613
|
/**
|
|
1541
1614
|
* Channel through which the message was sent
|
|
1542
1615
|
*/
|
|
1543
|
-
channel: 'unknown' | 'desktop' | 'android' | 'ios' | 'email';
|
|
1616
|
+
channel: 'unknown' | 'desktop' | 'android' | 'ios' | 'email' | 'slack';
|
|
1544
1617
|
|
|
1545
1618
|
/**
|
|
1546
1619
|
* ISO timestamp when the part was created
|
|
@@ -1569,6 +1642,12 @@ export namespace ConversationPart {
|
|
|
1569
1642
|
*/
|
|
1570
1643
|
redacted?: boolean;
|
|
1571
1644
|
|
|
1645
|
+
/**
|
|
1646
|
+
* Safe Slack message identifiers. Only present for Slack-backed messages while the
|
|
1647
|
+
* organization has Slack integration enabled.
|
|
1648
|
+
*/
|
|
1649
|
+
slack?: ConversationsAPI.SlackMessageDetails;
|
|
1650
|
+
|
|
1572
1651
|
/**
|
|
1573
1652
|
* Reply-level tag applications and provenance for this conversation part
|
|
1574
1653
|
*/
|
|
@@ -1728,13 +1807,19 @@ export namespace ConversationPart {
|
|
|
1728
1807
|
/**
|
|
1729
1808
|
* Channel through which the message was sent
|
|
1730
1809
|
*/
|
|
1731
|
-
channel?: 'unknown' | 'desktop' | 'android' | 'ios' | 'email';
|
|
1810
|
+
channel?: 'unknown' | 'desktop' | 'android' | 'ios' | 'email' | 'slack';
|
|
1732
1811
|
|
|
1733
1812
|
/**
|
|
1734
1813
|
* Whether this message has been redacted
|
|
1735
1814
|
*/
|
|
1736
1815
|
redacted?: boolean;
|
|
1737
1816
|
|
|
1817
|
+
/**
|
|
1818
|
+
* Safe Slack message identifiers. Only present for Slack-backed messages while the
|
|
1819
|
+
* organization has Slack integration enabled.
|
|
1820
|
+
*/
|
|
1821
|
+
slack?: ConversationsAPI.SlackMessageDetails;
|
|
1822
|
+
|
|
1738
1823
|
/**
|
|
1739
1824
|
* Reply-level tag applications and provenance for this conversation part
|
|
1740
1825
|
*/
|
|
@@ -1900,9 +1985,10 @@ export namespace ConversationPart {
|
|
|
1900
1985
|
*/
|
|
1901
1986
|
export interface Csat {
|
|
1902
1987
|
/**
|
|
1903
|
-
* Channel used for the CSAT request
|
|
1988
|
+
* Channel used for the CSAT request. `desktop` = web messenger, `email` =
|
|
1989
|
+
* follow-up email, `slack` = Block Kit prompt in the conversation thread.
|
|
1904
1990
|
*/
|
|
1905
|
-
channel: 'desktop' | 'email';
|
|
1991
|
+
channel: 'desktop' | 'email' | 'slack';
|
|
1906
1992
|
|
|
1907
1993
|
/**
|
|
1908
1994
|
* ISO timestamp when the request was created
|
|
@@ -1986,9 +2072,10 @@ export namespace ConversationPart {
|
|
|
1986
2072
|
*/
|
|
1987
2073
|
export interface Csat {
|
|
1988
2074
|
/**
|
|
1989
|
-
* Channel used for the CSAT request
|
|
2075
|
+
* Channel used for the CSAT request. `desktop` = web messenger, `email` =
|
|
2076
|
+
* follow-up email, `slack` = Block Kit prompt in the conversation thread.
|
|
1990
2077
|
*/
|
|
1991
|
-
channel: 'desktop' | 'email';
|
|
2078
|
+
channel: 'desktop' | 'email' | 'slack';
|
|
1992
2079
|
|
|
1993
2080
|
/**
|
|
1994
2081
|
* ISO timestamp when the customer submitted the rating
|
|
@@ -2276,39 +2363,17 @@ export namespace ConversationPart {
|
|
|
2276
2363
|
/**
|
|
2277
2364
|
* Actor that applied the tag
|
|
2278
2365
|
*/
|
|
2279
|
-
actor?:
|
|
2366
|
+
actor?: ConversationsAPI.ConversationTagMutationActor;
|
|
2280
2367
|
|
|
2281
|
-
/**
|
|
2282
|
-
* Tag name at the time of the event or the best available current display name
|
|
2283
|
-
*/
|
|
2284
|
-
tagName?: string | null;
|
|
2285
|
-
|
|
2286
|
-
/**
|
|
2287
|
-
* Conversation part that the tag mutation targeted
|
|
2288
|
-
*/
|
|
2289
|
-
targetPartId?: string | null;
|
|
2290
|
-
}
|
|
2291
|
-
|
|
2292
|
-
export namespace TagUpdate {
|
|
2293
|
-
/**
|
|
2294
|
-
* Actor that applied the tag
|
|
2295
|
-
*/
|
|
2296
|
-
export interface Actor {
|
|
2297
|
-
/**
|
|
2298
|
-
* Actor that caused the tag mutation
|
|
2299
|
-
*/
|
|
2300
|
-
type: 'admin' | 'customer' | 'lead' | 'bot' | 'integration' | 'system' | 'workflow';
|
|
2301
|
-
|
|
2302
|
-
/**
|
|
2303
|
-
* Actor identifier when available
|
|
2304
|
-
*/
|
|
2305
|
-
id?: string | null;
|
|
2368
|
+
/**
|
|
2369
|
+
* Tag name at the time of the event or the best available current display name
|
|
2370
|
+
*/
|
|
2371
|
+
tagName?: string | null;
|
|
2306
2372
|
|
|
2307
|
-
|
|
2308
|
-
|
|
2309
|
-
|
|
2310
|
-
|
|
2311
|
-
}
|
|
2373
|
+
/**
|
|
2374
|
+
* Conversation part that the tag mutation targeted
|
|
2375
|
+
*/
|
|
2376
|
+
targetPartId?: string | null;
|
|
2312
2377
|
}
|
|
2313
2378
|
|
|
2314
2379
|
/**
|
|
@@ -2525,7 +2590,7 @@ export interface ConversationTagApplication {
|
|
|
2525
2590
|
/**
|
|
2526
2591
|
* Actor that applied the tag
|
|
2527
2592
|
*/
|
|
2528
|
-
appliedBy?:
|
|
2593
|
+
appliedBy?: ConversationTagMutationActor;
|
|
2529
2594
|
|
|
2530
2595
|
/**
|
|
2531
2596
|
* ISO timestamp when the tag was removed from this reply, if it was removed
|
|
@@ -2535,7 +2600,7 @@ export interface ConversationTagApplication {
|
|
|
2535
2600
|
/**
|
|
2536
2601
|
* Actor that applied the tag
|
|
2537
2602
|
*/
|
|
2538
|
-
removedBy?:
|
|
2603
|
+
removedBy?: ConversationTagMutationActor;
|
|
2539
2604
|
|
|
2540
2605
|
/**
|
|
2541
2606
|
* Resolved tag object when the tag still exists in the shared workspace catalog
|
|
@@ -2543,46 +2608,24 @@ export interface ConversationTagApplication {
|
|
|
2543
2608
|
tag?: ConversationTagsAPI.ConversationTag;
|
|
2544
2609
|
}
|
|
2545
2610
|
|
|
2546
|
-
|
|
2611
|
+
/**
|
|
2612
|
+
* Actor that applied the tag
|
|
2613
|
+
*/
|
|
2614
|
+
export interface ConversationTagMutationActor {
|
|
2547
2615
|
/**
|
|
2548
|
-
* Actor that
|
|
2616
|
+
* Actor that caused the tag mutation
|
|
2549
2617
|
*/
|
|
2550
|
-
|
|
2551
|
-
/**
|
|
2552
|
-
* Actor that caused the tag mutation
|
|
2553
|
-
*/
|
|
2554
|
-
type: 'admin' | 'customer' | 'lead' | 'bot' | 'integration' | 'system' | 'workflow';
|
|
2555
|
-
|
|
2556
|
-
/**
|
|
2557
|
-
* Actor identifier when available
|
|
2558
|
-
*/
|
|
2559
|
-
id?: string | null;
|
|
2560
|
-
|
|
2561
|
-
/**
|
|
2562
|
-
* Actor display name when available
|
|
2563
|
-
*/
|
|
2564
|
-
name?: string | null;
|
|
2565
|
-
}
|
|
2618
|
+
type: 'admin' | 'customer' | 'lead' | 'bot' | 'integration' | 'system' | 'workflow';
|
|
2566
2619
|
|
|
2567
2620
|
/**
|
|
2568
|
-
* Actor
|
|
2621
|
+
* Actor identifier when available
|
|
2569
2622
|
*/
|
|
2570
|
-
|
|
2571
|
-
/**
|
|
2572
|
-
* Actor that caused the tag mutation
|
|
2573
|
-
*/
|
|
2574
|
-
type: 'admin' | 'customer' | 'lead' | 'bot' | 'integration' | 'system' | 'workflow';
|
|
2575
|
-
|
|
2576
|
-
/**
|
|
2577
|
-
* Actor identifier when available
|
|
2578
|
-
*/
|
|
2579
|
-
id?: string | null;
|
|
2623
|
+
id?: string | null;
|
|
2580
2624
|
|
|
2581
|
-
|
|
2582
|
-
|
|
2583
|
-
|
|
2584
|
-
|
|
2585
|
-
}
|
|
2625
|
+
/**
|
|
2626
|
+
* Actor display name when available
|
|
2627
|
+
*/
|
|
2628
|
+
name?: string | null;
|
|
2586
2629
|
}
|
|
2587
2630
|
|
|
2588
2631
|
export interface CsatEmailDelivery {
|
|
@@ -2624,6 +2667,44 @@ export interface CsatRatedAgent {
|
|
|
2624
2667
|
id?: string;
|
|
2625
2668
|
}
|
|
2626
2669
|
|
|
2670
|
+
export interface CsatSlackDelivery {
|
|
2671
|
+
/**
|
|
2672
|
+
* Slack Block Kit prompt delivery status for the CSAT request when the channel is
|
|
2673
|
+
* Slack
|
|
2674
|
+
*/
|
|
2675
|
+
status: 'pending' | 'posted' | 'failed';
|
|
2676
|
+
|
|
2677
|
+
/**
|
|
2678
|
+
* Slack channel id the CSAT prompt was posted to
|
|
2679
|
+
*/
|
|
2680
|
+
channelId?: string;
|
|
2681
|
+
|
|
2682
|
+
/**
|
|
2683
|
+
* ISO timestamp when posting the CSAT prompt to Slack failed
|
|
2684
|
+
*/
|
|
2685
|
+
failedAt?: string;
|
|
2686
|
+
|
|
2687
|
+
/**
|
|
2688
|
+
* Operational failure reason for the Slack CSAT prompt delivery
|
|
2689
|
+
*/
|
|
2690
|
+
failureReason?: string;
|
|
2691
|
+
|
|
2692
|
+
/**
|
|
2693
|
+
* Slack message timestamp of the posted CSAT prompt
|
|
2694
|
+
*/
|
|
2695
|
+
messageTs?: string;
|
|
2696
|
+
|
|
2697
|
+
/**
|
|
2698
|
+
* ISO timestamp when the CSAT prompt was enqueued for Slack
|
|
2699
|
+
*/
|
|
2700
|
+
postedAt?: string;
|
|
2701
|
+
|
|
2702
|
+
/**
|
|
2703
|
+
* Slack workspace (team) the CSAT prompt was posted to
|
|
2704
|
+
*/
|
|
2705
|
+
teamId?: string;
|
|
2706
|
+
}
|
|
2707
|
+
|
|
2627
2708
|
export interface CsatWorkflowLink {
|
|
2628
2709
|
/**
|
|
2629
2710
|
* Workflow action ID associated with the CSAT request
|
|
@@ -2661,191 +2742,160 @@ export interface EmailRecipients {
|
|
|
2661
2742
|
ids?: Array<string>;
|
|
2662
2743
|
}
|
|
2663
2744
|
|
|
2664
|
-
export interface
|
|
2665
|
-
/**
|
|
2666
|
-
* Unique identifier of the deleted conversation
|
|
2667
|
-
*/
|
|
2668
|
-
id: string;
|
|
2669
|
-
|
|
2670
|
-
/**
|
|
2671
|
-
* Indicates the resource was deleted
|
|
2672
|
-
*/
|
|
2673
|
-
deleted: true;
|
|
2674
|
-
|
|
2675
|
-
/**
|
|
2676
|
-
* Object type identifier
|
|
2677
|
-
*/
|
|
2678
|
-
object: 'conversation';
|
|
2679
|
-
}
|
|
2680
|
-
|
|
2681
|
-
export interface ConversationAttachTagResponse {
|
|
2745
|
+
export interface MessageSource {
|
|
2682
2746
|
/**
|
|
2683
|
-
*
|
|
2747
|
+
* Body of the initial message as HTML with signed image URLs
|
|
2684
2748
|
*/
|
|
2685
|
-
|
|
2749
|
+
bodyHtml: string;
|
|
2686
2750
|
|
|
2687
2751
|
/**
|
|
2688
|
-
*
|
|
2752
|
+
* Body of the initial message as markdown
|
|
2689
2753
|
*/
|
|
2690
|
-
|
|
2754
|
+
bodyMarkdown: string;
|
|
2691
2755
|
|
|
2692
2756
|
/**
|
|
2693
|
-
*
|
|
2757
|
+
* Channel through which the conversation was initiated
|
|
2694
2758
|
*/
|
|
2695
|
-
|
|
2759
|
+
channel: 'unknown' | 'desktop' | 'android' | 'ios' | 'email' | 'slack';
|
|
2696
2760
|
|
|
2697
|
-
|
|
2698
|
-
* ISO timestamp when the tag was applied
|
|
2699
|
-
*/
|
|
2700
|
-
appliedAt?: string | null;
|
|
2761
|
+
author?: ConversationParticipant;
|
|
2701
2762
|
|
|
2702
2763
|
/**
|
|
2703
|
-
*
|
|
2764
|
+
* How the conversation was initiated
|
|
2704
2765
|
*/
|
|
2705
|
-
|
|
2766
|
+
deliveredAs?: 'customer_initiated' | 'admin_initiated';
|
|
2706
2767
|
|
|
2707
2768
|
/**
|
|
2708
|
-
*
|
|
2769
|
+
* Safe Slack thread identifiers. Only present for Slack-origin conversations while
|
|
2770
|
+
* the organization has Slack integration enabled.
|
|
2709
2771
|
*/
|
|
2710
|
-
|
|
2772
|
+
slack?: MessageSource.Slack;
|
|
2711
2773
|
|
|
2712
2774
|
/**
|
|
2713
|
-
*
|
|
2775
|
+
* Subject line for email conversations
|
|
2714
2776
|
*/
|
|
2715
|
-
|
|
2777
|
+
subject?: string;
|
|
2716
2778
|
|
|
2717
2779
|
/**
|
|
2718
|
-
*
|
|
2719
|
-
* conversation tag mutation.
|
|
2780
|
+
* URL where the conversation was initiated
|
|
2720
2781
|
*/
|
|
2721
|
-
|
|
2782
|
+
url?: string;
|
|
2722
2783
|
}
|
|
2723
2784
|
|
|
2724
|
-
export namespace
|
|
2785
|
+
export namespace MessageSource {
|
|
2725
2786
|
/**
|
|
2726
|
-
*
|
|
2787
|
+
* Safe Slack thread identifiers. Only present for Slack-origin conversations while
|
|
2788
|
+
* the organization has Slack integration enabled.
|
|
2727
2789
|
*/
|
|
2728
|
-
export interface
|
|
2790
|
+
export interface Slack {
|
|
2729
2791
|
/**
|
|
2730
|
-
*
|
|
2792
|
+
* Slack channel ID for the thread
|
|
2731
2793
|
*/
|
|
2732
|
-
|
|
2794
|
+
channelId: string;
|
|
2733
2795
|
|
|
2734
2796
|
/**
|
|
2735
|
-
*
|
|
2797
|
+
* Slack workspace/team ID for the thread
|
|
2736
2798
|
*/
|
|
2737
|
-
|
|
2799
|
+
teamId: string;
|
|
2738
2800
|
|
|
2739
2801
|
/**
|
|
2740
|
-
*
|
|
2802
|
+
* Slack root thread timestamp
|
|
2741
2803
|
*/
|
|
2742
|
-
|
|
2804
|
+
threadTs: string;
|
|
2743
2805
|
}
|
|
2806
|
+
}
|
|
2744
2807
|
|
|
2808
|
+
/**
|
|
2809
|
+
* The customer or lead the conversation is with. Use this for the row identity;
|
|
2810
|
+
* use `matchingPartAuthor` if you specifically want the message author.
|
|
2811
|
+
*/
|
|
2812
|
+
export interface SearchMatchingPartAuthor {
|
|
2745
2813
|
/**
|
|
2746
|
-
*
|
|
2814
|
+
* Author id
|
|
2747
2815
|
*/
|
|
2748
|
-
|
|
2749
|
-
/**
|
|
2750
|
-
* Actor that caused the tag mutation
|
|
2751
|
-
*/
|
|
2752
|
-
type: 'admin' | 'customer' | 'lead' | 'bot' | 'integration' | 'system' | 'workflow';
|
|
2753
|
-
|
|
2754
|
-
/**
|
|
2755
|
-
* Actor identifier when available
|
|
2756
|
-
*/
|
|
2757
|
-
id?: string | null;
|
|
2816
|
+
id: string;
|
|
2758
2817
|
|
|
2759
|
-
|
|
2760
|
-
|
|
2761
|
-
|
|
2762
|
-
|
|
2763
|
-
}
|
|
2764
|
-
}
|
|
2818
|
+
/**
|
|
2819
|
+
* Author type
|
|
2820
|
+
*/
|
|
2821
|
+
type: 'admin' | 'customer' | 'lead' | 'bot' | 'guest' | 'integration';
|
|
2765
2822
|
|
|
2766
|
-
export interface ConversationDetachTagResponse {
|
|
2767
2823
|
/**
|
|
2768
|
-
*
|
|
2824
|
+
* Companies the author belongs to (customers only)
|
|
2769
2825
|
*/
|
|
2770
|
-
|
|
2826
|
+
companies?: Array<SearchMatchingPartAuthor.Company>;
|
|
2771
2827
|
|
|
2772
2828
|
/**
|
|
2773
|
-
*
|
|
2829
|
+
* Email when known
|
|
2774
2830
|
*/
|
|
2775
|
-
|
|
2831
|
+
email?: string | null;
|
|
2776
2832
|
|
|
2777
2833
|
/**
|
|
2778
|
-
*
|
|
2834
|
+
* Display name when known
|
|
2779
2835
|
*/
|
|
2780
|
-
|
|
2836
|
+
name?: string | null;
|
|
2781
2837
|
|
|
2782
2838
|
/**
|
|
2783
|
-
*
|
|
2839
|
+
* Profile picture URL when known
|
|
2784
2840
|
*/
|
|
2785
|
-
|
|
2841
|
+
profilePicture?: string | null;
|
|
2842
|
+
}
|
|
2843
|
+
|
|
2844
|
+
export namespace SearchMatchingPartAuthor {
|
|
2845
|
+
export interface Company {
|
|
2846
|
+
/**
|
|
2847
|
+
* Company id
|
|
2848
|
+
*/
|
|
2849
|
+
id: string;
|
|
2850
|
+
|
|
2851
|
+
/**
|
|
2852
|
+
* Company name
|
|
2853
|
+
*/
|
|
2854
|
+
name?: string;
|
|
2855
|
+
}
|
|
2856
|
+
}
|
|
2786
2857
|
|
|
2858
|
+
/**
|
|
2859
|
+
* Safe Slack message identifiers. Only present for Slack-backed messages while the
|
|
2860
|
+
* organization has Slack integration enabled.
|
|
2861
|
+
*/
|
|
2862
|
+
export interface SlackMessageDetails {
|
|
2787
2863
|
/**
|
|
2788
|
-
*
|
|
2864
|
+
* Slack channel ID for the message
|
|
2789
2865
|
*/
|
|
2790
|
-
|
|
2866
|
+
channelId: string;
|
|
2791
2867
|
|
|
2792
2868
|
/**
|
|
2793
|
-
*
|
|
2869
|
+
* Slack message timestamp
|
|
2794
2870
|
*/
|
|
2795
|
-
|
|
2871
|
+
messageTs: string;
|
|
2796
2872
|
|
|
2797
2873
|
/**
|
|
2798
|
-
*
|
|
2874
|
+
* Slack workspace/team ID for the message
|
|
2799
2875
|
*/
|
|
2800
|
-
|
|
2876
|
+
teamId: string;
|
|
2801
2877
|
|
|
2802
2878
|
/**
|
|
2803
|
-
*
|
|
2804
|
-
* conversation tag mutation.
|
|
2879
|
+
* Slack root thread timestamp when this message belongs to a thread
|
|
2805
2880
|
*/
|
|
2806
|
-
|
|
2881
|
+
threadTs?: string;
|
|
2807
2882
|
}
|
|
2808
2883
|
|
|
2809
|
-
export
|
|
2884
|
+
export interface ConversationDeleteResponse {
|
|
2810
2885
|
/**
|
|
2811
|
-
*
|
|
2886
|
+
* Unique identifier of the deleted conversation
|
|
2812
2887
|
*/
|
|
2813
|
-
|
|
2814
|
-
/**
|
|
2815
|
-
* Actor that caused the tag mutation
|
|
2816
|
-
*/
|
|
2817
|
-
type: 'admin' | 'customer' | 'lead' | 'bot' | 'integration' | 'system' | 'workflow';
|
|
2818
|
-
|
|
2819
|
-
/**
|
|
2820
|
-
* Actor identifier when available
|
|
2821
|
-
*/
|
|
2822
|
-
id?: string | null;
|
|
2823
|
-
|
|
2824
|
-
/**
|
|
2825
|
-
* Actor display name when available
|
|
2826
|
-
*/
|
|
2827
|
-
name?: string | null;
|
|
2828
|
-
}
|
|
2888
|
+
id: string;
|
|
2829
2889
|
|
|
2830
2890
|
/**
|
|
2831
|
-
*
|
|
2891
|
+
* Indicates the resource was deleted
|
|
2832
2892
|
*/
|
|
2833
|
-
|
|
2834
|
-
/**
|
|
2835
|
-
* Actor that caused the tag mutation
|
|
2836
|
-
*/
|
|
2837
|
-
type: 'admin' | 'customer' | 'lead' | 'bot' | 'integration' | 'system' | 'workflow';
|
|
2838
|
-
|
|
2839
|
-
/**
|
|
2840
|
-
* Actor identifier when available
|
|
2841
|
-
*/
|
|
2842
|
-
id?: string | null;
|
|
2893
|
+
deleted: true;
|
|
2843
2894
|
|
|
2844
|
-
|
|
2845
|
-
|
|
2846
|
-
|
|
2847
|
-
|
|
2848
|
-
}
|
|
2895
|
+
/**
|
|
2896
|
+
* Object type identifier
|
|
2897
|
+
*/
|
|
2898
|
+
object: 'conversation';
|
|
2849
2899
|
}
|
|
2850
2900
|
|
|
2851
2901
|
export interface ConversationSearchResponse {
|
|
@@ -2954,7 +3004,20 @@ export namespace ConversationSearchResponse {
|
|
|
2954
3004
|
* The customer or lead the conversation is with. Use this for the row identity;
|
|
2955
3005
|
* use `matchingPartAuthor` if you specifically want the message author.
|
|
2956
3006
|
*/
|
|
2957
|
-
conversationUser?:
|
|
3007
|
+
conversationUser?: ConversationsAPI.SearchMatchingPartAuthor | null;
|
|
3008
|
+
|
|
3009
|
+
/**
|
|
3010
|
+
* Custom conversation attributes keyed by custom attribute ID. Only org-defined,
|
|
3011
|
+
* non-archived conversation attributes are returned; internal workflow metadata is
|
|
3012
|
+
* omitted.
|
|
3013
|
+
*/
|
|
3014
|
+
customAttributes?: { [key: string]: unknown };
|
|
3015
|
+
|
|
3016
|
+
/**
|
|
3017
|
+
* Custom conversation attribute values expanded with definition metadata. Returned
|
|
3018
|
+
* only when `include=customAttributeDefinitions` is provided.
|
|
3019
|
+
*/
|
|
3020
|
+
customAttributeValues?: Array<ConversationsAPI.ConversationAttributeValue>;
|
|
2958
3021
|
|
|
2959
3022
|
/**
|
|
2960
3023
|
* Plain-text / markdown preview of the matching conversation part body (search
|
|
@@ -2972,7 +3035,7 @@ export namespace ConversationSearchResponse {
|
|
|
2972
3035
|
* The customer or lead the conversation is with. Use this for the row identity;
|
|
2973
3036
|
* use `matchingPartAuthor` if you specifically want the message author.
|
|
2974
3037
|
*/
|
|
2975
|
-
matchingPartAuthor?:
|
|
3038
|
+
matchingPartAuthor?: ConversationsAPI.SearchMatchingPartAuthor | null;
|
|
2976
3039
|
|
|
2977
3040
|
/**
|
|
2978
3041
|
* Aggregate relevance score for the conversation (search mode only). Higher is
|
|
@@ -2980,7 +3043,7 @@ export namespace ConversationSearchResponse {
|
|
|
2980
3043
|
*/
|
|
2981
3044
|
relevanceScore?: number | null;
|
|
2982
3045
|
|
|
2983
|
-
source?:
|
|
3046
|
+
source?: ConversationsAPI.MessageSource;
|
|
2984
3047
|
|
|
2985
3048
|
/**
|
|
2986
3049
|
* Window of conversation messages around the matching part for lightweight context
|
|
@@ -2999,147 +3062,25 @@ export namespace ConversationSearchResponse {
|
|
|
2999
3062
|
}
|
|
3000
3063
|
|
|
3001
3064
|
export namespace Data {
|
|
3002
|
-
/**
|
|
3003
|
-
* The customer or lead the conversation is with. Use this for the row identity;
|
|
3004
|
-
* use `matchingPartAuthor` if you specifically want the message author.
|
|
3005
|
-
*/
|
|
3006
|
-
export interface ConversationUser {
|
|
3007
|
-
/**
|
|
3008
|
-
* Author id
|
|
3009
|
-
*/
|
|
3010
|
-
id: string;
|
|
3011
|
-
|
|
3012
|
-
/**
|
|
3013
|
-
* Author type
|
|
3014
|
-
*/
|
|
3015
|
-
type: 'admin' | 'customer' | 'lead' | 'bot' | 'guest' | 'integration';
|
|
3016
|
-
|
|
3017
|
-
/**
|
|
3018
|
-
* Companies the author belongs to (customers only)
|
|
3019
|
-
*/
|
|
3020
|
-
companies?: Array<ConversationUser.Company>;
|
|
3021
|
-
|
|
3022
|
-
/**
|
|
3023
|
-
* Email when known
|
|
3024
|
-
*/
|
|
3025
|
-
email?: string | null;
|
|
3026
|
-
|
|
3027
|
-
/**
|
|
3028
|
-
* Display name when known
|
|
3029
|
-
*/
|
|
3030
|
-
name?: string | null;
|
|
3031
|
-
|
|
3032
|
-
/**
|
|
3033
|
-
* Profile picture URL when known
|
|
3034
|
-
*/
|
|
3035
|
-
profilePicture?: string | null;
|
|
3036
|
-
}
|
|
3037
|
-
|
|
3038
|
-
export namespace ConversationUser {
|
|
3039
|
-
export interface Company {
|
|
3040
|
-
id: string;
|
|
3041
|
-
|
|
3042
|
-
name?: string;
|
|
3043
|
-
}
|
|
3044
|
-
}
|
|
3045
|
-
|
|
3046
3065
|
/**
|
|
3047
3066
|
* Reference to the conversation part that best matched the search query (search
|
|
3048
3067
|
* mode only)
|
|
3049
3068
|
*/
|
|
3050
|
-
export interface MatchingPart {
|
|
3051
|
-
/**
|
|
3052
|
-
* Conversation part id
|
|
3053
|
-
*/
|
|
3054
|
-
id: string;
|
|
3055
|
-
|
|
3056
|
-
/**
|
|
3057
|
-
* ISO timestamp when the matching part was created
|
|
3058
|
-
*/
|
|
3059
|
-
createdAt?: string | null;
|
|
3060
|
-
|
|
3061
|
-
/**
|
|
3062
|
-
* Conversation part type
|
|
3063
|
-
*/
|
|
3064
|
-
partType?: string;
|
|
3065
|
-
}
|
|
3066
|
-
|
|
3067
|
-
/**
|
|
3068
|
-
* The customer or lead the conversation is with. Use this for the row identity;
|
|
3069
|
-
* use `matchingPartAuthor` if you specifically want the message author.
|
|
3070
|
-
*/
|
|
3071
|
-
export interface MatchingPartAuthor {
|
|
3072
|
-
/**
|
|
3073
|
-
* Author id
|
|
3074
|
-
*/
|
|
3075
|
-
id: string;
|
|
3076
|
-
|
|
3077
|
-
/**
|
|
3078
|
-
* Author type
|
|
3079
|
-
*/
|
|
3080
|
-
type: 'admin' | 'customer' | 'lead' | 'bot' | 'guest' | 'integration';
|
|
3081
|
-
|
|
3082
|
-
/**
|
|
3083
|
-
* Companies the author belongs to (customers only)
|
|
3084
|
-
*/
|
|
3085
|
-
companies?: Array<MatchingPartAuthor.Company>;
|
|
3086
|
-
|
|
3087
|
-
/**
|
|
3088
|
-
* Email when known
|
|
3089
|
-
*/
|
|
3090
|
-
email?: string | null;
|
|
3091
|
-
|
|
3092
|
-
/**
|
|
3093
|
-
* Display name when known
|
|
3094
|
-
*/
|
|
3095
|
-
name?: string | null;
|
|
3096
|
-
|
|
3097
|
-
/**
|
|
3098
|
-
* Profile picture URL when known
|
|
3099
|
-
*/
|
|
3100
|
-
profilePicture?: string | null;
|
|
3101
|
-
}
|
|
3102
|
-
|
|
3103
|
-
export namespace MatchingPartAuthor {
|
|
3104
|
-
export interface Company {
|
|
3105
|
-
id: string;
|
|
3106
|
-
|
|
3107
|
-
name?: string;
|
|
3108
|
-
}
|
|
3109
|
-
}
|
|
3110
|
-
|
|
3111
|
-
export interface Source {
|
|
3112
|
-
/**
|
|
3113
|
-
* Body of the initial message as HTML with signed image URLs
|
|
3114
|
-
*/
|
|
3115
|
-
bodyHtml: string;
|
|
3116
|
-
|
|
3117
|
-
/**
|
|
3118
|
-
* Body of the initial message as markdown
|
|
3119
|
-
*/
|
|
3120
|
-
bodyMarkdown: string;
|
|
3121
|
-
|
|
3122
|
-
/**
|
|
3123
|
-
* Channel through which the conversation was initiated
|
|
3124
|
-
*/
|
|
3125
|
-
channel: 'unknown' | 'desktop' | 'android' | 'ios' | 'email';
|
|
3126
|
-
|
|
3127
|
-
author?: ConversationsAPI.ConversationParticipant;
|
|
3128
|
-
|
|
3069
|
+
export interface MatchingPart {
|
|
3129
3070
|
/**
|
|
3130
|
-
*
|
|
3071
|
+
* Conversation part id
|
|
3131
3072
|
*/
|
|
3132
|
-
|
|
3073
|
+
id: string;
|
|
3133
3074
|
|
|
3134
3075
|
/**
|
|
3135
|
-
*
|
|
3076
|
+
* ISO timestamp when the matching part was created
|
|
3136
3077
|
*/
|
|
3137
|
-
|
|
3078
|
+
createdAt?: string | null;
|
|
3138
3079
|
|
|
3139
3080
|
/**
|
|
3140
|
-
*
|
|
3081
|
+
* Conversation part type
|
|
3141
3082
|
*/
|
|
3142
|
-
|
|
3083
|
+
partType?: string;
|
|
3143
3084
|
}
|
|
3144
3085
|
|
|
3145
3086
|
export interface SurroundingConversationPart {
|
|
@@ -3162,7 +3103,7 @@ export namespace ConversationSearchResponse {
|
|
|
3162
3103
|
* The customer or lead the conversation is with. Use this for the row identity;
|
|
3163
3104
|
* use `matchingPartAuthor` if you specifically want the message author.
|
|
3164
3105
|
*/
|
|
3165
|
-
author?:
|
|
3106
|
+
author?: ConversationsAPI.SearchMatchingPartAuthor | null;
|
|
3166
3107
|
|
|
3167
3108
|
/**
|
|
3168
3109
|
* ISO timestamp when the part was created
|
|
@@ -3174,53 +3115,28 @@ export namespace ConversationSearchResponse {
|
|
|
3174
3115
|
*/
|
|
3175
3116
|
partType?: string;
|
|
3176
3117
|
}
|
|
3118
|
+
}
|
|
3119
|
+
}
|
|
3177
3120
|
|
|
3178
|
-
|
|
3179
|
-
|
|
3180
|
-
|
|
3181
|
-
|
|
3182
|
-
|
|
3183
|
-
|
|
3184
|
-
|
|
3185
|
-
* Author id
|
|
3186
|
-
*/
|
|
3187
|
-
id: string;
|
|
3188
|
-
|
|
3189
|
-
/**
|
|
3190
|
-
* Author type
|
|
3191
|
-
*/
|
|
3192
|
-
type: 'admin' | 'customer' | 'lead' | 'bot' | 'guest' | 'integration';
|
|
3193
|
-
|
|
3194
|
-
/**
|
|
3195
|
-
* Companies the author belongs to (customers only)
|
|
3196
|
-
*/
|
|
3197
|
-
companies?: Array<Author.Company>;
|
|
3198
|
-
|
|
3199
|
-
/**
|
|
3200
|
-
* Email when known
|
|
3201
|
-
*/
|
|
3202
|
-
email?: string | null;
|
|
3203
|
-
|
|
3204
|
-
/**
|
|
3205
|
-
* Display name when known
|
|
3206
|
-
*/
|
|
3207
|
-
name?: string | null;
|
|
3208
|
-
|
|
3209
|
-
/**
|
|
3210
|
-
* Profile picture URL when known
|
|
3211
|
-
*/
|
|
3212
|
-
profilePicture?: string | null;
|
|
3213
|
-
}
|
|
3121
|
+
export interface ConversationListParams extends CursorPageParams {
|
|
3122
|
+
/**
|
|
3123
|
+
* Query param: Comma-separated optional expansions. Use
|
|
3124
|
+
* `customAttributeDefinitions` to return `customAttributeValues` with names and
|
|
3125
|
+
* types alongside ID-keyed `customAttributes`.
|
|
3126
|
+
*/
|
|
3127
|
+
include?: string | Array<string>;
|
|
3214
3128
|
|
|
3215
|
-
|
|
3216
|
-
|
|
3217
|
-
|
|
3129
|
+
/**
|
|
3130
|
+
* Query param: Filter conversations by one or more tag IDs using a comma-separated
|
|
3131
|
+
* list. Conversations must contain all provided tags.
|
|
3132
|
+
*/
|
|
3133
|
+
tagIds?: string | Array<string>;
|
|
3218
3134
|
|
|
3219
|
-
|
|
3220
|
-
|
|
3221
|
-
|
|
3222
|
-
|
|
3223
|
-
|
|
3135
|
+
/**
|
|
3136
|
+
* Header param: API version for this request. Defaults to your organization's
|
|
3137
|
+
* configured API version if not specified.
|
|
3138
|
+
*/
|
|
3139
|
+
'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
|
|
3224
3140
|
}
|
|
3225
3141
|
|
|
3226
3142
|
export interface ConversationCreateParams {
|
|
@@ -3323,6 +3239,21 @@ export namespace ConversationCreateParams {
|
|
|
3323
3239
|
}
|
|
3324
3240
|
|
|
3325
3241
|
export interface ConversationRetrieveParams {
|
|
3242
|
+
/**
|
|
3243
|
+
* Query param: Comma-separated optional expansions. Use
|
|
3244
|
+
* `customAttributeDefinitions` to return `customAttributeValues` with names and
|
|
3245
|
+
* types alongside ID-keyed `customAttributes`.
|
|
3246
|
+
*/
|
|
3247
|
+
include?: string | Array<string>;
|
|
3248
|
+
|
|
3249
|
+
/**
|
|
3250
|
+
* Header param: API version for this request. Defaults to your organization's
|
|
3251
|
+
* configured API version if not specified.
|
|
3252
|
+
*/
|
|
3253
|
+
'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
|
|
3254
|
+
}
|
|
3255
|
+
|
|
3256
|
+
export interface ConversationDeleteParams {
|
|
3326
3257
|
/**
|
|
3327
3258
|
* API version for this request. Defaults to your organization's configured API
|
|
3328
3259
|
* version if not specified.
|
|
@@ -3344,8 +3275,9 @@ export interface ConversationUpdateParams {
|
|
|
3344
3275
|
adminAssigneeId?: string | null;
|
|
3345
3276
|
|
|
3346
3277
|
/**
|
|
3347
|
-
* Body param: Custom attributes to set on the conversation
|
|
3348
|
-
*
|
|
3278
|
+
* Body param: Custom attributes to set on the conversation, keyed by conversation
|
|
3279
|
+
* custom attribute ID. Use the custom attribute definitions for your organization
|
|
3280
|
+
* to map IDs to display names.
|
|
3349
3281
|
*/
|
|
3350
3282
|
customAttributes?: { [key: string]: unknown };
|
|
3351
3283
|
|
|
@@ -3413,96 +3345,6 @@ export namespace ConversationUpdateParams {
|
|
|
3413
3345
|
}
|
|
3414
3346
|
}
|
|
3415
3347
|
|
|
3416
|
-
export interface ConversationListParams extends CursorPageParams {
|
|
3417
|
-
/**
|
|
3418
|
-
* Query param: Filter conversations by one or more tag IDs using a comma-separated
|
|
3419
|
-
* list. Conversations must contain all provided tags.
|
|
3420
|
-
*/
|
|
3421
|
-
tagIds?: string | Array<string>;
|
|
3422
|
-
|
|
3423
|
-
/**
|
|
3424
|
-
* Header param: API version for this request. Defaults to your organization's
|
|
3425
|
-
* configured API version if not specified.
|
|
3426
|
-
*/
|
|
3427
|
-
'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
|
|
3428
|
-
}
|
|
3429
|
-
|
|
3430
|
-
export interface ConversationDeleteParams {
|
|
3431
|
-
/**
|
|
3432
|
-
* API version for this request. Defaults to your organization's configured API
|
|
3433
|
-
* version if not specified.
|
|
3434
|
-
*/
|
|
3435
|
-
'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
|
|
3436
|
-
}
|
|
3437
|
-
|
|
3438
|
-
export interface ConversationAttachTagParams {
|
|
3439
|
-
/**
|
|
3440
|
-
* Body param: Required admin ID performing this tag attachment. Must be a member
|
|
3441
|
-
* of the organization so the mutation can be attributed to a real admin actor.
|
|
3442
|
-
*/
|
|
3443
|
-
actingAdminId: string;
|
|
3444
|
-
|
|
3445
|
-
/**
|
|
3446
|
-
* Body param: The Featurebase tag ID to attach to the conversation.
|
|
3447
|
-
*/
|
|
3448
|
-
tagId: string;
|
|
3449
|
-
|
|
3450
|
-
/**
|
|
3451
|
-
* Header param: API version for this request. Defaults to your organization's
|
|
3452
|
-
* configured API version if not specified.
|
|
3453
|
-
*/
|
|
3454
|
-
'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
|
|
3455
|
-
}
|
|
3456
|
-
|
|
3457
|
-
export interface ConversationDetachTagParams {
|
|
3458
|
-
/**
|
|
3459
|
-
* Path param: Conversation ID (short ID)
|
|
3460
|
-
*/
|
|
3461
|
-
id: string;
|
|
3462
|
-
|
|
3463
|
-
/**
|
|
3464
|
-
* Body param: Required admin ID performing this tag removal. Must be a member of
|
|
3465
|
-
* the organization so the mutation can be attributed to a real admin actor.
|
|
3466
|
-
*/
|
|
3467
|
-
actingAdminId: string;
|
|
3468
|
-
|
|
3469
|
-
/**
|
|
3470
|
-
* Header param: API version for this request. Defaults to your organization's
|
|
3471
|
-
* configured API version if not specified.
|
|
3472
|
-
*/
|
|
3473
|
-
'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
|
|
3474
|
-
}
|
|
3475
|
-
|
|
3476
|
-
export interface ConversationRedactParams {
|
|
3477
|
-
/**
|
|
3478
|
-
* Body param: The conversation short ID that contains the part to redact
|
|
3479
|
-
*/
|
|
3480
|
-
conversationId: string;
|
|
3481
|
-
|
|
3482
|
-
/**
|
|
3483
|
-
* Body param: The conversation part short ID to redact
|
|
3484
|
-
*/
|
|
3485
|
-
conversationPartId: string;
|
|
3486
|
-
|
|
3487
|
-
/**
|
|
3488
|
-
* Body param: The type of item to redact. Currently only "conversation_part" is
|
|
3489
|
-
* supported.
|
|
3490
|
-
*/
|
|
3491
|
-
type: 'conversation_part';
|
|
3492
|
-
|
|
3493
|
-
/**
|
|
3494
|
-
* Body param: The admin ID performing this action. If not provided, changes are
|
|
3495
|
-
* attributed to the system bot user.
|
|
3496
|
-
*/
|
|
3497
|
-
actingAdminId?: string;
|
|
3498
|
-
|
|
3499
|
-
/**
|
|
3500
|
-
* Header param: API version for this request. Defaults to your organization's
|
|
3501
|
-
* configured API version if not specified.
|
|
3502
|
-
*/
|
|
3503
|
-
'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
|
|
3504
|
-
}
|
|
3505
|
-
|
|
3506
3348
|
export type ConversationReplyParams =
|
|
3507
3349
|
| ConversationReplyParams.ContactReplyBody
|
|
3508
3350
|
| ConversationReplyParams.AdminReplyBody;
|
|
@@ -3587,6 +3429,74 @@ export declare namespace ConversationReplyParams {
|
|
|
3587
3429
|
}
|
|
3588
3430
|
}
|
|
3589
3431
|
|
|
3432
|
+
export interface ConversationRedactParams {
|
|
3433
|
+
/**
|
|
3434
|
+
* Body param: The conversation short ID that contains the part to redact
|
|
3435
|
+
*/
|
|
3436
|
+
conversationId: string;
|
|
3437
|
+
|
|
3438
|
+
/**
|
|
3439
|
+
* Body param: The conversation part short ID to redact
|
|
3440
|
+
*/
|
|
3441
|
+
conversationPartId: string;
|
|
3442
|
+
|
|
3443
|
+
/**
|
|
3444
|
+
* Body param: The type of item to redact. Currently only "conversation_part" is
|
|
3445
|
+
* supported.
|
|
3446
|
+
*/
|
|
3447
|
+
type: 'conversation_part';
|
|
3448
|
+
|
|
3449
|
+
/**
|
|
3450
|
+
* Body param: The admin ID performing this action. If not provided, changes are
|
|
3451
|
+
* attributed to the system bot user.
|
|
3452
|
+
*/
|
|
3453
|
+
actingAdminId?: string;
|
|
3454
|
+
|
|
3455
|
+
/**
|
|
3456
|
+
* Header param: API version for this request. Defaults to your organization's
|
|
3457
|
+
* configured API version if not specified.
|
|
3458
|
+
*/
|
|
3459
|
+
'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
|
|
3460
|
+
}
|
|
3461
|
+
|
|
3462
|
+
export interface ConversationAttachTagParams {
|
|
3463
|
+
/**
|
|
3464
|
+
* Body param: Required admin ID performing this tag attachment. Must be a member
|
|
3465
|
+
* of the organization so the mutation can be attributed to a real admin actor.
|
|
3466
|
+
*/
|
|
3467
|
+
actingAdminId: string;
|
|
3468
|
+
|
|
3469
|
+
/**
|
|
3470
|
+
* Body param: The Featurebase tag ID to attach to the conversation.
|
|
3471
|
+
*/
|
|
3472
|
+
tagId: string;
|
|
3473
|
+
|
|
3474
|
+
/**
|
|
3475
|
+
* Header param: API version for this request. Defaults to your organization's
|
|
3476
|
+
* configured API version if not specified.
|
|
3477
|
+
*/
|
|
3478
|
+
'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
|
|
3479
|
+
}
|
|
3480
|
+
|
|
3481
|
+
export interface ConversationDetachTagParams {
|
|
3482
|
+
/**
|
|
3483
|
+
* Path param: Conversation ID (short ID)
|
|
3484
|
+
*/
|
|
3485
|
+
id: string;
|
|
3486
|
+
|
|
3487
|
+
/**
|
|
3488
|
+
* Body param: Required admin ID performing this tag removal. Must be a member of
|
|
3489
|
+
* the organization so the mutation can be attributed to a real admin actor.
|
|
3490
|
+
*/
|
|
3491
|
+
actingAdminId: string;
|
|
3492
|
+
|
|
3493
|
+
/**
|
|
3494
|
+
* Header param: API version for this request. Defaults to your organization's
|
|
3495
|
+
* configured API version if not specified.
|
|
3496
|
+
*/
|
|
3497
|
+
'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
|
|
3498
|
+
}
|
|
3499
|
+
|
|
3590
3500
|
export interface ConversationSearchParams {
|
|
3591
3501
|
/**
|
|
3592
3502
|
* Body param: An opaque cursor for pagination. Use the nextCursor value from a
|
|
@@ -3594,6 +3504,13 @@ export interface ConversationSearchParams {
|
|
|
3594
3504
|
*/
|
|
3595
3505
|
cursor?: string;
|
|
3596
3506
|
|
|
3507
|
+
/**
|
|
3508
|
+
* Body param: Optional expansions. Use `customAttributeDefinitions` to return
|
|
3509
|
+
* `customAttributeValues` with names and types alongside ID-keyed
|
|
3510
|
+
* `customAttributes`.
|
|
3511
|
+
*/
|
|
3512
|
+
include?: Array<'customAttributeDefinitions'>;
|
|
3513
|
+
|
|
3597
3514
|
/**
|
|
3598
3515
|
* Body param: A limit on the number of objects to be returned, between 1 and 100.
|
|
3599
3516
|
*/
|
|
@@ -3602,10 +3519,11 @@ export interface ConversationSearchParams {
|
|
|
3602
3519
|
/**
|
|
3603
3520
|
* Body param: Structured filter AST. Either a single filter clause or one
|
|
3604
3521
|
* top-level AND group. Use this for filtering by `state`, `tagIds`,
|
|
3605
|
-
* `adminAssigneeId`, etc. (Legacy snake_case
|
|
3606
|
-
* see the OpenAPI route description for the
|
|
3522
|
+
* `adminAssigneeId`, `customAttributes.<attributeId>`, etc. (Legacy snake_case
|
|
3523
|
+
* names are accepted for back-compat — see the OpenAPI route description for the
|
|
3524
|
+
* full alias map.)
|
|
3607
3525
|
*/
|
|
3608
|
-
query?:
|
|
3526
|
+
query?: PostsAPI.SearchFilter | PostsAPI.SearchFilterGroup;
|
|
3609
3527
|
|
|
3610
3528
|
/**
|
|
3611
3529
|
* Body param: Plain-text full-text search across conversation messages.
|
|
@@ -3629,83 +3547,38 @@ export interface ConversationSearchParams {
|
|
|
3629
3547
|
'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
|
|
3630
3548
|
}
|
|
3631
3549
|
|
|
3632
|
-
export namespace ConversationSearchParams {
|
|
3633
|
-
export interface SearchFilter {
|
|
3634
|
-
/**
|
|
3635
|
-
* Field name to filter on (e.g. `state`, `tag_ids`, `created_at`)
|
|
3636
|
-
*/
|
|
3637
|
-
field: string;
|
|
3638
|
-
|
|
3639
|
-
/**
|
|
3640
|
-
* Comparison operator
|
|
3641
|
-
*/
|
|
3642
|
-
operator: '=' | '!=' | 'IN' | 'NIN' | '>' | '<' | '>=' | '<=' | '~' | '!~' | '^' | '$';
|
|
3643
|
-
|
|
3644
|
-
/**
|
|
3645
|
-
* Value to compare against (primitive or array of primitives)
|
|
3646
|
-
*/
|
|
3647
|
-
value: string | number | boolean | Array<string | number> | null;
|
|
3648
|
-
}
|
|
3649
|
-
|
|
3650
|
-
export interface SearchFilterGroup {
|
|
3651
|
-
/**
|
|
3652
|
-
* Group operator: AND (all match) or OR (any match)
|
|
3653
|
-
*/
|
|
3654
|
-
operator: 'AND' | 'OR';
|
|
3655
|
-
|
|
3656
|
-
/**
|
|
3657
|
-
* Array of filter clauses (1-15 entries)
|
|
3658
|
-
*/
|
|
3659
|
-
value: Array<SearchFilterGroup.Value>;
|
|
3660
|
-
}
|
|
3661
|
-
|
|
3662
|
-
export namespace SearchFilterGroup {
|
|
3663
|
-
export interface Value {
|
|
3664
|
-
/**
|
|
3665
|
-
* Field name to filter on (e.g. `state`, `tag_ids`, `created_at`)
|
|
3666
|
-
*/
|
|
3667
|
-
field: string;
|
|
3668
|
-
|
|
3669
|
-
/**
|
|
3670
|
-
* Comparison operator
|
|
3671
|
-
*/
|
|
3672
|
-
operator: '=' | '!=' | 'IN' | 'NIN' | '>' | '<' | '>=' | '<=' | '~' | '!~' | '^' | '$';
|
|
3673
|
-
|
|
3674
|
-
/**
|
|
3675
|
-
* Value to compare against (primitive or array of primitives)
|
|
3676
|
-
*/
|
|
3677
|
-
value: string | number | boolean | Array<string | number> | null;
|
|
3678
|
-
}
|
|
3679
|
-
}
|
|
3680
|
-
}
|
|
3681
|
-
|
|
3682
3550
|
Conversations.Participants = Participants;
|
|
3683
3551
|
|
|
3684
3552
|
export declare namespace Conversations {
|
|
3685
3553
|
export {
|
|
3554
|
+
type AttachedConversationTag as AttachedConversationTag,
|
|
3686
3555
|
type Conversation as Conversation,
|
|
3556
|
+
type ConversationAttributeValue as ConversationAttributeValue,
|
|
3687
3557
|
type ConversationPart as ConversationPart,
|
|
3688
3558
|
type ConversationPartAuthor as ConversationPartAuthor,
|
|
3689
3559
|
type ConversationParticipant as ConversationParticipant,
|
|
3690
3560
|
type ConversationTagApplication as ConversationTagApplication,
|
|
3561
|
+
type ConversationTagMutationActor as ConversationTagMutationActor,
|
|
3691
3562
|
type CsatEmailDelivery as CsatEmailDelivery,
|
|
3692
3563
|
type CsatRatedAgent as CsatRatedAgent,
|
|
3564
|
+
type CsatSlackDelivery as CsatSlackDelivery,
|
|
3693
3565
|
type CsatWorkflowLink as CsatWorkflowLink,
|
|
3694
3566
|
type EmailRecipients as EmailRecipients,
|
|
3567
|
+
type MessageSource as MessageSource,
|
|
3568
|
+
type SearchMatchingPartAuthor as SearchMatchingPartAuthor,
|
|
3569
|
+
type SlackMessageDetails as SlackMessageDetails,
|
|
3695
3570
|
type ConversationDeleteResponse as ConversationDeleteResponse,
|
|
3696
|
-
type ConversationAttachTagResponse as ConversationAttachTagResponse,
|
|
3697
|
-
type ConversationDetachTagResponse as ConversationDetachTagResponse,
|
|
3698
3571
|
type ConversationSearchResponse as ConversationSearchResponse,
|
|
3699
3572
|
type ConversationsCursorPage as ConversationsCursorPage,
|
|
3573
|
+
type ConversationListParams as ConversationListParams,
|
|
3700
3574
|
type ConversationCreateParams as ConversationCreateParams,
|
|
3701
3575
|
type ConversationRetrieveParams as ConversationRetrieveParams,
|
|
3702
|
-
type ConversationUpdateParams as ConversationUpdateParams,
|
|
3703
|
-
type ConversationListParams as ConversationListParams,
|
|
3704
3576
|
type ConversationDeleteParams as ConversationDeleteParams,
|
|
3577
|
+
type ConversationUpdateParams as ConversationUpdateParams,
|
|
3578
|
+
type ConversationReplyParams as ConversationReplyParams,
|
|
3579
|
+
type ConversationRedactParams as ConversationRedactParams,
|
|
3705
3580
|
type ConversationAttachTagParams as ConversationAttachTagParams,
|
|
3706
3581
|
type ConversationDetachTagParams as ConversationDetachTagParams,
|
|
3707
|
-
type ConversationRedactParams as ConversationRedactParams,
|
|
3708
|
-
type ConversationReplyParams as ConversationReplyParams,
|
|
3709
3582
|
type ConversationSearchParams as ConversationSearchParams,
|
|
3710
3583
|
};
|
|
3711
3584
|
|