featurebase-node 0.12.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 (501) hide show
  1. package/CHANGELOG.md +37 -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.js +2 -0
  75. package/internal/utils/log.js.map +1 -1
  76. package/internal/utils/log.mjs +2 -0
  77. package/internal/utils/log.mjs.map +1 -1
  78. package/internal/utils/path.mjs.map +1 -1
  79. package/internal/utils/query.mjs.map +1 -1
  80. package/internal/utils/values.mjs.map +1 -1
  81. package/internal/utils.d.mts.map +1 -1
  82. package/internal/utils.d.ts.map +1 -1
  83. package/internal/utils.mjs.map +1 -1
  84. package/package.json +16 -10
  85. package/pagination.d.mts +1 -0
  86. package/pagination.d.mts.map +1 -1
  87. package/pagination.d.ts +1 -0
  88. package/pagination.d.ts.map +1 -1
  89. package/pagination.mjs +1 -0
  90. package/pagination.mjs.map +1 -1
  91. package/resource.d.mts +1 -0
  92. package/resource.d.mts.map +1 -1
  93. package/resource.d.ts +1 -0
  94. package/resource.d.ts.map +1 -1
  95. package/resource.mjs +1 -0
  96. package/resource.mjs.map +1 -1
  97. package/resources/changelogs/changelogs.d.mts +106 -106
  98. package/resources/changelogs/changelogs.d.mts.map +1 -1
  99. package/resources/changelogs/changelogs.d.ts +106 -106
  100. package/resources/changelogs/changelogs.d.ts.map +1 -1
  101. package/resources/changelogs/changelogs.js +74 -74
  102. package/resources/changelogs/changelogs.js.map +1 -1
  103. package/resources/changelogs/changelogs.mjs +74 -74
  104. package/resources/changelogs/changelogs.mjs.map +1 -1
  105. package/resources/changelogs/index.d.mts +1 -1
  106. package/resources/changelogs/index.d.mts.map +1 -1
  107. package/resources/changelogs/index.d.ts +1 -1
  108. package/resources/changelogs/index.d.ts.map +1 -1
  109. package/resources/changelogs/index.mjs.map +1 -1
  110. package/resources/changelogs/subscribers.d.mts.map +1 -1
  111. package/resources/changelogs/subscribers.d.ts.map +1 -1
  112. package/resources/changelogs/subscribers.mjs.map +1 -1
  113. package/resources/changelogs.d.mts.map +1 -1
  114. package/resources/changelogs.d.ts.map +1 -1
  115. package/resources/changelogs.mjs.map +1 -1
  116. package/resources/conversation-attributes.d.mts +117 -0
  117. package/resources/conversation-attributes.d.mts.map +1 -0
  118. package/resources/conversation-attributes.d.ts +117 -0
  119. package/resources/conversation-attributes.d.ts.map +1 -0
  120. package/resources/conversation-attributes.js +61 -0
  121. package/resources/conversation-attributes.js.map +1 -0
  122. package/resources/conversation-attributes.mjs +57 -0
  123. package/resources/conversation-attributes.mjs.map +1 -0
  124. package/resources/feedback/boards.d.mts +17 -17
  125. package/resources/feedback/boards.d.mts.map +1 -1
  126. package/resources/feedback/boards.d.ts +17 -17
  127. package/resources/feedback/boards.d.ts.map +1 -1
  128. package/resources/feedback/boards.js +20 -20
  129. package/resources/feedback/boards.js.map +1 -1
  130. package/resources/feedback/boards.mjs +20 -20
  131. package/resources/feedback/boards.mjs.map +1 -1
  132. package/resources/feedback/comments.d.mts +400 -123
  133. package/resources/feedback/comments.d.mts.map +1 -1
  134. package/resources/feedback/comments.d.ts +400 -123
  135. package/resources/feedback/comments.d.ts.map +1 -1
  136. package/resources/feedback/comments.js +253 -93
  137. package/resources/feedback/comments.js.map +1 -1
  138. package/resources/feedback/comments.mjs +253 -93
  139. package/resources/feedback/comments.mjs.map +1 -1
  140. package/resources/feedback/custom-fields.d.mts +34 -34
  141. package/resources/feedback/custom-fields.d.mts.map +1 -1
  142. package/resources/feedback/custom-fields.d.ts +34 -34
  143. package/resources/feedback/custom-fields.d.ts.map +1 -1
  144. package/resources/feedback/custom-fields.js +36 -36
  145. package/resources/feedback/custom-fields.js.map +1 -1
  146. package/resources/feedback/custom-fields.mjs +36 -36
  147. package/resources/feedback/custom-fields.mjs.map +1 -1
  148. package/resources/feedback/feedback.d.mts +7 -7
  149. package/resources/feedback/feedback.d.mts.map +1 -1
  150. package/resources/feedback/feedback.d.ts +7 -7
  151. package/resources/feedback/feedback.d.ts.map +1 -1
  152. package/resources/feedback/feedback.js.map +1 -1
  153. package/resources/feedback/feedback.mjs.map +1 -1
  154. package/resources/feedback/index.d.mts +5 -5
  155. package/resources/feedback/index.d.mts.map +1 -1
  156. package/resources/feedback/index.d.ts +5 -5
  157. package/resources/feedback/index.d.ts.map +1 -1
  158. package/resources/feedback/index.js.map +1 -1
  159. package/resources/feedback/index.mjs.map +1 -1
  160. package/resources/feedback/post-statuses.d.mts +18 -18
  161. package/resources/feedback/post-statuses.d.mts.map +1 -1
  162. package/resources/feedback/post-statuses.d.ts +18 -18
  163. package/resources/feedback/post-statuses.d.ts.map +1 -1
  164. package/resources/feedback/post-statuses.js +23 -23
  165. package/resources/feedback/post-statuses.js.map +1 -1
  166. package/resources/feedback/post-statuses.mjs +23 -23
  167. package/resources/feedback/post-statuses.mjs.map +1 -1
  168. package/resources/feedback/posts/index.d.mts +1 -1
  169. package/resources/feedback/posts/index.d.mts.map +1 -1
  170. package/resources/feedback/posts/index.d.ts +1 -1
  171. package/resources/feedback/posts/index.d.ts.map +1 -1
  172. package/resources/feedback/posts/index.js.map +1 -1
  173. package/resources/feedback/posts/index.mjs.map +1 -1
  174. package/resources/feedback/posts/posts.d.mts +238 -284
  175. package/resources/feedback/posts/posts.d.mts.map +1 -1
  176. package/resources/feedback/posts/posts.d.ts +238 -284
  177. package/resources/feedback/posts/posts.d.ts.map +1 -1
  178. package/resources/feedback/posts/posts.js +122 -96
  179. package/resources/feedback/posts/posts.js.map +1 -1
  180. package/resources/feedback/posts/posts.mjs +122 -96
  181. package/resources/feedback/posts/posts.mjs.map +1 -1
  182. package/resources/feedback/posts/voters.d.mts.map +1 -1
  183. package/resources/feedback/posts/voters.d.ts.map +1 -1
  184. package/resources/feedback/posts/voters.mjs.map +1 -1
  185. package/resources/feedback/posts.d.mts.map +1 -1
  186. package/resources/feedback/posts.d.ts.map +1 -1
  187. package/resources/feedback/posts.mjs.map +1 -1
  188. package/resources/feedback.d.mts.map +1 -1
  189. package/resources/feedback.d.ts.map +1 -1
  190. package/resources/feedback.mjs.map +1 -1
  191. package/resources/help-center/articles.d.mts +98 -152
  192. package/resources/help-center/articles.d.mts.map +1 -1
  193. package/resources/help-center/articles.d.ts +98 -152
  194. package/resources/help-center/articles.d.ts.map +1 -1
  195. package/resources/help-center/articles.js +73 -73
  196. package/resources/help-center/articles.js.map +1 -1
  197. package/resources/help-center/articles.mjs +73 -73
  198. package/resources/help-center/articles.mjs.map +1 -1
  199. package/resources/help-center/collections.d.mts +64 -64
  200. package/resources/help-center/collections.d.mts.map +1 -1
  201. package/resources/help-center/collections.d.ts +64 -64
  202. package/resources/help-center/collections.d.ts.map +1 -1
  203. package/resources/help-center/collections.js +65 -65
  204. package/resources/help-center/collections.js.map +1 -1
  205. package/resources/help-center/collections.mjs +65 -65
  206. package/resources/help-center/collections.mjs.map +1 -1
  207. package/resources/help-center/help-center.d.mts +5 -5
  208. package/resources/help-center/help-center.d.mts.map +1 -1
  209. package/resources/help-center/help-center.d.ts +5 -5
  210. package/resources/help-center/help-center.d.ts.map +1 -1
  211. package/resources/help-center/help-center.js.map +1 -1
  212. package/resources/help-center/help-center.mjs.map +1 -1
  213. package/resources/help-center/help-centers.d.mts +43 -43
  214. package/resources/help-center/help-centers.d.mts.map +1 -1
  215. package/resources/help-center/help-centers.d.ts +43 -43
  216. package/resources/help-center/help-centers.d.ts.map +1 -1
  217. package/resources/help-center/help-centers.js +43 -43
  218. package/resources/help-center/help-centers.js.map +1 -1
  219. package/resources/help-center/help-centers.mjs +43 -43
  220. package/resources/help-center/help-centers.mjs.map +1 -1
  221. package/resources/help-center/index.d.mts +4 -4
  222. package/resources/help-center/index.d.mts.map +1 -1
  223. package/resources/help-center/index.d.ts +4 -4
  224. package/resources/help-center/index.d.ts.map +1 -1
  225. package/resources/help-center/index.js.map +1 -1
  226. package/resources/help-center/index.mjs.map +1 -1
  227. package/resources/help-center/redirect-rules.d.mts +117 -117
  228. package/resources/help-center/redirect-rules.d.mts.map +1 -1
  229. package/resources/help-center/redirect-rules.d.ts +117 -117
  230. package/resources/help-center/redirect-rules.d.ts.map +1 -1
  231. package/resources/help-center/redirect-rules.js +112 -112
  232. package/resources/help-center/redirect-rules.js.map +1 -1
  233. package/resources/help-center/redirect-rules.mjs +112 -112
  234. package/resources/help-center/redirect-rules.mjs.map +1 -1
  235. package/resources/help-center.d.mts.map +1 -1
  236. package/resources/help-center.d.ts.map +1 -1
  237. package/resources/help-center.mjs.map +1 -1
  238. package/resources/index.d.mts +4 -3
  239. package/resources/index.d.mts.map +1 -1
  240. package/resources/index.d.ts +4 -3
  241. package/resources/index.d.ts.map +1 -1
  242. package/resources/index.js +3 -1
  243. package/resources/index.js.map +1 -1
  244. package/resources/index.mjs +1 -0
  245. package/resources/index.mjs.map +1 -1
  246. package/resources/organization/admins.d.mts +23 -23
  247. package/resources/organization/admins.d.mts.map +1 -1
  248. package/resources/organization/admins.d.ts +23 -23
  249. package/resources/organization/admins.d.ts.map +1 -1
  250. package/resources/organization/admins.js +25 -25
  251. package/resources/organization/admins.js.map +1 -1
  252. package/resources/organization/admins.mjs +25 -25
  253. package/resources/organization/admins.mjs.map +1 -1
  254. package/resources/organization/brands.d.mts +50 -50
  255. package/resources/organization/brands.d.mts.map +1 -1
  256. package/resources/organization/brands.d.ts +50 -50
  257. package/resources/organization/brands.d.ts.map +1 -1
  258. package/resources/organization/brands.js +54 -54
  259. package/resources/organization/brands.js.map +1 -1
  260. package/resources/organization/brands.mjs +54 -54
  261. package/resources/organization/brands.mjs.map +1 -1
  262. package/resources/organization/index.d.mts +3 -3
  263. package/resources/organization/index.d.mts.map +1 -1
  264. package/resources/organization/index.d.ts +3 -3
  265. package/resources/organization/index.d.ts.map +1 -1
  266. package/resources/organization/index.mjs.map +1 -1
  267. package/resources/organization/organization.d.mts +3 -3
  268. package/resources/organization/organization.d.mts.map +1 -1
  269. package/resources/organization/organization.d.ts +3 -3
  270. package/resources/organization/organization.d.ts.map +1 -1
  271. package/resources/organization/organization.mjs.map +1 -1
  272. package/resources/organization/teams.d.mts +45 -45
  273. package/resources/organization/teams.d.mts.map +1 -1
  274. package/resources/organization/teams.d.ts +45 -45
  275. package/resources/organization/teams.d.ts.map +1 -1
  276. package/resources/organization/teams.js +44 -44
  277. package/resources/organization/teams.js.map +1 -1
  278. package/resources/organization/teams.mjs +44 -44
  279. package/resources/organization/teams.mjs.map +1 -1
  280. package/resources/organization.d.mts.map +1 -1
  281. package/resources/organization.d.ts.map +1 -1
  282. package/resources/organization.mjs.map +1 -1
  283. package/resources/support/conversation-tags.d.mts +40 -40
  284. package/resources/support/conversation-tags.d.mts.map +1 -1
  285. package/resources/support/conversation-tags.d.ts +40 -40
  286. package/resources/support/conversation-tags.d.ts.map +1 -1
  287. package/resources/support/conversation-tags.js +32 -32
  288. package/resources/support/conversation-tags.js.map +1 -1
  289. package/resources/support/conversation-tags.mjs +32 -32
  290. package/resources/support/conversation-tags.mjs.map +1 -1
  291. package/resources/support/conversations/conversations.d.mts +624 -722
  292. package/resources/support/conversations/conversations.d.mts.map +1 -1
  293. package/resources/support/conversations/conversations.d.ts +624 -722
  294. package/resources/support/conversations/conversations.d.ts.map +1 -1
  295. package/resources/support/conversations/conversations.js +309 -302
  296. package/resources/support/conversations/conversations.js.map +1 -1
  297. package/resources/support/conversations/conversations.mjs +309 -302
  298. package/resources/support/conversations/conversations.mjs.map +1 -1
  299. package/resources/support/conversations/index.d.mts +1 -1
  300. package/resources/support/conversations/index.d.mts.map +1 -1
  301. package/resources/support/conversations/index.d.ts +1 -1
  302. package/resources/support/conversations/index.d.ts.map +1 -1
  303. package/resources/support/conversations/index.js.map +1 -1
  304. package/resources/support/conversations/index.mjs.map +1 -1
  305. package/resources/support/conversations/participants.d.mts.map +1 -1
  306. package/resources/support/conversations/participants.d.ts.map +1 -1
  307. package/resources/support/conversations/participants.mjs.map +1 -1
  308. package/resources/support/conversations.d.mts.map +1 -1
  309. package/resources/support/conversations.d.ts.map +1 -1
  310. package/resources/support/conversations.mjs.map +1 -1
  311. package/resources/support/index.d.mts +3 -3
  312. package/resources/support/index.d.mts.map +1 -1
  313. package/resources/support/index.d.ts +3 -3
  314. package/resources/support/index.d.ts.map +1 -1
  315. package/resources/support/index.js.map +1 -1
  316. package/resources/support/index.mjs.map +1 -1
  317. package/resources/support/support.d.mts +4 -4
  318. package/resources/support/support.d.mts.map +1 -1
  319. package/resources/support/support.d.ts +4 -4
  320. package/resources/support/support.d.ts.map +1 -1
  321. package/resources/support/support.js.map +1 -1
  322. package/resources/support/support.mjs.map +1 -1
  323. package/resources/support/tickets/categories.d.mts +18 -18
  324. package/resources/support/tickets/categories.d.mts.map +1 -1
  325. package/resources/support/tickets/categories.d.ts +18 -18
  326. package/resources/support/tickets/categories.d.ts.map +1 -1
  327. package/resources/support/tickets/categories.js +25 -25
  328. package/resources/support/tickets/categories.js.map +1 -1
  329. package/resources/support/tickets/categories.mjs +25 -25
  330. package/resources/support/tickets/categories.mjs.map +1 -1
  331. package/resources/support/tickets/custom-fields.d.mts +20 -20
  332. package/resources/support/tickets/custom-fields.d.mts.map +1 -1
  333. package/resources/support/tickets/custom-fields.d.ts +20 -20
  334. package/resources/support/tickets/custom-fields.d.ts.map +1 -1
  335. package/resources/support/tickets/custom-fields.js +19 -19
  336. package/resources/support/tickets/custom-fields.js.map +1 -1
  337. package/resources/support/tickets/custom-fields.mjs +19 -19
  338. package/resources/support/tickets/custom-fields.mjs.map +1 -1
  339. package/resources/support/tickets/index.d.mts +4 -4
  340. package/resources/support/tickets/index.d.mts.map +1 -1
  341. package/resources/support/tickets/index.d.ts +4 -4
  342. package/resources/support/tickets/index.d.ts.map +1 -1
  343. package/resources/support/tickets/index.mjs.map +1 -1
  344. package/resources/support/tickets/statuses.d.mts +17 -17
  345. package/resources/support/tickets/statuses.d.mts.map +1 -1
  346. package/resources/support/tickets/statuses.d.ts +17 -17
  347. package/resources/support/tickets/statuses.d.ts.map +1 -1
  348. package/resources/support/tickets/statuses.js +21 -21
  349. package/resources/support/tickets/statuses.js.map +1 -1
  350. package/resources/support/tickets/statuses.mjs +21 -21
  351. package/resources/support/tickets/statuses.mjs.map +1 -1
  352. package/resources/support/tickets/tickets.d.mts +69 -69
  353. package/resources/support/tickets/tickets.d.mts.map +1 -1
  354. package/resources/support/tickets/tickets.d.ts +69 -69
  355. package/resources/support/tickets/tickets.d.ts.map +1 -1
  356. package/resources/support/tickets/tickets.js +44 -44
  357. package/resources/support/tickets/tickets.js.map +1 -1
  358. package/resources/support/tickets/tickets.mjs +44 -44
  359. package/resources/support/tickets/tickets.mjs.map +1 -1
  360. package/resources/support/tickets.d.mts.map +1 -1
  361. package/resources/support/tickets.d.ts.map +1 -1
  362. package/resources/support/tickets.mjs.map +1 -1
  363. package/resources/support.d.mts.map +1 -1
  364. package/resources/support.d.ts.map +1 -1
  365. package/resources/support.mjs.map +1 -1
  366. package/resources/surveys.d.mts +41 -41
  367. package/resources/surveys.d.mts.map +1 -1
  368. package/resources/surveys.d.ts +41 -41
  369. package/resources/surveys.d.ts.map +1 -1
  370. package/resources/surveys.js +44 -44
  371. package/resources/surveys.js.map +1 -1
  372. package/resources/surveys.mjs +44 -44
  373. package/resources/surveys.mjs.map +1 -1
  374. package/resources/users/companies/companies.d.mts +149 -177
  375. package/resources/users/companies/companies.d.mts.map +1 -1
  376. package/resources/users/companies/companies.d.ts +149 -177
  377. package/resources/users/companies/companies.d.ts.map +1 -1
  378. package/resources/users/companies/companies.js +153 -142
  379. package/resources/users/companies/companies.js.map +1 -1
  380. package/resources/users/companies/companies.mjs +153 -142
  381. package/resources/users/companies/companies.mjs.map +1 -1
  382. package/resources/users/companies/contacts.d.mts.map +1 -1
  383. package/resources/users/companies/contacts.d.ts.map +1 -1
  384. package/resources/users/companies/contacts.mjs.map +1 -1
  385. package/resources/users/companies/index.d.mts +1 -1
  386. package/resources/users/companies/index.d.mts.map +1 -1
  387. package/resources/users/companies/index.d.ts +1 -1
  388. package/resources/users/companies/index.d.ts.map +1 -1
  389. package/resources/users/companies/index.mjs.map +1 -1
  390. package/resources/users/companies.d.mts.map +1 -1
  391. package/resources/users/companies.d.ts.map +1 -1
  392. package/resources/users/companies.mjs.map +1 -1
  393. package/resources/users/contacts/by-user-id/by-user-id.d.mts.map +1 -1
  394. package/resources/users/contacts/by-user-id/by-user-id.d.ts.map +1 -1
  395. package/resources/users/contacts/by-user-id/by-user-id.mjs.map +1 -1
  396. package/resources/users/contacts/by-user-id/email-preferences.d.mts.map +1 -1
  397. package/resources/users/contacts/by-user-id/email-preferences.d.ts.map +1 -1
  398. package/resources/users/contacts/by-user-id/email-preferences.mjs.map +1 -1
  399. package/resources/users/contacts/by-user-id/index.d.mts.map +1 -1
  400. package/resources/users/contacts/by-user-id/index.d.ts.map +1 -1
  401. package/resources/users/contacts/by-user-id/index.mjs.map +1 -1
  402. package/resources/users/contacts/by-user-id.d.mts.map +1 -1
  403. package/resources/users/contacts/by-user-id.d.ts.map +1 -1
  404. package/resources/users/contacts/by-user-id.mjs.map +1 -1
  405. package/resources/users/contacts/contacts.d.mts +229 -256
  406. package/resources/users/contacts/contacts.d.mts.map +1 -1
  407. package/resources/users/contacts/contacts.d.ts +229 -256
  408. package/resources/users/contacts/contacts.d.ts.map +1 -1
  409. package/resources/users/contacts/contacts.js +213 -201
  410. package/resources/users/contacts/contacts.js.map +1 -1
  411. package/resources/users/contacts/contacts.mjs +213 -201
  412. package/resources/users/contacts/contacts.mjs.map +1 -1
  413. package/resources/users/contacts/email-preferences.d.mts.map +1 -1
  414. package/resources/users/contacts/email-preferences.d.ts.map +1 -1
  415. package/resources/users/contacts/email-preferences.mjs.map +1 -1
  416. package/resources/users/contacts/index.d.mts +1 -1
  417. package/resources/users/contacts/index.d.mts.map +1 -1
  418. package/resources/users/contacts/index.d.ts +1 -1
  419. package/resources/users/contacts/index.d.ts.map +1 -1
  420. package/resources/users/contacts/index.mjs.map +1 -1
  421. package/resources/users/contacts.d.mts.map +1 -1
  422. package/resources/users/contacts.d.ts.map +1 -1
  423. package/resources/users/contacts.mjs.map +1 -1
  424. package/resources/users/index.d.mts +2 -2
  425. package/resources/users/index.d.mts.map +1 -1
  426. package/resources/users/index.d.ts +2 -2
  427. package/resources/users/index.d.ts.map +1 -1
  428. package/resources/users/index.mjs.map +1 -1
  429. package/resources/users/users.d.mts +2 -2
  430. package/resources/users/users.d.mts.map +1 -1
  431. package/resources/users/users.d.ts +2 -2
  432. package/resources/users/users.d.ts.map +1 -1
  433. package/resources/users/users.mjs.map +1 -1
  434. package/resources/users.d.mts.map +1 -1
  435. package/resources/users.d.ts.map +1 -1
  436. package/resources/users.mjs.map +1 -1
  437. package/resources/webhooks.d.mts +75 -75
  438. package/resources/webhooks.d.mts.map +1 -1
  439. package/resources/webhooks.d.ts +75 -75
  440. package/resources/webhooks.d.ts.map +1 -1
  441. package/resources/webhooks.js +77 -77
  442. package/resources/webhooks.js.map +1 -1
  443. package/resources/webhooks.mjs +77 -77
  444. package/resources/webhooks.mjs.map +1 -1
  445. package/resources.d.mts.map +1 -1
  446. package/resources.d.ts.map +1 -1
  447. package/resources.mjs.map +1 -1
  448. package/src/client.ts +25 -3
  449. package/src/internal/utils/log.ts +2 -0
  450. package/src/resources/changelogs/changelogs.ts +170 -170
  451. package/src/resources/changelogs/index.ts +1 -1
  452. package/src/resources/conversation-attributes.ts +181 -0
  453. package/src/resources/feedback/boards.ts +28 -28
  454. package/src/resources/feedback/comments.ts +464 -141
  455. package/src/resources/feedback/custom-fields.ts +44 -44
  456. package/src/resources/feedback/feedback.ts +23 -5
  457. package/src/resources/feedback/index.ts +14 -5
  458. package/src/resources/feedback/post-statuses.ts +31 -31
  459. package/src/resources/feedback/posts/index.ts +7 -1
  460. package/src/resources/feedback/posts/posts.ts +294 -340
  461. package/src/resources/help-center/articles.ts +123 -186
  462. package/src/resources/help-center/collections.ts +84 -84
  463. package/src/resources/help-center/help-center.ts +7 -5
  464. package/src/resources/help-center/help-centers.ts +55 -55
  465. package/src/resources/help-center/index.ts +6 -5
  466. package/src/resources/help-center/redirect-rules.ts +174 -174
  467. package/src/resources/index.ts +11 -3
  468. package/src/resources/organization/admins.ts +33 -33
  469. package/src/resources/organization/brands.ts +66 -66
  470. package/src/resources/organization/index.ts +3 -3
  471. package/src/resources/organization/organization.ts +3 -3
  472. package/src/resources/organization/teams.ts +52 -52
  473. package/src/resources/support/conversation-tags.ts +59 -59
  474. package/src/resources/support/conversations/conversations.ts +748 -867
  475. package/src/resources/support/conversations/index.ts +11 -6
  476. package/src/resources/support/index.ts +14 -9
  477. package/src/resources/support/support.ts +21 -11
  478. package/src/resources/support/tickets/categories.ts +33 -33
  479. package/src/resources/support/tickets/custom-fields.ts +27 -27
  480. package/src/resources/support/tickets/index.ts +4 -4
  481. package/src/resources/support/tickets/statuses.ts +29 -29
  482. package/src/resources/support/tickets/tickets.ts +95 -95
  483. package/src/resources/surveys.ts +58 -58
  484. package/src/resources/users/companies/companies.ts +193 -223
  485. package/src/resources/users/companies/index.ts +2 -2
  486. package/src/resources/users/contacts/contacts.ts +275 -302
  487. package/src/resources/users/contacts/index.ts +3 -3
  488. package/src/resources/users/index.ts +5 -5
  489. package/src/resources/users/users.ts +5 -5
  490. package/src/resources/webhooks.ts +95 -95
  491. package/src/version.ts +1 -1
  492. package/uploads.d.mts +1 -0
  493. package/uploads.d.mts.map +1 -1
  494. package/uploads.d.ts +1 -0
  495. package/uploads.d.ts.map +1 -1
  496. package/uploads.mjs +1 -0
  497. package/uploads.mjs.map +1 -1
  498. package/version.d.mts +1 -1
  499. package/version.d.ts +1 -1
  500. package/version.js +1 -1
  501. 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)([
@@ -915,7 +916,7 @@ class Conversations extends resource_1.APIResource {
915
916
  *
916
917
  * - **Filter mode** (`query` set, `search` omitted): structured filtering against
917
918
  * indexed conversation fields. Sorted by `lastActivityAt` desc by default; set
918
- * `sort` to `last_activity_at:asc` for the inverse.
919
+ * `sort` to `lastActivityAt:asc` for the inverse.
919
920
  * - **Search mode** (`search` set, `query` optional): full-text search across
920
921
  * conversation messages, then narrowed by the same `query` AST so the same
921
922
  * filters apply. Results are ranked by relevance by default; set `sort` to order
@@ -934,7 +935,7 @@ class Conversations extends resource_1.APIResource {
934
935
  * "value": [
935
936
  * { "field": "state", "operator": "=", "value": "open" },
936
937
  * {
937
- * "field": "admin_assignee_id",
938
+ * "field": "adminAssigneeId",
938
939
  * "operator": "=",
939
940
  * "value": "507f1f77bcf86cd799439011"
940
941
  * }
@@ -947,18 +948,24 @@ class Conversations extends resource_1.APIResource {
947
948
  *
948
949
  * ### Supported fields and operators
949
950
  *
950
- * | Field | Type | Operators |
951
- * | ---------------------------- | --------------------------------------------------------------------------- | ---------------------- |
952
- * | `state` | enum (`open` / `closed` / `snoozed`) | `=`, `!=`, `IN`, `NIN` |
953
- * | `priority` | boolean | `=`, `!=` |
954
- * | `admin_assignee_id` | id or null (unassigned) | `=`, `!=`, `IN`, `NIN` |
955
- * | `team_assignee_id` | id or null (unassigned) | `=`, `!=`, `IN`, `NIN` |
956
- * | `brand_id` | id or null | `=`, `!=`, `IN`, `NIN` |
957
- * | `tag_ids` | id (matches any conversation containing this tag) | `=`, `!=`, `IN`, `NIN` |
958
- * | `user_id` / `participant_id` | id of a conversation participant | `=`, `!=`, `IN`, `NIN` |
959
- * | `company_id` | company id (matches conversations whose participants belong to the company) | `=`, `!=`, `IN`, `NIN` |
960
- * | `mentioned_admin_ids` | admin id | `=`, `!=`, `IN`, `NIN` |
961
- * | `created_at` | unix seconds | `=`, `>`, `<` |
951
+ * Field names are camelCase, matching the rest of the v2 public API. Snake_case
952
+ * names that this endpoint originally shipped with (`admin_assignee_id`,
953
+ * `team_assignee_id`, `brand_id`, `tag_ids`, `mentioned_admin_ids`, `user_id`,
954
+ * `participant_id`, `company_id`, `created_at`) are still accepted for back-compat
955
+ * but are deprecated please migrate to camelCase in new code.
956
+ *
957
+ * | Field | Type | Operators |
958
+ * | -------------------------- | --------------------------------------------------------------------------- | ---------------------- |
959
+ * | `state` | enum (`open` / `closed` / `snoozed`) | `=`, `!=`, `IN`, `NIN` |
960
+ * | `priority` | boolean | `=`, `!=` |
961
+ * | `adminAssigneeId` | id or null (unassigned) | `=`, `!=`, `IN`, `NIN` |
962
+ * | `teamAssigneeId` | id or null (unassigned) | `=`, `!=`, `IN`, `NIN` |
963
+ * | `brandId` | id or null | `=`, `!=`, `IN`, `NIN` |
964
+ * | `tagIds` | id (matches any conversation containing this tag) | `=`, `!=`, `IN`, `NIN` |
965
+ * | `userId` / `participantId` | id of a conversation participant | `=`, `!=`, `IN`, `NIN` |
966
+ * | `companyId` | company id (matches conversations whose participants belong to the company) | `=`, `!=`, `IN`, `NIN` |
967
+ * | `mentionedAdminIds` | admin id | `=`, `!=`, `IN`, `NIN` |
968
+ * | `createdAt` | unix seconds | `=`, `>`, `<` |
962
969
  *
963
970
  * For unbounded fields a query consisting only of `!=` or `NIN` clauses is
964
971
  * rejected with `query_too_broad` to prevent full-org scans. Combine the negation