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.
Files changed (497) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/api-promise.d.mts +1 -0
  3. package/api-promise.d.mts.map +1 -1
  4. package/api-promise.d.ts +1 -0
  5. package/api-promise.d.ts.map +1 -1
  6. package/api-promise.mjs +1 -0
  7. package/api-promise.mjs.map +1 -1
  8. package/client.d.mts +9 -3
  9. package/client.d.mts.map +1 -1
  10. package/client.d.ts +9 -3
  11. package/client.d.ts.map +1 -1
  12. package/client.js +6 -0
  13. package/client.js.map +1 -1
  14. package/client.mjs +6 -0
  15. package/client.mjs.map +1 -1
  16. package/core/api-promise.d.mts.map +1 -1
  17. package/core/api-promise.d.ts.map +1 -1
  18. package/core/api-promise.mjs.map +1 -1
  19. package/core/error.mjs.map +1 -1
  20. package/core/pagination.d.mts.map +1 -1
  21. package/core/pagination.d.ts.map +1 -1
  22. package/core/pagination.mjs.map +1 -1
  23. package/core/resource.d.mts.map +1 -1
  24. package/core/resource.d.ts.map +1 -1
  25. package/core/uploads.d.mts.map +1 -1
  26. package/core/uploads.d.ts.map +1 -1
  27. package/core/uploads.mjs.map +1 -1
  28. package/error.d.mts +1 -0
  29. package/error.d.mts.map +1 -1
  30. package/error.d.ts +1 -0
  31. package/error.d.ts.map +1 -1
  32. package/error.mjs +1 -0
  33. package/error.mjs.map +1 -1
  34. package/index.d.mts.map +1 -1
  35. package/index.d.ts.map +1 -1
  36. package/index.mjs.map +1 -1
  37. package/internal/detect-platform.mjs.map +1 -1
  38. package/internal/headers.mjs.map +1 -1
  39. package/internal/parse.d.mts.map +1 -1
  40. package/internal/parse.d.ts.map +1 -1
  41. package/internal/parse.mjs.map +1 -1
  42. package/internal/qs/formats.d.mts.map +1 -1
  43. package/internal/qs/formats.d.ts.map +1 -1
  44. package/internal/qs/index.d.mts +2 -2
  45. package/internal/qs/index.d.mts.map +1 -1
  46. package/internal/qs/index.d.ts +2 -2
  47. package/internal/qs/index.d.ts.map +1 -1
  48. package/internal/qs/index.mjs.map +1 -1
  49. package/internal/qs/stringify.d.mts.map +1 -1
  50. package/internal/qs/stringify.d.ts.map +1 -1
  51. package/internal/qs/stringify.mjs.map +1 -1
  52. package/internal/qs/utils.d.mts.map +1 -1
  53. package/internal/qs/utils.d.ts.map +1 -1
  54. package/internal/qs/utils.mjs.map +1 -1
  55. package/internal/request-options.d.mts.map +1 -1
  56. package/internal/request-options.d.ts.map +1 -1
  57. package/internal/shims.d.mts +6 -0
  58. package/internal/shims.d.mts.map +1 -1
  59. package/internal/shims.d.ts +6 -0
  60. package/internal/shims.d.ts.map +1 -1
  61. package/internal/to-file.d.mts.map +1 -1
  62. package/internal/to-file.d.ts.map +1 -1
  63. package/internal/to-file.mjs.map +1 -1
  64. package/internal/types.d.mts +4 -4
  65. package/internal/types.d.mts.map +1 -1
  66. package/internal/types.d.ts +4 -4
  67. package/internal/types.d.ts.map +1 -1
  68. package/internal/uploads.d.mts.map +1 -1
  69. package/internal/uploads.d.ts.map +1 -1
  70. package/internal/uploads.mjs.map +1 -1
  71. package/internal/utils/base64.mjs.map +1 -1
  72. package/internal/utils/log.d.mts.map +1 -1
  73. package/internal/utils/log.d.ts.map +1 -1
  74. package/internal/utils/log.mjs.map +1 -1
  75. package/internal/utils/path.mjs.map +1 -1
  76. package/internal/utils/query.mjs.map +1 -1
  77. package/internal/utils/values.mjs.map +1 -1
  78. package/internal/utils.d.mts.map +1 -1
  79. package/internal/utils.d.ts.map +1 -1
  80. package/internal/utils.mjs.map +1 -1
  81. package/package.json +16 -10
  82. package/pagination.d.mts +1 -0
  83. package/pagination.d.mts.map +1 -1
  84. package/pagination.d.ts +1 -0
  85. package/pagination.d.ts.map +1 -1
  86. package/pagination.mjs +1 -0
  87. package/pagination.mjs.map +1 -1
  88. package/resource.d.mts +1 -0
  89. package/resource.d.mts.map +1 -1
  90. package/resource.d.ts +1 -0
  91. package/resource.d.ts.map +1 -1
  92. package/resource.mjs +1 -0
  93. package/resource.mjs.map +1 -1
  94. package/resources/changelogs/changelogs.d.mts +106 -106
  95. package/resources/changelogs/changelogs.d.mts.map +1 -1
  96. package/resources/changelogs/changelogs.d.ts +106 -106
  97. package/resources/changelogs/changelogs.d.ts.map +1 -1
  98. package/resources/changelogs/changelogs.js +74 -74
  99. package/resources/changelogs/changelogs.js.map +1 -1
  100. package/resources/changelogs/changelogs.mjs +74 -74
  101. package/resources/changelogs/changelogs.mjs.map +1 -1
  102. package/resources/changelogs/index.d.mts +1 -1
  103. package/resources/changelogs/index.d.mts.map +1 -1
  104. package/resources/changelogs/index.d.ts +1 -1
  105. package/resources/changelogs/index.d.ts.map +1 -1
  106. package/resources/changelogs/index.mjs.map +1 -1
  107. package/resources/changelogs/subscribers.d.mts.map +1 -1
  108. package/resources/changelogs/subscribers.d.ts.map +1 -1
  109. package/resources/changelogs/subscribers.mjs.map +1 -1
  110. package/resources/changelogs.d.mts.map +1 -1
  111. package/resources/changelogs.d.ts.map +1 -1
  112. package/resources/changelogs.mjs.map +1 -1
  113. package/resources/conversation-attributes.d.mts +117 -0
  114. package/resources/conversation-attributes.d.mts.map +1 -0
  115. package/resources/conversation-attributes.d.ts +117 -0
  116. package/resources/conversation-attributes.d.ts.map +1 -0
  117. package/resources/conversation-attributes.js +61 -0
  118. package/resources/conversation-attributes.js.map +1 -0
  119. package/resources/conversation-attributes.mjs +57 -0
  120. package/resources/conversation-attributes.mjs.map +1 -0
  121. package/resources/feedback/boards.d.mts +17 -17
  122. package/resources/feedback/boards.d.mts.map +1 -1
  123. package/resources/feedback/boards.d.ts +17 -17
  124. package/resources/feedback/boards.d.ts.map +1 -1
  125. package/resources/feedback/boards.js +20 -20
  126. package/resources/feedback/boards.js.map +1 -1
  127. package/resources/feedback/boards.mjs +20 -20
  128. package/resources/feedback/boards.mjs.map +1 -1
  129. package/resources/feedback/comments.d.mts +129 -191
  130. package/resources/feedback/comments.d.mts.map +1 -1
  131. package/resources/feedback/comments.d.ts +129 -191
  132. package/resources/feedback/comments.d.ts.map +1 -1
  133. package/resources/feedback/comments.js +93 -93
  134. package/resources/feedback/comments.js.map +1 -1
  135. package/resources/feedback/comments.mjs +93 -93
  136. package/resources/feedback/comments.mjs.map +1 -1
  137. package/resources/feedback/custom-fields.d.mts +34 -34
  138. package/resources/feedback/custom-fields.d.mts.map +1 -1
  139. package/resources/feedback/custom-fields.d.ts +34 -34
  140. package/resources/feedback/custom-fields.d.ts.map +1 -1
  141. package/resources/feedback/custom-fields.js +36 -36
  142. package/resources/feedback/custom-fields.js.map +1 -1
  143. package/resources/feedback/custom-fields.mjs +36 -36
  144. package/resources/feedback/custom-fields.mjs.map +1 -1
  145. package/resources/feedback/feedback.d.mts +7 -7
  146. package/resources/feedback/feedback.d.mts.map +1 -1
  147. package/resources/feedback/feedback.d.ts +7 -7
  148. package/resources/feedback/feedback.d.ts.map +1 -1
  149. package/resources/feedback/feedback.js.map +1 -1
  150. package/resources/feedback/feedback.mjs.map +1 -1
  151. package/resources/feedback/index.d.mts +5 -5
  152. package/resources/feedback/index.d.mts.map +1 -1
  153. package/resources/feedback/index.d.ts +5 -5
  154. package/resources/feedback/index.d.ts.map +1 -1
  155. package/resources/feedback/index.js.map +1 -1
  156. package/resources/feedback/index.mjs.map +1 -1
  157. package/resources/feedback/post-statuses.d.mts +18 -18
  158. package/resources/feedback/post-statuses.d.mts.map +1 -1
  159. package/resources/feedback/post-statuses.d.ts +18 -18
  160. package/resources/feedback/post-statuses.d.ts.map +1 -1
  161. package/resources/feedback/post-statuses.js +23 -23
  162. package/resources/feedback/post-statuses.js.map +1 -1
  163. package/resources/feedback/post-statuses.mjs +23 -23
  164. package/resources/feedback/post-statuses.mjs.map +1 -1
  165. package/resources/feedback/posts/index.d.mts +1 -1
  166. package/resources/feedback/posts/index.d.mts.map +1 -1
  167. package/resources/feedback/posts/index.d.ts +1 -1
  168. package/resources/feedback/posts/index.d.ts.map +1 -1
  169. package/resources/feedback/posts/index.js.map +1 -1
  170. package/resources/feedback/posts/index.mjs.map +1 -1
  171. package/resources/feedback/posts/posts.d.mts +187 -260
  172. package/resources/feedback/posts/posts.d.mts.map +1 -1
  173. package/resources/feedback/posts/posts.d.ts +187 -260
  174. package/resources/feedback/posts/posts.d.ts.map +1 -1
  175. package/resources/feedback/posts/posts.js +75 -75
  176. package/resources/feedback/posts/posts.js.map +1 -1
  177. package/resources/feedback/posts/posts.mjs +75 -75
  178. package/resources/feedback/posts/posts.mjs.map +1 -1
  179. package/resources/feedback/posts/voters.d.mts.map +1 -1
  180. package/resources/feedback/posts/voters.d.ts.map +1 -1
  181. package/resources/feedback/posts/voters.mjs.map +1 -1
  182. package/resources/feedback/posts.d.mts.map +1 -1
  183. package/resources/feedback/posts.d.ts.map +1 -1
  184. package/resources/feedback/posts.mjs.map +1 -1
  185. package/resources/feedback.d.mts.map +1 -1
  186. package/resources/feedback.d.ts.map +1 -1
  187. package/resources/feedback.mjs.map +1 -1
  188. package/resources/help-center/articles.d.mts +98 -152
  189. package/resources/help-center/articles.d.mts.map +1 -1
  190. package/resources/help-center/articles.d.ts +98 -152
  191. package/resources/help-center/articles.d.ts.map +1 -1
  192. package/resources/help-center/articles.js +73 -73
  193. package/resources/help-center/articles.js.map +1 -1
  194. package/resources/help-center/articles.mjs +73 -73
  195. package/resources/help-center/articles.mjs.map +1 -1
  196. package/resources/help-center/collections.d.mts +64 -64
  197. package/resources/help-center/collections.d.mts.map +1 -1
  198. package/resources/help-center/collections.d.ts +64 -64
  199. package/resources/help-center/collections.d.ts.map +1 -1
  200. package/resources/help-center/collections.js +65 -65
  201. package/resources/help-center/collections.js.map +1 -1
  202. package/resources/help-center/collections.mjs +65 -65
  203. package/resources/help-center/collections.mjs.map +1 -1
  204. package/resources/help-center/help-center.d.mts +5 -5
  205. package/resources/help-center/help-center.d.mts.map +1 -1
  206. package/resources/help-center/help-center.d.ts +5 -5
  207. package/resources/help-center/help-center.d.ts.map +1 -1
  208. package/resources/help-center/help-center.js.map +1 -1
  209. package/resources/help-center/help-center.mjs.map +1 -1
  210. package/resources/help-center/help-centers.d.mts +43 -43
  211. package/resources/help-center/help-centers.d.mts.map +1 -1
  212. package/resources/help-center/help-centers.d.ts +43 -43
  213. package/resources/help-center/help-centers.d.ts.map +1 -1
  214. package/resources/help-center/help-centers.js +43 -43
  215. package/resources/help-center/help-centers.js.map +1 -1
  216. package/resources/help-center/help-centers.mjs +43 -43
  217. package/resources/help-center/help-centers.mjs.map +1 -1
  218. package/resources/help-center/index.d.mts +4 -4
  219. package/resources/help-center/index.d.mts.map +1 -1
  220. package/resources/help-center/index.d.ts +4 -4
  221. package/resources/help-center/index.d.ts.map +1 -1
  222. package/resources/help-center/index.js.map +1 -1
  223. package/resources/help-center/index.mjs.map +1 -1
  224. package/resources/help-center/redirect-rules.d.mts +117 -117
  225. package/resources/help-center/redirect-rules.d.mts.map +1 -1
  226. package/resources/help-center/redirect-rules.d.ts +117 -117
  227. package/resources/help-center/redirect-rules.d.ts.map +1 -1
  228. package/resources/help-center/redirect-rules.js +112 -112
  229. package/resources/help-center/redirect-rules.js.map +1 -1
  230. package/resources/help-center/redirect-rules.mjs +112 -112
  231. package/resources/help-center/redirect-rules.mjs.map +1 -1
  232. package/resources/help-center.d.mts.map +1 -1
  233. package/resources/help-center.d.ts.map +1 -1
  234. package/resources/help-center.mjs.map +1 -1
  235. package/resources/index.d.mts +4 -3
  236. package/resources/index.d.mts.map +1 -1
  237. package/resources/index.d.ts +4 -3
  238. package/resources/index.d.ts.map +1 -1
  239. package/resources/index.js +3 -1
  240. package/resources/index.js.map +1 -1
  241. package/resources/index.mjs +1 -0
  242. package/resources/index.mjs.map +1 -1
  243. package/resources/organization/admins.d.mts +23 -23
  244. package/resources/organization/admins.d.mts.map +1 -1
  245. package/resources/organization/admins.d.ts +23 -23
  246. package/resources/organization/admins.d.ts.map +1 -1
  247. package/resources/organization/admins.js +25 -25
  248. package/resources/organization/admins.js.map +1 -1
  249. package/resources/organization/admins.mjs +25 -25
  250. package/resources/organization/admins.mjs.map +1 -1
  251. package/resources/organization/brands.d.mts +50 -50
  252. package/resources/organization/brands.d.mts.map +1 -1
  253. package/resources/organization/brands.d.ts +50 -50
  254. package/resources/organization/brands.d.ts.map +1 -1
  255. package/resources/organization/brands.js +54 -54
  256. package/resources/organization/brands.js.map +1 -1
  257. package/resources/organization/brands.mjs +54 -54
  258. package/resources/organization/brands.mjs.map +1 -1
  259. package/resources/organization/index.d.mts +3 -3
  260. package/resources/organization/index.d.mts.map +1 -1
  261. package/resources/organization/index.d.ts +3 -3
  262. package/resources/organization/index.d.ts.map +1 -1
  263. package/resources/organization/index.mjs.map +1 -1
  264. package/resources/organization/organization.d.mts +3 -3
  265. package/resources/organization/organization.d.mts.map +1 -1
  266. package/resources/organization/organization.d.ts +3 -3
  267. package/resources/organization/organization.d.ts.map +1 -1
  268. package/resources/organization/organization.mjs.map +1 -1
  269. package/resources/organization/teams.d.mts +45 -45
  270. package/resources/organization/teams.d.mts.map +1 -1
  271. package/resources/organization/teams.d.ts +45 -45
  272. package/resources/organization/teams.d.ts.map +1 -1
  273. package/resources/organization/teams.js +44 -44
  274. package/resources/organization/teams.js.map +1 -1
  275. package/resources/organization/teams.mjs +44 -44
  276. package/resources/organization/teams.mjs.map +1 -1
  277. package/resources/organization.d.mts.map +1 -1
  278. package/resources/organization.d.ts.map +1 -1
  279. package/resources/organization.mjs.map +1 -1
  280. package/resources/support/conversation-tags.d.mts +40 -40
  281. package/resources/support/conversation-tags.d.mts.map +1 -1
  282. package/resources/support/conversation-tags.d.ts +40 -40
  283. package/resources/support/conversation-tags.d.ts.map +1 -1
  284. package/resources/support/conversation-tags.js +32 -32
  285. package/resources/support/conversation-tags.js.map +1 -1
  286. package/resources/support/conversation-tags.mjs +32 -32
  287. package/resources/support/conversation-tags.mjs.map +1 -1
  288. package/resources/support/conversations/conversations.d.mts +599 -705
  289. package/resources/support/conversations/conversations.d.mts.map +1 -1
  290. package/resources/support/conversations/conversations.d.ts +599 -705
  291. package/resources/support/conversations/conversations.d.ts.map +1 -1
  292. package/resources/support/conversations/conversations.js +289 -288
  293. package/resources/support/conversations/conversations.js.map +1 -1
  294. package/resources/support/conversations/conversations.mjs +289 -288
  295. package/resources/support/conversations/conversations.mjs.map +1 -1
  296. package/resources/support/conversations/index.d.mts +1 -1
  297. package/resources/support/conversations/index.d.mts.map +1 -1
  298. package/resources/support/conversations/index.d.ts +1 -1
  299. package/resources/support/conversations/index.d.ts.map +1 -1
  300. package/resources/support/conversations/index.js.map +1 -1
  301. package/resources/support/conversations/index.mjs.map +1 -1
  302. package/resources/support/conversations/participants.d.mts.map +1 -1
  303. package/resources/support/conversations/participants.d.ts.map +1 -1
  304. package/resources/support/conversations/participants.mjs.map +1 -1
  305. package/resources/support/conversations.d.mts.map +1 -1
  306. package/resources/support/conversations.d.ts.map +1 -1
  307. package/resources/support/conversations.mjs.map +1 -1
  308. package/resources/support/index.d.mts +3 -3
  309. package/resources/support/index.d.mts.map +1 -1
  310. package/resources/support/index.d.ts +3 -3
  311. package/resources/support/index.d.ts.map +1 -1
  312. package/resources/support/index.js.map +1 -1
  313. package/resources/support/index.mjs.map +1 -1
  314. package/resources/support/support.d.mts +4 -4
  315. package/resources/support/support.d.mts.map +1 -1
  316. package/resources/support/support.d.ts +4 -4
  317. package/resources/support/support.d.ts.map +1 -1
  318. package/resources/support/support.js.map +1 -1
  319. package/resources/support/support.mjs.map +1 -1
  320. package/resources/support/tickets/categories.d.mts +18 -18
  321. package/resources/support/tickets/categories.d.mts.map +1 -1
  322. package/resources/support/tickets/categories.d.ts +18 -18
  323. package/resources/support/tickets/categories.d.ts.map +1 -1
  324. package/resources/support/tickets/categories.js +25 -25
  325. package/resources/support/tickets/categories.js.map +1 -1
  326. package/resources/support/tickets/categories.mjs +25 -25
  327. package/resources/support/tickets/categories.mjs.map +1 -1
  328. package/resources/support/tickets/custom-fields.d.mts +20 -20
  329. package/resources/support/tickets/custom-fields.d.mts.map +1 -1
  330. package/resources/support/tickets/custom-fields.d.ts +20 -20
  331. package/resources/support/tickets/custom-fields.d.ts.map +1 -1
  332. package/resources/support/tickets/custom-fields.js +19 -19
  333. package/resources/support/tickets/custom-fields.js.map +1 -1
  334. package/resources/support/tickets/custom-fields.mjs +19 -19
  335. package/resources/support/tickets/custom-fields.mjs.map +1 -1
  336. package/resources/support/tickets/index.d.mts +4 -4
  337. package/resources/support/tickets/index.d.mts.map +1 -1
  338. package/resources/support/tickets/index.d.ts +4 -4
  339. package/resources/support/tickets/index.d.ts.map +1 -1
  340. package/resources/support/tickets/index.mjs.map +1 -1
  341. package/resources/support/tickets/statuses.d.mts +17 -17
  342. package/resources/support/tickets/statuses.d.mts.map +1 -1
  343. package/resources/support/tickets/statuses.d.ts +17 -17
  344. package/resources/support/tickets/statuses.d.ts.map +1 -1
  345. package/resources/support/tickets/statuses.js +21 -21
  346. package/resources/support/tickets/statuses.js.map +1 -1
  347. package/resources/support/tickets/statuses.mjs +21 -21
  348. package/resources/support/tickets/statuses.mjs.map +1 -1
  349. package/resources/support/tickets/tickets.d.mts +69 -69
  350. package/resources/support/tickets/tickets.d.mts.map +1 -1
  351. package/resources/support/tickets/tickets.d.ts +69 -69
  352. package/resources/support/tickets/tickets.d.ts.map +1 -1
  353. package/resources/support/tickets/tickets.js +44 -44
  354. package/resources/support/tickets/tickets.js.map +1 -1
  355. package/resources/support/tickets/tickets.mjs +44 -44
  356. package/resources/support/tickets/tickets.mjs.map +1 -1
  357. package/resources/support/tickets.d.mts.map +1 -1
  358. package/resources/support/tickets.d.ts.map +1 -1
  359. package/resources/support/tickets.mjs.map +1 -1
  360. package/resources/support.d.mts.map +1 -1
  361. package/resources/support.d.ts.map +1 -1
  362. package/resources/support.mjs.map +1 -1
  363. package/resources/surveys.d.mts +41 -41
  364. package/resources/surveys.d.mts.map +1 -1
  365. package/resources/surveys.d.ts +41 -41
  366. package/resources/surveys.d.ts.map +1 -1
  367. package/resources/surveys.js +44 -44
  368. package/resources/surveys.js.map +1 -1
  369. package/resources/surveys.mjs +44 -44
  370. package/resources/surveys.mjs.map +1 -1
  371. package/resources/users/companies/companies.d.mts +116 -157
  372. package/resources/users/companies/companies.d.mts.map +1 -1
  373. package/resources/users/companies/companies.d.ts +116 -157
  374. package/resources/users/companies/companies.d.ts.map +1 -1
  375. package/resources/users/companies/companies.js +125 -125
  376. package/resources/users/companies/companies.js.map +1 -1
  377. package/resources/users/companies/companies.mjs +125 -125
  378. package/resources/users/companies/companies.mjs.map +1 -1
  379. package/resources/users/companies/contacts.d.mts.map +1 -1
  380. package/resources/users/companies/contacts.d.ts.map +1 -1
  381. package/resources/users/companies/contacts.mjs.map +1 -1
  382. package/resources/users/companies/index.d.mts +1 -1
  383. package/resources/users/companies/index.d.mts.map +1 -1
  384. package/resources/users/companies/index.d.ts +1 -1
  385. package/resources/users/companies/index.d.ts.map +1 -1
  386. package/resources/users/companies/index.mjs.map +1 -1
  387. package/resources/users/companies.d.mts.map +1 -1
  388. package/resources/users/companies.d.ts.map +1 -1
  389. package/resources/users/companies.mjs.map +1 -1
  390. package/resources/users/contacts/by-user-id/by-user-id.d.mts.map +1 -1
  391. package/resources/users/contacts/by-user-id/by-user-id.d.ts.map +1 -1
  392. package/resources/users/contacts/by-user-id/by-user-id.mjs.map +1 -1
  393. package/resources/users/contacts/by-user-id/email-preferences.d.mts.map +1 -1
  394. package/resources/users/contacts/by-user-id/email-preferences.d.ts.map +1 -1
  395. package/resources/users/contacts/by-user-id/email-preferences.mjs.map +1 -1
  396. package/resources/users/contacts/by-user-id/index.d.mts.map +1 -1
  397. package/resources/users/contacts/by-user-id/index.d.ts.map +1 -1
  398. package/resources/users/contacts/by-user-id/index.mjs.map +1 -1
  399. package/resources/users/contacts/by-user-id.d.mts.map +1 -1
  400. package/resources/users/contacts/by-user-id.d.ts.map +1 -1
  401. package/resources/users/contacts/by-user-id.mjs.map +1 -1
  402. package/resources/users/contacts/contacts.d.mts +196 -235
  403. package/resources/users/contacts/contacts.d.mts.map +1 -1
  404. package/resources/users/contacts/contacts.d.ts +196 -235
  405. package/resources/users/contacts/contacts.d.ts.map +1 -1
  406. package/resources/users/contacts/contacts.js +186 -184
  407. package/resources/users/contacts/contacts.js.map +1 -1
  408. package/resources/users/contacts/contacts.mjs +186 -184
  409. package/resources/users/contacts/contacts.mjs.map +1 -1
  410. package/resources/users/contacts/email-preferences.d.mts.map +1 -1
  411. package/resources/users/contacts/email-preferences.d.ts.map +1 -1
  412. package/resources/users/contacts/email-preferences.mjs.map +1 -1
  413. package/resources/users/contacts/index.d.mts +1 -1
  414. package/resources/users/contacts/index.d.mts.map +1 -1
  415. package/resources/users/contacts/index.d.ts +1 -1
  416. package/resources/users/contacts/index.d.ts.map +1 -1
  417. package/resources/users/contacts/index.mjs.map +1 -1
  418. package/resources/users/contacts.d.mts.map +1 -1
  419. package/resources/users/contacts.d.ts.map +1 -1
  420. package/resources/users/contacts.mjs.map +1 -1
  421. package/resources/users/index.d.mts +2 -2
  422. package/resources/users/index.d.mts.map +1 -1
  423. package/resources/users/index.d.ts +2 -2
  424. package/resources/users/index.d.ts.map +1 -1
  425. package/resources/users/index.mjs.map +1 -1
  426. package/resources/users/users.d.mts +2 -2
  427. package/resources/users/users.d.mts.map +1 -1
  428. package/resources/users/users.d.ts +2 -2
  429. package/resources/users/users.d.ts.map +1 -1
  430. package/resources/users/users.mjs.map +1 -1
  431. package/resources/users.d.mts.map +1 -1
  432. package/resources/users.d.ts.map +1 -1
  433. package/resources/users.mjs.map +1 -1
  434. package/resources/webhooks.d.mts +75 -75
  435. package/resources/webhooks.d.mts.map +1 -1
  436. package/resources/webhooks.d.ts +75 -75
  437. package/resources/webhooks.d.ts.map +1 -1
  438. package/resources/webhooks.js +77 -77
  439. package/resources/webhooks.js.map +1 -1
  440. package/resources/webhooks.mjs +77 -77
  441. package/resources/webhooks.mjs.map +1 -1
  442. package/resources.d.mts.map +1 -1
  443. package/resources.d.ts.map +1 -1
  444. package/resources.mjs.map +1 -1
  445. package/src/client.ts +25 -3
  446. package/src/resources/changelogs/changelogs.ts +170 -170
  447. package/src/resources/changelogs/index.ts +1 -1
  448. package/src/resources/conversation-attributes.ts +181 -0
  449. package/src/resources/feedback/boards.ts +28 -28
  450. package/src/resources/feedback/comments.ts +153 -226
  451. package/src/resources/feedback/custom-fields.ts +44 -44
  452. package/src/resources/feedback/feedback.ts +19 -5
  453. package/src/resources/feedback/index.ts +12 -5
  454. package/src/resources/feedback/post-statuses.ts +31 -31
  455. package/src/resources/feedback/posts/index.ts +7 -1
  456. package/src/resources/feedback/posts/posts.ts +230 -311
  457. package/src/resources/help-center/articles.ts +123 -186
  458. package/src/resources/help-center/collections.ts +84 -84
  459. package/src/resources/help-center/help-center.ts +7 -5
  460. package/src/resources/help-center/help-centers.ts +55 -55
  461. package/src/resources/help-center/index.ts +6 -5
  462. package/src/resources/help-center/redirect-rules.ts +174 -174
  463. package/src/resources/index.ts +11 -3
  464. package/src/resources/organization/admins.ts +33 -33
  465. package/src/resources/organization/brands.ts +66 -66
  466. package/src/resources/organization/index.ts +3 -3
  467. package/src/resources/organization/organization.ts +3 -3
  468. package/src/resources/organization/teams.ts +52 -52
  469. package/src/resources/support/conversation-tags.ts +59 -59
  470. package/src/resources/support/conversations/conversations.ts +723 -850
  471. package/src/resources/support/conversations/index.ts +11 -6
  472. package/src/resources/support/index.ts +14 -9
  473. package/src/resources/support/support.ts +21 -11
  474. package/src/resources/support/tickets/categories.ts +33 -33
  475. package/src/resources/support/tickets/custom-fields.ts +27 -27
  476. package/src/resources/support/tickets/index.ts +4 -4
  477. package/src/resources/support/tickets/statuses.ts +29 -29
  478. package/src/resources/support/tickets/tickets.ts +95 -95
  479. package/src/resources/surveys.ts +58 -58
  480. package/src/resources/users/companies/companies.ts +155 -204
  481. package/src/resources/users/companies/index.ts +2 -2
  482. package/src/resources/users/contacts/contacts.ts +235 -282
  483. package/src/resources/users/contacts/index.ts +3 -3
  484. package/src/resources/users/index.ts +5 -5
  485. package/src/resources/users/users.ts +5 -5
  486. package/src/resources/webhooks.ts +95 -95
  487. package/src/version.ts +1 -1
  488. package/uploads.d.mts +1 -0
  489. package/uploads.d.mts.map +1 -1
  490. package/uploads.d.ts +1 -0
  491. package/uploads.d.ts.map +1 -1
  492. package/uploads.mjs +1 -0
  493. package/uploads.mjs.map +1 -1
  494. package/version.d.mts +1 -1
  495. package/version.d.ts +1 -1
  496. package/version.js +1 -1
  497. package/version.mjs +1 -1
@@ -17,6 +17,91 @@ class Conversations extends resource_1.APIResource {
17
17
  super(...arguments);
18
18
  this.participants = new ParticipantsAPI.Participants(this._client);
19
19
  }
20
+ /**
21
+ * Returns a list of conversations in your organization using cursor-based
22
+ * pagination.
23
+ *
24
+ * ### Query Parameters
25
+ *
26
+ * - `limit` - Number of conversations to return (1-100, default 10)
27
+ * - `cursor` - Cursor from previous response for pagination
28
+ * - `tagIds` - Optional tag filter as a comma-separated list of tag IDs. Matches
29
+ * conversations that contain all of the provided tags.
30
+ *
31
+ * ### Response Format
32
+ *
33
+ * Returns a list object with:
34
+ *
35
+ * - `object` - Always "list"
36
+ * - `data` - Array of conversation objects
37
+ * - `nextCursor` - Cursor for the next page, or null if no more results
38
+ *
39
+ * ### Conversation Object
40
+ *
41
+ * Each conversation includes:
42
+ *
43
+ * - `id` - Unique conversation identifier (short ID)
44
+ * - `title` - Conversation title
45
+ * - `state` - Current state ("open", "closed", or "snoozed")
46
+ * - `priority` - Whether the conversation is marked as priority
47
+ * - `adminAssigneeId` - ID of assigned admin (if any)
48
+ * - `teamAssigneeId` - ID of assigned team (if any)
49
+ * - `tags` - Current tags applied anywhere in the conversation
50
+ * - `participants` - Array of participants
51
+ * - `source` - Information about the first message
52
+ * - `createdAt` - Creation timestamp
53
+ * - `updatedAt` - Last update timestamp
54
+ *
55
+ * ### Example
56
+ *
57
+ * ```json
58
+ * {
59
+ * "object": "list",
60
+ * "data": [
61
+ * {
62
+ * "object": "conversation",
63
+ * "id": "12345",
64
+ * "title": "Question about pricing",
65
+ * "state": "open",
66
+ * "priority": false,
67
+ * "adminAssigneeId": null,
68
+ * "participants": [
69
+ * { "type": "customer", "id": "676f0f6765bdaa7d7d760f88" }
70
+ * ],
71
+ * ...
72
+ * }
73
+ * ],
74
+ * "nextCursor": "eyJpZCI6IjEyMzQ1In0="
75
+ * }
76
+ * ```
77
+ *
78
+ * ### Version Availability
79
+ *
80
+ * This endpoint is only available in API version 2026-01-01.nova and newer.
81
+ *
82
+ * @example
83
+ * ```ts
84
+ * // Automatically fetches more pages as needed.
85
+ * for await (const conversation of client.support.conversations.list()) {
86
+ * // ...
87
+ * }
88
+ * ```
89
+ */
90
+ list(params = {}, options) {
91
+ const { 'Featurebase-Version': featurebaseVersion, ...query } = params ?? {};
92
+ return this._client.getAPIList('/v2/conversations', (pagination_1.CursorPage), {
93
+ query,
94
+ ...options,
95
+ headers: (0, headers_1.buildHeaders)([
96
+ {
97
+ ...(featurebaseVersion?.toString() != null ?
98
+ { 'Featurebase-Version': featurebaseVersion?.toString() }
99
+ : undefined),
100
+ },
101
+ options?.headers,
102
+ ]),
103
+ });
104
+ }
20
105
  /**
21
106
  * Creates a new conversation. Supports both contact-initiated (customer/lead) and
22
107
  * admin-initiated (outreach) conversations.
@@ -270,8 +355,57 @@ class Conversations extends resource_1.APIResource {
270
355
  * ```
271
356
  */
272
357
  retrieve(id, params = {}, options) {
273
- const { 'Featurebase-Version': featurebaseVersion } = params ?? {};
358
+ const { 'Featurebase-Version': featurebaseVersion, ...query } = params ?? {};
274
359
  return this._client.get((0, path_1.path) `/v2/conversations/${id}`, {
360
+ query,
361
+ ...options,
362
+ headers: (0, headers_1.buildHeaders)([
363
+ {
364
+ ...(featurebaseVersion?.toString() != null ?
365
+ { 'Featurebase-Version': featurebaseVersion?.toString() }
366
+ : undefined),
367
+ },
368
+ options?.headers,
369
+ ]),
370
+ });
371
+ }
372
+ /**
373
+ * Permanently deletes a conversation by its short ID.
374
+ *
375
+ * ### Path Parameters
376
+ *
377
+ * - `id` - The conversation short ID (numeric)
378
+ *
379
+ * ### Response
380
+ *
381
+ * Returns a deletion confirmation object:
382
+ *
383
+ * ```json
384
+ * {
385
+ * "id": "12345",
386
+ * "object": "conversation",
387
+ * "deleted": true
388
+ * }
389
+ * ```
390
+ *
391
+ * ### Caution
392
+ *
393
+ * This operation is **irreversible**. The conversation and all its messages will
394
+ * be permanently deleted.
395
+ *
396
+ * ### Version Availability
397
+ *
398
+ * This endpoint is only available in API version 2026-01-01.nova and newer.
399
+ *
400
+ * @example
401
+ * ```ts
402
+ * const conversation =
403
+ * await client.support.conversations.delete('12345');
404
+ * ```
405
+ */
406
+ delete(id, params = {}, options) {
407
+ const { 'Featurebase-Version': featurebaseVersion } = params ?? {};
408
+ return this._client.delete((0, path_1.path) `/v2/conversations/${id}`, {
275
409
  ...options,
276
410
  headers: (0, headers_1.buildHeaders)([
277
411
  {
@@ -303,7 +437,7 @@ class Conversations extends resource_1.APIResource {
303
437
  * | `adminAssigneeId` | string/null | Admin ID to assign, or null to unassign |
304
438
  * | `teamAssigneeId` | string/null | Team ID to assign, or null to unassign |
305
439
  * | `title` | string | Conversation title |
306
- * | `customAttributes` | object | Custom attributes to set on the conversation |
440
+ * | `customAttributes` | object | Custom attributes to set on the conversation, keyed by conversation custom attribute ID |
307
441
  * | `markAsRead` | object | Mark conversation as read for specific users |
308
442
  *
309
443
  * ### markAsRead Object
@@ -363,8 +497,8 @@ class Conversations extends resource_1.APIResource {
363
497
  * {
364
498
  * "title": "Billing Issue - Priority",
365
499
  * "customAttributes": {
366
- * "priority_level": "high",
367
- * "category": "billing"
500
+ * "507f1f77bcf86cd799439011": 10,
501
+ * "507f1f77bcf86cd799439012": true
368
502
  * }
369
503
  * }
370
504
  * ```
@@ -426,172 +560,97 @@ class Conversations extends resource_1.APIResource {
426
560
  });
427
561
  }
428
562
  /**
429
- * Returns a list of conversations in your organization using cursor-based
430
- * pagination.
563
+ * Adds a reply to an existing conversation. Supports both contact (customer/lead)
564
+ * and admin replies.
431
565
  *
432
- * ### Query Parameters
566
+ * ### Path Parameters
433
567
  *
434
- * - `limit` - Number of conversations to return (1-100, default 10)
435
- * - `cursor` - Cursor from previous response for pagination
436
- * - `tagIds` - Optional tag filter as a comma-separated list of tag IDs. Matches
437
- * conversations that contain all of the provided tags.
568
+ * - `id` - The conversation ID (short ID)
438
569
  *
439
- * ### Response Format
570
+ * ### Request Body
440
571
  *
441
- * Returns a list object with:
572
+ * The request body varies based on who is sending the reply:
442
573
  *
443
- * - `object` - Always "list"
444
- * - `data` - Array of conversation objects
445
- * - `nextCursor` - Cursor for the next page, or null if no more results
574
+ * #### Contact Reply (customer/lead)
446
575
  *
447
- * ### Conversation Object
576
+ * | Field | Type | Required | Description |
577
+ * | ------------------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------- |
578
+ * | `type` | string | Yes | Must be "contact" |
579
+ * | `userId` | string | No\* | External user ID from your system |
580
+ * | `id` | string | No\* | Featurebase contact ID (24-character ObjectId) |
581
+ * | `bodyMarkdown` | string | Yes | The message content in markdown format. Images referenced by URL or as base64 data URIs will be automatically uploaded and stored. |
582
+ * | `messageType` | string | Yes | Must be "reply" |
583
+ * | `skipNotifications` | boolean | No | Skip sending notifications (default: false). Useful for bulk imports. |
448
584
  *
449
- * Each conversation includes:
585
+ * \*At least one of `userId` or `id` is required.
450
586
  *
451
- * - `id` - Unique conversation identifier (short ID)
452
- * - `title` - Conversation title
453
- * - `state` - Current state ("open", "closed", or "snoozed")
454
- * - `priority` - Whether the conversation is marked as priority
455
- * - `adminAssigneeId` - ID of assigned admin (if any)
456
- * - `teamAssigneeId` - ID of assigned team (if any)
457
- * - `tags` - Current tags applied anywhere in the conversation
458
- * - `participants` - Array of participants
459
- * - `source` - Information about the first message
460
- * - `createdAt` - Creation timestamp
461
- * - `updatedAt` - Last update timestamp
587
+ * #### Admin Reply
462
588
  *
463
- * ### Example
589
+ * | Field | Type | Required | Description |
590
+ * | ------------------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------- |
591
+ * | `type` | string | Yes | Must be "admin" |
592
+ * | `id` | string | Yes | Featurebase admin ID (24-character ObjectId) |
593
+ * | `bodyMarkdown` | string | Yes | The message content in markdown format. Images referenced by URL or as base64 data URIs will be automatically uploaded and stored. |
594
+ * | `messageType` | string | Yes | "reply" for customer-visible reply, "note" for internal note |
595
+ * | `skipNotifications` | boolean | No | Skip sending notifications (default: false). Useful for bulk imports. |
596
+ *
597
+ * ### Response
598
+ *
599
+ * Returns the created conversation part object with a **201 Created** status. The
600
+ * response includes both `bodyHtml` (with signed image URLs) and `bodyMarkdown`
601
+ * fields.
602
+ *
603
+ * ### Example Contact Reply
464
604
  *
465
605
  * ```json
466
606
  * {
467
- * "object": "list",
468
- * "data": [
469
- * {
470
- * "object": "conversation",
471
- * "id": "12345",
472
- * "title": "Question about pricing",
473
- * "state": "open",
474
- * "priority": false,
475
- * "adminAssigneeId": null,
476
- * "participants": [
477
- * { "type": "customer", "id": "676f0f6765bdaa7d7d760f88" }
478
- * ],
479
- * ...
480
- * }
481
- * ],
482
- * "nextCursor": "eyJpZCI6IjEyMzQ1In0="
607
+ * "type": "contact",
608
+ * "userId": "user_123",
609
+ * "bodyMarkdown": "Thank you for your help!",
610
+ * "messageType": "reply"
483
611
  * }
484
612
  * ```
485
613
  *
486
- * ### Version Availability
487
- *
488
- * This endpoint is only available in API version 2026-01-01.nova and newer.
614
+ * ### Example Admin Reply
489
615
  *
490
- * @example
491
- * ```ts
492
- * // Automatically fetches more pages as needed.
493
- * for await (const conversation of client.support.conversations.list()) {
494
- * // ...
616
+ * ```json
617
+ * {
618
+ * "type": "admin",
619
+ * "id": "507f1f77bcf86cd799439011",
620
+ * "bodyMarkdown": "I'm happy to help! Here's what you need to do...",
621
+ * "messageType": "reply"
495
622
  * }
496
623
  * ```
497
- */
498
- list(params = {}, options) {
499
- const { 'Featurebase-Version': featurebaseVersion, ...query } = params ?? {};
500
- return this._client.getAPIList('/v2/conversations', (pagination_1.CursorPage), {
501
- query,
502
- ...options,
503
- headers: (0, headers_1.buildHeaders)([
504
- {
505
- ...(featurebaseVersion?.toString() != null ?
506
- { 'Featurebase-Version': featurebaseVersion?.toString() }
507
- : undefined),
508
- },
509
- options?.headers,
510
- ]),
511
- });
512
- }
513
- /**
514
- * Permanently deletes a conversation by its short ID.
515
- *
516
- * ### Path Parameters
517
- *
518
- * - `id` - The conversation short ID (numeric)
519
- *
520
- * ### Response
521
624
  *
522
- * Returns a deletion confirmation object:
625
+ * ### Example Admin Note (Internal)
523
626
  *
524
627
  * ```json
525
628
  * {
526
- * "id": "12345",
527
- * "object": "conversation",
528
- * "deleted": true
629
+ * "type": "admin",
630
+ * "id": "507f1f77bcf86cd799439011",
631
+ * "bodyMarkdown": "Customer seems frustrated, escalating to tier 2.",
632
+ * "messageType": "note"
529
633
  * }
530
634
  * ```
531
635
  *
532
- * ### Caution
533
- *
534
- * This operation is **irreversible**. The conversation and all its messages will
535
- * be permanently deleted.
536
- *
537
- * ### Version Availability
538
- *
539
- * This endpoint is only available in API version 2026-01-01.nova and newer.
540
- *
541
- * @example
542
- * ```ts
543
- * const conversation =
544
- * await client.support.conversations.delete('12345');
545
- * ```
546
- */
547
- delete(id, params = {}, options) {
548
- const { 'Featurebase-Version': featurebaseVersion } = params ?? {};
549
- return this._client.delete((0, path_1.path) `/v2/conversations/${id}`, {
550
- ...options,
551
- headers: (0, headers_1.buildHeaders)([
552
- {
553
- ...(featurebaseVersion?.toString() != null ?
554
- { 'Featurebase-Version': featurebaseVersion?.toString() }
555
- : undefined),
556
- },
557
- options?.headers,
558
- ]),
559
- });
560
- }
561
- /**
562
- * Attaches a workspace tag to a conversation.
563
- *
564
- * This endpoint requires both the tag ID to attach and the `actingAdminId` of the
565
- * admin on whose behalf the mutation is recorded.
566
- *
567
- * ### Path Parameters
568
- *
569
- * - `id` - The conversation ID (short ID)
570
- *
571
- * ### Request Body
572
- *
573
- * | Field | Type | Required | Description |
574
- * | --------------- | ------ | -------- | ------------------------------------------------------------------------ |
575
- * | `tagId` | string | Yes | The Featurebase tag ID to attach |
576
- * | `actingAdminId` | string | Yes | The admin performing the mutation. Must be a member of the organization. |
577
- *
578
- * ### Behavior
579
- *
580
- * Featurebase resolves the latest taggable reply/message in the conversation and
581
- * records the tag attachment against that part so audit metadata remains
582
- * deterministic.
583
- *
584
- * ### Response
585
- *
586
- * Returns the affected tag plus attachment metadata such as `targetPartId`,
587
- * `appliedAt`, and `appliedBy`.
588
- *
589
- * ### Example Request
636
+ * ### Example Response
590
637
  *
591
638
  * ```json
592
639
  * {
593
- * "tagId": "67ec1234abcd5678ef901234",
594
- * "actingAdminId": "507f1f77bcf86cd799439011"
640
+ * "object": "conversation_part",
641
+ * "id": "3",
642
+ * "partType": "user_msg",
643
+ * "bodyHtml": "<p>Thank you for your help!</p>",
644
+ * "bodyMarkdown": "Thank you for your help!",
645
+ * "author": {
646
+ * "type": "customer",
647
+ * "id": "676f0f6765bdaa7d7d760f88",
648
+ * "name": "John Doe",
649
+ * "email": "john@example.com"
650
+ * },
651
+ * "channel": "desktop",
652
+ * "createdAt": "2025-01-15T10:40:00.000Z",
653
+ * "updatedAt": "2025-01-15T10:40:00.000Z"
595
654
  * }
596
655
  * ```
597
656
  *
@@ -601,83 +660,17 @@ class Conversations extends resource_1.APIResource {
601
660
  *
602
661
  * @example
603
662
  * ```ts
604
- * const response =
605
- * await client.support.conversations.attachTag('12345', {
606
- * actingAdminId: '507f1f77bcf86cd799439011',
607
- * tagId: '67ec1234abcd5678ef901234',
663
+ * const conversationPart =
664
+ * await client.support.conversations.reply('12345', {
665
+ * bodyMarkdown: 'Thank you for your help!',
666
+ * messageType: 'reply',
667
+ * type: 'contact',
608
668
  * });
609
669
  * ```
610
670
  */
611
- attachTag(id, params, options) {
671
+ reply(id, params, options) {
612
672
  const { 'Featurebase-Version': featurebaseVersion, ...body } = params;
613
- return this._client.post((0, path_1.path) `/v2/conversations/${id}/tags`, {
614
- body,
615
- ...options,
616
- headers: (0, headers_1.buildHeaders)([
617
- {
618
- ...(featurebaseVersion?.toString() != null ?
619
- { 'Featurebase-Version': featurebaseVersion?.toString() }
620
- : undefined),
621
- },
622
- options?.headers,
623
- ]),
624
- });
625
- }
626
- /**
627
- * Removes a workspace tag from a conversation.
628
- *
629
- * This endpoint requires the `actingAdminId` of the admin on whose behalf the
630
- * mutation is recorded.
631
- *
632
- * ### Path Parameters
633
- *
634
- * - `id` - The conversation ID (short ID)
635
- * - `tagId` - The Featurebase tag ID to remove
636
- *
637
- * ### Request Body
638
- *
639
- * | Field | Type | Required | Description |
640
- * | --------------- | ------ | -------- | ------------------------------------------------------------------------ |
641
- * | `actingAdminId` | string | Yes | The admin performing the mutation. Must be a member of the organization. |
642
- *
643
- * ### Behavior
644
- *
645
- * Featurebase resolves the latest taggable reply/message in the conversation and
646
- * records the tag removal against that part so audit metadata remains
647
- * deterministic.
648
- *
649
- * ### Response
650
- *
651
- * Returns the affected tag payload with the most relevant attachment metadata
652
- * available for that relationship.
653
- *
654
- * ### Example Request
655
- *
656
- * ```json
657
- * {
658
- * "actingAdminId": "507f1f77bcf86cd799439011"
659
- * }
660
- * ```
661
- *
662
- * ### Version Availability
663
- *
664
- * This endpoint is only available in API version 2026-01-01.nova and newer.
665
- *
666
- * @example
667
- * ```ts
668
- * const response =
669
- * await client.support.conversations.detachTag(
670
- * '67ec1234abcd5678ef901234',
671
- * {
672
- * id: '12345',
673
- * actingAdminId: '507f1f77bcf86cd799439011',
674
- * },
675
- * );
676
- * ```
677
- */
678
- detachTag(tagID, params, options) {
679
- const { id, 'Featurebase-Version': featurebaseVersion, ...body } = params;
680
- return this._client.delete((0, path_1.path) `/v2/conversations/${id}/tags/${tagID}`, {
673
+ return this._client.post((0, path_1.path) `/v2/conversations/${id}/reply`, {
681
674
  body,
682
675
  ...options,
683
676
  headers: (0, headers_1.buildHeaders)([
@@ -784,8 +777,10 @@ class Conversations extends resource_1.APIResource {
784
777
  });
785
778
  }
786
779
  /**
787
- * Adds a reply to an existing conversation. Supports both contact (customer/lead)
788
- * and admin replies.
780
+ * Attaches a workspace tag to a conversation.
781
+ *
782
+ * This endpoint requires both the tag ID to attach and the `actingAdminId` of the
783
+ * admin on whose behalf the mutation is recorded.
789
784
  *
790
785
  * ### Path Parameters
791
786
  *
@@ -793,88 +788,92 @@ class Conversations extends resource_1.APIResource {
793
788
  *
794
789
  * ### Request Body
795
790
  *
796
- * The request body varies based on who is sending the reply:
797
- *
798
- * #### Contact Reply (customer/lead)
799
- *
800
- * | Field | Type | Required | Description |
801
- * | ------------------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------- |
802
- * | `type` | string | Yes | Must be "contact" |
803
- * | `userId` | string | No\* | External user ID from your system |
804
- * | `id` | string | No\* | Featurebase contact ID (24-character ObjectId) |
805
- * | `bodyMarkdown` | string | Yes | The message content in markdown format. Images referenced by URL or as base64 data URIs will be automatically uploaded and stored. |
806
- * | `messageType` | string | Yes | Must be "reply" |
807
- * | `skipNotifications` | boolean | No | Skip sending notifications (default: false). Useful for bulk imports. |
808
- *
809
- * \*At least one of `userId` or `id` is required.
791
+ * | Field | Type | Required | Description |
792
+ * | --------------- | ------ | -------- | ------------------------------------------------------------------------ |
793
+ * | `tagId` | string | Yes | The Featurebase tag ID to attach |
794
+ * | `actingAdminId` | string | Yes | The admin performing the mutation. Must be a member of the organization. |
810
795
  *
811
- * #### Admin Reply
796
+ * ### Behavior
812
797
  *
813
- * | Field | Type | Required | Description |
814
- * | ------------------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------- |
815
- * | `type` | string | Yes | Must be "admin" |
816
- * | `id` | string | Yes | Featurebase admin ID (24-character ObjectId) |
817
- * | `bodyMarkdown` | string | Yes | The message content in markdown format. Images referenced by URL or as base64 data URIs will be automatically uploaded and stored. |
818
- * | `messageType` | string | Yes | "reply" for customer-visible reply, "note" for internal note |
819
- * | `skipNotifications` | boolean | No | Skip sending notifications (default: false). Useful for bulk imports. |
798
+ * Featurebase resolves the latest taggable reply/message in the conversation and
799
+ * records the tag attachment against that part so audit metadata remains
800
+ * deterministic.
820
801
  *
821
802
  * ### Response
822
803
  *
823
- * Returns the created conversation part object with a **201 Created** status. The
824
- * response includes both `bodyHtml` (with signed image URLs) and `bodyMarkdown`
825
- * fields.
804
+ * Returns the affected tag plus attachment metadata such as `targetPartId`,
805
+ * `appliedAt`, and `appliedBy`.
826
806
  *
827
- * ### Example Contact Reply
807
+ * ### Example Request
828
808
  *
829
809
  * ```json
830
810
  * {
831
- * "type": "contact",
832
- * "userId": "user_123",
833
- * "bodyMarkdown": "Thank you for your help!",
834
- * "messageType": "reply"
811
+ * "tagId": "67ec1234abcd5678ef901234",
812
+ * "actingAdminId": "507f1f77bcf86cd799439011"
835
813
  * }
836
814
  * ```
837
815
  *
838
- * ### Example Admin Reply
816
+ * ### Version Availability
839
817
  *
840
- * ```json
841
- * {
842
- * "type": "admin",
843
- * "id": "507f1f77bcf86cd799439011",
844
- * "bodyMarkdown": "I'm happy to help! Here's what you need to do...",
845
- * "messageType": "reply"
846
- * }
818
+ * This endpoint is only available in API version 2026-01-01.nova and newer.
819
+ *
820
+ * @example
821
+ * ```ts
822
+ * const attachedConversationTag =
823
+ * await client.support.conversations.attachTag('12345', {
824
+ * actingAdminId: '507f1f77bcf86cd799439011',
825
+ * tagId: '67ec1234abcd5678ef901234',
826
+ * });
847
827
  * ```
828
+ */
829
+ attachTag(id, params, options) {
830
+ const { 'Featurebase-Version': featurebaseVersion, ...body } = params;
831
+ return this._client.post((0, path_1.path) `/v2/conversations/${id}/tags`, {
832
+ body,
833
+ ...options,
834
+ headers: (0, headers_1.buildHeaders)([
835
+ {
836
+ ...(featurebaseVersion?.toString() != null ?
837
+ { 'Featurebase-Version': featurebaseVersion?.toString() }
838
+ : undefined),
839
+ },
840
+ options?.headers,
841
+ ]),
842
+ });
843
+ }
844
+ /**
845
+ * Removes a workspace tag from a conversation.
848
846
  *
849
- * ### Example Admin Note (Internal)
847
+ * This endpoint requires the `actingAdminId` of the admin on whose behalf the
848
+ * mutation is recorded.
850
849
  *
851
- * ```json
852
- * {
853
- * "type": "admin",
854
- * "id": "507f1f77bcf86cd799439011",
855
- * "bodyMarkdown": "Customer seems frustrated, escalating to tier 2.",
856
- * "messageType": "note"
857
- * }
858
- * ```
850
+ * ### Path Parameters
859
851
  *
860
- * ### Example Response
852
+ * - `id` - The conversation ID (short ID)
853
+ * - `tagId` - The Featurebase tag ID to remove
854
+ *
855
+ * ### Request Body
856
+ *
857
+ * | Field | Type | Required | Description |
858
+ * | --------------- | ------ | -------- | ------------------------------------------------------------------------ |
859
+ * | `actingAdminId` | string | Yes | The admin performing the mutation. Must be a member of the organization. |
860
+ *
861
+ * ### Behavior
862
+ *
863
+ * Featurebase resolves the latest taggable reply/message in the conversation and
864
+ * records the tag removal against that part so audit metadata remains
865
+ * deterministic.
866
+ *
867
+ * ### Response
868
+ *
869
+ * Returns the affected tag payload with the most relevant attachment metadata
870
+ * available for that relationship.
871
+ *
872
+ * ### Example Request
861
873
  *
862
874
  * ```json
863
875
  * {
864
- * "object": "conversation_part",
865
- * "id": "3",
866
- * "partType": "user_msg",
867
- * "bodyHtml": "<p>Thank you for your help!</p>",
868
- * "bodyMarkdown": "Thank you for your help!",
869
- * "author": {
870
- * "type": "customer",
871
- * "id": "676f0f6765bdaa7d7d760f88",
872
- * "name": "John Doe",
873
- * "email": "john@example.com"
874
- * },
875
- * "channel": "desktop",
876
- * "createdAt": "2025-01-15T10:40:00.000Z",
877
- * "updatedAt": "2025-01-15T10:40:00.000Z"
876
+ * "actingAdminId": "507f1f77bcf86cd799439011"
878
877
  * }
879
878
  * ```
880
879
  *
@@ -884,17 +883,19 @@ class Conversations extends resource_1.APIResource {
884
883
  *
885
884
  * @example
886
885
  * ```ts
887
- * const conversationPart =
888
- * await client.support.conversations.reply('12345', {
889
- * bodyMarkdown: 'Thank you for your help!',
890
- * messageType: 'reply',
891
- * type: 'contact',
892
- * });
886
+ * const attachedConversationTag =
887
+ * await client.support.conversations.detachTag(
888
+ * '67ec1234abcd5678ef901234',
889
+ * {
890
+ * id: '12345',
891
+ * actingAdminId: '507f1f77bcf86cd799439011',
892
+ * },
893
+ * );
893
894
  * ```
894
895
  */
895
- reply(id, params, options) {
896
- const { 'Featurebase-Version': featurebaseVersion, ...body } = params;
897
- return this._client.post((0, path_1.path) `/v2/conversations/${id}/reply`, {
896
+ detachTag(tagID, params, options) {
897
+ const { id, 'Featurebase-Version': featurebaseVersion, ...body } = params;
898
+ return this._client.delete((0, path_1.path) `/v2/conversations/${id}/tags/${tagID}`, {
898
899
  body,
899
900
  ...options,
900
901
  headers: (0, headers_1.buildHeaders)([