featurebase-node 0.14.3 → 0.15.1

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 (415) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/client.d.mts +11 -5
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +11 -5
  5. package/client.d.ts.map +1 -1
  6. package/client.js +6 -0
  7. package/client.js.map +1 -1
  8. package/client.mjs +6 -0
  9. package/client.mjs.map +1 -1
  10. package/package.json +1 -1
  11. package/resources/audit-logs.d.mts +3 -3
  12. package/resources/audit-logs.d.mts.map +1 -1
  13. package/resources/audit-logs.d.ts +3 -3
  14. package/resources/audit-logs.d.ts.map +1 -1
  15. package/resources/changelogs/changelogs.d.mts +116 -116
  16. package/resources/changelogs/changelogs.d.mts.map +1 -1
  17. package/resources/changelogs/changelogs.d.ts +116 -116
  18. package/resources/changelogs/changelogs.d.ts.map +1 -1
  19. package/resources/changelogs/changelogs.js +74 -74
  20. package/resources/changelogs/changelogs.js.map +1 -1
  21. package/resources/changelogs/changelogs.mjs +74 -74
  22. package/resources/changelogs/changelogs.mjs.map +1 -1
  23. package/resources/changelogs/index.d.mts +1 -1
  24. package/resources/changelogs/index.d.mts.map +1 -1
  25. package/resources/changelogs/index.d.ts +1 -1
  26. package/resources/changelogs/index.d.ts.map +1 -1
  27. package/resources/changelogs/subscribers.d.mts +3 -3
  28. package/resources/changelogs/subscribers.d.mts.map +1 -1
  29. package/resources/changelogs/subscribers.d.ts +3 -3
  30. package/resources/changelogs/subscribers.d.ts.map +1 -1
  31. package/resources/conversation-attributes.d.mts +22 -17
  32. package/resources/conversation-attributes.d.mts.map +1 -1
  33. package/resources/conversation-attributes.d.ts +22 -17
  34. package/resources/conversation-attributes.d.ts.map +1 -1
  35. package/resources/conversation-attributes.js +19 -19
  36. package/resources/conversation-attributes.js.map +1 -1
  37. package/resources/conversation-attributes.mjs +19 -19
  38. package/resources/conversation-attributes.mjs.map +1 -1
  39. package/resources/feedback/boards.d.mts +19 -19
  40. package/resources/feedback/boards.d.mts.map +1 -1
  41. package/resources/feedback/boards.d.ts +19 -19
  42. package/resources/feedback/boards.d.ts.map +1 -1
  43. package/resources/feedback/boards.js +20 -20
  44. package/resources/feedback/boards.js.map +1 -1
  45. package/resources/feedback/boards.mjs +20 -20
  46. package/resources/feedback/boards.mjs.map +1 -1
  47. package/resources/feedback/comments.d.mts +113 -113
  48. package/resources/feedback/comments.d.mts.map +1 -1
  49. package/resources/feedback/comments.d.ts +113 -113
  50. package/resources/feedback/comments.d.ts.map +1 -1
  51. package/resources/feedback/comments.js +93 -93
  52. package/resources/feedback/comments.js.map +1 -1
  53. package/resources/feedback/comments.mjs +93 -93
  54. package/resources/feedback/comments.mjs.map +1 -1
  55. package/resources/feedback/custom-fields.d.mts +36 -36
  56. package/resources/feedback/custom-fields.d.mts.map +1 -1
  57. package/resources/feedback/custom-fields.d.ts +36 -36
  58. package/resources/feedback/custom-fields.d.ts.map +1 -1
  59. package/resources/feedback/custom-fields.js +36 -36
  60. package/resources/feedback/custom-fields.js.map +1 -1
  61. package/resources/feedback/custom-fields.mjs +36 -36
  62. package/resources/feedback/custom-fields.mjs.map +1 -1
  63. package/resources/feedback/feedback.d.mts +5 -5
  64. package/resources/feedback/feedback.d.mts.map +1 -1
  65. package/resources/feedback/feedback.d.ts +5 -5
  66. package/resources/feedback/feedback.d.ts.map +1 -1
  67. package/resources/feedback/index.d.mts +5 -5
  68. package/resources/feedback/index.d.mts.map +1 -1
  69. package/resources/feedback/index.d.ts +5 -5
  70. package/resources/feedback/index.d.ts.map +1 -1
  71. package/resources/feedback/post-statuses.d.mts +20 -20
  72. package/resources/feedback/post-statuses.d.mts.map +1 -1
  73. package/resources/feedback/post-statuses.d.ts +20 -20
  74. package/resources/feedback/post-statuses.d.ts.map +1 -1
  75. package/resources/feedback/post-statuses.js +23 -23
  76. package/resources/feedback/post-statuses.js.map +1 -1
  77. package/resources/feedback/post-statuses.mjs +23 -23
  78. package/resources/feedback/post-statuses.mjs.map +1 -1
  79. package/resources/feedback/posts/index.d.mts +1 -1
  80. package/resources/feedback/posts/index.d.mts.map +1 -1
  81. package/resources/feedback/posts/index.d.ts +1 -1
  82. package/resources/feedback/posts/index.d.ts.map +1 -1
  83. package/resources/feedback/posts/posts.d.mts +132 -132
  84. package/resources/feedback/posts/posts.d.mts.map +1 -1
  85. package/resources/feedback/posts/posts.d.ts +132 -132
  86. package/resources/feedback/posts/posts.d.ts.map +1 -1
  87. package/resources/feedback/posts/posts.js +107 -107
  88. package/resources/feedback/posts/posts.js.map +1 -1
  89. package/resources/feedback/posts/posts.mjs +107 -107
  90. package/resources/feedback/posts/posts.mjs.map +1 -1
  91. package/resources/feedback/posts/voters.d.mts +3 -3
  92. package/resources/feedback/posts/voters.d.mts.map +1 -1
  93. package/resources/feedback/posts/voters.d.ts +3 -3
  94. package/resources/feedback/posts/voters.d.ts.map +1 -1
  95. package/resources/help-center/articles.d.mts +213 -97
  96. package/resources/help-center/articles.d.mts.map +1 -1
  97. package/resources/help-center/articles.d.ts +213 -97
  98. package/resources/help-center/articles.d.ts.map +1 -1
  99. package/resources/help-center/articles.js +73 -73
  100. package/resources/help-center/articles.js.map +1 -1
  101. package/resources/help-center/articles.mjs +73 -73
  102. package/resources/help-center/articles.mjs.map +1 -1
  103. package/resources/help-center/collections.d.mts +158 -71
  104. package/resources/help-center/collections.d.mts.map +1 -1
  105. package/resources/help-center/collections.d.ts +158 -71
  106. package/resources/help-center/collections.d.ts.map +1 -1
  107. package/resources/help-center/collections.js +65 -65
  108. package/resources/help-center/collections.js.map +1 -1
  109. package/resources/help-center/collections.mjs +65 -65
  110. package/resources/help-center/collections.mjs.map +1 -1
  111. package/resources/help-center/help-center.d.mts +4 -4
  112. package/resources/help-center/help-center.d.mts.map +1 -1
  113. package/resources/help-center/help-center.d.ts +4 -4
  114. package/resources/help-center/help-center.d.ts.map +1 -1
  115. package/resources/help-center/help-centers.d.mts +77 -48
  116. package/resources/help-center/help-centers.d.mts.map +1 -1
  117. package/resources/help-center/help-centers.d.ts +77 -48
  118. package/resources/help-center/help-centers.d.ts.map +1 -1
  119. package/resources/help-center/help-centers.js +43 -43
  120. package/resources/help-center/help-centers.js.map +1 -1
  121. package/resources/help-center/help-centers.mjs +43 -43
  122. package/resources/help-center/help-centers.mjs.map +1 -1
  123. package/resources/help-center/index.d.mts +4 -4
  124. package/resources/help-center/index.d.mts.map +1 -1
  125. package/resources/help-center/index.d.ts +4 -4
  126. package/resources/help-center/index.d.ts.map +1 -1
  127. package/resources/help-center/redirect-rules.d.mts +124 -124
  128. package/resources/help-center/redirect-rules.d.mts.map +1 -1
  129. package/resources/help-center/redirect-rules.d.ts +124 -124
  130. package/resources/help-center/redirect-rules.d.ts.map +1 -1
  131. package/resources/help-center/redirect-rules.js +112 -112
  132. package/resources/help-center/redirect-rules.js.map +1 -1
  133. package/resources/help-center/redirect-rules.mjs +112 -112
  134. package/resources/help-center/redirect-rules.mjs.map +1 -1
  135. package/resources/index.d.mts +6 -5
  136. package/resources/index.d.mts.map +1 -1
  137. package/resources/index.d.ts +6 -5
  138. package/resources/index.d.ts.map +1 -1
  139. package/resources/index.js +3 -1
  140. package/resources/index.js.map +1 -1
  141. package/resources/index.mjs +1 -0
  142. package/resources/index.mjs.map +1 -1
  143. package/resources/organization/admins.d.mts +26 -26
  144. package/resources/organization/admins.d.mts.map +1 -1
  145. package/resources/organization/admins.d.ts +26 -26
  146. package/resources/organization/admins.d.ts.map +1 -1
  147. package/resources/organization/admins.js +25 -25
  148. package/resources/organization/admins.js.map +1 -1
  149. package/resources/organization/admins.mjs +25 -25
  150. package/resources/organization/admins.mjs.map +1 -1
  151. package/resources/organization/brands.d.mts +52 -52
  152. package/resources/organization/brands.d.mts.map +1 -1
  153. package/resources/organization/brands.d.ts +52 -52
  154. package/resources/organization/brands.d.ts.map +1 -1
  155. package/resources/organization/brands.js +54 -54
  156. package/resources/organization/brands.js.map +1 -1
  157. package/resources/organization/brands.mjs +54 -54
  158. package/resources/organization/brands.mjs.map +1 -1
  159. package/resources/organization/index.d.mts +3 -3
  160. package/resources/organization/index.d.mts.map +1 -1
  161. package/resources/organization/index.d.ts +3 -3
  162. package/resources/organization/index.d.ts.map +1 -1
  163. package/resources/organization/organization.d.mts +3 -3
  164. package/resources/organization/organization.d.mts.map +1 -1
  165. package/resources/organization/organization.d.ts +3 -3
  166. package/resources/organization/organization.d.ts.map +1 -1
  167. package/resources/organization/teams.d.mts +47 -47
  168. package/resources/organization/teams.d.mts.map +1 -1
  169. package/resources/organization/teams.d.ts +47 -47
  170. package/resources/organization/teams.d.ts.map +1 -1
  171. package/resources/organization/teams.js +44 -44
  172. package/resources/organization/teams.js.map +1 -1
  173. package/resources/organization/teams.mjs +44 -44
  174. package/resources/organization/teams.mjs.map +1 -1
  175. package/resources/reports.d.mts +339 -223
  176. package/resources/reports.d.mts.map +1 -1
  177. package/resources/reports.d.ts +339 -223
  178. package/resources/reports.d.ts.map +1 -1
  179. package/resources/reports.js +114 -107
  180. package/resources/reports.js.map +1 -1
  181. package/resources/reports.mjs +114 -107
  182. package/resources/reports.mjs.map +1 -1
  183. package/resources/support/conversation-tags.d.mts +43 -43
  184. package/resources/support/conversation-tags.d.mts.map +1 -1
  185. package/resources/support/conversation-tags.d.ts +43 -43
  186. package/resources/support/conversation-tags.d.ts.map +1 -1
  187. package/resources/support/conversation-tags.js +32 -32
  188. package/resources/support/conversation-tags.js.map +1 -1
  189. package/resources/support/conversation-tags.mjs +32 -32
  190. package/resources/support/conversation-tags.mjs.map +1 -1
  191. package/resources/support/conversations/conversations.d.mts +363 -332
  192. package/resources/support/conversations/conversations.d.mts.map +1 -1
  193. package/resources/support/conversations/conversations.d.ts +363 -332
  194. package/resources/support/conversations/conversations.d.ts.map +1 -1
  195. package/resources/support/conversations/conversations.js +293 -283
  196. package/resources/support/conversations/conversations.js.map +1 -1
  197. package/resources/support/conversations/conversations.mjs +293 -283
  198. package/resources/support/conversations/conversations.mjs.map +1 -1
  199. package/resources/support/conversations/index.d.mts +1 -1
  200. package/resources/support/conversations/index.d.mts.map +1 -1
  201. package/resources/support/conversations/index.d.ts +1 -1
  202. package/resources/support/conversations/index.d.ts.map +1 -1
  203. package/resources/support/conversations/participants.d.mts +2 -2
  204. package/resources/support/conversations/participants.d.mts.map +1 -1
  205. package/resources/support/conversations/participants.d.ts +2 -2
  206. package/resources/support/conversations/participants.d.ts.map +1 -1
  207. package/resources/support/index.d.mts +3 -3
  208. package/resources/support/index.d.mts.map +1 -1
  209. package/resources/support/index.d.ts +3 -3
  210. package/resources/support/index.d.ts.map +1 -1
  211. package/resources/support/support.d.mts +3 -3
  212. package/resources/support/support.d.mts.map +1 -1
  213. package/resources/support/support.d.ts +3 -3
  214. package/resources/support/support.d.ts.map +1 -1
  215. package/resources/support/tickets/categories.d.mts +20 -20
  216. package/resources/support/tickets/categories.d.mts.map +1 -1
  217. package/resources/support/tickets/categories.d.ts +20 -20
  218. package/resources/support/tickets/categories.d.ts.map +1 -1
  219. package/resources/support/tickets/categories.js +25 -25
  220. package/resources/support/tickets/categories.js.map +1 -1
  221. package/resources/support/tickets/categories.mjs +25 -25
  222. package/resources/support/tickets/categories.mjs.map +1 -1
  223. package/resources/support/tickets/custom-fields.d.mts +22 -22
  224. package/resources/support/tickets/custom-fields.d.mts.map +1 -1
  225. package/resources/support/tickets/custom-fields.d.ts +22 -22
  226. package/resources/support/tickets/custom-fields.d.ts.map +1 -1
  227. package/resources/support/tickets/custom-fields.js +19 -19
  228. package/resources/support/tickets/custom-fields.js.map +1 -1
  229. package/resources/support/tickets/custom-fields.mjs +19 -19
  230. package/resources/support/tickets/custom-fields.mjs.map +1 -1
  231. package/resources/support/tickets/index.d.mts +4 -4
  232. package/resources/support/tickets/index.d.mts.map +1 -1
  233. package/resources/support/tickets/index.d.ts +4 -4
  234. package/resources/support/tickets/index.d.ts.map +1 -1
  235. package/resources/support/tickets/statuses.d.mts +19 -19
  236. package/resources/support/tickets/statuses.d.mts.map +1 -1
  237. package/resources/support/tickets/statuses.d.ts +19 -19
  238. package/resources/support/tickets/statuses.d.ts.map +1 -1
  239. package/resources/support/tickets/statuses.js +21 -21
  240. package/resources/support/tickets/statuses.js.map +1 -1
  241. package/resources/support/tickets/statuses.mjs +21 -21
  242. package/resources/support/tickets/statuses.mjs.map +1 -1
  243. package/resources/support/tickets/tickets.d.mts +75 -75
  244. package/resources/support/tickets/tickets.d.mts.map +1 -1
  245. package/resources/support/tickets/tickets.d.ts +75 -75
  246. package/resources/support/tickets/tickets.d.ts.map +1 -1
  247. package/resources/support/tickets/tickets.js +44 -44
  248. package/resources/support/tickets/tickets.js.map +1 -1
  249. package/resources/support/tickets/tickets.mjs +44 -44
  250. package/resources/support/tickets/tickets.mjs.map +1 -1
  251. package/resources/surveys.d.mts +43 -43
  252. package/resources/surveys.d.mts.map +1 -1
  253. package/resources/surveys.d.ts +43 -43
  254. package/resources/surveys.d.ts.map +1 -1
  255. package/resources/surveys.js +44 -44
  256. package/resources/surveys.js.map +1 -1
  257. package/resources/surveys.mjs +44 -44
  258. package/resources/surveys.mjs.map +1 -1
  259. package/resources/training-data/files.d.mts +292 -0
  260. package/resources/training-data/files.d.mts.map +1 -0
  261. package/resources/training-data/files.d.ts +292 -0
  262. package/resources/training-data/files.d.ts.map +1 -0
  263. package/resources/training-data/files.js +171 -0
  264. package/resources/training-data/files.js.map +1 -0
  265. package/resources/training-data/files.mjs +167 -0
  266. package/resources/training-data/files.mjs.map +1 -0
  267. package/resources/training-data/index.d.mts +4 -0
  268. package/resources/training-data/index.d.mts.map +1 -0
  269. package/resources/training-data/index.d.ts +4 -0
  270. package/resources/training-data/index.d.ts.map +1 -0
  271. package/resources/training-data/index.js +11 -0
  272. package/resources/training-data/index.js.map +1 -0
  273. package/resources/training-data/index.mjs +5 -0
  274. package/resources/training-data/index.mjs.map +1 -0
  275. package/resources/training-data/qna.d.mts +370 -0
  276. package/resources/training-data/qna.d.mts.map +1 -0
  277. package/resources/training-data/qna.d.ts +370 -0
  278. package/resources/training-data/qna.d.ts.map +1 -0
  279. package/resources/training-data/qna.js +177 -0
  280. package/resources/training-data/qna.js.map +1 -0
  281. package/resources/training-data/qna.mjs +173 -0
  282. package/resources/training-data/qna.mjs.map +1 -0
  283. package/resources/training-data/training-data.d.mts +442 -0
  284. package/resources/training-data/training-data.d.mts.map +1 -0
  285. package/resources/training-data/training-data.d.ts +442 -0
  286. package/resources/training-data/training-data.d.ts.map +1 -0
  287. package/resources/training-data/training-data.js +105 -0
  288. package/resources/training-data/training-data.js.map +1 -0
  289. package/resources/training-data/training-data.mjs +100 -0
  290. package/resources/training-data/training-data.mjs.map +1 -0
  291. package/resources/training-data.d.mts +2 -0
  292. package/resources/training-data.d.mts.map +1 -0
  293. package/resources/training-data.d.ts +2 -0
  294. package/resources/training-data.d.ts.map +1 -0
  295. package/resources/training-data.js +6 -0
  296. package/resources/training-data.js.map +1 -0
  297. package/resources/training-data.mjs +3 -0
  298. package/resources/training-data.mjs.map +1 -0
  299. package/resources/users/companies/companies.d.mts +121 -130
  300. package/resources/users/companies/companies.d.mts.map +1 -1
  301. package/resources/users/companies/companies.d.ts +121 -130
  302. package/resources/users/companies/companies.d.ts.map +1 -1
  303. package/resources/users/companies/companies.js +125 -125
  304. package/resources/users/companies/companies.js.map +1 -1
  305. package/resources/users/companies/companies.mjs +125 -125
  306. package/resources/users/companies/companies.mjs.map +1 -1
  307. package/resources/users/companies/contacts.d.mts +3 -3
  308. package/resources/users/companies/contacts.d.mts.map +1 -1
  309. package/resources/users/companies/contacts.d.ts +3 -3
  310. package/resources/users/companies/contacts.d.ts.map +1 -1
  311. package/resources/users/companies/index.d.mts +1 -1
  312. package/resources/users/companies/index.d.mts.map +1 -1
  313. package/resources/users/companies/index.d.ts +1 -1
  314. package/resources/users/companies/index.d.ts.map +1 -1
  315. package/resources/users/contacts/by-user-id/by-user-id.d.mts +2 -2
  316. package/resources/users/contacts/by-user-id/by-user-id.d.mts.map +1 -1
  317. package/resources/users/contacts/by-user-id/by-user-id.d.ts +2 -2
  318. package/resources/users/contacts/by-user-id/by-user-id.d.ts.map +1 -1
  319. package/resources/users/contacts/by-user-id/email-preferences.d.mts +2 -2
  320. package/resources/users/contacts/by-user-id/email-preferences.d.mts.map +1 -1
  321. package/resources/users/contacts/by-user-id/email-preferences.d.ts +2 -2
  322. package/resources/users/contacts/by-user-id/email-preferences.d.ts.map +1 -1
  323. package/resources/users/contacts/contacts.d.mts +249 -235
  324. package/resources/users/contacts/contacts.d.mts.map +1 -1
  325. package/resources/users/contacts/contacts.d.ts +249 -235
  326. package/resources/users/contacts/contacts.d.ts.map +1 -1
  327. package/resources/users/contacts/contacts.js +211 -184
  328. package/resources/users/contacts/contacts.js.map +1 -1
  329. package/resources/users/contacts/contacts.mjs +211 -184
  330. package/resources/users/contacts/contacts.mjs.map +1 -1
  331. package/resources/users/contacts/email-preferences.d.mts +2 -2
  332. package/resources/users/contacts/email-preferences.d.mts.map +1 -1
  333. package/resources/users/contacts/email-preferences.d.ts +2 -2
  334. package/resources/users/contacts/email-preferences.d.ts.map +1 -1
  335. package/resources/users/contacts/index.d.mts +1 -1
  336. package/resources/users/contacts/index.d.mts.map +1 -1
  337. package/resources/users/contacts/index.d.ts +1 -1
  338. package/resources/users/contacts/index.d.ts.map +1 -1
  339. package/resources/users/index.d.mts +2 -2
  340. package/resources/users/index.d.mts.map +1 -1
  341. package/resources/users/index.d.ts +2 -2
  342. package/resources/users/index.d.ts.map +1 -1
  343. package/resources/users/users.d.mts +2 -2
  344. package/resources/users/users.d.mts.map +1 -1
  345. package/resources/users/users.d.ts +2 -2
  346. package/resources/users/users.d.ts.map +1 -1
  347. package/resources/webhooks.d.mts +83 -83
  348. package/resources/webhooks.d.mts.map +1 -1
  349. package/resources/webhooks.d.ts +83 -83
  350. package/resources/webhooks.d.ts.map +1 -1
  351. package/resources/webhooks.js +77 -77
  352. package/resources/webhooks.js.map +1 -1
  353. package/resources/webhooks.mjs +77 -77
  354. package/resources/webhooks.mjs.map +1 -1
  355. package/src/client.ts +26 -6
  356. package/src/resources/audit-logs.ts +19 -1
  357. package/src/resources/changelogs/changelogs.ts +320 -175
  358. package/src/resources/changelogs/index.ts +1 -1
  359. package/src/resources/changelogs/subscribers.ts +31 -2
  360. package/src/resources/conversation-attributes.ts +40 -34
  361. package/src/resources/feedback/boards.ts +30 -30
  362. package/src/resources/feedback/comments.ts +137 -137
  363. package/src/resources/feedback/custom-fields.ts +46 -46
  364. package/src/resources/feedback/feedback.ts +6 -6
  365. package/src/resources/feedback/index.ts +6 -6
  366. package/src/resources/feedback/post-statuses.ts +33 -33
  367. package/src/resources/feedback/posts/index.ts +2 -2
  368. package/src/resources/feedback/posts/posts.ts +176 -176
  369. package/src/resources/feedback/posts/voters.ts +3 -3
  370. package/src/resources/help-center/articles.ts +631 -109
  371. package/src/resources/help-center/collections.ts +349 -88
  372. package/src/resources/help-center/help-center.ts +5 -5
  373. package/src/resources/help-center/help-centers.ts +202 -57
  374. package/src/resources/help-center/index.ts +5 -5
  375. package/src/resources/help-center/redirect-rules.ts +294 -178
  376. package/src/resources/index.ts +13 -6
  377. package/src/resources/organization/admins.ts +36 -36
  378. package/src/resources/organization/brands.ts +68 -68
  379. package/src/resources/organization/index.ts +3 -3
  380. package/src/resources/organization/organization.ts +3 -3
  381. package/src/resources/organization/teams.ts +54 -54
  382. package/src/resources/reports.ts +462 -272
  383. package/src/resources/support/conversation-tags.ts +62 -62
  384. package/src/resources/support/conversations/conversations.ts +453 -417
  385. package/src/resources/support/conversations/index.ts +4 -4
  386. package/src/resources/support/conversations/participants.ts +2 -2
  387. package/src/resources/support/index.ts +7 -7
  388. package/src/resources/support/support.ts +7 -7
  389. package/src/resources/support/tickets/categories.ts +35 -35
  390. package/src/resources/support/tickets/custom-fields.ts +29 -29
  391. package/src/resources/support/tickets/index.ts +4 -4
  392. package/src/resources/support/tickets/statuses.ts +31 -31
  393. package/src/resources/support/tickets/tickets.ts +101 -101
  394. package/src/resources/surveys.ts +60 -60
  395. package/src/resources/training-data/files.ts +431 -0
  396. package/src/resources/training-data/index.ts +31 -0
  397. package/src/resources/training-data/qna.ts +514 -0
  398. package/src/resources/training-data/training-data.ts +603 -0
  399. package/src/resources/training-data.ts +3 -0
  400. package/src/resources/users/companies/companies.ts +158 -172
  401. package/src/resources/users/companies/contacts.ts +3 -3
  402. package/src/resources/users/companies/index.ts +2 -2
  403. package/src/resources/users/contacts/by-user-id/by-user-id.ts +2 -2
  404. package/src/resources/users/contacts/by-user-id/email-preferences.ts +2 -2
  405. package/src/resources/users/contacts/contacts.ts +284 -280
  406. package/src/resources/users/contacts/email-preferences.ts +2 -2
  407. package/src/resources/users/contacts/index.ts +3 -3
  408. package/src/resources/users/index.ts +5 -5
  409. package/src/resources/users/users.ts +5 -5
  410. package/src/resources/webhooks.ts +106 -100
  411. package/src/version.ts +1 -1
  412. package/version.d.mts +1 -1
  413. package/version.d.ts +1 -1
  414. package/version.js +1 -1
  415. package/version.mjs +1 -1
@@ -19,95 +19,6 @@ import { path } from '../../../internal/utils/path';
19
19
  export class Conversations extends APIResource {
20
20
  participants: ParticipantsAPI.Participants = new ParticipantsAPI.Participants(this._client);
21
21
 
22
- /**
23
- * Returns a list of conversations in your organization using cursor-based
24
- * pagination.
25
- *
26
- * ### Query Parameters
27
- *
28
- * - `limit` - Number of conversations to return (1-100, default 10)
29
- * - `cursor` - Cursor from previous response for pagination
30
- * - `tagIds` - Optional tag filter as a comma-separated list of tag IDs. Matches
31
- * conversations that contain all of the provided tags.
32
- *
33
- * ### Response Format
34
- *
35
- * Returns a list object with:
36
- *
37
- * - `object` - Always "list"
38
- * - `data` - Array of conversation objects
39
- * - `nextCursor` - Cursor for the next page, or null if no more results
40
- *
41
- * ### Conversation Object
42
- *
43
- * Each conversation includes:
44
- *
45
- * - `id` - Unique conversation identifier (short ID)
46
- * - `title` - Conversation title
47
- * - `state` - Current state ("open", "closed", or "snoozed")
48
- * - `priority` - Whether the conversation is marked as priority
49
- * - `adminAssigneeId` - ID of assigned admin (if any)
50
- * - `teamAssigneeId` - ID of assigned team (if any)
51
- * - `tags` - Current tags applied anywhere in the conversation
52
- * - `participants` - Array of participants
53
- * - `source` - Information about the first message
54
- * - `createdAt` - Creation timestamp
55
- * - `updatedAt` - Last update timestamp
56
- *
57
- * ### Example
58
- *
59
- * ```json
60
- * {
61
- * "object": "list",
62
- * "data": [
63
- * {
64
- * "object": "conversation",
65
- * "id": "12345",
66
- * "title": "Question about pricing",
67
- * "state": "open",
68
- * "priority": false,
69
- * "adminAssigneeId": null,
70
- * "participants": [
71
- * { "type": "customer", "id": "676f0f6765bdaa7d7d760f88" }
72
- * ],
73
- * ...
74
- * }
75
- * ],
76
- * "nextCursor": "eyJpZCI6IjEyMzQ1In0="
77
- * }
78
- * ```
79
- *
80
- * ### Version Availability
81
- *
82
- * This endpoint is only available in API version 2026-01-01.nova and newer.
83
- *
84
- * @example
85
- * ```ts
86
- * // Automatically fetches more pages as needed.
87
- * for await (const conversation of client.support.conversations.list()) {
88
- * // ...
89
- * }
90
- * ```
91
- */
92
- list(
93
- params: ConversationListParams | null | undefined = {},
94
- options?: RequestOptions,
95
- ): PagePromise<ConversationsCursorPage, Conversation> {
96
- const { 'Featurebase-Version': featurebaseVersion, ...query } = params ?? {};
97
- return this._client.getAPIList('/v2/conversations', CursorPage<Conversation>, {
98
- query,
99
- ...options,
100
- headers: buildHeaders([
101
- {
102
- ...(featurebaseVersion?.toString() != null ?
103
- { 'Featurebase-Version': featurebaseVersion?.toString() }
104
- : undefined),
105
- },
106
- options?.headers,
107
- ]),
108
- });
109
- }
110
-
111
22
  /**
112
23
  * Creates a new conversation. Supports both contact-initiated (customer/lead) and
113
24
  * admin-initiated (outreach) conversations.
@@ -381,59 +292,6 @@ export class Conversations extends APIResource {
381
292
  });
382
293
  }
383
294
 
384
- /**
385
- * Permanently deletes a conversation by its short ID.
386
- *
387
- * ### Path Parameters
388
- *
389
- * - `id` - The conversation short ID (numeric)
390
- *
391
- * ### Response
392
- *
393
- * Returns a deletion confirmation object:
394
- *
395
- * ```json
396
- * {
397
- * "id": "12345",
398
- * "object": "conversation",
399
- * "deleted": true
400
- * }
401
- * ```
402
- *
403
- * ### Caution
404
- *
405
- * This operation is **irreversible**. The conversation and all its messages will
406
- * be permanently deleted.
407
- *
408
- * ### Version Availability
409
- *
410
- * This endpoint is only available in API version 2026-01-01.nova and newer.
411
- *
412
- * @example
413
- * ```ts
414
- * const conversation =
415
- * await client.support.conversations.delete('12345');
416
- * ```
417
- */
418
- delete(
419
- id: string,
420
- params: ConversationDeleteParams | null | undefined = {},
421
- options?: RequestOptions,
422
- ): APIPromise<ConversationDeleteResponse> {
423
- const { 'Featurebase-Version': featurebaseVersion } = params ?? {};
424
- return this._client.delete(path`/v2/conversations/${id}`, {
425
- ...options,
426
- headers: buildHeaders([
427
- {
428
- ...(featurebaseVersion?.toString() != null ?
429
- { 'Featurebase-Version': featurebaseVersion?.toString() }
430
- : undefined),
431
- },
432
- options?.headers,
433
- ]),
434
- });
435
- }
436
-
437
295
  /**
438
296
  * Updates a conversation's properties. Supports partial updates - only provided
439
297
  * fields will be updated.
@@ -578,118 +436,82 @@ export class Conversations extends APIResource {
578
436
  }
579
437
 
580
438
  /**
581
- * Adds a reply to an existing conversation. Supports both contact (customer/lead)
582
- * and admin replies.
583
- *
584
- * ### Path Parameters
585
- *
586
- * - `id` - The conversation ID (short ID)
587
- *
588
- * ### Request Body
439
+ * Returns a list of conversations in your organization using cursor-based
440
+ * pagination.
589
441
  *
590
- * The request body varies based on who is sending the reply:
442
+ * ### Query Parameters
591
443
  *
592
- * #### Contact Reply (customer/lead)
444
+ * - `limit` - Number of conversations to return (1-100, default 10)
445
+ * - `cursor` - Cursor from previous response for pagination
446
+ * - `tagIds` - Optional tag filter as a comma-separated list of tag IDs. Matches
447
+ * conversations that contain all of the provided tags.
593
448
  *
594
- * | Field | Type | Required | Description |
595
- * | ------------------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------- |
596
- * | `type` | string | Yes | Must be "contact" |
597
- * | `userId` | string | No\* | External user ID from your system |
598
- * | `id` | string | No\* | Featurebase contact ID (24-character ObjectId) |
599
- * | `bodyMarkdown` | string | Yes | The message content in markdown format. Images referenced by URL or as base64 data URIs will be automatically uploaded and stored. |
600
- * | `messageType` | string | Yes | Must be "reply" |
601
- * | `skipNotifications` | boolean | No | Skip sending notifications (default: false). Useful for bulk imports. |
449
+ * ### Response Format
602
450
  *
603
- * \*At least one of `userId` or `id` is required.
451
+ * Returns a list object with:
604
452
  *
605
- * #### Admin Reply
453
+ * - `object` - Always "list"
454
+ * - `data` - Array of conversation objects
455
+ * - `nextCursor` - Cursor for the next page, or null if no more results
606
456
  *
607
- * | Field | Type | Required | Description |
608
- * | ------------------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------- |
609
- * | `type` | string | Yes | Must be "admin" |
610
- * | `id` | string | Yes | Featurebase admin ID (24-character ObjectId) |
611
- * | `bodyMarkdown` | string | Yes | The message content in markdown format. Images referenced by URL or as base64 data URIs will be automatically uploaded and stored. |
612
- * | `messageType` | string | Yes | "reply" for customer-visible reply, "note" for internal note |
613
- * | `skipNotifications` | boolean | No | Skip sending notifications (default: false). Useful for bulk imports. |
457
+ * ### Conversation Object
614
458
  *
615
- * ### Response
459
+ * Each conversation includes:
616
460
  *
617
- * Returns the created conversation part object with a **201 Created** status. The
618
- * response includes both `bodyHtml` (with signed image URLs) and `bodyMarkdown`
619
- * fields.
461
+ * - `id` - Unique conversation identifier (short ID)
462
+ * - `title` - Conversation title
463
+ * - `state` - Current state ("open", "closed", or "snoozed")
464
+ * - `priority` - Whether the conversation is marked as priority
465
+ * - `adminAssigneeId` - ID of assigned admin (if any)
466
+ * - `teamAssigneeId` - ID of assigned team (if any)
467
+ * - `tags` - Current tags applied anywhere in the conversation
468
+ * - `participants` - Array of participants
469
+ * - `source` - Information about the first message
470
+ * - `createdAt` - Creation timestamp
471
+ * - `updatedAt` - Last update timestamp
620
472
  *
621
- * ### Example Contact Reply
473
+ * ### Example
622
474
  *
623
475
  * ```json
624
476
  * {
625
- * "type": "contact",
626
- * "userId": "user_123",
627
- * "bodyMarkdown": "Thank you for your help!",
628
- * "messageType": "reply"
477
+ * "object": "list",
478
+ * "data": [
479
+ * {
480
+ * "object": "conversation",
481
+ * "id": "12345",
482
+ * "title": "Question about pricing",
483
+ * "state": "open",
484
+ * "priority": false,
485
+ * "adminAssigneeId": null,
486
+ * "participants": [
487
+ * { "type": "customer", "id": "676f0f6765bdaa7d7d760f88" }
488
+ * ],
489
+ * ...
490
+ * }
491
+ * ],
492
+ * "nextCursor": "eyJpZCI6IjEyMzQ1In0="
629
493
  * }
630
494
  * ```
631
495
  *
632
- * ### Example Admin Reply
633
- *
634
- * ```json
635
- * {
636
- * "type": "admin",
637
- * "id": "507f1f77bcf86cd799439011",
638
- * "bodyMarkdown": "I'm happy to help! Here's what you need to do...",
639
- * "messageType": "reply"
640
- * }
641
- * ```
496
+ * ### Version Availability
642
497
  *
643
- * ### Example Admin Note (Internal)
498
+ * This endpoint is only available in API version 2026-01-01.nova and newer.
644
499
  *
645
- * ```json
646
- * {
647
- * "type": "admin",
648
- * "id": "507f1f77bcf86cd799439011",
649
- * "bodyMarkdown": "Customer seems frustrated, escalating to tier 2.",
650
- * "messageType": "note"
500
+ * @example
501
+ * ```ts
502
+ * // Automatically fetches more pages as needed.
503
+ * for await (const conversation of client.support.conversations.list()) {
504
+ * // ...
651
505
  * }
652
506
  * ```
653
- *
654
- * ### Example Response
655
- *
656
- * ```json
657
- * {
658
- * "object": "conversation_part",
659
- * "id": "3",
660
- * "partType": "user_msg",
661
- * "bodyHtml": "<p>Thank you for your help!</p>",
662
- * "bodyMarkdown": "Thank you for your help!",
663
- * "author": {
664
- * "type": "customer",
665
- * "id": "676f0f6765bdaa7d7d760f88",
666
- * "name": "John Doe",
667
- * "email": "john@example.com"
668
- * },
669
- * "channel": "desktop",
670
- * "createdAt": "2025-01-15T10:40:00.000Z",
671
- * "updatedAt": "2025-01-15T10:40:00.000Z"
672
- * }
673
- * ```
674
- *
675
- * ### Version Availability
676
- *
677
- * This endpoint is only available in API version 2026-01-01.nova and newer.
678
- *
679
- * @example
680
- * ```ts
681
- * const conversationPart =
682
- * await client.support.conversations.reply('12345', {
683
- * bodyMarkdown: 'Thank you for your help!',
684
- * messageType: 'reply',
685
- * type: 'contact',
686
- * });
687
- * ```
688
507
  */
689
- reply(id: string, params: ConversationReplyParams, options?: RequestOptions): APIPromise<ConversationPart> {
690
- const { 'Featurebase-Version': featurebaseVersion, ...body } = params;
691
- return this._client.post(path`/v2/conversations/${id}/reply`, {
692
- body,
508
+ list(
509
+ params: ConversationListParams | null | undefined = {},
510
+ options?: RequestOptions,
511
+ ): PagePromise<ConversationsCursorPage, Conversation> {
512
+ const { 'Featurebase-Version': featurebaseVersion, ...query } = params ?? {};
513
+ return this._client.getAPIList('/v2/conversations', CursorPage<Conversation>, {
514
+ query,
693
515
  ...options,
694
516
  headers: buildHeaders([
695
517
  {
@@ -703,68 +525,28 @@ export class Conversations extends APIResource {
703
525
  }
704
526
 
705
527
  /**
706
- * Redacts a conversation part (message) from a conversation. Redaction permanently
707
- * removes the message content while preserving the conversation structure.
708
- *
709
- * Only human message types can be redacted:
710
- *
711
- * - `user_msg` - Messages from customers/leads
712
- * - `admin_msg` - Messages from admins
713
- * - `email_msg` - Email messages
714
- * - `bot_msg` - Bot messages
715
- *
716
- * System-generated conversation parts (assignments, status changes, etc.) cannot
717
- * be redacted.
528
+ * Permanently deletes a conversation by its short ID.
718
529
  *
719
- * ### Request Body
530
+ * ### Path Parameters
720
531
  *
721
- * | Field | Type | Required | Description |
722
- * | -------------------- | ------ | -------- | ------------------------------------------------------------------------------ |
723
- * | `type` | string | Yes | The type of item to redact. Currently only `"conversation_part"` is supported. |
724
- * | `conversationId` | string | Yes | The conversation short ID containing the part to redact |
725
- * | `conversationPartId` | string | Yes | The conversation part short ID to redact |
726
- * | `actingAdminId` | string | No | Admin ID performing the action (for attribution) |
532
+ * - `id` - The conversation short ID (numeric)
727
533
  *
728
534
  * ### Response
729
535
  *
730
- * Returns the updated conversation object.
731
- *
732
- * ### Example Request
733
- *
734
- * ```json
735
- * {
736
- * "type": "conversation_part",
737
- * "conversationId": "12345",
738
- * "conversationPartId": "67890",
739
- * "actingAdminId": "507f1f77bcf86cd799439011"
740
- * }
741
- * ```
742
- *
743
- * ### Example Response
536
+ * Returns a deletion confirmation object:
744
537
  *
745
538
  * ```json
746
539
  * {
747
- * "object": "conversation",
748
540
  * "id": "12345",
749
- * "conversationParts": [
750
- * {
751
- * "object": "conversation_part",
752
- * "id": "67890",
753
- * "partType": "user_msg",
754
- * "bodyHtml": "",
755
- * "bodyMarkdown": "",
756
- * "redacted": true,
757
- * ...
758
- * }
759
- * ],
760
- * ...
541
+ * "object": "conversation",
542
+ * "deleted": true
761
543
  * }
762
544
  * ```
763
545
  *
764
- * ### Error Cases
546
+ * ### Caution
765
547
  *
766
- * - **400 Bad Request** - Only human messages can be redacted
767
- * - **404 Not Found** - Conversation or conversation part not found
548
+ * This operation is **irreversible**. The conversation and all its messages will
549
+ * be permanently deleted.
768
550
  *
769
551
  * ### Version Availability
770
552
  *
@@ -773,17 +555,16 @@ export class Conversations extends APIResource {
773
555
  * @example
774
556
  * ```ts
775
557
  * const conversation =
776
- * await client.support.conversations.redact({
777
- * conversationId: '12345',
778
- * conversationPartId: '67890',
779
- * type: 'conversation_part',
780
- * });
558
+ * await client.support.conversations.delete('12345');
781
559
  * ```
782
560
  */
783
- redact(params: ConversationRedactParams, options?: RequestOptions): APIPromise<Conversation> {
784
- const { 'Featurebase-Version': featurebaseVersion, ...body } = params;
785
- return this._client.post('/v2/conversations/redact', {
786
- body,
561
+ delete(
562
+ id: string,
563
+ params: ConversationDeleteParams | null | undefined = {},
564
+ options?: RequestOptions,
565
+ ): APIPromise<ConversationDeleteResponse> {
566
+ const { 'Featurebase-Version': featurebaseVersion } = params ?? {};
567
+ return this._client.delete(path`/v2/conversations/${id}`, {
787
568
  ...options,
788
569
  headers: buildHeaders([
789
570
  {
@@ -894,11 +675,236 @@ export class Conversations extends APIResource {
894
675
  * Returns the affected tag payload with the most relevant attachment metadata
895
676
  * available for that relationship.
896
677
  *
897
- * ### Example Request
678
+ * ### Example Request
679
+ *
680
+ * ```json
681
+ * {
682
+ * "actingAdminId": "507f1f77bcf86cd799439011"
683
+ * }
684
+ * ```
685
+ *
686
+ * ### Version Availability
687
+ *
688
+ * This endpoint is only available in API version 2026-01-01.nova and newer.
689
+ *
690
+ * @example
691
+ * ```ts
692
+ * const attachedConversationTag =
693
+ * await client.support.conversations.detachTag(
694
+ * '67ec1234abcd5678ef901234',
695
+ * {
696
+ * id: '12345',
697
+ * actingAdminId: '507f1f77bcf86cd799439011',
698
+ * },
699
+ * );
700
+ * ```
701
+ */
702
+ detachTag(
703
+ tagID: string,
704
+ params: ConversationDetachTagParams,
705
+ options?: RequestOptions,
706
+ ): APIPromise<AttachedConversationTag> {
707
+ const { id, 'Featurebase-Version': featurebaseVersion, ...body } = params;
708
+ return this._client.delete(path`/v2/conversations/${id}/tags/${tagID}`, {
709
+ body,
710
+ ...options,
711
+ headers: buildHeaders([
712
+ {
713
+ ...(featurebaseVersion?.toString() != null ?
714
+ { 'Featurebase-Version': featurebaseVersion?.toString() }
715
+ : undefined),
716
+ },
717
+ options?.headers,
718
+ ]),
719
+ });
720
+ }
721
+
722
+ /**
723
+ * Redacts a conversation part (message) from a conversation. Redaction permanently
724
+ * removes the message content while preserving the conversation structure.
725
+ *
726
+ * Only human message types can be redacted:
727
+ *
728
+ * - `user_msg` - Messages from customers/leads
729
+ * - `admin_msg` - Messages from admins
730
+ * - `email_msg` - Email messages
731
+ * - `bot_msg` - Bot messages
732
+ *
733
+ * System-generated conversation parts (assignments, status changes, etc.) cannot
734
+ * be redacted.
735
+ *
736
+ * ### Request Body
737
+ *
738
+ * | Field | Type | Required | Description |
739
+ * | -------------------- | ------ | -------- | ------------------------------------------------------------------------------ |
740
+ * | `type` | string | Yes | The type of item to redact. Currently only `"conversation_part"` is supported. |
741
+ * | `conversationId` | string | Yes | The conversation short ID containing the part to redact |
742
+ * | `conversationPartId` | string | Yes | The conversation part short ID to redact |
743
+ * | `actingAdminId` | string | No | Admin ID performing the action (for attribution) |
744
+ *
745
+ * ### Response
746
+ *
747
+ * Returns the updated conversation object.
748
+ *
749
+ * ### Example Request
750
+ *
751
+ * ```json
752
+ * {
753
+ * "type": "conversation_part",
754
+ * "conversationId": "12345",
755
+ * "conversationPartId": "67890",
756
+ * "actingAdminId": "507f1f77bcf86cd799439011"
757
+ * }
758
+ * ```
759
+ *
760
+ * ### Example Response
761
+ *
762
+ * ```json
763
+ * {
764
+ * "object": "conversation",
765
+ * "id": "12345",
766
+ * "conversationParts": [
767
+ * {
768
+ * "object": "conversation_part",
769
+ * "id": "67890",
770
+ * "partType": "user_msg",
771
+ * "bodyHtml": "",
772
+ * "bodyMarkdown": "",
773
+ * "redacted": true,
774
+ * ...
775
+ * }
776
+ * ],
777
+ * ...
778
+ * }
779
+ * ```
780
+ *
781
+ * ### Error Cases
782
+ *
783
+ * - **400 Bad Request** - Only human messages can be redacted
784
+ * - **404 Not Found** - Conversation or conversation part not found
785
+ *
786
+ * ### Version Availability
787
+ *
788
+ * This endpoint is only available in API version 2026-01-01.nova and newer.
789
+ *
790
+ * @example
791
+ * ```ts
792
+ * const conversation =
793
+ * await client.support.conversations.redact({
794
+ * conversationId: '12345',
795
+ * conversationPartId: '67890',
796
+ * type: 'conversation_part',
797
+ * });
798
+ * ```
799
+ */
800
+ redact(params: ConversationRedactParams, options?: RequestOptions): APIPromise<Conversation> {
801
+ const { 'Featurebase-Version': featurebaseVersion, ...body } = params;
802
+ return this._client.post('/v2/conversations/redact', {
803
+ body,
804
+ ...options,
805
+ headers: buildHeaders([
806
+ {
807
+ ...(featurebaseVersion?.toString() != null ?
808
+ { 'Featurebase-Version': featurebaseVersion?.toString() }
809
+ : undefined),
810
+ },
811
+ options?.headers,
812
+ ]),
813
+ });
814
+ }
815
+
816
+ /**
817
+ * Adds a reply to an existing conversation. Supports both contact (customer/lead)
818
+ * and admin replies.
819
+ *
820
+ * ### Path Parameters
821
+ *
822
+ * - `id` - The conversation ID (short ID)
823
+ *
824
+ * ### Request Body
825
+ *
826
+ * The request body varies based on who is sending the reply:
827
+ *
828
+ * #### Contact Reply (customer/lead)
829
+ *
830
+ * | Field | Type | Required | Description |
831
+ * | ------------------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------- |
832
+ * | `type` | string | Yes | Must be "contact" |
833
+ * | `userId` | string | No\* | External user ID from your system |
834
+ * | `id` | string | No\* | Featurebase contact ID (24-character ObjectId) |
835
+ * | `bodyMarkdown` | string | Yes | The message content in markdown format. Images referenced by URL or as base64 data URIs will be automatically uploaded and stored. |
836
+ * | `messageType` | string | Yes | Must be "reply" |
837
+ * | `skipNotifications` | boolean | No | Skip sending notifications (default: false). Useful for bulk imports. |
838
+ *
839
+ * \*At least one of `userId` or `id` is required.
840
+ *
841
+ * #### Admin Reply
842
+ *
843
+ * | Field | Type | Required | Description |
844
+ * | ------------------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------- |
845
+ * | `type` | string | Yes | Must be "admin" |
846
+ * | `id` | string | Yes | Featurebase admin ID (24-character ObjectId) |
847
+ * | `bodyMarkdown` | string | Yes | The message content in markdown format. Images referenced by URL or as base64 data URIs will be automatically uploaded and stored. |
848
+ * | `messageType` | string | Yes | "reply" for customer-visible reply, "note" for internal note |
849
+ * | `skipNotifications` | boolean | No | Skip sending notifications (default: false). Useful for bulk imports. |
850
+ *
851
+ * ### Response
852
+ *
853
+ * Returns the created conversation part object with a **201 Created** status. The
854
+ * response includes both `bodyHtml` (with signed image URLs) and `bodyMarkdown`
855
+ * fields.
856
+ *
857
+ * ### Example Contact Reply
858
+ *
859
+ * ```json
860
+ * {
861
+ * "type": "contact",
862
+ * "userId": "user_123",
863
+ * "bodyMarkdown": "Thank you for your help!",
864
+ * "messageType": "reply"
865
+ * }
866
+ * ```
867
+ *
868
+ * ### Example Admin Reply
869
+ *
870
+ * ```json
871
+ * {
872
+ * "type": "admin",
873
+ * "id": "507f1f77bcf86cd799439011",
874
+ * "bodyMarkdown": "I'm happy to help! Here's what you need to do...",
875
+ * "messageType": "reply"
876
+ * }
877
+ * ```
878
+ *
879
+ * ### Example Admin Note (Internal)
880
+ *
881
+ * ```json
882
+ * {
883
+ * "type": "admin",
884
+ * "id": "507f1f77bcf86cd799439011",
885
+ * "bodyMarkdown": "Customer seems frustrated, escalating to tier 2.",
886
+ * "messageType": "note"
887
+ * }
888
+ * ```
889
+ *
890
+ * ### Example Response
898
891
  *
899
892
  * ```json
900
893
  * {
901
- * "actingAdminId": "507f1f77bcf86cd799439011"
894
+ * "object": "conversation_part",
895
+ * "id": "3",
896
+ * "partType": "user_msg",
897
+ * "bodyHtml": "<p>Thank you for your help!</p>",
898
+ * "bodyMarkdown": "Thank you for your help!",
899
+ * "author": {
900
+ * "type": "customer",
901
+ * "id": "676f0f6765bdaa7d7d760f88",
902
+ * "name": "John Doe",
903
+ * "email": "john@example.com"
904
+ * },
905
+ * "channel": "desktop",
906
+ * "createdAt": "2025-01-15T10:40:00.000Z",
907
+ * "updatedAt": "2025-01-15T10:40:00.000Z"
902
908
  * }
903
909
  * ```
904
910
  *
@@ -908,23 +914,17 @@ export class Conversations extends APIResource {
908
914
  *
909
915
  * @example
910
916
  * ```ts
911
- * const attachedConversationTag =
912
- * await client.support.conversations.detachTag(
913
- * '67ec1234abcd5678ef901234',
914
- * {
915
- * id: '12345',
916
- * actingAdminId: '507f1f77bcf86cd799439011',
917
- * },
918
- * );
917
+ * const conversationPart =
918
+ * await client.support.conversations.reply('12345', {
919
+ * bodyMarkdown: 'Thank you for your help!',
920
+ * messageType: 'reply',
921
+ * type: 'contact',
922
+ * });
919
923
  * ```
920
924
  */
921
- detachTag(
922
- tagID: string,
923
- params: ConversationDetachTagParams,
924
- options?: RequestOptions,
925
- ): APIPromise<AttachedConversationTag> {
926
- const { id, 'Featurebase-Version': featurebaseVersion, ...body } = params;
927
- return this._client.delete(path`/v2/conversations/${id}/tags/${tagID}`, {
925
+ reply(id: string, params: ConversationReplyParams, options?: RequestOptions): APIPromise<ConversationPart> {
926
+ const { 'Featurebase-Version': featurebaseVersion, ...body } = params;
927
+ return this._client.post(path`/v2/conversations/${id}/reply`, {
928
928
  body,
929
929
  ...options,
930
930
  headers: buildHeaders([
@@ -1038,6 +1038,16 @@ export class Conversations extends APIResource {
1038
1038
  * fields (`state`, `priority`) are exempt because their negation is naturally
1039
1039
  * bounded.
1040
1040
  *
1041
+ * ### Inbox visibility
1042
+ *
1043
+ * An open-state filter uses the same visibility rule as the Featurebase dashboard
1044
+ * inbox. Workflow and outbound-message shells are excluded until a customer or
1045
+ * lead interacts with them. As a result, `state = "open"` (or an `IN`/`NIN` filter
1046
+ * that resolves exclusively to open) returns the conversations shown in the
1047
+ * dashboard's open inbox rather than unreplied campaign or automation shells.
1048
+ * Searches without an open-only state filter keep their existing organization-wide
1049
+ * semantics.
1050
+ *
1041
1051
  * ### Pagination
1042
1052
  *
1043
1053
  * Cursor-based, `limit` between 1 and 100 (default 10). Pagination cursors are
@@ -1536,6 +1546,12 @@ export interface ConversationAttributeValue {
1536
1546
  */
1537
1547
  options?: Array<ConversationAttributesAPI.ConversationAttributeOption>;
1538
1548
 
1549
+ /**
1550
+ * Whether teammates must set a value before closing a conversation from the Inbox.
1551
+ * Closes via the API, workflows, and Fibi are not blocked.
1552
+ */
1553
+ required?: boolean;
1554
+
1539
1555
  /**
1540
1556
  * The conversation-specific custom attribute value.
1541
1557
  */
@@ -2673,7 +2689,17 @@ export interface CsatEmailDelivery {
2673
2689
  /**
2674
2690
  * Email delivery status for the CSAT request when applicable
2675
2691
  */
2676
- status: 'pending' | 'sent' | 'failed';
2692
+ status: 'pending' | 'sending' | 'ambiguous' | 'retry_wait' | 'sent' | 'failed';
2693
+
2694
+ /**
2695
+ * Number of delivery attempts made for this CSAT email
2696
+ */
2697
+ attempts?: number;
2698
+
2699
+ /**
2700
+ * ISO timestamp when the current delivery attempt was durably claimed
2701
+ */
2702
+ claimedAt?: string;
2677
2703
 
2678
2704
  /**
2679
2705
  * ISO timestamp when the CSAT email failed
@@ -2685,11 +2711,21 @@ export interface CsatEmailDelivery {
2685
2711
  */
2686
2712
  failureReason?: string;
2687
2713
 
2714
+ /**
2715
+ * Stable provider-correlation key for this CSAT delivery
2716
+ */
2717
+ idempotencyKey?: string;
2718
+
2688
2719
  /**
2689
2720
  * Email message ID associated with delivery
2690
2721
  */
2691
2722
  messageId?: string;
2692
2723
 
2724
+ /**
2725
+ * ISO timestamp when a retry-waiting CSAT email may be attempted again
2726
+ */
2727
+ nextAttemptAt?: string;
2728
+
2693
2729
  /**
2694
2730
  * ISO timestamp when the CSAT email was sent
2695
2731
  */
@@ -3159,27 +3195,6 @@ export namespace ConversationSearchResponse {
3159
3195
  }
3160
3196
  }
3161
3197
 
3162
- export interface ConversationListParams extends CursorPageParams {
3163
- /**
3164
- * Query param: Comma-separated optional expansions. Use
3165
- * `customAttributeDefinitions` to return `customAttributeValues` with names and
3166
- * types alongside ID-keyed `customAttributes`.
3167
- */
3168
- include?: string | Array<string>;
3169
-
3170
- /**
3171
- * Query param: Filter conversations by one or more tag IDs using a comma-separated
3172
- * list. Conversations must contain all provided tags.
3173
- */
3174
- tagIds?: string | Array<string>;
3175
-
3176
- /**
3177
- * Header param: API version for this request. Defaults to your organization's
3178
- * configured API version if not specified.
3179
- */
3180
- 'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
3181
- }
3182
-
3183
3198
  export interface ConversationCreateParams {
3184
3199
  /**
3185
3200
  * Body param: The content of the initial message in markdown format. Images
@@ -3223,7 +3238,7 @@ export interface ConversationCreateParams {
3223
3238
  * Header param: API version for this request. Defaults to your organization's
3224
3239
  * configured API version if not specified.
3225
3240
  */
3226
- 'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
3241
+ 'Featurebase-Version'?: '2026-08-19.orbit' | '2026-01-01.nova' | '2025-12-12.clover';
3227
3242
  }
3228
3243
 
3229
3244
  export namespace ConversationCreateParams {
@@ -3291,15 +3306,7 @@ export interface ConversationRetrieveParams {
3291
3306
  * Header param: API version for this request. Defaults to your organization's
3292
3307
  * configured API version if not specified.
3293
3308
  */
3294
- 'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
3295
- }
3296
-
3297
- export interface ConversationDeleteParams {
3298
- /**
3299
- * API version for this request. Defaults to your organization's configured API
3300
- * version if not specified.
3301
- */
3302
- 'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
3309
+ 'Featurebase-Version'?: '2026-08-19.orbit' | '2026-01-01.nova' | '2025-12-12.clover';
3303
3310
  }
3304
3311
 
3305
3312
  export interface ConversationUpdateParams {
@@ -3353,7 +3360,7 @@ export interface ConversationUpdateParams {
3353
3360
  * Header param: API version for this request. Defaults to your organization's
3354
3361
  * configured API version if not specified.
3355
3362
  */
3356
- 'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
3363
+ 'Featurebase-Version'?: '2026-08-19.orbit' | '2026-01-01.nova' | '2025-12-12.clover';
3357
3364
  }
3358
3365
 
3359
3366
  export namespace ConversationUpdateParams {
@@ -3386,6 +3393,103 @@ export namespace ConversationUpdateParams {
3386
3393
  }
3387
3394
  }
3388
3395
 
3396
+ export interface ConversationListParams extends CursorPageParams {
3397
+ /**
3398
+ * Query param: Comma-separated optional expansions. Use
3399
+ * `customAttributeDefinitions` to return `customAttributeValues` with names and
3400
+ * types alongside ID-keyed `customAttributes`.
3401
+ */
3402
+ include?: string | Array<string>;
3403
+
3404
+ /**
3405
+ * Query param: Filter conversations by one or more tag IDs using a comma-separated
3406
+ * list. Conversations must contain all provided tags.
3407
+ */
3408
+ tagIds?: string | Array<string>;
3409
+
3410
+ /**
3411
+ * Header param: API version for this request. Defaults to your organization's
3412
+ * configured API version if not specified.
3413
+ */
3414
+ 'Featurebase-Version'?: '2026-08-19.orbit' | '2026-01-01.nova' | '2025-12-12.clover';
3415
+ }
3416
+
3417
+ export interface ConversationDeleteParams {
3418
+ /**
3419
+ * API version for this request. Defaults to your organization's configured API
3420
+ * version if not specified.
3421
+ */
3422
+ 'Featurebase-Version'?: '2026-08-19.orbit' | '2026-01-01.nova' | '2025-12-12.clover';
3423
+ }
3424
+
3425
+ export interface ConversationAttachTagParams {
3426
+ /**
3427
+ * Body param: Required admin ID performing this tag attachment. Must be a member
3428
+ * of the organization so the mutation can be attributed to a real admin actor.
3429
+ */
3430
+ actingAdminId: string;
3431
+
3432
+ /**
3433
+ * Body param: The Featurebase tag ID to attach to the conversation.
3434
+ */
3435
+ tagId: string;
3436
+
3437
+ /**
3438
+ * Header param: API version for this request. Defaults to your organization's
3439
+ * configured API version if not specified.
3440
+ */
3441
+ 'Featurebase-Version'?: '2026-08-19.orbit' | '2026-01-01.nova' | '2025-12-12.clover';
3442
+ }
3443
+
3444
+ export interface ConversationDetachTagParams {
3445
+ /**
3446
+ * Path param: Conversation ID (short ID)
3447
+ */
3448
+ id: string;
3449
+
3450
+ /**
3451
+ * Body param: Required admin ID performing this tag removal. Must be a member of
3452
+ * the organization so the mutation can be attributed to a real admin actor.
3453
+ */
3454
+ actingAdminId: string;
3455
+
3456
+ /**
3457
+ * Header param: API version for this request. Defaults to your organization's
3458
+ * configured API version if not specified.
3459
+ */
3460
+ 'Featurebase-Version'?: '2026-08-19.orbit' | '2026-01-01.nova' | '2025-12-12.clover';
3461
+ }
3462
+
3463
+ export interface ConversationRedactParams {
3464
+ /**
3465
+ * Body param: The conversation short ID that contains the part to redact
3466
+ */
3467
+ conversationId: string;
3468
+
3469
+ /**
3470
+ * Body param: The conversation part short ID to redact
3471
+ */
3472
+ conversationPartId: string;
3473
+
3474
+ /**
3475
+ * Body param: The type of item to redact. Currently only "conversation_part" is
3476
+ * supported.
3477
+ */
3478
+ type: 'conversation_part';
3479
+
3480
+ /**
3481
+ * Body param: The admin ID performing this action. If not provided, changes are
3482
+ * attributed to the system bot user.
3483
+ */
3484
+ actingAdminId?: string;
3485
+
3486
+ /**
3487
+ * Header param: API version for this request. Defaults to your organization's
3488
+ * configured API version if not specified.
3489
+ */
3490
+ 'Featurebase-Version'?: '2026-08-19.orbit' | '2026-01-01.nova' | '2025-12-12.clover';
3491
+ }
3492
+
3389
3493
  export type ConversationReplyParams =
3390
3494
  | ConversationReplyParams.ContactReplyBody
3391
3495
  | ConversationReplyParams.AdminReplyBody;
@@ -3429,7 +3533,7 @@ export declare namespace ConversationReplyParams {
3429
3533
  * Header param: API version for this request. Defaults to your organization's
3430
3534
  * configured API version if not specified.
3431
3535
  */
3432
- 'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
3536
+ 'Featurebase-Version'?: '2026-08-19.orbit' | '2026-01-01.nova' | '2025-12-12.clover';
3433
3537
  }
3434
3538
 
3435
3539
  export interface AdminReplyBody {
@@ -3466,78 +3570,10 @@ export declare namespace ConversationReplyParams {
3466
3570
  * Header param: API version for this request. Defaults to your organization's
3467
3571
  * configured API version if not specified.
3468
3572
  */
3469
- 'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
3573
+ 'Featurebase-Version'?: '2026-08-19.orbit' | '2026-01-01.nova' | '2025-12-12.clover';
3470
3574
  }
3471
3575
  }
3472
3576
 
3473
- export interface ConversationRedactParams {
3474
- /**
3475
- * Body param: The conversation short ID that contains the part to redact
3476
- */
3477
- conversationId: string;
3478
-
3479
- /**
3480
- * Body param: The conversation part short ID to redact
3481
- */
3482
- conversationPartId: string;
3483
-
3484
- /**
3485
- * Body param: The type of item to redact. Currently only "conversation_part" is
3486
- * supported.
3487
- */
3488
- type: 'conversation_part';
3489
-
3490
- /**
3491
- * Body param: The admin ID performing this action. If not provided, changes are
3492
- * attributed to the system bot user.
3493
- */
3494
- actingAdminId?: string;
3495
-
3496
- /**
3497
- * Header param: API version for this request. Defaults to your organization's
3498
- * configured API version if not specified.
3499
- */
3500
- 'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
3501
- }
3502
-
3503
- export interface ConversationAttachTagParams {
3504
- /**
3505
- * Body param: Required admin ID performing this tag attachment. Must be a member
3506
- * of the organization so the mutation can be attributed to a real admin actor.
3507
- */
3508
- actingAdminId: string;
3509
-
3510
- /**
3511
- * Body param: The Featurebase tag ID to attach to the conversation.
3512
- */
3513
- tagId: string;
3514
-
3515
- /**
3516
- * Header param: API version for this request. Defaults to your organization's
3517
- * configured API version if not specified.
3518
- */
3519
- 'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
3520
- }
3521
-
3522
- export interface ConversationDetachTagParams {
3523
- /**
3524
- * Path param: Conversation ID (short ID)
3525
- */
3526
- id: string;
3527
-
3528
- /**
3529
- * Body param: Required admin ID performing this tag removal. Must be a member of
3530
- * the organization so the mutation can be attributed to a real admin actor.
3531
- */
3532
- actingAdminId: string;
3533
-
3534
- /**
3535
- * Header param: API version for this request. Defaults to your organization's
3536
- * configured API version if not specified.
3537
- */
3538
- 'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
3539
- }
3540
-
3541
3577
  export interface ConversationSearchParams {
3542
3578
  /**
3543
3579
  * Body param: An opaque cursor for pagination. Use the nextCursor value from a
@@ -3585,7 +3621,7 @@ export interface ConversationSearchParams {
3585
3621
  * Header param: API version for this request. Defaults to your organization's
3586
3622
  * configured API version if not specified.
3587
3623
  */
3588
- 'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
3624
+ 'Featurebase-Version'?: '2026-08-19.orbit' | '2026-01-01.nova' | '2025-12-12.clover';
3589
3625
  }
3590
3626
 
3591
3627
  Conversations.Participants = Participants;
@@ -3611,15 +3647,15 @@ export declare namespace Conversations {
3611
3647
  type ConversationDeleteResponse as ConversationDeleteResponse,
3612
3648
  type ConversationSearchResponse as ConversationSearchResponse,
3613
3649
  type ConversationsCursorPage as ConversationsCursorPage,
3614
- type ConversationListParams as ConversationListParams,
3615
3650
  type ConversationCreateParams as ConversationCreateParams,
3616
3651
  type ConversationRetrieveParams as ConversationRetrieveParams,
3617
- type ConversationDeleteParams as ConversationDeleteParams,
3618
3652
  type ConversationUpdateParams as ConversationUpdateParams,
3619
- type ConversationReplyParams as ConversationReplyParams,
3620
- type ConversationRedactParams as ConversationRedactParams,
3653
+ type ConversationListParams as ConversationListParams,
3654
+ type ConversationDeleteParams as ConversationDeleteParams,
3621
3655
  type ConversationAttachTagParams as ConversationAttachTagParams,
3622
3656
  type ConversationDetachTagParams as ConversationDetachTagParams,
3657
+ type ConversationRedactParams as ConversationRedactParams,
3658
+ type ConversationReplyParams as ConversationReplyParams,
3623
3659
  type ConversationSearchParams as ConversationSearchParams,
3624
3660
  };
3625
3661