featurebase-node 0.0.2
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 +10 -0
- package/LICENSE +201 -0
- package/README.md +356 -0
- package/api-promise.d.mts +2 -0
- package/api-promise.d.mts.map +1 -0
- package/api-promise.d.ts +2 -0
- package/api-promise.d.ts.map +1 -0
- package/api-promise.js +6 -0
- package/api-promise.js.map +1 -0
- package/api-promise.mjs +2 -0
- package/api-promise.mjs.map +1 -0
- package/client.d.mts +274 -0
- package/client.d.mts.map +1 -0
- package/client.d.ts +274 -0
- package/client.d.ts.map +1 -0
- package/client.js +569 -0
- package/client.js.map +1 -0
- package/client.mjs +565 -0
- package/client.mjs.map +1 -0
- package/core/api-promise.d.mts +46 -0
- package/core/api-promise.d.mts.map +1 -0
- package/core/api-promise.d.ts +46 -0
- package/core/api-promise.d.ts.map +1 -0
- package/core/api-promise.js +74 -0
- package/core/api-promise.js.map +1 -0
- package/core/api-promise.mjs +70 -0
- package/core/api-promise.mjs.map +1 -0
- package/core/error.d.mts +46 -0
- package/core/error.d.mts.map +1 -0
- package/core/error.d.ts +46 -0
- package/core/error.d.ts.map +1 -0
- package/core/error.js +113 -0
- package/core/error.js.map +1 -0
- package/core/error.mjs +97 -0
- package/core/error.mjs.map +1 -0
- package/core/resource.d.mts +6 -0
- package/core/resource.d.mts.map +1 -0
- package/core/resource.d.ts +6 -0
- package/core/resource.d.ts.map +1 -0
- package/core/resource.js +11 -0
- package/core/resource.js.map +1 -0
- package/core/resource.mjs +7 -0
- package/core/resource.mjs.map +1 -0
- package/core/uploads.d.mts +3 -0
- package/core/uploads.d.mts.map +1 -0
- package/core/uploads.d.ts +3 -0
- package/core/uploads.d.ts.map +1 -0
- package/core/uploads.js +6 -0
- package/core/uploads.js.map +1 -0
- package/core/uploads.mjs +2 -0
- package/core/uploads.mjs.map +1 -0
- package/error.d.mts +2 -0
- package/error.d.mts.map +1 -0
- package/error.d.ts +2 -0
- package/error.d.ts.map +1 -0
- package/error.js +6 -0
- package/error.js.map +1 -0
- package/error.mjs +2 -0
- package/error.mjs.map +1 -0
- package/index.d.mts +6 -0
- package/index.d.mts.map +1 -0
- package/index.d.ts +6 -0
- package/index.d.ts.map +1 -0
- package/index.js +30 -0
- package/index.js.map +1 -0
- package/index.mjs +7 -0
- package/index.mjs.map +1 -0
- package/internal/builtin-types.d.mts +73 -0
- package/internal/builtin-types.d.mts.map +1 -0
- package/internal/builtin-types.d.ts +73 -0
- package/internal/builtin-types.d.ts.map +1 -0
- package/internal/builtin-types.js +4 -0
- package/internal/builtin-types.js.map +1 -0
- package/internal/builtin-types.mjs +3 -0
- package/internal/builtin-types.mjs.map +1 -0
- package/internal/detect-platform.d.mts +15 -0
- package/internal/detect-platform.d.mts.map +1 -0
- package/internal/detect-platform.d.ts +15 -0
- package/internal/detect-platform.d.ts.map +1 -0
- package/internal/detect-platform.js +162 -0
- package/internal/detect-platform.js.map +1 -0
- package/internal/detect-platform.mjs +157 -0
- package/internal/detect-platform.mjs.map +1 -0
- package/internal/errors.d.mts +3 -0
- package/internal/errors.d.mts.map +1 -0
- package/internal/errors.d.ts +3 -0
- package/internal/errors.d.ts.map +1 -0
- package/internal/errors.js +41 -0
- package/internal/errors.js.map +1 -0
- package/internal/errors.mjs +36 -0
- package/internal/errors.mjs.map +1 -0
- package/internal/headers.d.mts +20 -0
- package/internal/headers.d.mts.map +1 -0
- package/internal/headers.d.ts +20 -0
- package/internal/headers.d.ts.map +1 -0
- package/internal/headers.js +79 -0
- package/internal/headers.js.map +1 -0
- package/internal/headers.mjs +74 -0
- package/internal/headers.mjs.map +1 -0
- package/internal/parse.d.mts +12 -0
- package/internal/parse.d.mts.map +1 -0
- package/internal/parse.d.ts +12 -0
- package/internal/parse.d.ts.map +1 -0
- package/internal/parse.js +40 -0
- package/internal/parse.js.map +1 -0
- package/internal/parse.mjs +37 -0
- package/internal/parse.mjs.map +1 -0
- package/internal/qs/formats.d.mts +7 -0
- package/internal/qs/formats.d.mts.map +1 -0
- package/internal/qs/formats.d.ts +7 -0
- package/internal/qs/formats.d.ts.map +1 -0
- package/internal/qs/formats.js +13 -0
- package/internal/qs/formats.js.map +1 -0
- package/internal/qs/formats.mjs +9 -0
- package/internal/qs/formats.mjs.map +1 -0
- package/internal/qs/index.d.mts +10 -0
- package/internal/qs/index.d.mts.map +1 -0
- package/internal/qs/index.d.ts +10 -0
- package/internal/qs/index.d.ts.map +1 -0
- package/internal/qs/index.js +14 -0
- package/internal/qs/index.js.map +1 -0
- package/internal/qs/index.mjs +10 -0
- package/internal/qs/index.mjs.map +1 -0
- package/internal/qs/stringify.d.mts +3 -0
- package/internal/qs/stringify.d.mts.map +1 -0
- package/internal/qs/stringify.d.ts +3 -0
- package/internal/qs/stringify.d.ts.map +1 -0
- package/internal/qs/stringify.js +277 -0
- package/internal/qs/stringify.js.map +1 -0
- package/internal/qs/stringify.mjs +274 -0
- package/internal/qs/stringify.mjs.map +1 -0
- package/internal/qs/types.d.mts +57 -0
- package/internal/qs/types.d.mts.map +1 -0
- package/internal/qs/types.d.ts +57 -0
- package/internal/qs/types.d.ts.map +1 -0
- package/internal/qs/types.js +3 -0
- package/internal/qs/types.js.map +1 -0
- package/internal/qs/types.mjs +2 -0
- package/internal/qs/types.mjs.map +1 -0
- package/internal/qs/utils.d.mts +15 -0
- package/internal/qs/utils.d.mts.map +1 -0
- package/internal/qs/utils.d.ts +15 -0
- package/internal/qs/utils.d.ts.map +1 -0
- package/internal/qs/utils.js +230 -0
- package/internal/qs/utils.js.map +1 -0
- package/internal/qs/utils.mjs +217 -0
- package/internal/qs/utils.mjs.map +1 -0
- package/internal/request-options.d.mts +75 -0
- package/internal/request-options.d.mts.map +1 -0
- package/internal/request-options.d.ts +75 -0
- package/internal/request-options.d.ts.map +1 -0
- package/internal/request-options.js +14 -0
- package/internal/request-options.js.map +1 -0
- package/internal/request-options.mjs +10 -0
- package/internal/request-options.mjs.map +1 -0
- package/internal/shim-types.d.mts +17 -0
- package/internal/shim-types.d.mts.map +1 -0
- package/internal/shim-types.d.ts +17 -0
- package/internal/shim-types.d.ts.map +1 -0
- package/internal/shim-types.js +4 -0
- package/internal/shim-types.js.map +1 -0
- package/internal/shim-types.mjs +3 -0
- package/internal/shim-types.mjs.map +1 -0
- package/internal/shims.d.mts +20 -0
- package/internal/shims.d.mts.map +1 -0
- package/internal/shims.d.ts +20 -0
- package/internal/shims.d.ts.map +1 -0
- package/internal/shims.js +92 -0
- package/internal/shims.js.map +1 -0
- package/internal/shims.mjs +85 -0
- package/internal/shims.mjs.map +1 -0
- package/internal/to-file.d.mts +45 -0
- package/internal/to-file.d.mts.map +1 -0
- package/internal/to-file.d.ts +45 -0
- package/internal/to-file.d.ts.map +1 -0
- package/internal/to-file.js +91 -0
- package/internal/to-file.js.map +1 -0
- package/internal/to-file.mjs +88 -0
- package/internal/to-file.mjs.map +1 -0
- package/internal/tslib.js +81 -0
- package/internal/tslib.mjs +17 -0
- package/internal/types.d.mts +69 -0
- package/internal/types.d.mts.map +1 -0
- package/internal/types.d.ts +69 -0
- package/internal/types.d.ts.map +1 -0
- package/internal/types.js +4 -0
- package/internal/types.js.map +1 -0
- package/internal/types.mjs +3 -0
- package/internal/types.mjs.map +1 -0
- package/internal/uploads.d.mts +42 -0
- package/internal/uploads.d.mts.map +1 -0
- package/internal/uploads.d.ts +42 -0
- package/internal/uploads.d.ts.map +1 -0
- package/internal/uploads.js +141 -0
- package/internal/uploads.js.map +1 -0
- package/internal/uploads.mjs +131 -0
- package/internal/uploads.mjs.map +1 -0
- package/internal/utils/base64.d.mts +3 -0
- package/internal/utils/base64.d.mts.map +1 -0
- package/internal/utils/base64.d.ts +3 -0
- package/internal/utils/base64.d.ts.map +1 -0
- package/internal/utils/base64.js +38 -0
- package/internal/utils/base64.js.map +1 -0
- package/internal/utils/base64.mjs +33 -0
- package/internal/utils/base64.mjs.map +1 -0
- package/internal/utils/bytes.d.mts +4 -0
- package/internal/utils/bytes.d.mts.map +1 -0
- package/internal/utils/bytes.d.ts +4 -0
- package/internal/utils/bytes.d.ts.map +1 -0
- package/internal/utils/bytes.js +31 -0
- package/internal/utils/bytes.js.map +1 -0
- package/internal/utils/bytes.mjs +26 -0
- package/internal/utils/bytes.mjs.map +1 -0
- package/internal/utils/env.d.mts +9 -0
- package/internal/utils/env.d.mts.map +1 -0
- package/internal/utils/env.d.ts +9 -0
- package/internal/utils/env.d.ts.map +1 -0
- package/internal/utils/env.js +22 -0
- package/internal/utils/env.js.map +1 -0
- package/internal/utils/env.mjs +18 -0
- package/internal/utils/env.mjs.map +1 -0
- package/internal/utils/log.d.mts +37 -0
- package/internal/utils/log.d.mts.map +1 -0
- package/internal/utils/log.d.ts +37 -0
- package/internal/utils/log.d.ts.map +1 -0
- package/internal/utils/log.js +85 -0
- package/internal/utils/log.js.map +1 -0
- package/internal/utils/log.mjs +79 -0
- package/internal/utils/log.mjs.map +1 -0
- package/internal/utils/path.d.mts +15 -0
- package/internal/utils/path.d.mts.map +1 -0
- package/internal/utils/path.d.ts +15 -0
- package/internal/utils/path.d.ts.map +1 -0
- package/internal/utils/path.js +79 -0
- package/internal/utils/path.js.map +1 -0
- package/internal/utils/path.mjs +74 -0
- package/internal/utils/path.mjs.map +1 -0
- package/internal/utils/query.d.mts +2 -0
- package/internal/utils/query.d.mts.map +1 -0
- package/internal/utils/query.d.ts +2 -0
- package/internal/utils/query.d.ts.map +1 -0
- package/internal/utils/query.js +10 -0
- package/internal/utils/query.js.map +1 -0
- package/internal/utils/query.mjs +6 -0
- package/internal/utils/query.mjs.map +1 -0
- package/internal/utils/sleep.d.mts +2 -0
- package/internal/utils/sleep.d.mts.map +1 -0
- package/internal/utils/sleep.d.ts +2 -0
- package/internal/utils/sleep.d.ts.map +1 -0
- package/internal/utils/sleep.js +7 -0
- package/internal/utils/sleep.js.map +1 -0
- package/internal/utils/sleep.mjs +3 -0
- package/internal/utils/sleep.mjs.map +1 -0
- package/internal/utils/uuid.d.mts +5 -0
- package/internal/utils/uuid.d.mts.map +1 -0
- package/internal/utils/uuid.d.ts +5 -0
- package/internal/utils/uuid.d.ts.map +1 -0
- package/internal/utils/uuid.js +19 -0
- package/internal/utils/uuid.js.map +1 -0
- package/internal/utils/uuid.mjs +15 -0
- package/internal/utils/uuid.mjs.map +1 -0
- package/internal/utils/values.d.mts +18 -0
- package/internal/utils/values.d.mts.map +1 -0
- package/internal/utils/values.d.ts +18 -0
- package/internal/utils/values.d.ts.map +1 -0
- package/internal/utils/values.js +112 -0
- package/internal/utils/values.js.map +1 -0
- package/internal/utils/values.mjs +94 -0
- package/internal/utils/values.mjs.map +1 -0
- package/internal/utils.d.mts +8 -0
- package/internal/utils.d.mts.map +1 -0
- package/internal/utils.d.ts +8 -0
- package/internal/utils.d.ts.map +1 -0
- package/internal/utils.js +12 -0
- package/internal/utils.js.map +1 -0
- package/internal/utils.mjs +9 -0
- package/internal/utils.mjs.map +1 -0
- package/package.json +143 -0
- package/resource.d.mts +2 -0
- package/resource.d.mts.map +1 -0
- package/resource.d.ts +2 -0
- package/resource.d.ts.map +1 -0
- package/resource.js +6 -0
- package/resource.js.map +1 -0
- package/resource.mjs +2 -0
- package/resource.mjs.map +1 -0
- package/resources/admins.d.mts +437 -0
- package/resources/admins.d.mts.map +1 -0
- package/resources/admins.d.ts +437 -0
- package/resources/admins.d.ts.map +1 -0
- package/resources/admins.js +157 -0
- package/resources/admins.js.map +1 -0
- package/resources/admins.mjs +153 -0
- package/resources/admins.mjs.map +1 -0
- package/resources/boards.d.mts +202 -0
- package/resources/boards.d.mts.map +1 -0
- package/resources/boards.d.ts +202 -0
- package/resources/boards.d.ts.map +1 -0
- package/resources/boards.js +52 -0
- package/resources/boards.js.map +1 -0
- package/resources/boards.mjs +48 -0
- package/resources/boards.mjs.map +1 -0
- package/resources/brands.d.mts +180 -0
- package/resources/brands.d.mts.map +1 -0
- package/resources/brands.d.ts +180 -0
- package/resources/brands.d.ts.map +1 -0
- package/resources/brands.js +130 -0
- package/resources/brands.js.map +1 -0
- package/resources/brands.mjs +126 -0
- package/resources/brands.mjs.map +1 -0
- package/resources/changelogs/changelogs.d.mts +723 -0
- package/resources/changelogs/changelogs.d.mts.map +1 -0
- package/resources/changelogs/changelogs.d.ts +723 -0
- package/resources/changelogs/changelogs.d.ts.map +1 -0
- package/resources/changelogs/changelogs.js +406 -0
- package/resources/changelogs/changelogs.js.map +1 -0
- package/resources/changelogs/changelogs.mjs +401 -0
- package/resources/changelogs/changelogs.mjs.map +1 -0
- package/resources/changelogs/index.d.mts +3 -0
- package/resources/changelogs/index.d.mts.map +1 -0
- package/resources/changelogs/index.d.ts +3 -0
- package/resources/changelogs/index.d.ts.map +1 -0
- package/resources/changelogs/index.js +9 -0
- package/resources/changelogs/index.js.map +1 -0
- package/resources/changelogs/index.mjs +4 -0
- package/resources/changelogs/index.mjs.map +1 -0
- package/resources/changelogs/subscribers.d.mts +145 -0
- package/resources/changelogs/subscribers.d.mts.map +1 -0
- package/resources/changelogs/subscribers.d.ts +145 -0
- package/resources/changelogs/subscribers.d.ts.map +1 -0
- package/resources/changelogs/subscribers.js +119 -0
- package/resources/changelogs/subscribers.js.map +1 -0
- package/resources/changelogs/subscribers.mjs +115 -0
- package/resources/changelogs/subscribers.mjs.map +1 -0
- package/resources/changelogs.d.mts +2 -0
- package/resources/changelogs.d.mts.map +1 -0
- package/resources/changelogs.d.ts +2 -0
- package/resources/changelogs.d.ts.map +1 -0
- package/resources/changelogs.js +6 -0
- package/resources/changelogs.js.map +1 -0
- package/resources/changelogs.mjs +3 -0
- package/resources/changelogs.mjs.map +1 -0
- package/resources/comments.d.mts +632 -0
- package/resources/comments.d.mts.map +1 -0
- package/resources/comments.d.ts +632 -0
- package/resources/comments.d.ts.map +1 -0
- package/resources/comments.js +397 -0
- package/resources/comments.js.map +1 -0
- package/resources/comments.mjs +393 -0
- package/resources/comments.mjs.map +1 -0
- package/resources/companies/companies.d.mts +497 -0
- package/resources/companies/companies.d.mts.map +1 -0
- package/resources/companies/companies.d.ts +497 -0
- package/resources/companies/companies.d.ts.map +1 -0
- package/resources/companies/companies.js +368 -0
- package/resources/companies/companies.js.map +1 -0
- package/resources/companies/companies.mjs +363 -0
- package/resources/companies/companies.mjs.map +1 -0
- package/resources/companies/contacts.d.mts +236 -0
- package/resources/companies/contacts.d.mts.map +1 -0
- package/resources/companies/contacts.d.ts +236 -0
- package/resources/companies/contacts.d.ts.map +1 -0
- package/resources/companies/contacts.js +218 -0
- package/resources/companies/contacts.js.map +1 -0
- package/resources/companies/contacts.mjs +214 -0
- package/resources/companies/contacts.mjs.map +1 -0
- package/resources/companies/index.d.mts +3 -0
- package/resources/companies/index.d.mts.map +1 -0
- package/resources/companies/index.d.ts +3 -0
- package/resources/companies/index.d.ts.map +1 -0
- package/resources/companies/index.js +9 -0
- package/resources/companies/index.js.map +1 -0
- package/resources/companies/index.mjs +4 -0
- package/resources/companies/index.mjs.map +1 -0
- package/resources/companies.d.mts +2 -0
- package/resources/companies.d.mts.map +1 -0
- package/resources/companies.d.ts +2 -0
- package/resources/companies.d.ts.map +1 -0
- package/resources/companies.js +6 -0
- package/resources/companies.js.map +1 -0
- package/resources/companies.mjs +3 -0
- package/resources/companies.mjs.map +1 -0
- package/resources/contacts/by-user-id/by-user-id.d.mts +147 -0
- package/resources/contacts/by-user-id/by-user-id.d.mts.map +1 -0
- package/resources/contacts/by-user-id/by-user-id.d.ts +147 -0
- package/resources/contacts/by-user-id/by-user-id.d.ts.map +1 -0
- package/resources/contacts/by-user-id/by-user-id.js +152 -0
- package/resources/contacts/by-user-id/by-user-id.js.map +1 -0
- package/resources/contacts/by-user-id/by-user-id.mjs +147 -0
- package/resources/contacts/by-user-id/by-user-id.mjs.map +1 -0
- package/resources/contacts/by-user-id/email-preferences.d.mts +199 -0
- package/resources/contacts/by-user-id/email-preferences.d.mts.map +1 -0
- package/resources/contacts/by-user-id/email-preferences.d.ts +199 -0
- package/resources/contacts/by-user-id/email-preferences.d.ts.map +1 -0
- package/resources/contacts/by-user-id/email-preferences.js +176 -0
- package/resources/contacts/by-user-id/email-preferences.js.map +1 -0
- package/resources/contacts/by-user-id/email-preferences.mjs +172 -0
- package/resources/contacts/by-user-id/email-preferences.mjs.map +1 -0
- package/resources/contacts/by-user-id/index.d.mts +3 -0
- package/resources/contacts/by-user-id/index.d.mts.map +1 -0
- package/resources/contacts/by-user-id/index.d.ts +3 -0
- package/resources/contacts/by-user-id/index.d.ts.map +1 -0
- package/resources/contacts/by-user-id/index.js +9 -0
- package/resources/contacts/by-user-id/index.js.map +1 -0
- package/resources/contacts/by-user-id/index.mjs +4 -0
- package/resources/contacts/by-user-id/index.mjs.map +1 -0
- package/resources/contacts/by-user-id.d.mts +2 -0
- package/resources/contacts/by-user-id.d.mts.map +1 -0
- package/resources/contacts/by-user-id.d.ts +2 -0
- package/resources/contacts/by-user-id.d.ts.map +1 -0
- package/resources/contacts/by-user-id.js +6 -0
- package/resources/contacts/by-user-id.js.map +1 -0
- package/resources/contacts/by-user-id.mjs +3 -0
- package/resources/contacts/by-user-id.mjs.map +1 -0
- package/resources/contacts/contacts.d.mts +708 -0
- package/resources/contacts/contacts.d.mts.map +1 -0
- package/resources/contacts/contacts.d.ts +708 -0
- package/resources/contacts/contacts.d.ts.map +1 -0
- package/resources/contacts/contacts.js +444 -0
- package/resources/contacts/contacts.js.map +1 -0
- package/resources/contacts/contacts.mjs +439 -0
- package/resources/contacts/contacts.mjs.map +1 -0
- package/resources/contacts/email-preferences.d.mts +334 -0
- package/resources/contacts/email-preferences.d.mts.map +1 -0
- package/resources/contacts/email-preferences.d.ts +334 -0
- package/resources/contacts/email-preferences.d.ts.map +1 -0
- package/resources/contacts/email-preferences.js +219 -0
- package/resources/contacts/email-preferences.js.map +1 -0
- package/resources/contacts/email-preferences.mjs +215 -0
- package/resources/contacts/email-preferences.mjs.map +1 -0
- package/resources/contacts/index.d.mts +4 -0
- package/resources/contacts/index.d.mts.map +1 -0
- package/resources/contacts/index.d.ts +4 -0
- package/resources/contacts/index.d.ts.map +1 -0
- package/resources/contacts/index.js +11 -0
- package/resources/contacts/index.js.map +1 -0
- package/resources/contacts/index.mjs +5 -0
- package/resources/contacts/index.mjs.map +1 -0
- package/resources/contacts.d.mts +2 -0
- package/resources/contacts.d.mts.map +1 -0
- package/resources/contacts.d.ts +2 -0
- package/resources/contacts.d.ts.map +1 -0
- package/resources/contacts.js +6 -0
- package/resources/contacts.js.map +1 -0
- package/resources/contacts.mjs +3 -0
- package/resources/contacts.mjs.map +1 -0
- package/resources/conversations/conversations.d.mts +2235 -0
- package/resources/conversations/conversations.d.mts.map +1 -0
- package/resources/conversations/conversations.d.ts +2235 -0
- package/resources/conversations/conversations.d.ts.map +1 -0
- package/resources/conversations/conversations.js +753 -0
- package/resources/conversations/conversations.js.map +1 -0
- package/resources/conversations/conversations.mjs +748 -0
- package/resources/conversations/conversations.mjs.map +1 -0
- package/resources/conversations/index.d.mts +4 -0
- package/resources/conversations/index.d.mts.map +1 -0
- package/resources/conversations/index.d.ts +4 -0
- package/resources/conversations/index.d.ts.map +1 -0
- package/resources/conversations/index.js +11 -0
- package/resources/conversations/index.js.map +1 -0
- package/resources/conversations/index.mjs +5 -0
- package/resources/conversations/index.mjs.map +1 -0
- package/resources/conversations/participants.d.mts +217 -0
- package/resources/conversations/participants.d.mts.map +1 -0
- package/resources/conversations/participants.d.ts +217 -0
- package/resources/conversations/participants.d.ts.map +1 -0
- package/resources/conversations/participants.js +185 -0
- package/resources/conversations/participants.js.map +1 -0
- package/resources/conversations/participants.mjs +181 -0
- package/resources/conversations/participants.mjs.map +1 -0
- package/resources/conversations/tags.d.mts +200 -0
- package/resources/conversations/tags.d.mts.map +1 -0
- package/resources/conversations/tags.d.ts +200 -0
- package/resources/conversations/tags.d.ts.map +1 -0
- package/resources/conversations/tags.js +138 -0
- package/resources/conversations/tags.js.map +1 -0
- package/resources/conversations/tags.mjs +134 -0
- package/resources/conversations/tags.mjs.map +1 -0
- package/resources/conversations.d.mts +2 -0
- package/resources/conversations.d.mts.map +1 -0
- package/resources/conversations.d.ts +2 -0
- package/resources/conversations.d.ts.map +1 -0
- package/resources/conversations.js +6 -0
- package/resources/conversations.js.map +1 -0
- package/resources/conversations.mjs +3 -0
- package/resources/conversations.mjs.map +1 -0
- package/resources/custom-fields.d.mts +189 -0
- package/resources/custom-fields.d.mts.map +1 -0
- package/resources/custom-fields.d.ts +189 -0
- package/resources/custom-fields.d.ts.map +1 -0
- package/resources/custom-fields.js +92 -0
- package/resources/custom-fields.js.map +1 -0
- package/resources/custom-fields.mjs +88 -0
- package/resources/custom-fields.mjs.map +1 -0
- package/resources/help-center/articles.d.mts +770 -0
- package/resources/help-center/articles.d.mts.map +1 -0
- package/resources/help-center/articles.d.ts +770 -0
- package/resources/help-center/articles.d.ts.map +1 -0
- package/resources/help-center/articles.js +296 -0
- package/resources/help-center/articles.js.map +1 -0
- package/resources/help-center/articles.mjs +292 -0
- package/resources/help-center/articles.mjs.map +1 -0
- package/resources/help-center/collections.d.mts +669 -0
- package/resources/help-center/collections.d.mts.map +1 -0
- package/resources/help-center/collections.d.ts +669 -0
- package/resources/help-center/collections.d.ts.map +1 -0
- package/resources/help-center/collections.js +278 -0
- package/resources/help-center/collections.js.map +1 -0
- package/resources/help-center/collections.mjs +274 -0
- package/resources/help-center/collections.mjs.map +1 -0
- package/resources/help-center/help-center.d.mts +22 -0
- package/resources/help-center/help-center.d.mts.map +1 -0
- package/resources/help-center/help-center.d.ts +22 -0
- package/resources/help-center/help-center.d.ts.map +1 -0
- package/resources/help-center/help-center.js +29 -0
- package/resources/help-center/help-center.js.map +1 -0
- package/resources/help-center/help-center.mjs +24 -0
- package/resources/help-center/help-center.mjs.map +1 -0
- package/resources/help-center/help-centers.d.mts +312 -0
- package/resources/help-center/help-centers.d.mts.map +1 -0
- package/resources/help-center/help-centers.d.ts +312 -0
- package/resources/help-center/help-centers.d.ts.map +1 -0
- package/resources/help-center/help-centers.js +111 -0
- package/resources/help-center/help-centers.js.map +1 -0
- package/resources/help-center/help-centers.mjs +107 -0
- package/resources/help-center/help-centers.mjs.map +1 -0
- package/resources/help-center/index.d.mts +6 -0
- package/resources/help-center/index.d.mts.map +1 -0
- package/resources/help-center/index.d.ts +6 -0
- package/resources/help-center/index.d.ts.map +1 -0
- package/resources/help-center/index.js +15 -0
- package/resources/help-center/index.js.map +1 -0
- package/resources/help-center/index.mjs +7 -0
- package/resources/help-center/index.mjs.map +1 -0
- package/resources/help-center/redirect-rules.d.mts +417 -0
- package/resources/help-center/redirect-rules.d.mts.map +1 -0
- package/resources/help-center/redirect-rules.d.ts +417 -0
- package/resources/help-center/redirect-rules.d.ts.map +1 -0
- package/resources/help-center/redirect-rules.js +297 -0
- package/resources/help-center/redirect-rules.js.map +1 -0
- package/resources/help-center/redirect-rules.mjs +293 -0
- package/resources/help-center/redirect-rules.mjs.map +1 -0
- package/resources/help-center.d.mts +2 -0
- package/resources/help-center.d.mts.map +1 -0
- package/resources/help-center.d.ts +2 -0
- package/resources/help-center.d.ts.map +1 -0
- package/resources/help-center.js +6 -0
- package/resources/help-center.js.map +1 -0
- package/resources/help-center.mjs +3 -0
- package/resources/help-center.mjs.map +1 -0
- package/resources/index.d.mts +18 -0
- package/resources/index.d.mts.map +1 -0
- package/resources/index.d.ts +18 -0
- package/resources/index.d.ts.map +1 -0
- package/resources/index.js +39 -0
- package/resources/index.js.map +1 -0
- package/resources/index.mjs +19 -0
- package/resources/index.mjs.map +1 -0
- package/resources/post-statuses.d.mts +74 -0
- package/resources/post-statuses.d.mts.map +1 -0
- package/resources/post-statuses.d.ts +74 -0
- package/resources/post-statuses.d.ts.map +1 -0
- package/resources/post-statuses.js +53 -0
- package/resources/post-statuses.js.map +1 -0
- package/resources/post-statuses.mjs +49 -0
- package/resources/post-statuses.mjs.map +1 -0
- package/resources/posts/index.d.mts +3 -0
- package/resources/posts/index.d.mts.map +1 -0
- package/resources/posts/index.d.ts +3 -0
- package/resources/posts/index.d.ts.map +1 -0
- package/resources/posts/index.js +9 -0
- package/resources/posts/index.js.map +1 -0
- package/resources/posts/index.mjs +4 -0
- package/resources/posts/index.mjs.map +1 -0
- package/resources/posts/posts.d.mts +799 -0
- package/resources/posts/posts.d.mts.map +1 -0
- package/resources/posts/posts.d.ts +799 -0
- package/resources/posts/posts.d.ts.map +1 -0
- package/resources/posts/posts.js +271 -0
- package/resources/posts/posts.js.map +1 -0
- package/resources/posts/posts.mjs +266 -0
- package/resources/posts/posts.mjs.map +1 -0
- package/resources/posts/voters.d.mts +359 -0
- package/resources/posts/voters.d.mts.map +1 -0
- package/resources/posts/voters.d.ts +359 -0
- package/resources/posts/voters.d.ts.map +1 -0
- package/resources/posts/voters.js +171 -0
- package/resources/posts/voters.js.map +1 -0
- package/resources/posts/voters.mjs +167 -0
- package/resources/posts/voters.mjs.map +1 -0
- package/resources/posts.d.mts +2 -0
- package/resources/posts.d.mts.map +1 -0
- package/resources/posts.d.ts +2 -0
- package/resources/posts.d.ts.map +1 -0
- package/resources/posts.js +6 -0
- package/resources/posts.js.map +1 -0
- package/resources/posts.mjs +3 -0
- package/resources/posts.mjs.map +1 -0
- package/resources/surveys.d.mts +451 -0
- package/resources/surveys.d.mts.map +1 -0
- package/resources/surveys.d.ts +451 -0
- package/resources/surveys.d.ts.map +1 -0
- package/resources/surveys.js +149 -0
- package/resources/surveys.js.map +1 -0
- package/resources/surveys.mjs +145 -0
- package/resources/surveys.mjs.map +1 -0
- package/resources/tags.d.mts +147 -0
- package/resources/tags.d.mts.map +1 -0
- package/resources/tags.d.ts +147 -0
- package/resources/tags.d.ts.map +1 -0
- package/resources/tags.js +100 -0
- package/resources/tags.js.map +1 -0
- package/resources/tags.mjs +96 -0
- package/resources/tags.mjs.map +1 -0
- package/resources/teams.d.mts +165 -0
- package/resources/teams.d.mts.map +1 -0
- package/resources/teams.d.ts +165 -0
- package/resources/teams.d.ts.map +1 -0
- package/resources/teams.js +120 -0
- package/resources/teams.js.map +1 -0
- package/resources/teams.mjs +116 -0
- package/resources/teams.mjs.map +1 -0
- package/resources/tickets/categories.d.mts +63 -0
- package/resources/tickets/categories.d.mts.map +1 -0
- package/resources/tickets/categories.d.ts +63 -0
- package/resources/tickets/categories.d.ts.map +1 -0
- package/resources/tickets/categories.js +67 -0
- package/resources/tickets/categories.js.map +1 -0
- package/resources/tickets/categories.mjs +63 -0
- package/resources/tickets/categories.mjs.map +1 -0
- package/resources/tickets/custom-fields.d.mts +80 -0
- package/resources/tickets/custom-fields.d.mts.map +1 -0
- package/resources/tickets/custom-fields.d.ts +80 -0
- package/resources/tickets/custom-fields.d.ts.map +1 -0
- package/resources/tickets/custom-fields.js +85 -0
- package/resources/tickets/custom-fields.js.map +1 -0
- package/resources/tickets/custom-fields.mjs +81 -0
- package/resources/tickets/custom-fields.mjs.map +1 -0
- package/resources/tickets/index.d.mts +5 -0
- package/resources/tickets/index.d.mts.map +1 -0
- package/resources/tickets/index.d.ts +5 -0
- package/resources/tickets/index.d.ts.map +1 -0
- package/resources/tickets/index.js +13 -0
- package/resources/tickets/index.js.map +1 -0
- package/resources/tickets/index.mjs +6 -0
- package/resources/tickets/index.mjs.map +1 -0
- package/resources/tickets/statuses.d.mts +59 -0
- package/resources/tickets/statuses.d.mts.map +1 -0
- package/resources/tickets/statuses.d.ts +59 -0
- package/resources/tickets/statuses.d.ts.map +1 -0
- package/resources/tickets/statuses.js +63 -0
- package/resources/tickets/statuses.js.map +1 -0
- package/resources/tickets/statuses.mjs +59 -0
- package/resources/tickets/statuses.mjs.map +1 -0
- package/resources/tickets/tickets.d.mts +794 -0
- package/resources/tickets/tickets.d.mts.map +1 -0
- package/resources/tickets/tickets.d.ts +794 -0
- package/resources/tickets/tickets.d.ts.map +1 -0
- package/resources/tickets/tickets.js +327 -0
- package/resources/tickets/tickets.js.map +1 -0
- package/resources/tickets/tickets.mjs +322 -0
- package/resources/tickets/tickets.mjs.map +1 -0
- package/resources/tickets.d.mts +2 -0
- package/resources/tickets.d.mts.map +1 -0
- package/resources/tickets.d.ts +2 -0
- package/resources/tickets.d.ts.map +1 -0
- package/resources/tickets.js +6 -0
- package/resources/tickets.js.map +1 -0
- package/resources/tickets.mjs +3 -0
- package/resources/tickets.mjs.map +1 -0
- package/resources/webhooks.d.mts +626 -0
- package/resources/webhooks.d.mts.map +1 -0
- package/resources/webhooks.d.ts +626 -0
- package/resources/webhooks.d.ts.map +1 -0
- package/resources/webhooks.js +442 -0
- package/resources/webhooks.js.map +1 -0
- package/resources/webhooks.mjs +438 -0
- package/resources/webhooks.mjs.map +1 -0
- package/resources.d.mts +2 -0
- package/resources.d.mts.map +1 -0
- package/resources.d.ts +2 -0
- package/resources.d.ts.map +1 -0
- package/resources.js +5 -0
- package/resources.js.map +1 -0
- package/resources.mjs +2 -0
- package/resources.mjs.map +1 -0
- package/src/api-promise.ts +2 -0
- package/src/client.ts +1169 -0
- package/src/core/README.md +3 -0
- package/src/core/api-promise.ts +92 -0
- package/src/core/error.ts +130 -0
- package/src/core/resource.ts +11 -0
- package/src/core/uploads.ts +2 -0
- package/src/error.ts +2 -0
- package/src/index.ts +22 -0
- package/src/internal/README.md +3 -0
- package/src/internal/builtin-types.ts +93 -0
- package/src/internal/detect-platform.ts +196 -0
- package/src/internal/errors.ts +33 -0
- package/src/internal/headers.ts +97 -0
- package/src/internal/parse.ts +56 -0
- package/src/internal/qs/LICENSE.md +13 -0
- package/src/internal/qs/README.md +3 -0
- package/src/internal/qs/formats.ts +10 -0
- package/src/internal/qs/index.ts +13 -0
- package/src/internal/qs/stringify.ts +385 -0
- package/src/internal/qs/types.ts +71 -0
- package/src/internal/qs/utils.ts +265 -0
- package/src/internal/request-options.ts +91 -0
- package/src/internal/shim-types.ts +26 -0
- package/src/internal/shims.ts +107 -0
- package/src/internal/to-file.ts +154 -0
- package/src/internal/types.ts +95 -0
- package/src/internal/uploads.ts +187 -0
- package/src/internal/utils/base64.ts +40 -0
- package/src/internal/utils/bytes.ts +32 -0
- package/src/internal/utils/env.ts +18 -0
- package/src/internal/utils/log.ts +126 -0
- package/src/internal/utils/path.ts +88 -0
- package/src/internal/utils/query.ts +7 -0
- package/src/internal/utils/sleep.ts +3 -0
- package/src/internal/utils/uuid.ts +17 -0
- package/src/internal/utils/values.ts +105 -0
- package/src/internal/utils.ts +9 -0
- package/src/lib/.keep +4 -0
- package/src/resource.ts +2 -0
- package/src/resources/admins.ts +557 -0
- package/src/resources/boards.ts +259 -0
- package/src/resources/brands.ts +232 -0
- package/src/resources/changelogs/changelogs.ts +1139 -0
- package/src/resources/changelogs/index.ts +23 -0
- package/src/resources/changelogs/subscribers.ts +226 -0
- package/src/resources/changelogs.ts +3 -0
- package/src/resources/comments.ts +786 -0
- package/src/resources/companies/companies.ts +632 -0
- package/src/resources/companies/contacts.ts +299 -0
- package/src/resources/companies/index.ts +21 -0
- package/src/resources/companies.ts +3 -0
- package/src/resources/contacts/by-user-id/by-user-id.ts +200 -0
- package/src/resources/contacts/by-user-id/email-preferences.ts +243 -0
- package/src/resources/contacts/by-user-id/index.ts +13 -0
- package/src/resources/contacts/by-user-id.ts +3 -0
- package/src/resources/contacts/contacts.ts +908 -0
- package/src/resources/contacts/email-preferences.ts +399 -0
- package/src/resources/contacts/index.ts +32 -0
- package/src/resources/contacts.ts +3 -0
- package/src/resources/conversations/conversations.ts +2721 -0
- package/src/resources/conversations/index.ts +31 -0
- package/src/resources/conversations/participants.ts +263 -0
- package/src/resources/conversations/tags.ts +252 -0
- package/src/resources/conversations.ts +3 -0
- package/src/resources/custom-fields.ts +249 -0
- package/src/resources/help-center/articles.ts +1231 -0
- package/src/resources/help-center/collections.ts +1065 -0
- package/src/resources/help-center/help-center.ts +125 -0
- package/src/resources/help-center/help-centers.ts +558 -0
- package/src/resources/help-center/index.ts +52 -0
- package/src/resources/help-center/redirect-rules.ts +711 -0
- package/src/resources/help-center.ts +3 -0
- package/src/resources/index.ts +179 -0
- package/src/resources/post-statuses.ts +119 -0
- package/src/resources/posts/index.ts +22 -0
- package/src/resources/posts/posts.ts +1019 -0
- package/src/resources/posts/voters.ts +453 -0
- package/src/resources/posts.ts +3 -0
- package/src/resources/surveys.ts +576 -0
- package/src/resources/tags.ts +226 -0
- package/src/resources/teams.ts +213 -0
- package/src/resources/tickets/categories.ts +101 -0
- package/src/resources/tickets/custom-fields.ts +116 -0
- package/src/resources/tickets/index.ts +28 -0
- package/src/resources/tickets/statuses.ts +97 -0
- package/src/resources/tickets/tickets.ts +1019 -0
- package/src/resources/tickets.ts +3 -0
- package/src/resources/webhooks.ts +850 -0
- package/src/resources.ts +1 -0
- package/src/tsconfig.json +11 -0
- package/src/uploads.ts +2 -0
- package/src/version.ts +1 -0
- package/uploads.d.mts +2 -0
- package/uploads.d.mts.map +1 -0
- package/uploads.d.ts +2 -0
- package/uploads.d.ts.map +1 -0
- package/uploads.js +6 -0
- package/uploads.js.map +1 -0
- package/uploads.mjs +2 -0
- package/uploads.mjs.map +1 -0
- package/version.d.mts +2 -0
- package/version.d.mts.map +1 -0
- package/version.d.ts +2 -0
- package/version.d.ts.map +1 -0
- package/version.js +5 -0
- package/version.js.map +1 -0
- package/version.mjs +2 -0
- package/version.mjs.map +1 -0
|
@@ -0,0 +1,753 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.Conversations = void 0;
|
|
5
|
+
const tslib_1 = require("../../internal/tslib.js");
|
|
6
|
+
const resource_1 = require("../../core/resource.js");
|
|
7
|
+
const ParticipantsAPI = tslib_1.__importStar(require("./participants.js"));
|
|
8
|
+
const participants_1 = require("./participants.js");
|
|
9
|
+
const ConversationsTagsAPI = tslib_1.__importStar(require("./tags.js"));
|
|
10
|
+
const tags_1 = require("./tags.js");
|
|
11
|
+
const headers_1 = require("../../internal/headers.js");
|
|
12
|
+
const path_1 = require("../../internal/utils/path.js");
|
|
13
|
+
/**
|
|
14
|
+
* Conversations are messenger/inbox conversations in your Featurebase organization. Use this endpoint to list and retrieve conversation information.
|
|
15
|
+
*/
|
|
16
|
+
class Conversations extends resource_1.APIResource {
|
|
17
|
+
constructor() {
|
|
18
|
+
super(...arguments);
|
|
19
|
+
this.tags = new ConversationsTagsAPI.Tags(this._client);
|
|
20
|
+
this.participants = new ParticipantsAPI.Participants(this._client);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Creates a new conversation. Supports both contact-initiated (customer/lead) and
|
|
24
|
+
* admin-initiated (outreach) conversations.
|
|
25
|
+
*
|
|
26
|
+
* ## Contact-Initiated Conversation
|
|
27
|
+
*
|
|
28
|
+
* For conversations started by a customer or lead:
|
|
29
|
+
*
|
|
30
|
+
* | Field | Type | Required | Description |
|
|
31
|
+
* | -------------- | ------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
32
|
+
* | `from.type` | string | Yes | Must be "contact" |
|
|
33
|
+
* | `from.id` | string | Yes | The Featurebase contact ID (24-character ObjectId) |
|
|
34
|
+
* | `bodyMarkdown` | string | Yes | The initial message content in markdown format. Images referenced by URL or as base64 data URIs will be automatically uploaded and stored. |
|
|
35
|
+
* | `channel` | string | No | The channel: "desktop" (default) or "email" |
|
|
36
|
+
* | `createdAt` | string | No | ISO timestamp for migrations |
|
|
37
|
+
*
|
|
38
|
+
* ### Example Contact-Initiated Request
|
|
39
|
+
*
|
|
40
|
+
* ```json
|
|
41
|
+
* {
|
|
42
|
+
* "from": {
|
|
43
|
+
* "type": "contact",
|
|
44
|
+
* "id": "676f0f6765bdaa7d7d760f88"
|
|
45
|
+
* },
|
|
46
|
+
* "bodyMarkdown": "Hello, I have a question about your product.",
|
|
47
|
+
* "channel": "desktop"
|
|
48
|
+
* }
|
|
49
|
+
* ```
|
|
50
|
+
*
|
|
51
|
+
* ## Admin-Initiated Outreach
|
|
52
|
+
*
|
|
53
|
+
* For outreach conversations started by an admin:
|
|
54
|
+
*
|
|
55
|
+
* | Field | Type | Required | Description |
|
|
56
|
+
* | ---------------------- | -------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
57
|
+
* | `from.type` | string | Yes | Must be "admin" |
|
|
58
|
+
* | `from.id` | string | Yes | The Featurebase admin ID (24-character ObjectId) |
|
|
59
|
+
* | `bodyMarkdown` | string | Yes | The initial message content in markdown format. Images referenced by URL or as base64 data URIs will be automatically uploaded and stored. |
|
|
60
|
+
* | `channel` | string | No | The channel: "desktop" (default) or "email" |
|
|
61
|
+
* | `recipients` | object | Yes | Recipients for the outreach |
|
|
62
|
+
* | `recipients.to` | object | Yes | Primary recipients |
|
|
63
|
+
* | `recipients.to.emails` | string[] | No\* | Email addresses |
|
|
64
|
+
* | `recipients.to.ids` | string[] | No\* | Featurebase contact IDs |
|
|
65
|
+
* | `recipients.cc` | object | No | CC recipients (same structure as "to") |
|
|
66
|
+
* | `recipients.bcc` | object | No | BCC recipients (same structure as "to") |
|
|
67
|
+
* | `subject` | string | No\*\* | Email subject line |
|
|
68
|
+
* | `createdAt` | string | No | ISO timestamp for migrations |
|
|
69
|
+
*
|
|
70
|
+
* \*At least one email or ID is required in `recipients.to` \*\*Required when
|
|
71
|
+
* channel is "email"
|
|
72
|
+
*
|
|
73
|
+
* ### Example Admin Outreach (In-App)
|
|
74
|
+
*
|
|
75
|
+
* ```json
|
|
76
|
+
* {
|
|
77
|
+
* "from": {
|
|
78
|
+
* "type": "admin",
|
|
79
|
+
* "id": "507f1f77bcf86cd799439011"
|
|
80
|
+
* },
|
|
81
|
+
* "bodyMarkdown": "Hi! Just following up on your inquiry.",
|
|
82
|
+
* "channel": "desktop",
|
|
83
|
+
* "recipients": {
|
|
84
|
+
* "to": {
|
|
85
|
+
* "ids": ["676f0f6765bdaa7d7d760f88"]
|
|
86
|
+
* }
|
|
87
|
+
* }
|
|
88
|
+
* }
|
|
89
|
+
* ```
|
|
90
|
+
*
|
|
91
|
+
* ### Example Admin Outreach (Email)
|
|
92
|
+
*
|
|
93
|
+
* ```json
|
|
94
|
+
* {
|
|
95
|
+
* "from": {
|
|
96
|
+
* "type": "admin",
|
|
97
|
+
* "id": "507f1f77bcf86cd799439011"
|
|
98
|
+
* },
|
|
99
|
+
* "bodyMarkdown": "Hi! Just following up on your inquiry.",
|
|
100
|
+
* "channel": "email",
|
|
101
|
+
* "subject": "Following up on your inquiry",
|
|
102
|
+
* "recipients": {
|
|
103
|
+
* "to": {
|
|
104
|
+
* "emails": ["john@example.com"]
|
|
105
|
+
* },
|
|
106
|
+
* "cc": {
|
|
107
|
+
* "emails": ["manager@example.com"]
|
|
108
|
+
* }
|
|
109
|
+
* }
|
|
110
|
+
* }
|
|
111
|
+
* ```
|
|
112
|
+
*
|
|
113
|
+
* ### Response
|
|
114
|
+
*
|
|
115
|
+
* Returns the created conversation object with a **201 Created** status.
|
|
116
|
+
*
|
|
117
|
+
* ### Example Response
|
|
118
|
+
*
|
|
119
|
+
* ```json
|
|
120
|
+
* {
|
|
121
|
+
* "object": "conversation",
|
|
122
|
+
* "id": "12345",
|
|
123
|
+
* "state": "open",
|
|
124
|
+
* "priority": false,
|
|
125
|
+
* "adminAssigneeId": null,
|
|
126
|
+
* "participants": [{ "type": "customer", "id": "676f0f6765bdaa7d7d760f88" }],
|
|
127
|
+
* "source": {
|
|
128
|
+
* "channel": "desktop",
|
|
129
|
+
* "deliveredAs": "customer_initiated",
|
|
130
|
+
* "bodyHtml": "<p>Hello, I have a question about your product.</p>",
|
|
131
|
+
* "bodyMarkdown": "Hello, I have a question about your product.",
|
|
132
|
+
* "author": { "type": "customer", "id": "676f0f6765bdaa7d7d760f88" }
|
|
133
|
+
* },
|
|
134
|
+
* "createdAt": "2025-01-15T10:30:00.000Z",
|
|
135
|
+
* "updatedAt": "2025-01-15T10:30:00.000Z"
|
|
136
|
+
* }
|
|
137
|
+
* ```
|
|
138
|
+
*
|
|
139
|
+
* ### Version Availability
|
|
140
|
+
*
|
|
141
|
+
* This endpoint is only available in API version 2026-01-01.nova and newer.
|
|
142
|
+
*
|
|
143
|
+
* @example
|
|
144
|
+
* ```ts
|
|
145
|
+
* const conversation = await client.conversations.create({
|
|
146
|
+
* bodyMarkdown:
|
|
147
|
+
* 'Hello, I have a question about your product.\n\n',
|
|
148
|
+
* from: { id: '676f0f6765bdaa7d7d760f88', type: 'contact' },
|
|
149
|
+
* });
|
|
150
|
+
* ```
|
|
151
|
+
*/
|
|
152
|
+
create(params, options) {
|
|
153
|
+
const { 'Featurebase-Version': featurebaseVersion, ...body } = params;
|
|
154
|
+
return this._client.post('/v2/conversations', {
|
|
155
|
+
body,
|
|
156
|
+
...options,
|
|
157
|
+
headers: (0, headers_1.buildHeaders)([
|
|
158
|
+
{ ...(featurebaseVersion != null ? { 'Featurebase-Version': featurebaseVersion } : undefined) },
|
|
159
|
+
options?.headers,
|
|
160
|
+
]),
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Retrieves a single conversation by its ID, including conversation parts
|
|
165
|
+
* (messages).
|
|
166
|
+
*
|
|
167
|
+
* ### Path Parameters
|
|
168
|
+
*
|
|
169
|
+
* - `id` - The conversation ID (short ID)
|
|
170
|
+
*
|
|
171
|
+
* ### Hard Limit of 500 Parts
|
|
172
|
+
*
|
|
173
|
+
* The maximum number of conversation parts that can be returned via the API is
|
|
174
|
+
* **500**. If a conversation has more than 500 parts, only the **500 most recent**
|
|
175
|
+
* conversation parts will be returned.
|
|
176
|
+
*
|
|
177
|
+
* ### Response Format
|
|
178
|
+
*
|
|
179
|
+
* Returns a single conversation object with:
|
|
180
|
+
*
|
|
181
|
+
* - `object` - Always "conversation"
|
|
182
|
+
* - `id` - Unique conversation identifier (short ID)
|
|
183
|
+
* - `title` - Conversation title
|
|
184
|
+
* - `state` - Current state ("open", "closed", or "snoozed")
|
|
185
|
+
* - `priority` - Whether the conversation is marked as priority
|
|
186
|
+
* - `adminAssigneeId` - ID of assigned admin (if any)
|
|
187
|
+
* - `teamAssigneeId` - ID of assigned team (if any)
|
|
188
|
+
* - `participants` - Array of participants
|
|
189
|
+
* - `source` - Information about the first message
|
|
190
|
+
* - `conversationParts` - Array of conversation parts (messages, max 500)
|
|
191
|
+
* - `createdAt` - Creation timestamp
|
|
192
|
+
* - `updatedAt` - Last update timestamp
|
|
193
|
+
*
|
|
194
|
+
* ### Conversation Parts
|
|
195
|
+
*
|
|
196
|
+
* Each conversation part includes:
|
|
197
|
+
*
|
|
198
|
+
* - `object` - Always "conversation_part"
|
|
199
|
+
* - `id` - Unique part identifier
|
|
200
|
+
* - `partType` - Type of part (e.g., "user_msg", "admin_msg", "bot_msg")
|
|
201
|
+
* - `body` - Message body (HTML content)
|
|
202
|
+
* - `author` - Author information with name, email, and profile picture
|
|
203
|
+
* - `channel` - Channel through which the message was sent
|
|
204
|
+
* - `createdAt` - Creation timestamp
|
|
205
|
+
* - `updatedAt` - Last update timestamp
|
|
206
|
+
*
|
|
207
|
+
* ### Example
|
|
208
|
+
*
|
|
209
|
+
* ```json
|
|
210
|
+
* {
|
|
211
|
+
* "object": "conversation",
|
|
212
|
+
* "id": "12345",
|
|
213
|
+
* "title": "Question about pricing",
|
|
214
|
+
* "state": "open",
|
|
215
|
+
* "priority": false,
|
|
216
|
+
* "adminAssigneeId": "507f1f77bcf86cd799439011",
|
|
217
|
+
* "participants": [{ "type": "customer", "id": "676f0f6765bdaa7d7d760f88" }],
|
|
218
|
+
* "conversationParts": [
|
|
219
|
+
* {
|
|
220
|
+
* "object": "conversation_part",
|
|
221
|
+
* "id": "1",
|
|
222
|
+
* "partType": "user_msg",
|
|
223
|
+
* "bodyHtml": "<p>Hello, I have a question about your pricing plans.</p>",
|
|
224
|
+
* "bodyMarkdown": "Hello, I have a question about your pricing plans.",
|
|
225
|
+
* "author": {
|
|
226
|
+
* "type": "customer",
|
|
227
|
+
* "id": "676f0f6765bdaa7d7d760f88",
|
|
228
|
+
* "name": "John Doe",
|
|
229
|
+
* "email": "john@example.com"
|
|
230
|
+
* },
|
|
231
|
+
* "channel": "desktop",
|
|
232
|
+
* "createdAt": "2025-01-15T10:30:00.000Z",
|
|
233
|
+
* "updatedAt": "2025-01-15T10:30:00.000Z"
|
|
234
|
+
* },
|
|
235
|
+
* {
|
|
236
|
+
* "object": "conversation_part",
|
|
237
|
+
* "id": "2",
|
|
238
|
+
* "partType": "admin_msg",
|
|
239
|
+
* "bodyHtml": "<p>Hi John! I'd be happy to help you with pricing information.</p>",
|
|
240
|
+
* "bodyMarkdown": "Hi John! I'd be happy to help you with pricing information.",
|
|
241
|
+
* "author": {
|
|
242
|
+
* "type": "admin",
|
|
243
|
+
* "id": "507f1f77bcf86cd799439011",
|
|
244
|
+
* "name": "Support Agent"
|
|
245
|
+
* },
|
|
246
|
+
* "channel": "desktop",
|
|
247
|
+
* "createdAt": "2025-01-15T10:35:00.000Z",
|
|
248
|
+
* "updatedAt": "2025-01-15T10:35:00.000Z"
|
|
249
|
+
* }
|
|
250
|
+
* ],
|
|
251
|
+
* "createdAt": "2025-01-15T10:30:00.000Z",
|
|
252
|
+
* "updatedAt": "2025-01-15T10:35:00.000Z"
|
|
253
|
+
* }
|
|
254
|
+
* ```
|
|
255
|
+
*
|
|
256
|
+
* ### Version Availability
|
|
257
|
+
*
|
|
258
|
+
* This endpoint is only available in API version 2026-01-01.nova and newer.
|
|
259
|
+
*
|
|
260
|
+
* @example
|
|
261
|
+
* ```ts
|
|
262
|
+
* const conversation = await client.conversations.retrieve(
|
|
263
|
+
* '12345',
|
|
264
|
+
* );
|
|
265
|
+
* ```
|
|
266
|
+
*/
|
|
267
|
+
retrieve(id, params = {}, options) {
|
|
268
|
+
const { 'Featurebase-Version': featurebaseVersion } = params ?? {};
|
|
269
|
+
return this._client.get((0, path_1.path) `/v2/conversations/${id}`, {
|
|
270
|
+
...options,
|
|
271
|
+
headers: (0, headers_1.buildHeaders)([
|
|
272
|
+
{ ...(featurebaseVersion != null ? { 'Featurebase-Version': featurebaseVersion } : undefined) },
|
|
273
|
+
options?.headers,
|
|
274
|
+
]),
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Updates a conversation's properties. Supports partial updates - only provided
|
|
279
|
+
* fields will be updated.
|
|
280
|
+
*
|
|
281
|
+
* ### Path Parameters
|
|
282
|
+
*
|
|
283
|
+
* - `id` - The conversation ID (short ID)
|
|
284
|
+
*
|
|
285
|
+
* ### Request Body
|
|
286
|
+
*
|
|
287
|
+
* All fields are optional. Only provided fields will be updated.
|
|
288
|
+
*
|
|
289
|
+
* | Field | Type | Description |
|
|
290
|
+
* | ------------------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------- |
|
|
291
|
+
* | `actingAdminId` | string | Admin ID performing the action (for attribution). If not provided, uses bot service user. Must be a member of the organization. |
|
|
292
|
+
* | `state` | string | Conversation state: "open", "closed", or "snoozed" |
|
|
293
|
+
* | `snoozedUntil` | string | ISO datetime when to unsnooze (required when state is "snoozed") |
|
|
294
|
+
* | `adminAssigneeId` | string/null | Admin ID to assign, or null to unassign |
|
|
295
|
+
* | `teamAssigneeId` | string/null | Team ID to assign, or null to unassign |
|
|
296
|
+
* | `title` | string | Conversation title |
|
|
297
|
+
* | `customAttributes` | object | Custom attributes to set on the conversation |
|
|
298
|
+
* | `markAsRead` | object | Mark conversation as read for specific users |
|
|
299
|
+
*
|
|
300
|
+
* ### markAsRead Object
|
|
301
|
+
*
|
|
302
|
+
* | Field | Type | Description |
|
|
303
|
+
* | ------------- | -------- | -------------------------------------------------------------- |
|
|
304
|
+
* | `allAdmins` | boolean | If true, marks all admins with existing readReceipts as read |
|
|
305
|
+
* | `adminIds` | string[] | Array of specific admin IDs to mark as read |
|
|
306
|
+
* | `allContacts` | boolean | If true, marks all contacts with existing readReceipts as read |
|
|
307
|
+
* | `contactIds` | string[] | Array of specific contact IDs to mark as read |
|
|
308
|
+
*
|
|
309
|
+
* Note: Only users with existing read receipts will be updated. Use
|
|
310
|
+
* `allAdmins`/`allContacts` OR `adminIds`/`contactIds` - the "all" flags take
|
|
311
|
+
* precedence.
|
|
312
|
+
*
|
|
313
|
+
* ### Response
|
|
314
|
+
*
|
|
315
|
+
* Returns the updated conversation object.
|
|
316
|
+
*
|
|
317
|
+
* ### Example: Close a Conversation (with attribution)
|
|
318
|
+
*
|
|
319
|
+
* ```json
|
|
320
|
+
* {
|
|
321
|
+
* "actingAdminId": "507f1f77bcf86cd799439011",
|
|
322
|
+
* "state": "closed"
|
|
323
|
+
* }
|
|
324
|
+
* ```
|
|
325
|
+
*
|
|
326
|
+
* ### Example: Close a Conversation (bot user)
|
|
327
|
+
*
|
|
328
|
+
* ```json
|
|
329
|
+
* {
|
|
330
|
+
* "state": "closed"
|
|
331
|
+
* }
|
|
332
|
+
* ```
|
|
333
|
+
*
|
|
334
|
+
* ### Example: Snooze a Conversation
|
|
335
|
+
*
|
|
336
|
+
* ```json
|
|
337
|
+
* {
|
|
338
|
+
* "state": "snoozed",
|
|
339
|
+
* "snoozedUntil": "2025-01-20T10:00:00.000Z"
|
|
340
|
+
* }
|
|
341
|
+
* ```
|
|
342
|
+
*
|
|
343
|
+
* ### Example: Assign to an Admin
|
|
344
|
+
*
|
|
345
|
+
* ```json
|
|
346
|
+
* {
|
|
347
|
+
* "adminAssigneeId": "507f1f77bcf86cd799439011"
|
|
348
|
+
* }
|
|
349
|
+
* ```
|
|
350
|
+
*
|
|
351
|
+
* ### Example: Update Title and Custom Attributes
|
|
352
|
+
*
|
|
353
|
+
* ```json
|
|
354
|
+
* {
|
|
355
|
+
* "title": "Billing Issue - Priority",
|
|
356
|
+
* "customAttributes": {
|
|
357
|
+
* "priority_level": "high",
|
|
358
|
+
* "category": "billing"
|
|
359
|
+
* }
|
|
360
|
+
* }
|
|
361
|
+
* ```
|
|
362
|
+
*
|
|
363
|
+
* ### Example: Mark as Read (All Admins)
|
|
364
|
+
*
|
|
365
|
+
* ```json
|
|
366
|
+
* {
|
|
367
|
+
* "markAsRead": {
|
|
368
|
+
* "allAdmins": true
|
|
369
|
+
* }
|
|
370
|
+
* }
|
|
371
|
+
* ```
|
|
372
|
+
*
|
|
373
|
+
* ### Example: Mark as Read (All Contacts)
|
|
374
|
+
*
|
|
375
|
+
* ```json
|
|
376
|
+
* {
|
|
377
|
+
* "markAsRead": {
|
|
378
|
+
* "allContacts": true
|
|
379
|
+
* }
|
|
380
|
+
* }
|
|
381
|
+
* ```
|
|
382
|
+
*
|
|
383
|
+
* ### Example: Mark as Read (Specific IDs)
|
|
384
|
+
*
|
|
385
|
+
* ```json
|
|
386
|
+
* {
|
|
387
|
+
* "markAsRead": {
|
|
388
|
+
* "adminIds": ["507f1f77bcf86cd799439011"],
|
|
389
|
+
* "contactIds": ["676f0f6765bdaa7d7d760f88"]
|
|
390
|
+
* }
|
|
391
|
+
* }
|
|
392
|
+
* ```
|
|
393
|
+
*
|
|
394
|
+
* ### Version Availability
|
|
395
|
+
*
|
|
396
|
+
* This endpoint is only available in API version 2026-01-01.nova and newer.
|
|
397
|
+
*
|
|
398
|
+
* @example
|
|
399
|
+
* ```ts
|
|
400
|
+
* const conversation = await client.conversations.update(
|
|
401
|
+
* '12345',
|
|
402
|
+
* );
|
|
403
|
+
* ```
|
|
404
|
+
*/
|
|
405
|
+
update(id, params, options) {
|
|
406
|
+
const { 'Featurebase-Version': featurebaseVersion, ...body } = params;
|
|
407
|
+
return this._client.patch((0, path_1.path) `/v2/conversations/${id}`, {
|
|
408
|
+
body,
|
|
409
|
+
...options,
|
|
410
|
+
headers: (0, headers_1.buildHeaders)([
|
|
411
|
+
{ ...(featurebaseVersion != null ? { 'Featurebase-Version': featurebaseVersion } : undefined) },
|
|
412
|
+
options?.headers,
|
|
413
|
+
]),
|
|
414
|
+
});
|
|
415
|
+
}
|
|
416
|
+
/**
|
|
417
|
+
* Returns a list of conversations in your organization using cursor-based
|
|
418
|
+
* pagination.
|
|
419
|
+
*
|
|
420
|
+
* ### Query Parameters
|
|
421
|
+
*
|
|
422
|
+
* - `limit` - Number of conversations to return (1-100, default 10)
|
|
423
|
+
* - `cursor` - Cursor from previous response for pagination
|
|
424
|
+
* - `tagIds` - Optional tag filter as a comma-separated list of tag IDs. Matches
|
|
425
|
+
* conversations that contain all of the provided tags.
|
|
426
|
+
*
|
|
427
|
+
* ### Response Format
|
|
428
|
+
*
|
|
429
|
+
* Returns a list object with:
|
|
430
|
+
*
|
|
431
|
+
* - `object` - Always "list"
|
|
432
|
+
* - `data` - Array of conversation objects
|
|
433
|
+
* - `nextCursor` - Cursor for the next page, or null if no more results
|
|
434
|
+
*
|
|
435
|
+
* ### Conversation Object
|
|
436
|
+
*
|
|
437
|
+
* Each conversation includes:
|
|
438
|
+
*
|
|
439
|
+
* - `id` - Unique conversation identifier (short ID)
|
|
440
|
+
* - `title` - Conversation title
|
|
441
|
+
* - `state` - Current state ("open", "closed", or "snoozed")
|
|
442
|
+
* - `priority` - Whether the conversation is marked as priority
|
|
443
|
+
* - `adminAssigneeId` - ID of assigned admin (if any)
|
|
444
|
+
* - `teamAssigneeId` - ID of assigned team (if any)
|
|
445
|
+
* - `tags` - Current tags applied anywhere in the conversation
|
|
446
|
+
* - `participants` - Array of participants
|
|
447
|
+
* - `source` - Information about the first message
|
|
448
|
+
* - `createdAt` - Creation timestamp
|
|
449
|
+
* - `updatedAt` - Last update timestamp
|
|
450
|
+
*
|
|
451
|
+
* ### Example
|
|
452
|
+
*
|
|
453
|
+
* ```json
|
|
454
|
+
* {
|
|
455
|
+
* "object": "list",
|
|
456
|
+
* "data": [
|
|
457
|
+
* {
|
|
458
|
+
* "object": "conversation",
|
|
459
|
+
* "id": "12345",
|
|
460
|
+
* "title": "Question about pricing",
|
|
461
|
+
* "state": "open",
|
|
462
|
+
* "priority": false,
|
|
463
|
+
* "adminAssigneeId": null,
|
|
464
|
+
* "participants": [
|
|
465
|
+
* { "type": "customer", "id": "676f0f6765bdaa7d7d760f88" }
|
|
466
|
+
* ],
|
|
467
|
+
* ...
|
|
468
|
+
* }
|
|
469
|
+
* ],
|
|
470
|
+
* "nextCursor": "eyJpZCI6IjEyMzQ1In0="
|
|
471
|
+
* }
|
|
472
|
+
* ```
|
|
473
|
+
*
|
|
474
|
+
* ### Version Availability
|
|
475
|
+
*
|
|
476
|
+
* This endpoint is only available in API version 2026-01-01.nova and newer.
|
|
477
|
+
*
|
|
478
|
+
* @example
|
|
479
|
+
* ```ts
|
|
480
|
+
* const conversations = await client.conversations.list();
|
|
481
|
+
* ```
|
|
482
|
+
*/
|
|
483
|
+
list(params = {}, options) {
|
|
484
|
+
const { 'Featurebase-Version': featurebaseVersion, ...query } = params ?? {};
|
|
485
|
+
return this._client.get('/v2/conversations', {
|
|
486
|
+
query,
|
|
487
|
+
...options,
|
|
488
|
+
headers: (0, headers_1.buildHeaders)([
|
|
489
|
+
{ ...(featurebaseVersion != null ? { 'Featurebase-Version': featurebaseVersion } : undefined) },
|
|
490
|
+
options?.headers,
|
|
491
|
+
]),
|
|
492
|
+
});
|
|
493
|
+
}
|
|
494
|
+
/**
|
|
495
|
+
* Permanently deletes a conversation by its short ID.
|
|
496
|
+
*
|
|
497
|
+
* ### Path Parameters
|
|
498
|
+
*
|
|
499
|
+
* - `id` - The conversation short ID (numeric)
|
|
500
|
+
*
|
|
501
|
+
* ### Response
|
|
502
|
+
*
|
|
503
|
+
* Returns a deletion confirmation object:
|
|
504
|
+
*
|
|
505
|
+
* ```json
|
|
506
|
+
* {
|
|
507
|
+
* "id": "12345",
|
|
508
|
+
* "object": "conversation",
|
|
509
|
+
* "deleted": true
|
|
510
|
+
* }
|
|
511
|
+
* ```
|
|
512
|
+
*
|
|
513
|
+
* ### Caution
|
|
514
|
+
*
|
|
515
|
+
* This operation is **irreversible**. The conversation and all its messages will
|
|
516
|
+
* be permanently deleted.
|
|
517
|
+
*
|
|
518
|
+
* ### Version Availability
|
|
519
|
+
*
|
|
520
|
+
* This endpoint is only available in API version 2026-01-01.nova and newer.
|
|
521
|
+
*
|
|
522
|
+
* @example
|
|
523
|
+
* ```ts
|
|
524
|
+
* const conversation = await client.conversations.delete(
|
|
525
|
+
* '12345',
|
|
526
|
+
* );
|
|
527
|
+
* ```
|
|
528
|
+
*/
|
|
529
|
+
delete(id, params = {}, options) {
|
|
530
|
+
const { 'Featurebase-Version': featurebaseVersion } = params ?? {};
|
|
531
|
+
return this._client.delete((0, path_1.path) `/v2/conversations/${id}`, {
|
|
532
|
+
...options,
|
|
533
|
+
headers: (0, headers_1.buildHeaders)([
|
|
534
|
+
{ ...(featurebaseVersion != null ? { 'Featurebase-Version': featurebaseVersion } : undefined) },
|
|
535
|
+
options?.headers,
|
|
536
|
+
]),
|
|
537
|
+
});
|
|
538
|
+
}
|
|
539
|
+
/**
|
|
540
|
+
* Redacts a conversation part (message) from a conversation. Redaction permanently
|
|
541
|
+
* removes the message content while preserving the conversation structure.
|
|
542
|
+
*
|
|
543
|
+
* Only human message types can be redacted:
|
|
544
|
+
*
|
|
545
|
+
* - `user_msg` - Messages from customers/leads
|
|
546
|
+
* - `admin_msg` - Messages from admins
|
|
547
|
+
* - `email_msg` - Email messages
|
|
548
|
+
* - `bot_msg` - Bot messages
|
|
549
|
+
*
|
|
550
|
+
* System-generated conversation parts (assignments, status changes, etc.) cannot
|
|
551
|
+
* be redacted.
|
|
552
|
+
*
|
|
553
|
+
* ### Request Body
|
|
554
|
+
*
|
|
555
|
+
* | Field | Type | Required | Description |
|
|
556
|
+
* | -------------------- | ------ | -------- | ------------------------------------------------------------------------------ |
|
|
557
|
+
* | `type` | string | Yes | The type of item to redact. Currently only `"conversation_part"` is supported. |
|
|
558
|
+
* | `conversationId` | string | Yes | The conversation short ID containing the part to redact |
|
|
559
|
+
* | `conversationPartId` | string | Yes | The conversation part short ID to redact |
|
|
560
|
+
* | `actingAdminId` | string | No | Admin ID performing the action (for attribution) |
|
|
561
|
+
*
|
|
562
|
+
* ### Response
|
|
563
|
+
*
|
|
564
|
+
* Returns the updated conversation object.
|
|
565
|
+
*
|
|
566
|
+
* ### Example Request
|
|
567
|
+
*
|
|
568
|
+
* ```json
|
|
569
|
+
* {
|
|
570
|
+
* "type": "conversation_part",
|
|
571
|
+
* "conversationId": "12345",
|
|
572
|
+
* "conversationPartId": "67890",
|
|
573
|
+
* "actingAdminId": "507f1f77bcf86cd799439011"
|
|
574
|
+
* }
|
|
575
|
+
* ```
|
|
576
|
+
*
|
|
577
|
+
* ### Example Response
|
|
578
|
+
*
|
|
579
|
+
* ```json
|
|
580
|
+
* {
|
|
581
|
+
* "object": "conversation",
|
|
582
|
+
* "id": "12345",
|
|
583
|
+
* "conversationParts": [
|
|
584
|
+
* {
|
|
585
|
+
* "object": "conversation_part",
|
|
586
|
+
* "id": "67890",
|
|
587
|
+
* "partType": "user_msg",
|
|
588
|
+
* "bodyHtml": "",
|
|
589
|
+
* "bodyMarkdown": "",
|
|
590
|
+
* "redacted": true,
|
|
591
|
+
* ...
|
|
592
|
+
* }
|
|
593
|
+
* ],
|
|
594
|
+
* ...
|
|
595
|
+
* }
|
|
596
|
+
* ```
|
|
597
|
+
*
|
|
598
|
+
* ### Error Cases
|
|
599
|
+
*
|
|
600
|
+
* - **400 Bad Request** - Only human messages can be redacted
|
|
601
|
+
* - **404 Not Found** - Conversation or conversation part not found
|
|
602
|
+
*
|
|
603
|
+
* ### Version Availability
|
|
604
|
+
*
|
|
605
|
+
* This endpoint is only available in API version 2026-01-01.nova and newer.
|
|
606
|
+
*
|
|
607
|
+
* @example
|
|
608
|
+
* ```ts
|
|
609
|
+
* const conversation = await client.conversations.redact({
|
|
610
|
+
* conversationId: '12345',
|
|
611
|
+
* conversationPartId: '67890',
|
|
612
|
+
* type: 'conversation_part',
|
|
613
|
+
* });
|
|
614
|
+
* ```
|
|
615
|
+
*/
|
|
616
|
+
redact(params, options) {
|
|
617
|
+
const { 'Featurebase-Version': featurebaseVersion, ...body } = params;
|
|
618
|
+
return this._client.post('/v2/conversations/redact', {
|
|
619
|
+
body,
|
|
620
|
+
...options,
|
|
621
|
+
headers: (0, headers_1.buildHeaders)([
|
|
622
|
+
{ ...(featurebaseVersion != null ? { 'Featurebase-Version': featurebaseVersion } : undefined) },
|
|
623
|
+
options?.headers,
|
|
624
|
+
]),
|
|
625
|
+
});
|
|
626
|
+
}
|
|
627
|
+
/**
|
|
628
|
+
* Adds a reply to an existing conversation. Supports both contact (customer/lead)
|
|
629
|
+
* and admin replies.
|
|
630
|
+
*
|
|
631
|
+
* ### Path Parameters
|
|
632
|
+
*
|
|
633
|
+
* - `id` - The conversation ID (short ID)
|
|
634
|
+
*
|
|
635
|
+
* ### Request Body
|
|
636
|
+
*
|
|
637
|
+
* The request body varies based on who is sending the reply:
|
|
638
|
+
*
|
|
639
|
+
* #### Contact Reply (customer/lead)
|
|
640
|
+
*
|
|
641
|
+
* | Field | Type | Required | Description |
|
|
642
|
+
* | ------------------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
|
643
|
+
* | `type` | string | Yes | Must be "contact" |
|
|
644
|
+
* | `userId` | string | No\* | External user ID from your system |
|
|
645
|
+
* | `id` | string | No\* | Featurebase contact ID (24-character ObjectId) |
|
|
646
|
+
* | `bodyMarkdown` | string | Yes | The message content in markdown format. Images referenced by URL or as base64 data URIs will be automatically uploaded and stored. |
|
|
647
|
+
* | `messageType` | string | Yes | Must be "reply" |
|
|
648
|
+
* | `skipNotifications` | boolean | No | Skip sending notifications (default: false). Useful for bulk imports. |
|
|
649
|
+
*
|
|
650
|
+
* \*At least one of `userId` or `id` is required.
|
|
651
|
+
*
|
|
652
|
+
* #### Admin Reply
|
|
653
|
+
*
|
|
654
|
+
* | Field | Type | Required | Description |
|
|
655
|
+
* | ------------------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
|
656
|
+
* | `type` | string | Yes | Must be "admin" |
|
|
657
|
+
* | `id` | string | Yes | Featurebase admin ID (24-character ObjectId) |
|
|
658
|
+
* | `bodyMarkdown` | string | Yes | The message content in markdown format. Images referenced by URL or as base64 data URIs will be automatically uploaded and stored. |
|
|
659
|
+
* | `messageType` | string | Yes | "reply" for customer-visible reply, "note" for internal note |
|
|
660
|
+
* | `skipNotifications` | boolean | No | Skip sending notifications (default: false). Useful for bulk imports. |
|
|
661
|
+
*
|
|
662
|
+
* ### Response
|
|
663
|
+
*
|
|
664
|
+
* Returns the created conversation part object with a **201 Created** status. The
|
|
665
|
+
* response includes both `bodyHtml` (with signed image URLs) and `bodyMarkdown`
|
|
666
|
+
* fields.
|
|
667
|
+
*
|
|
668
|
+
* ### Example Contact Reply
|
|
669
|
+
*
|
|
670
|
+
* ```json
|
|
671
|
+
* {
|
|
672
|
+
* "type": "contact",
|
|
673
|
+
* "userId": "user_123",
|
|
674
|
+
* "bodyMarkdown": "Thank you for your help!",
|
|
675
|
+
* "messageType": "reply"
|
|
676
|
+
* }
|
|
677
|
+
* ```
|
|
678
|
+
*
|
|
679
|
+
* ### Example Admin Reply
|
|
680
|
+
*
|
|
681
|
+
* ```json
|
|
682
|
+
* {
|
|
683
|
+
* "type": "admin",
|
|
684
|
+
* "id": "507f1f77bcf86cd799439011",
|
|
685
|
+
* "bodyMarkdown": "I'm happy to help! Here's what you need to do...",
|
|
686
|
+
* "messageType": "reply"
|
|
687
|
+
* }
|
|
688
|
+
* ```
|
|
689
|
+
*
|
|
690
|
+
* ### Example Admin Note (Internal)
|
|
691
|
+
*
|
|
692
|
+
* ```json
|
|
693
|
+
* {
|
|
694
|
+
* "type": "admin",
|
|
695
|
+
* "id": "507f1f77bcf86cd799439011",
|
|
696
|
+
* "bodyMarkdown": "Customer seems frustrated, escalating to tier 2.",
|
|
697
|
+
* "messageType": "note"
|
|
698
|
+
* }
|
|
699
|
+
* ```
|
|
700
|
+
*
|
|
701
|
+
* ### Example Response
|
|
702
|
+
*
|
|
703
|
+
* ```json
|
|
704
|
+
* {
|
|
705
|
+
* "object": "conversation_part",
|
|
706
|
+
* "id": "3",
|
|
707
|
+
* "partType": "user_msg",
|
|
708
|
+
* "bodyHtml": "<p>Thank you for your help!</p>",
|
|
709
|
+
* "bodyMarkdown": "Thank you for your help!",
|
|
710
|
+
* "author": {
|
|
711
|
+
* "type": "customer",
|
|
712
|
+
* "id": "676f0f6765bdaa7d7d760f88",
|
|
713
|
+
* "name": "John Doe",
|
|
714
|
+
* "email": "john@example.com"
|
|
715
|
+
* },
|
|
716
|
+
* "channel": "desktop",
|
|
717
|
+
* "createdAt": "2025-01-15T10:40:00.000Z",
|
|
718
|
+
* "updatedAt": "2025-01-15T10:40:00.000Z"
|
|
719
|
+
* }
|
|
720
|
+
* ```
|
|
721
|
+
*
|
|
722
|
+
* ### Version Availability
|
|
723
|
+
*
|
|
724
|
+
* This endpoint is only available in API version 2026-01-01.nova and newer.
|
|
725
|
+
*
|
|
726
|
+
* @example
|
|
727
|
+
* ```ts
|
|
728
|
+
* const conversationPart = await client.conversations.reply(
|
|
729
|
+
* '12345',
|
|
730
|
+
* {
|
|
731
|
+
* bodyMarkdown: 'Thank you for your help!',
|
|
732
|
+
* messageType: 'reply',
|
|
733
|
+
* type: 'contact',
|
|
734
|
+
* },
|
|
735
|
+
* );
|
|
736
|
+
* ```
|
|
737
|
+
*/
|
|
738
|
+
reply(id, params, options) {
|
|
739
|
+
const { 'Featurebase-Version': featurebaseVersion, ...body } = params;
|
|
740
|
+
return this._client.post((0, path_1.path) `/v2/conversations/${id}/reply`, {
|
|
741
|
+
body,
|
|
742
|
+
...options,
|
|
743
|
+
headers: (0, headers_1.buildHeaders)([
|
|
744
|
+
{ ...(featurebaseVersion != null ? { 'Featurebase-Version': featurebaseVersion } : undefined) },
|
|
745
|
+
options?.headers,
|
|
746
|
+
]),
|
|
747
|
+
});
|
|
748
|
+
}
|
|
749
|
+
}
|
|
750
|
+
exports.Conversations = Conversations;
|
|
751
|
+
Conversations.Tags = tags_1.Tags;
|
|
752
|
+
Conversations.Participants = participants_1.Participants;
|
|
753
|
+
//# sourceMappingURL=conversations.js.map
|