featurebase-node 0.13.0 → 0.14.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 (515) hide show
  1. package/CHANGELOG.md +23 -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 +21 -3
  9. package/client.d.mts.map +1 -1
  10. package/client.d.ts +21 -3
  11. package/client.d.ts.map +1 -1
  12. package/client.js +27 -1
  13. package/client.js.map +1 -1
  14. package/client.mjs +27 -1
  15. package/client.mjs.map +1 -1
  16. package/core/api-promise.d.mts.map +1 -1
  17. package/core/api-promise.d.ts.map +1 -1
  18. package/core/api-promise.mjs.map +1 -1
  19. package/core/error.mjs.map +1 -1
  20. package/core/pagination.d.mts.map +1 -1
  21. package/core/pagination.d.ts.map +1 -1
  22. package/core/pagination.mjs.map +1 -1
  23. package/core/resource.d.mts.map +1 -1
  24. package/core/resource.d.ts.map +1 -1
  25. package/core/uploads.d.mts.map +1 -1
  26. package/core/uploads.d.ts.map +1 -1
  27. package/core/uploads.mjs.map +1 -1
  28. package/error.d.mts +1 -0
  29. package/error.d.mts.map +1 -1
  30. package/error.d.ts +1 -0
  31. package/error.d.ts.map +1 -1
  32. package/error.mjs +1 -0
  33. package/error.mjs.map +1 -1
  34. package/index.d.mts.map +1 -1
  35. package/index.d.ts.map +1 -1
  36. package/index.mjs.map +1 -1
  37. package/internal/detect-platform.mjs.map +1 -1
  38. package/internal/headers.mjs.map +1 -1
  39. package/internal/parse.d.mts.map +1 -1
  40. package/internal/parse.d.ts.map +1 -1
  41. package/internal/parse.mjs.map +1 -1
  42. package/internal/qs/formats.d.mts.map +1 -1
  43. package/internal/qs/formats.d.ts.map +1 -1
  44. package/internal/qs/index.d.mts +2 -2
  45. package/internal/qs/index.d.mts.map +1 -1
  46. package/internal/qs/index.d.ts +2 -2
  47. package/internal/qs/index.d.ts.map +1 -1
  48. package/internal/qs/index.mjs.map +1 -1
  49. package/internal/qs/stringify.d.mts.map +1 -1
  50. package/internal/qs/stringify.d.ts.map +1 -1
  51. package/internal/qs/stringify.mjs.map +1 -1
  52. package/internal/qs/utils.d.mts.map +1 -1
  53. package/internal/qs/utils.d.ts.map +1 -1
  54. package/internal/qs/utils.mjs.map +1 -1
  55. package/internal/request-options.d.mts.map +1 -1
  56. package/internal/request-options.d.ts.map +1 -1
  57. package/internal/shims.d.mts +6 -0
  58. package/internal/shims.d.mts.map +1 -1
  59. package/internal/shims.d.ts +6 -0
  60. package/internal/shims.d.ts.map +1 -1
  61. package/internal/to-file.d.mts.map +1 -1
  62. package/internal/to-file.d.ts.map +1 -1
  63. package/internal/to-file.mjs.map +1 -1
  64. package/internal/types.d.mts +4 -4
  65. package/internal/types.d.mts.map +1 -1
  66. package/internal/types.d.ts +4 -4
  67. package/internal/types.d.ts.map +1 -1
  68. package/internal/uploads.d.mts.map +1 -1
  69. package/internal/uploads.d.ts.map +1 -1
  70. package/internal/uploads.mjs.map +1 -1
  71. package/internal/utils/base64.mjs.map +1 -1
  72. package/internal/utils/log.d.mts.map +1 -1
  73. package/internal/utils/log.d.ts.map +1 -1
  74. package/internal/utils/log.mjs.map +1 -1
  75. package/internal/utils/path.mjs.map +1 -1
  76. package/internal/utils/query.mjs.map +1 -1
  77. package/internal/utils/values.mjs.map +1 -1
  78. package/internal/utils.d.mts.map +1 -1
  79. package/internal/utils.d.ts.map +1 -1
  80. package/internal/utils.mjs.map +1 -1
  81. package/package.json +16 -10
  82. package/pagination.d.mts +1 -0
  83. package/pagination.d.mts.map +1 -1
  84. package/pagination.d.ts +1 -0
  85. package/pagination.d.ts.map +1 -1
  86. package/pagination.mjs +1 -0
  87. package/pagination.mjs.map +1 -1
  88. package/resource.d.mts +1 -0
  89. package/resource.d.mts.map +1 -1
  90. package/resource.d.ts +1 -0
  91. package/resource.d.ts.map +1 -1
  92. package/resource.mjs +1 -0
  93. package/resource.mjs.map +1 -1
  94. package/resources/audit-logs.d.mts +233 -0
  95. package/resources/audit-logs.d.mts.map +1 -0
  96. package/resources/audit-logs.d.ts +233 -0
  97. package/resources/audit-logs.d.ts.map +1 -0
  98. package/resources/audit-logs.js +122 -0
  99. package/resources/audit-logs.js.map +1 -0
  100. package/resources/audit-logs.mjs +118 -0
  101. package/resources/audit-logs.mjs.map +1 -0
  102. package/resources/changelogs/changelogs.d.mts +106 -106
  103. package/resources/changelogs/changelogs.d.mts.map +1 -1
  104. package/resources/changelogs/changelogs.d.ts +106 -106
  105. package/resources/changelogs/changelogs.d.ts.map +1 -1
  106. package/resources/changelogs/changelogs.js +74 -74
  107. package/resources/changelogs/changelogs.js.map +1 -1
  108. package/resources/changelogs/changelogs.mjs +74 -74
  109. package/resources/changelogs/changelogs.mjs.map +1 -1
  110. package/resources/changelogs/index.d.mts +1 -1
  111. package/resources/changelogs/index.d.mts.map +1 -1
  112. package/resources/changelogs/index.d.ts +1 -1
  113. package/resources/changelogs/index.d.ts.map +1 -1
  114. package/resources/changelogs/index.mjs.map +1 -1
  115. package/resources/changelogs/subscribers.d.mts.map +1 -1
  116. package/resources/changelogs/subscribers.d.ts.map +1 -1
  117. package/resources/changelogs/subscribers.mjs.map +1 -1
  118. package/resources/changelogs.d.mts.map +1 -1
  119. package/resources/changelogs.d.ts.map +1 -1
  120. package/resources/changelogs.mjs.map +1 -1
  121. package/resources/conversation-attributes.d.mts +117 -0
  122. package/resources/conversation-attributes.d.mts.map +1 -0
  123. package/resources/conversation-attributes.d.ts +117 -0
  124. package/resources/conversation-attributes.d.ts.map +1 -0
  125. package/resources/conversation-attributes.js +61 -0
  126. package/resources/conversation-attributes.js.map +1 -0
  127. package/resources/conversation-attributes.mjs +57 -0
  128. package/resources/conversation-attributes.mjs.map +1 -0
  129. package/resources/feedback/boards.d.mts +17 -17
  130. package/resources/feedback/boards.d.mts.map +1 -1
  131. package/resources/feedback/boards.d.ts +17 -17
  132. package/resources/feedback/boards.d.ts.map +1 -1
  133. package/resources/feedback/boards.js +20 -20
  134. package/resources/feedback/boards.js.map +1 -1
  135. package/resources/feedback/boards.mjs +20 -20
  136. package/resources/feedback/boards.mjs.map +1 -1
  137. package/resources/feedback/comments.d.mts +129 -191
  138. package/resources/feedback/comments.d.mts.map +1 -1
  139. package/resources/feedback/comments.d.ts +129 -191
  140. package/resources/feedback/comments.d.ts.map +1 -1
  141. package/resources/feedback/comments.js +93 -93
  142. package/resources/feedback/comments.js.map +1 -1
  143. package/resources/feedback/comments.mjs +93 -93
  144. package/resources/feedback/comments.mjs.map +1 -1
  145. package/resources/feedback/custom-fields.d.mts +34 -34
  146. package/resources/feedback/custom-fields.d.mts.map +1 -1
  147. package/resources/feedback/custom-fields.d.ts +34 -34
  148. package/resources/feedback/custom-fields.d.ts.map +1 -1
  149. package/resources/feedback/custom-fields.js +36 -36
  150. package/resources/feedback/custom-fields.js.map +1 -1
  151. package/resources/feedback/custom-fields.mjs +36 -36
  152. package/resources/feedback/custom-fields.mjs.map +1 -1
  153. package/resources/feedback/feedback.d.mts +7 -7
  154. package/resources/feedback/feedback.d.mts.map +1 -1
  155. package/resources/feedback/feedback.d.ts +7 -7
  156. package/resources/feedback/feedback.d.ts.map +1 -1
  157. package/resources/feedback/feedback.js.map +1 -1
  158. package/resources/feedback/feedback.mjs.map +1 -1
  159. package/resources/feedback/index.d.mts +5 -5
  160. package/resources/feedback/index.d.mts.map +1 -1
  161. package/resources/feedback/index.d.ts +5 -5
  162. package/resources/feedback/index.d.ts.map +1 -1
  163. package/resources/feedback/index.js.map +1 -1
  164. package/resources/feedback/index.mjs.map +1 -1
  165. package/resources/feedback/post-statuses.d.mts +18 -18
  166. package/resources/feedback/post-statuses.d.mts.map +1 -1
  167. package/resources/feedback/post-statuses.d.ts +18 -18
  168. package/resources/feedback/post-statuses.d.ts.map +1 -1
  169. package/resources/feedback/post-statuses.js +23 -23
  170. package/resources/feedback/post-statuses.js.map +1 -1
  171. package/resources/feedback/post-statuses.mjs +23 -23
  172. package/resources/feedback/post-statuses.mjs.map +1 -1
  173. package/resources/feedback/posts/index.d.mts +1 -1
  174. package/resources/feedback/posts/index.d.mts.map +1 -1
  175. package/resources/feedback/posts/index.d.ts +1 -1
  176. package/resources/feedback/posts/index.d.ts.map +1 -1
  177. package/resources/feedback/posts/index.js.map +1 -1
  178. package/resources/feedback/posts/index.mjs.map +1 -1
  179. package/resources/feedback/posts/posts.d.mts +187 -260
  180. package/resources/feedback/posts/posts.d.mts.map +1 -1
  181. package/resources/feedback/posts/posts.d.ts +187 -260
  182. package/resources/feedback/posts/posts.d.ts.map +1 -1
  183. package/resources/feedback/posts/posts.js +75 -75
  184. package/resources/feedback/posts/posts.js.map +1 -1
  185. package/resources/feedback/posts/posts.mjs +75 -75
  186. package/resources/feedback/posts/posts.mjs.map +1 -1
  187. package/resources/feedback/posts/voters.d.mts.map +1 -1
  188. package/resources/feedback/posts/voters.d.ts.map +1 -1
  189. package/resources/feedback/posts/voters.mjs.map +1 -1
  190. package/resources/feedback/posts.d.mts.map +1 -1
  191. package/resources/feedback/posts.d.ts.map +1 -1
  192. package/resources/feedback/posts.mjs.map +1 -1
  193. package/resources/feedback.d.mts.map +1 -1
  194. package/resources/feedback.d.ts.map +1 -1
  195. package/resources/feedback.mjs.map +1 -1
  196. package/resources/help-center/articles.d.mts +98 -152
  197. package/resources/help-center/articles.d.mts.map +1 -1
  198. package/resources/help-center/articles.d.ts +98 -152
  199. package/resources/help-center/articles.d.ts.map +1 -1
  200. package/resources/help-center/articles.js +73 -73
  201. package/resources/help-center/articles.js.map +1 -1
  202. package/resources/help-center/articles.mjs +73 -73
  203. package/resources/help-center/articles.mjs.map +1 -1
  204. package/resources/help-center/collections.d.mts +64 -64
  205. package/resources/help-center/collections.d.mts.map +1 -1
  206. package/resources/help-center/collections.d.ts +64 -64
  207. package/resources/help-center/collections.d.ts.map +1 -1
  208. package/resources/help-center/collections.js +65 -65
  209. package/resources/help-center/collections.js.map +1 -1
  210. package/resources/help-center/collections.mjs +65 -65
  211. package/resources/help-center/collections.mjs.map +1 -1
  212. package/resources/help-center/help-center.d.mts +5 -5
  213. package/resources/help-center/help-center.d.mts.map +1 -1
  214. package/resources/help-center/help-center.d.ts +5 -5
  215. package/resources/help-center/help-center.d.ts.map +1 -1
  216. package/resources/help-center/help-center.js.map +1 -1
  217. package/resources/help-center/help-center.mjs.map +1 -1
  218. package/resources/help-center/help-centers.d.mts +43 -43
  219. package/resources/help-center/help-centers.d.mts.map +1 -1
  220. package/resources/help-center/help-centers.d.ts +43 -43
  221. package/resources/help-center/help-centers.d.ts.map +1 -1
  222. package/resources/help-center/help-centers.js +43 -43
  223. package/resources/help-center/help-centers.js.map +1 -1
  224. package/resources/help-center/help-centers.mjs +43 -43
  225. package/resources/help-center/help-centers.mjs.map +1 -1
  226. package/resources/help-center/index.d.mts +4 -4
  227. package/resources/help-center/index.d.mts.map +1 -1
  228. package/resources/help-center/index.d.ts +4 -4
  229. package/resources/help-center/index.d.ts.map +1 -1
  230. package/resources/help-center/index.js.map +1 -1
  231. package/resources/help-center/index.mjs.map +1 -1
  232. package/resources/help-center/redirect-rules.d.mts +117 -117
  233. package/resources/help-center/redirect-rules.d.mts.map +1 -1
  234. package/resources/help-center/redirect-rules.d.ts +117 -117
  235. package/resources/help-center/redirect-rules.d.ts.map +1 -1
  236. package/resources/help-center/redirect-rules.js +112 -112
  237. package/resources/help-center/redirect-rules.js.map +1 -1
  238. package/resources/help-center/redirect-rules.mjs +112 -112
  239. package/resources/help-center/redirect-rules.mjs.map +1 -1
  240. package/resources/help-center.d.mts.map +1 -1
  241. package/resources/help-center.d.ts.map +1 -1
  242. package/resources/help-center.mjs.map +1 -1
  243. package/resources/index.d.mts +6 -3
  244. package/resources/index.d.mts.map +1 -1
  245. package/resources/index.d.ts +6 -3
  246. package/resources/index.d.ts.map +1 -1
  247. package/resources/index.js +7 -1
  248. package/resources/index.js.map +1 -1
  249. package/resources/index.mjs +3 -0
  250. package/resources/index.mjs.map +1 -1
  251. package/resources/organization/admins.d.mts +33 -23
  252. package/resources/organization/admins.d.mts.map +1 -1
  253. package/resources/organization/admins.d.ts +33 -23
  254. package/resources/organization/admins.d.ts.map +1 -1
  255. package/resources/organization/admins.js +27 -25
  256. package/resources/organization/admins.js.map +1 -1
  257. package/resources/organization/admins.mjs +27 -25
  258. package/resources/organization/admins.mjs.map +1 -1
  259. package/resources/organization/brands.d.mts +50 -50
  260. package/resources/organization/brands.d.mts.map +1 -1
  261. package/resources/organization/brands.d.ts +50 -50
  262. package/resources/organization/brands.d.ts.map +1 -1
  263. package/resources/organization/brands.js +54 -54
  264. package/resources/organization/brands.js.map +1 -1
  265. package/resources/organization/brands.mjs +54 -54
  266. package/resources/organization/brands.mjs.map +1 -1
  267. package/resources/organization/index.d.mts +3 -3
  268. package/resources/organization/index.d.mts.map +1 -1
  269. package/resources/organization/index.d.ts +3 -3
  270. package/resources/organization/index.d.ts.map +1 -1
  271. package/resources/organization/index.mjs.map +1 -1
  272. package/resources/organization/organization.d.mts +3 -3
  273. package/resources/organization/organization.d.mts.map +1 -1
  274. package/resources/organization/organization.d.ts +3 -3
  275. package/resources/organization/organization.d.ts.map +1 -1
  276. package/resources/organization/organization.mjs.map +1 -1
  277. package/resources/organization/teams.d.mts +45 -45
  278. package/resources/organization/teams.d.mts.map +1 -1
  279. package/resources/organization/teams.d.ts +45 -45
  280. package/resources/organization/teams.d.ts.map +1 -1
  281. package/resources/organization/teams.js +44 -44
  282. package/resources/organization/teams.js.map +1 -1
  283. package/resources/organization/teams.mjs +44 -44
  284. package/resources/organization/teams.mjs.map +1 -1
  285. package/resources/organization.d.mts.map +1 -1
  286. package/resources/organization.d.ts.map +1 -1
  287. package/resources/organization.mjs.map +1 -1
  288. package/resources/reports.d.mts +641 -0
  289. package/resources/reports.d.mts.map +1 -0
  290. package/resources/reports.d.ts +641 -0
  291. package/resources/reports.d.ts.map +1 -0
  292. package/resources/reports.js +238 -0
  293. package/resources/reports.js.map +1 -0
  294. package/resources/reports.mjs +234 -0
  295. package/resources/reports.mjs.map +1 -0
  296. package/resources/support/conversation-tags.d.mts +40 -40
  297. package/resources/support/conversation-tags.d.mts.map +1 -1
  298. package/resources/support/conversation-tags.d.ts +40 -40
  299. package/resources/support/conversation-tags.d.ts.map +1 -1
  300. package/resources/support/conversation-tags.js +32 -32
  301. package/resources/support/conversation-tags.js.map +1 -1
  302. package/resources/support/conversation-tags.mjs +32 -32
  303. package/resources/support/conversation-tags.mjs.map +1 -1
  304. package/resources/support/conversations/conversations.d.mts +599 -705
  305. package/resources/support/conversations/conversations.d.mts.map +1 -1
  306. package/resources/support/conversations/conversations.d.ts +599 -705
  307. package/resources/support/conversations/conversations.d.ts.map +1 -1
  308. package/resources/support/conversations/conversations.js +289 -288
  309. package/resources/support/conversations/conversations.js.map +1 -1
  310. package/resources/support/conversations/conversations.mjs +289 -288
  311. package/resources/support/conversations/conversations.mjs.map +1 -1
  312. package/resources/support/conversations/index.d.mts +1 -1
  313. package/resources/support/conversations/index.d.mts.map +1 -1
  314. package/resources/support/conversations/index.d.ts +1 -1
  315. package/resources/support/conversations/index.d.ts.map +1 -1
  316. package/resources/support/conversations/index.js.map +1 -1
  317. package/resources/support/conversations/index.mjs.map +1 -1
  318. package/resources/support/conversations/participants.d.mts.map +1 -1
  319. package/resources/support/conversations/participants.d.ts.map +1 -1
  320. package/resources/support/conversations/participants.mjs.map +1 -1
  321. package/resources/support/conversations.d.mts.map +1 -1
  322. package/resources/support/conversations.d.ts.map +1 -1
  323. package/resources/support/conversations.mjs.map +1 -1
  324. package/resources/support/index.d.mts +3 -3
  325. package/resources/support/index.d.mts.map +1 -1
  326. package/resources/support/index.d.ts +3 -3
  327. package/resources/support/index.d.ts.map +1 -1
  328. package/resources/support/index.js.map +1 -1
  329. package/resources/support/index.mjs.map +1 -1
  330. package/resources/support/support.d.mts +4 -4
  331. package/resources/support/support.d.mts.map +1 -1
  332. package/resources/support/support.d.ts +4 -4
  333. package/resources/support/support.d.ts.map +1 -1
  334. package/resources/support/support.js.map +1 -1
  335. package/resources/support/support.mjs.map +1 -1
  336. package/resources/support/tickets/categories.d.mts +18 -18
  337. package/resources/support/tickets/categories.d.mts.map +1 -1
  338. package/resources/support/tickets/categories.d.ts +18 -18
  339. package/resources/support/tickets/categories.d.ts.map +1 -1
  340. package/resources/support/tickets/categories.js +25 -25
  341. package/resources/support/tickets/categories.js.map +1 -1
  342. package/resources/support/tickets/categories.mjs +25 -25
  343. package/resources/support/tickets/categories.mjs.map +1 -1
  344. package/resources/support/tickets/custom-fields.d.mts +20 -20
  345. package/resources/support/tickets/custom-fields.d.mts.map +1 -1
  346. package/resources/support/tickets/custom-fields.d.ts +20 -20
  347. package/resources/support/tickets/custom-fields.d.ts.map +1 -1
  348. package/resources/support/tickets/custom-fields.js +19 -19
  349. package/resources/support/tickets/custom-fields.js.map +1 -1
  350. package/resources/support/tickets/custom-fields.mjs +19 -19
  351. package/resources/support/tickets/custom-fields.mjs.map +1 -1
  352. package/resources/support/tickets/index.d.mts +4 -4
  353. package/resources/support/tickets/index.d.mts.map +1 -1
  354. package/resources/support/tickets/index.d.ts +4 -4
  355. package/resources/support/tickets/index.d.ts.map +1 -1
  356. package/resources/support/tickets/index.mjs.map +1 -1
  357. package/resources/support/tickets/statuses.d.mts +17 -17
  358. package/resources/support/tickets/statuses.d.mts.map +1 -1
  359. package/resources/support/tickets/statuses.d.ts +17 -17
  360. package/resources/support/tickets/statuses.d.ts.map +1 -1
  361. package/resources/support/tickets/statuses.js +21 -21
  362. package/resources/support/tickets/statuses.js.map +1 -1
  363. package/resources/support/tickets/statuses.mjs +21 -21
  364. package/resources/support/tickets/statuses.mjs.map +1 -1
  365. package/resources/support/tickets/tickets.d.mts +69 -69
  366. package/resources/support/tickets/tickets.d.mts.map +1 -1
  367. package/resources/support/tickets/tickets.d.ts +69 -69
  368. package/resources/support/tickets/tickets.d.ts.map +1 -1
  369. package/resources/support/tickets/tickets.js +44 -44
  370. package/resources/support/tickets/tickets.js.map +1 -1
  371. package/resources/support/tickets/tickets.mjs +44 -44
  372. package/resources/support/tickets/tickets.mjs.map +1 -1
  373. package/resources/support/tickets.d.mts.map +1 -1
  374. package/resources/support/tickets.d.ts.map +1 -1
  375. package/resources/support/tickets.mjs.map +1 -1
  376. package/resources/support.d.mts.map +1 -1
  377. package/resources/support.d.ts.map +1 -1
  378. package/resources/support.mjs.map +1 -1
  379. package/resources/surveys.d.mts +41 -41
  380. package/resources/surveys.d.mts.map +1 -1
  381. package/resources/surveys.d.ts +41 -41
  382. package/resources/surveys.d.ts.map +1 -1
  383. package/resources/surveys.js +44 -44
  384. package/resources/surveys.js.map +1 -1
  385. package/resources/surveys.mjs +44 -44
  386. package/resources/surveys.mjs.map +1 -1
  387. package/resources/users/companies/companies.d.mts +116 -157
  388. package/resources/users/companies/companies.d.mts.map +1 -1
  389. package/resources/users/companies/companies.d.ts +116 -157
  390. package/resources/users/companies/companies.d.ts.map +1 -1
  391. package/resources/users/companies/companies.js +125 -125
  392. package/resources/users/companies/companies.js.map +1 -1
  393. package/resources/users/companies/companies.mjs +125 -125
  394. package/resources/users/companies/companies.mjs.map +1 -1
  395. package/resources/users/companies/contacts.d.mts.map +1 -1
  396. package/resources/users/companies/contacts.d.ts.map +1 -1
  397. package/resources/users/companies/contacts.mjs.map +1 -1
  398. package/resources/users/companies/index.d.mts +1 -1
  399. package/resources/users/companies/index.d.mts.map +1 -1
  400. package/resources/users/companies/index.d.ts +1 -1
  401. package/resources/users/companies/index.d.ts.map +1 -1
  402. package/resources/users/companies/index.mjs.map +1 -1
  403. package/resources/users/companies.d.mts.map +1 -1
  404. package/resources/users/companies.d.ts.map +1 -1
  405. package/resources/users/companies.mjs.map +1 -1
  406. package/resources/users/contacts/by-user-id/by-user-id.d.mts.map +1 -1
  407. package/resources/users/contacts/by-user-id/by-user-id.d.ts.map +1 -1
  408. package/resources/users/contacts/by-user-id/by-user-id.mjs.map +1 -1
  409. package/resources/users/contacts/by-user-id/email-preferences.d.mts.map +1 -1
  410. package/resources/users/contacts/by-user-id/email-preferences.d.ts.map +1 -1
  411. package/resources/users/contacts/by-user-id/email-preferences.mjs.map +1 -1
  412. package/resources/users/contacts/by-user-id/index.d.mts.map +1 -1
  413. package/resources/users/contacts/by-user-id/index.d.ts.map +1 -1
  414. package/resources/users/contacts/by-user-id/index.mjs.map +1 -1
  415. package/resources/users/contacts/by-user-id.d.mts.map +1 -1
  416. package/resources/users/contacts/by-user-id.d.ts.map +1 -1
  417. package/resources/users/contacts/by-user-id.mjs.map +1 -1
  418. package/resources/users/contacts/contacts.d.mts +196 -235
  419. package/resources/users/contacts/contacts.d.mts.map +1 -1
  420. package/resources/users/contacts/contacts.d.ts +196 -235
  421. package/resources/users/contacts/contacts.d.ts.map +1 -1
  422. package/resources/users/contacts/contacts.js +186 -184
  423. package/resources/users/contacts/contacts.js.map +1 -1
  424. package/resources/users/contacts/contacts.mjs +186 -184
  425. package/resources/users/contacts/contacts.mjs.map +1 -1
  426. package/resources/users/contacts/email-preferences.d.mts.map +1 -1
  427. package/resources/users/contacts/email-preferences.d.ts.map +1 -1
  428. package/resources/users/contacts/email-preferences.mjs.map +1 -1
  429. package/resources/users/contacts/index.d.mts +1 -1
  430. package/resources/users/contacts/index.d.mts.map +1 -1
  431. package/resources/users/contacts/index.d.ts +1 -1
  432. package/resources/users/contacts/index.d.ts.map +1 -1
  433. package/resources/users/contacts/index.mjs.map +1 -1
  434. package/resources/users/contacts.d.mts.map +1 -1
  435. package/resources/users/contacts.d.ts.map +1 -1
  436. package/resources/users/contacts.mjs.map +1 -1
  437. package/resources/users/index.d.mts +2 -2
  438. package/resources/users/index.d.mts.map +1 -1
  439. package/resources/users/index.d.ts +2 -2
  440. package/resources/users/index.d.ts.map +1 -1
  441. package/resources/users/index.mjs.map +1 -1
  442. package/resources/users/users.d.mts +2 -2
  443. package/resources/users/users.d.mts.map +1 -1
  444. package/resources/users/users.d.ts +2 -2
  445. package/resources/users/users.d.ts.map +1 -1
  446. package/resources/users/users.mjs.map +1 -1
  447. package/resources/users.d.mts.map +1 -1
  448. package/resources/users.d.ts.map +1 -1
  449. package/resources/users.mjs.map +1 -1
  450. package/resources/webhooks.d.mts +80 -78
  451. package/resources/webhooks.d.mts.map +1 -1
  452. package/resources/webhooks.d.ts +80 -78
  453. package/resources/webhooks.d.ts.map +1 -1
  454. package/resources/webhooks.js +79 -77
  455. package/resources/webhooks.js.map +1 -1
  456. package/resources/webhooks.mjs +79 -77
  457. package/resources/webhooks.mjs.map +1 -1
  458. package/resources.d.mts.map +1 -1
  459. package/resources.d.ts.map +1 -1
  460. package/resources.mjs.map +1 -1
  461. package/src/client.ts +98 -4
  462. package/src/resources/audit-logs.ts +607 -0
  463. package/src/resources/changelogs/changelogs.ts +170 -170
  464. package/src/resources/changelogs/index.ts +1 -1
  465. package/src/resources/conversation-attributes.ts +181 -0
  466. package/src/resources/feedback/boards.ts +28 -28
  467. package/src/resources/feedback/comments.ts +153 -226
  468. package/src/resources/feedback/custom-fields.ts +44 -44
  469. package/src/resources/feedback/feedback.ts +19 -5
  470. package/src/resources/feedback/index.ts +12 -5
  471. package/src/resources/feedback/post-statuses.ts +31 -31
  472. package/src/resources/feedback/posts/index.ts +7 -1
  473. package/src/resources/feedback/posts/posts.ts +230 -311
  474. package/src/resources/help-center/articles.ts +123 -186
  475. package/src/resources/help-center/collections.ts +84 -84
  476. package/src/resources/help-center/help-center.ts +7 -5
  477. package/src/resources/help-center/help-centers.ts +55 -55
  478. package/src/resources/help-center/index.ts +6 -5
  479. package/src/resources/help-center/redirect-rules.ts +174 -174
  480. package/src/resources/index.ts +37 -3
  481. package/src/resources/organization/admins.ts +45 -33
  482. package/src/resources/organization/brands.ts +66 -66
  483. package/src/resources/organization/index.ts +3 -3
  484. package/src/resources/organization/organization.ts +3 -3
  485. package/src/resources/organization/teams.ts +52 -52
  486. package/src/resources/reports.ts +908 -0
  487. package/src/resources/support/conversation-tags.ts +59 -59
  488. package/src/resources/support/conversations/conversations.ts +723 -850
  489. package/src/resources/support/conversations/index.ts +11 -6
  490. package/src/resources/support/index.ts +14 -9
  491. package/src/resources/support/support.ts +21 -11
  492. package/src/resources/support/tickets/categories.ts +33 -33
  493. package/src/resources/support/tickets/custom-fields.ts +27 -27
  494. package/src/resources/support/tickets/index.ts +4 -4
  495. package/src/resources/support/tickets/statuses.ts +29 -29
  496. package/src/resources/support/tickets/tickets.ts +95 -95
  497. package/src/resources/surveys.ts +58 -58
  498. package/src/resources/users/companies/companies.ts +155 -204
  499. package/src/resources/users/companies/index.ts +2 -2
  500. package/src/resources/users/contacts/contacts.ts +235 -282
  501. package/src/resources/users/contacts/index.ts +3 -3
  502. package/src/resources/users/index.ts +5 -5
  503. package/src/resources/users/users.ts +5 -5
  504. package/src/resources/webhooks.ts +100 -95
  505. package/src/version.ts +1 -1
  506. package/uploads.d.mts +1 -0
  507. package/uploads.d.mts.map +1 -1
  508. package/uploads.d.ts +1 -0
  509. package/uploads.d.ts.map +1 -1
  510. package/uploads.mjs +1 -0
  511. package/uploads.mjs.map +1 -1
  512. package/version.d.mts +1 -1
  513. package/version.d.ts +1 -1
  514. package/version.js +1 -1
  515. package/version.mjs +1 -1
@@ -1,6 +1,8 @@
1
1
  import { APIResource } from "../../../core/resource.js";
2
2
  import * as ConversationsAPI from "./conversations.js";
3
+ import * as ConversationAttributesAPI from "../../conversation-attributes.js";
3
4
  import * as ConversationTagsAPI from "../conversation-tags.js";
5
+ import * as PostsAPI from "../../feedback/posts/posts.js";
4
6
  import * as ParticipantsAPI from "./participants.js";
5
7
  import { ParticipantAddParams, ParticipantRemoveParams, Participants } from "./participants.js";
6
8
  import { APIPromise } from "../../../core/api-promise.js";
@@ -11,6 +13,77 @@ import { RequestOptions } from "../../../internal/request-options.js";
11
13
  */
12
14
  export declare class Conversations extends APIResource {
13
15
  participants: ParticipantsAPI.Participants;
16
+ /**
17
+ * Returns a list of conversations in your organization using cursor-based
18
+ * pagination.
19
+ *
20
+ * ### Query Parameters
21
+ *
22
+ * - `limit` - Number of conversations to return (1-100, default 10)
23
+ * - `cursor` - Cursor from previous response for pagination
24
+ * - `tagIds` - Optional tag filter as a comma-separated list of tag IDs. Matches
25
+ * conversations that contain all of the provided tags.
26
+ *
27
+ * ### Response Format
28
+ *
29
+ * Returns a list object with:
30
+ *
31
+ * - `object` - Always "list"
32
+ * - `data` - Array of conversation objects
33
+ * - `nextCursor` - Cursor for the next page, or null if no more results
34
+ *
35
+ * ### Conversation Object
36
+ *
37
+ * Each conversation includes:
38
+ *
39
+ * - `id` - Unique conversation identifier (short ID)
40
+ * - `title` - Conversation title
41
+ * - `state` - Current state ("open", "closed", or "snoozed")
42
+ * - `priority` - Whether the conversation is marked as priority
43
+ * - `adminAssigneeId` - ID of assigned admin (if any)
44
+ * - `teamAssigneeId` - ID of assigned team (if any)
45
+ * - `tags` - Current tags applied anywhere in the conversation
46
+ * - `participants` - Array of participants
47
+ * - `source` - Information about the first message
48
+ * - `createdAt` - Creation timestamp
49
+ * - `updatedAt` - Last update timestamp
50
+ *
51
+ * ### Example
52
+ *
53
+ * ```json
54
+ * {
55
+ * "object": "list",
56
+ * "data": [
57
+ * {
58
+ * "object": "conversation",
59
+ * "id": "12345",
60
+ * "title": "Question about pricing",
61
+ * "state": "open",
62
+ * "priority": false,
63
+ * "adminAssigneeId": null,
64
+ * "participants": [
65
+ * { "type": "customer", "id": "676f0f6765bdaa7d7d760f88" }
66
+ * ],
67
+ * ...
68
+ * }
69
+ * ],
70
+ * "nextCursor": "eyJpZCI6IjEyMzQ1In0="
71
+ * }
72
+ * ```
73
+ *
74
+ * ### Version Availability
75
+ *
76
+ * This endpoint is only available in API version 2026-01-01.nova and newer.
77
+ *
78
+ * @example
79
+ * ```ts
80
+ * // Automatically fetches more pages as needed.
81
+ * for await (const conversation of client.support.conversations.list()) {
82
+ * // ...
83
+ * }
84
+ * ```
85
+ */
86
+ list(params?: ConversationListParams | null | undefined, options?: RequestOptions): PagePromise<ConversationsCursorPage, Conversation>;
14
87
  /**
15
88
  * Creates a new conversation. Supports both contact-initiated (customer/lead) and
16
89
  * admin-initiated (outreach) conversations.
@@ -250,6 +323,41 @@ export declare class Conversations extends APIResource {
250
323
  * ```
251
324
  */
252
325
  retrieve(id: string, params?: ConversationRetrieveParams | null | undefined, options?: RequestOptions): APIPromise<Conversation>;
326
+ /**
327
+ * Permanently deletes a conversation by its short ID.
328
+ *
329
+ * ### Path Parameters
330
+ *
331
+ * - `id` - The conversation short ID (numeric)
332
+ *
333
+ * ### Response
334
+ *
335
+ * Returns a deletion confirmation object:
336
+ *
337
+ * ```json
338
+ * {
339
+ * "id": "12345",
340
+ * "object": "conversation",
341
+ * "deleted": true
342
+ * }
343
+ * ```
344
+ *
345
+ * ### Caution
346
+ *
347
+ * This operation is **irreversible**. The conversation and all its messages will
348
+ * be permanently deleted.
349
+ *
350
+ * ### Version Availability
351
+ *
352
+ * This endpoint is only available in API version 2026-01-01.nova and newer.
353
+ *
354
+ * @example
355
+ * ```ts
356
+ * const conversation =
357
+ * await client.support.conversations.delete('12345');
358
+ * ```
359
+ */
360
+ delete(id: string, params?: ConversationDeleteParams | null | undefined, options?: RequestOptions): APIPromise<ConversationDeleteResponse>;
253
361
  /**
254
362
  * Updates a conversation's properties. Supports partial updates - only provided
255
363
  * fields will be updated.
@@ -270,7 +378,7 @@ export declare class Conversations extends APIResource {
270
378
  * | `adminAssigneeId` | string/null | Admin ID to assign, or null to unassign |
271
379
  * | `teamAssigneeId` | string/null | Team ID to assign, or null to unassign |
272
380
  * | `title` | string | Conversation title |
273
- * | `customAttributes` | object | Custom attributes to set on the conversation |
381
+ * | `customAttributes` | object | Custom attributes to set on the conversation, keyed by conversation custom attribute ID |
274
382
  * | `markAsRead` | object | Mark conversation as read for specific users |
275
383
  *
276
384
  * ### markAsRead Object
@@ -330,8 +438,8 @@ export declare class Conversations extends APIResource {
330
438
  * {
331
439
  * "title": "Billing Issue - Priority",
332
440
  * "customAttributes": {
333
- * "priority_level": "high",
334
- * "category": "billing"
441
+ * "507f1f77bcf86cd799439011": 10,
442
+ * "507f1f77bcf86cd799439012": true
335
443
  * }
336
444
  * }
337
445
  * ```
@@ -379,195 +487,97 @@ export declare class Conversations extends APIResource {
379
487
  */
380
488
  update(id: string, params: ConversationUpdateParams, options?: RequestOptions): APIPromise<Conversation>;
381
489
  /**
382
- * Returns a list of conversations in your organization using cursor-based
383
- * pagination.
490
+ * Adds a reply to an existing conversation. Supports both contact (customer/lead)
491
+ * and admin replies.
384
492
  *
385
- * ### Query Parameters
493
+ * ### Path Parameters
386
494
  *
387
- * - `limit` - Number of conversations to return (1-100, default 10)
388
- * - `cursor` - Cursor from previous response for pagination
389
- * - `tagIds` - Optional tag filter as a comma-separated list of tag IDs. Matches
390
- * conversations that contain all of the provided tags.
495
+ * - `id` - The conversation ID (short ID)
391
496
  *
392
- * ### Response Format
497
+ * ### Request Body
393
498
  *
394
- * Returns a list object with:
499
+ * The request body varies based on who is sending the reply:
395
500
  *
396
- * - `object` - Always "list"
397
- * - `data` - Array of conversation objects
398
- * - `nextCursor` - Cursor for the next page, or null if no more results
501
+ * #### Contact Reply (customer/lead)
399
502
  *
400
- * ### Conversation Object
503
+ * | Field | Type | Required | Description |
504
+ * | ------------------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------- |
505
+ * | `type` | string | Yes | Must be "contact" |
506
+ * | `userId` | string | No\* | External user ID from your system |
507
+ * | `id` | string | No\* | Featurebase contact ID (24-character ObjectId) |
508
+ * | `bodyMarkdown` | string | Yes | The message content in markdown format. Images referenced by URL or as base64 data URIs will be automatically uploaded and stored. |
509
+ * | `messageType` | string | Yes | Must be "reply" |
510
+ * | `skipNotifications` | boolean | No | Skip sending notifications (default: false). Useful for bulk imports. |
401
511
  *
402
- * Each conversation includes:
512
+ * \*At least one of `userId` or `id` is required.
403
513
  *
404
- * - `id` - Unique conversation identifier (short ID)
405
- * - `title` - Conversation title
406
- * - `state` - Current state ("open", "closed", or "snoozed")
407
- * - `priority` - Whether the conversation is marked as priority
408
- * - `adminAssigneeId` - ID of assigned admin (if any)
409
- * - `teamAssigneeId` - ID of assigned team (if any)
410
- * - `tags` - Current tags applied anywhere in the conversation
411
- * - `participants` - Array of participants
412
- * - `source` - Information about the first message
413
- * - `createdAt` - Creation timestamp
414
- * - `updatedAt` - Last update timestamp
514
+ * #### Admin Reply
415
515
  *
416
- * ### Example
516
+ * | Field | Type | Required | Description |
517
+ * | ------------------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------- |
518
+ * | `type` | string | Yes | Must be "admin" |
519
+ * | `id` | string | Yes | Featurebase admin ID (24-character ObjectId) |
520
+ * | `bodyMarkdown` | string | Yes | The message content in markdown format. Images referenced by URL or as base64 data URIs will be automatically uploaded and stored. |
521
+ * | `messageType` | string | Yes | "reply" for customer-visible reply, "note" for internal note |
522
+ * | `skipNotifications` | boolean | No | Skip sending notifications (default: false). Useful for bulk imports. |
417
523
  *
418
- * ```json
419
- * {
420
- * "object": "list",
421
- * "data": [
422
- * {
423
- * "object": "conversation",
424
- * "id": "12345",
425
- * "title": "Question about pricing",
426
- * "state": "open",
427
- * "priority": false,
428
- * "adminAssigneeId": null,
429
- * "participants": [
430
- * { "type": "customer", "id": "676f0f6765bdaa7d7d760f88" }
431
- * ],
432
- * ...
433
- * }
434
- * ],
435
- * "nextCursor": "eyJpZCI6IjEyMzQ1In0="
436
- * }
437
- * ```
524
+ * ### Response
438
525
  *
439
- * ### Version Availability
526
+ * Returns the created conversation part object with a **201 Created** status. The
527
+ * response includes both `bodyHtml` (with signed image URLs) and `bodyMarkdown`
528
+ * fields.
440
529
  *
441
- * This endpoint is only available in API version 2026-01-01.nova and newer.
530
+ * ### Example Contact Reply
442
531
  *
443
- * @example
444
- * ```ts
445
- * // Automatically fetches more pages as needed.
446
- * for await (const conversation of client.support.conversations.list()) {
447
- * // ...
532
+ * ```json
533
+ * {
534
+ * "type": "contact",
535
+ * "userId": "user_123",
536
+ * "bodyMarkdown": "Thank you for your help!",
537
+ * "messageType": "reply"
448
538
  * }
449
539
  * ```
450
- */
451
- list(params?: ConversationListParams | null | undefined, options?: RequestOptions): PagePromise<ConversationsCursorPage, Conversation>;
452
- /**
453
- * Permanently deletes a conversation by its short ID.
454
- *
455
- * ### Path Parameters
456
- *
457
- * - `id` - The conversation short ID (numeric)
458
540
  *
459
- * ### Response
460
- *
461
- * Returns a deletion confirmation object:
541
+ * ### Example Admin Reply
462
542
  *
463
543
  * ```json
464
544
  * {
465
- * "id": "12345",
466
- * "object": "conversation",
467
- * "deleted": true
545
+ * "type": "admin",
546
+ * "id": "507f1f77bcf86cd799439011",
547
+ * "bodyMarkdown": "I'm happy to help! Here's what you need to do...",
548
+ * "messageType": "reply"
468
549
  * }
469
550
  * ```
470
551
  *
471
- * ### Caution
472
- *
473
- * This operation is **irreversible**. The conversation and all its messages will
474
- * be permanently deleted.
475
- *
476
- * ### Version Availability
477
- *
478
- * This endpoint is only available in API version 2026-01-01.nova and newer.
479
- *
480
- * @example
481
- * ```ts
482
- * const conversation =
483
- * await client.support.conversations.delete('12345');
484
- * ```
485
- */
486
- delete(id: string, params?: ConversationDeleteParams | null | undefined, options?: RequestOptions): APIPromise<ConversationDeleteResponse>;
487
- /**
488
- * Attaches a workspace tag to a conversation.
489
- *
490
- * This endpoint requires both the tag ID to attach and the `actingAdminId` of the
491
- * admin on whose behalf the mutation is recorded.
492
- *
493
- * ### Path Parameters
494
- *
495
- * - `id` - The conversation ID (short ID)
496
- *
497
- * ### Request Body
498
- *
499
- * | Field | Type | Required | Description |
500
- * | --------------- | ------ | -------- | ------------------------------------------------------------------------ |
501
- * | `tagId` | string | Yes | The Featurebase tag ID to attach |
502
- * | `actingAdminId` | string | Yes | The admin performing the mutation. Must be a member of the organization. |
503
- *
504
- * ### Behavior
505
- *
506
- * Featurebase resolves the latest taggable reply/message in the conversation and
507
- * records the tag attachment against that part so audit metadata remains
508
- * deterministic.
509
- *
510
- * ### Response
511
- *
512
- * Returns the affected tag plus attachment metadata such as `targetPartId`,
513
- * `appliedAt`, and `appliedBy`.
514
- *
515
- * ### Example Request
552
+ * ### Example Admin Note (Internal)
516
553
  *
517
554
  * ```json
518
555
  * {
519
- * "tagId": "67ec1234abcd5678ef901234",
520
- * "actingAdminId": "507f1f77bcf86cd799439011"
556
+ * "type": "admin",
557
+ * "id": "507f1f77bcf86cd799439011",
558
+ * "bodyMarkdown": "Customer seems frustrated, escalating to tier 2.",
559
+ * "messageType": "note"
521
560
  * }
522
561
  * ```
523
562
  *
524
- * ### Version Availability
525
- *
526
- * This endpoint is only available in API version 2026-01-01.nova and newer.
527
- *
528
- * @example
529
- * ```ts
530
- * const response =
531
- * await client.support.conversations.attachTag('12345', {
532
- * actingAdminId: '507f1f77bcf86cd799439011',
533
- * tagId: '67ec1234abcd5678ef901234',
534
- * });
535
- * ```
536
- */
537
- attachTag(id: string, params: ConversationAttachTagParams, options?: RequestOptions): APIPromise<ConversationAttachTagResponse>;
538
- /**
539
- * Removes a workspace tag from a conversation.
540
- *
541
- * This endpoint requires the `actingAdminId` of the admin on whose behalf the
542
- * mutation is recorded.
543
- *
544
- * ### Path Parameters
545
- *
546
- * - `id` - The conversation ID (short ID)
547
- * - `tagId` - The Featurebase tag ID to remove
548
- *
549
- * ### Request Body
550
- *
551
- * | Field | Type | Required | Description |
552
- * | --------------- | ------ | -------- | ------------------------------------------------------------------------ |
553
- * | `actingAdminId` | string | Yes | The admin performing the mutation. Must be a member of the organization. |
554
- *
555
- * ### Behavior
556
- *
557
- * Featurebase resolves the latest taggable reply/message in the conversation and
558
- * records the tag removal against that part so audit metadata remains
559
- * deterministic.
560
- *
561
- * ### Response
562
- *
563
- * Returns the affected tag payload with the most relevant attachment metadata
564
- * available for that relationship.
565
- *
566
- * ### Example Request
563
+ * ### Example Response
567
564
  *
568
565
  * ```json
569
566
  * {
570
- * "actingAdminId": "507f1f77bcf86cd799439011"
567
+ * "object": "conversation_part",
568
+ * "id": "3",
569
+ * "partType": "user_msg",
570
+ * "bodyHtml": "<p>Thank you for your help!</p>",
571
+ * "bodyMarkdown": "Thank you for your help!",
572
+ * "author": {
573
+ * "type": "customer",
574
+ * "id": "676f0f6765bdaa7d7d760f88",
575
+ * "name": "John Doe",
576
+ * "email": "john@example.com"
577
+ * },
578
+ * "channel": "desktop",
579
+ * "createdAt": "2025-01-15T10:40:00.000Z",
580
+ * "updatedAt": "2025-01-15T10:40:00.000Z"
571
581
  * }
572
582
  * ```
573
583
  *
@@ -577,17 +587,15 @@ export declare class Conversations extends APIResource {
577
587
  *
578
588
  * @example
579
589
  * ```ts
580
- * const response =
581
- * await client.support.conversations.detachTag(
582
- * '67ec1234abcd5678ef901234',
583
- * {
584
- * id: '12345',
585
- * actingAdminId: '507f1f77bcf86cd799439011',
586
- * },
587
- * );
590
+ * const conversationPart =
591
+ * await client.support.conversations.reply('12345', {
592
+ * bodyMarkdown: 'Thank you for your help!',
593
+ * messageType: 'reply',
594
+ * type: 'contact',
595
+ * });
588
596
  * ```
589
597
  */
590
- detachTag(tagID: string, params: ConversationDetachTagParams, options?: RequestOptions): APIPromise<ConversationDetachTagResponse>;
598
+ reply(id: string, params: ConversationReplyParams, options?: RequestOptions): APIPromise<ConversationPart>;
591
599
  /**
592
600
  * Redacts a conversation part (message) from a conversation. Redaction permanently
593
601
  * removes the message content while preserving the conversation structure.
@@ -668,8 +676,10 @@ export declare class Conversations extends APIResource {
668
676
  */
669
677
  redact(params: ConversationRedactParams, options?: RequestOptions): APIPromise<Conversation>;
670
678
  /**
671
- * Adds a reply to an existing conversation. Supports both contact (customer/lead)
672
- * and admin replies.
679
+ * Attaches a workspace tag to a conversation.
680
+ *
681
+ * This endpoint requires both the tag ID to attach and the `actingAdminId` of the
682
+ * admin on whose behalf the mutation is recorded.
673
683
  *
674
684
  * ### Path Parameters
675
685
  *
@@ -677,88 +687,78 @@ export declare class Conversations extends APIResource {
677
687
  *
678
688
  * ### Request Body
679
689
  *
680
- * The request body varies based on who is sending the reply:
681
- *
682
- * #### Contact Reply (customer/lead)
683
- *
684
- * | Field | Type | Required | Description |
685
- * | ------------------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------- |
686
- * | `type` | string | Yes | Must be "contact" |
687
- * | `userId` | string | No\* | External user ID from your system |
688
- * | `id` | string | No\* | Featurebase contact ID (24-character ObjectId) |
689
- * | `bodyMarkdown` | string | Yes | The message content in markdown format. Images referenced by URL or as base64 data URIs will be automatically uploaded and stored. |
690
- * | `messageType` | string | Yes | Must be "reply" |
691
- * | `skipNotifications` | boolean | No | Skip sending notifications (default: false). Useful for bulk imports. |
692
- *
693
- * \*At least one of `userId` or `id` is required.
690
+ * | Field | Type | Required | Description |
691
+ * | --------------- | ------ | -------- | ------------------------------------------------------------------------ |
692
+ * | `tagId` | string | Yes | The Featurebase tag ID to attach |
693
+ * | `actingAdminId` | string | Yes | The admin performing the mutation. Must be a member of the organization. |
694
694
  *
695
- * #### Admin Reply
695
+ * ### Behavior
696
696
  *
697
- * | Field | Type | Required | Description |
698
- * | ------------------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------- |
699
- * | `type` | string | Yes | Must be "admin" |
700
- * | `id` | string | Yes | Featurebase admin ID (24-character ObjectId) |
701
- * | `bodyMarkdown` | string | Yes | The message content in markdown format. Images referenced by URL or as base64 data URIs will be automatically uploaded and stored. |
702
- * | `messageType` | string | Yes | "reply" for customer-visible reply, "note" for internal note |
703
- * | `skipNotifications` | boolean | No | Skip sending notifications (default: false). Useful for bulk imports. |
697
+ * Featurebase resolves the latest taggable reply/message in the conversation and
698
+ * records the tag attachment against that part so audit metadata remains
699
+ * deterministic.
704
700
  *
705
701
  * ### Response
706
702
  *
707
- * Returns the created conversation part object with a **201 Created** status. The
708
- * response includes both `bodyHtml` (with signed image URLs) and `bodyMarkdown`
709
- * fields.
703
+ * Returns the affected tag plus attachment metadata such as `targetPartId`,
704
+ * `appliedAt`, and `appliedBy`.
710
705
  *
711
- * ### Example Contact Reply
706
+ * ### Example Request
712
707
  *
713
708
  * ```json
714
709
  * {
715
- * "type": "contact",
716
- * "userId": "user_123",
717
- * "bodyMarkdown": "Thank you for your help!",
718
- * "messageType": "reply"
710
+ * "tagId": "67ec1234abcd5678ef901234",
711
+ * "actingAdminId": "507f1f77bcf86cd799439011"
719
712
  * }
720
713
  * ```
721
714
  *
722
- * ### Example Admin Reply
715
+ * ### Version Availability
723
716
  *
724
- * ```json
725
- * {
726
- * "type": "admin",
727
- * "id": "507f1f77bcf86cd799439011",
728
- * "bodyMarkdown": "I'm happy to help! Here's what you need to do...",
729
- * "messageType": "reply"
730
- * }
717
+ * This endpoint is only available in API version 2026-01-01.nova and newer.
718
+ *
719
+ * @example
720
+ * ```ts
721
+ * const attachedConversationTag =
722
+ * await client.support.conversations.attachTag('12345', {
723
+ * actingAdminId: '507f1f77bcf86cd799439011',
724
+ * tagId: '67ec1234abcd5678ef901234',
725
+ * });
731
726
  * ```
727
+ */
728
+ attachTag(id: string, params: ConversationAttachTagParams, options?: RequestOptions): APIPromise<AttachedConversationTag>;
729
+ /**
730
+ * Removes a workspace tag from a conversation.
732
731
  *
733
- * ### Example Admin Note (Internal)
732
+ * This endpoint requires the `actingAdminId` of the admin on whose behalf the
733
+ * mutation is recorded.
734
734
  *
735
- * ```json
736
- * {
737
- * "type": "admin",
738
- * "id": "507f1f77bcf86cd799439011",
739
- * "bodyMarkdown": "Customer seems frustrated, escalating to tier 2.",
740
- * "messageType": "note"
741
- * }
742
- * ```
735
+ * ### Path Parameters
736
+ *
737
+ * - `id` - The conversation ID (short ID)
738
+ * - `tagId` - The Featurebase tag ID to remove
739
+ *
740
+ * ### Request Body
741
+ *
742
+ * | Field | Type | Required | Description |
743
+ * | --------------- | ------ | -------- | ------------------------------------------------------------------------ |
744
+ * | `actingAdminId` | string | Yes | The admin performing the mutation. Must be a member of the organization. |
745
+ *
746
+ * ### Behavior
747
+ *
748
+ * Featurebase resolves the latest taggable reply/message in the conversation and
749
+ * records the tag removal against that part so audit metadata remains
750
+ * deterministic.
751
+ *
752
+ * ### Response
753
+ *
754
+ * Returns the affected tag payload with the most relevant attachment metadata
755
+ * available for that relationship.
743
756
  *
744
- * ### Example Response
757
+ * ### Example Request
745
758
  *
746
759
  * ```json
747
760
  * {
748
- * "object": "conversation_part",
749
- * "id": "3",
750
- * "partType": "user_msg",
751
- * "bodyHtml": "<p>Thank you for your help!</p>",
752
- * "bodyMarkdown": "Thank you for your help!",
753
- * "author": {
754
- * "type": "customer",
755
- * "id": "676f0f6765bdaa7d7d760f88",
756
- * "name": "John Doe",
757
- * "email": "john@example.com"
758
- * },
759
- * "channel": "desktop",
760
- * "createdAt": "2025-01-15T10:40:00.000Z",
761
- * "updatedAt": "2025-01-15T10:40:00.000Z"
761
+ * "actingAdminId": "507f1f77bcf86cd799439011"
762
762
  * }
763
763
  * ```
764
764
  *
@@ -768,15 +768,17 @@ export declare class Conversations extends APIResource {
768
768
  *
769
769
  * @example
770
770
  * ```ts
771
- * const conversationPart =
772
- * await client.support.conversations.reply('12345', {
773
- * bodyMarkdown: 'Thank you for your help!',
774
- * messageType: 'reply',
775
- * type: 'contact',
776
- * });
771
+ * const attachedConversationTag =
772
+ * await client.support.conversations.detachTag(
773
+ * '67ec1234abcd5678ef901234',
774
+ * {
775
+ * id: '12345',
776
+ * actingAdminId: '507f1f77bcf86cd799439011',
777
+ * },
778
+ * );
777
779
  * ```
778
780
  */
779
- reply(id: string, params: ConversationReplyParams, options?: RequestOptions): APIPromise<ConversationPart>;
781
+ detachTag(tagID: string, params: ConversationDetachTagParams, options?: RequestOptions): APIPromise<AttachedConversationTag>;
780
782
  /**
781
783
  * Search conversations with a structured filter AST and an optional full-text
782
784
  * query.
@@ -885,6 +887,41 @@ export declare class Conversations extends APIResource {
885
887
  search(params: ConversationSearchParams, options?: RequestOptions): APIPromise<ConversationSearchResponse>;
886
888
  }
887
889
  export type ConversationsCursorPage = CursorPage<Conversation>;
890
+ export interface AttachedConversationTag {
891
+ /**
892
+ * Unique tag identifier
893
+ */
894
+ id: string;
895
+ /**
896
+ * Current tag name
897
+ */
898
+ name: string;
899
+ /**
900
+ * Object type identifier for a tag
901
+ */
902
+ type: 'tag';
903
+ /**
904
+ * ISO timestamp when the tag was applied
905
+ */
906
+ appliedAt?: string | null;
907
+ /**
908
+ * Actor that applied the tag
909
+ */
910
+ appliedBy?: ConversationTagMutationActor | null;
911
+ /**
912
+ * ISO timestamp when the tag was removed, if applicable
913
+ */
914
+ removedAt?: string | null;
915
+ /**
916
+ * Actor that applied the tag
917
+ */
918
+ removedBy?: ConversationTagMutationActor | null;
919
+ /**
920
+ * Reply/message ID used as the deterministic attachment target for this
921
+ * conversation tag mutation.
922
+ */
923
+ targetPartId?: string | null;
924
+ }
888
925
  export interface Conversation {
889
926
  /**
890
927
  * Unique conversation identifier
@@ -989,6 +1026,19 @@ export interface Conversation {
989
1026
  * exists.
990
1027
  */
991
1028
  csatSummary?: Conversation.CsatSummary;
1029
+ /**
1030
+ * Custom conversation attributes keyed by custom attribute ID. Only org-defined,
1031
+ * non-archived conversation attributes are returned; internal workflow metadata is
1032
+ * omitted.
1033
+ */
1034
+ customAttributes?: {
1035
+ [key: string]: unknown;
1036
+ };
1037
+ /**
1038
+ * Custom conversation attribute values expanded with definition metadata. Returned
1039
+ * only when `include=customAttributeDefinitions` is provided.
1040
+ */
1041
+ customAttributeValues?: Array<ConversationAttributeValue>;
992
1042
  /**
993
1043
  * Whether customer replies are disabled
994
1044
  */
@@ -1002,7 +1052,7 @@ export interface Conversation {
1002
1052
  * infer content access.
1003
1053
  */
1004
1054
  readReceipts?: Array<Conversation.ReadReceipt>;
1005
- source?: Conversation.Source;
1055
+ source?: MessageSource;
1006
1056
  /**
1007
1057
  * Conversation title
1008
1058
  */
@@ -1030,12 +1080,14 @@ export declare namespace Conversation {
1030
1080
  * ISO timestamp when first-time submissions stop being accepted
1031
1081
  */
1032
1082
  lateSubmitWindowEndsAt?: string;
1083
+ slackDelivery?: ConversationsAPI.CsatSlackDelivery;
1033
1084
  }
1034
1085
  interface CsatHistory {
1035
1086
  /**
1036
- * Channel used for the CSAT request
1087
+ * Channel used for the CSAT request. `desktop` = web messenger, `email` =
1088
+ * follow-up email, `slack` = Block Kit prompt in the conversation thread.
1037
1089
  */
1038
- channel: 'desktop' | 'email';
1090
+ channel: 'desktop' | 'email' | 'slack';
1039
1091
  /**
1040
1092
  * Whether this row represents the currently effective CSAT request for the
1041
1093
  * conversation
@@ -1091,6 +1143,7 @@ export declare namespace Conversation {
1091
1143
  * Submitted score when this request was rated
1092
1144
  */
1093
1145
  score?: number;
1146
+ slackDelivery?: ConversationsAPI.CsatSlackDelivery;
1094
1147
  workflow?: ConversationsAPI.CsatWorkflowLink;
1095
1148
  }
1096
1149
  /**
@@ -1113,7 +1166,7 @@ export declare namespace Conversation {
1113
1166
  /**
1114
1167
  * Channel used for the latest CSAT request when known
1115
1168
  */
1116
- channel?: 'desktop' | 'email';
1169
+ channel?: 'desktop' | 'email' | 'slack';
1117
1170
  /**
1118
1171
  * ISO timestamp when the request expired
1119
1172
  */
@@ -1162,33 +1215,36 @@ export declare namespace Conversation {
1162
1215
  */
1163
1216
  userType: 'admin' | 'customer' | 'lead';
1164
1217
  }
1165
- interface Source {
1166
- /**
1167
- * Body of the initial message as HTML with signed image URLs
1168
- */
1169
- bodyHtml: string;
1170
- /**
1171
- * Body of the initial message as markdown
1172
- */
1173
- bodyMarkdown: string;
1174
- /**
1175
- * Channel through which the conversation was initiated
1176
- */
1177
- channel: 'unknown' | 'desktop' | 'android' | 'ios' | 'email';
1178
- author?: ConversationsAPI.ConversationParticipant;
1179
- /**
1180
- * How the conversation was initiated
1181
- */
1182
- deliveredAs?: 'customer_initiated' | 'admin_initiated';
1183
- /**
1184
- * Subject line for email conversations
1185
- */
1186
- subject?: string;
1187
- /**
1188
- * URL where the conversation was initiated
1189
- */
1190
- url?: string;
1191
- }
1218
+ }
1219
+ export interface ConversationAttributeValue {
1220
+ /**
1221
+ * Stable machine identifier used as the key in conversation.customAttributes.
1222
+ */
1223
+ id: string;
1224
+ /**
1225
+ * Storage-level data type used for validation and search.
1226
+ */
1227
+ dataType: 'string' | 'number' | 'boolean' | 'date' | 'array' | 'object';
1228
+ /**
1229
+ * Conversation field subtype that controls the expected value shape.
1230
+ */
1231
+ fieldSubType: 'text' | 'number' | 'select' | 'multi-select' | 'checkbox' | 'date';
1232
+ /**
1233
+ * Stable internal identifier for the attribute definition.
1234
+ */
1235
+ identifier: string;
1236
+ /**
1237
+ * Human-readable attribute name shown in Featurebase.
1238
+ */
1239
+ name: string;
1240
+ /**
1241
+ * Allowed values for select and multi-select attributes.
1242
+ */
1243
+ options?: Array<ConversationAttributesAPI.ConversationAttributeOption>;
1244
+ /**
1245
+ * The conversation-specific custom attribute value.
1246
+ */
1247
+ value?: unknown;
1192
1248
  }
1193
1249
  /**
1194
1250
  * Message from a customer or lead
@@ -1214,7 +1270,7 @@ export declare namespace ConversationPart {
1214
1270
  /**
1215
1271
  * Channel through which the message was sent
1216
1272
  */
1217
- channel: 'unknown' | 'desktop' | 'android' | 'ios' | 'email';
1273
+ channel: 'unknown' | 'desktop' | 'android' | 'ios' | 'email' | 'slack';
1218
1274
  /**
1219
1275
  * ISO timestamp when the part was created
1220
1276
  */
@@ -1236,6 +1292,11 @@ export declare namespace ConversationPart {
1236
1292
  * Whether this message has been redacted
1237
1293
  */
1238
1294
  redacted?: boolean;
1295
+ /**
1296
+ * Safe Slack message identifiers. Only present for Slack-backed messages while the
1297
+ * organization has Slack integration enabled.
1298
+ */
1299
+ slack?: ConversationsAPI.SlackMessageDetails;
1239
1300
  /**
1240
1301
  * Reply-level tag applications and provenance for this conversation part
1241
1302
  */
@@ -1260,7 +1321,7 @@ export declare namespace ConversationPart {
1260
1321
  /**
1261
1322
  * Channel through which the message was sent
1262
1323
  */
1263
- channel: 'unknown' | 'desktop' | 'android' | 'ios' | 'email';
1324
+ channel: 'unknown' | 'desktop' | 'android' | 'ios' | 'email' | 'slack';
1264
1325
  /**
1265
1326
  * ISO timestamp when the part was created
1266
1327
  */
@@ -1282,6 +1343,11 @@ export declare namespace ConversationPart {
1282
1343
  * Whether this message has been redacted
1283
1344
  */
1284
1345
  redacted?: boolean;
1346
+ /**
1347
+ * Safe Slack message identifiers. Only present for Slack-backed messages while the
1348
+ * organization has Slack integration enabled.
1349
+ */
1350
+ slack?: ConversationsAPI.SlackMessageDetails;
1285
1351
  /**
1286
1352
  * Reply-level tag applications and provenance for this conversation part
1287
1353
  */
@@ -1411,11 +1477,16 @@ export declare namespace ConversationPart {
1411
1477
  /**
1412
1478
  * Channel through which the message was sent
1413
1479
  */
1414
- channel?: 'unknown' | 'desktop' | 'android' | 'ios' | 'email';
1480
+ channel?: 'unknown' | 'desktop' | 'android' | 'ios' | 'email' | 'slack';
1415
1481
  /**
1416
1482
  * Whether this message has been redacted
1417
1483
  */
1418
1484
  redacted?: boolean;
1485
+ /**
1486
+ * Safe Slack message identifiers. Only present for Slack-backed messages while the
1487
+ * organization has Slack integration enabled.
1488
+ */
1489
+ slack?: ConversationsAPI.SlackMessageDetails;
1419
1490
  /**
1420
1491
  * Reply-level tag applications and provenance for this conversation part
1421
1492
  */
@@ -1552,9 +1623,10 @@ export declare namespace ConversationPart {
1552
1623
  */
1553
1624
  interface Csat {
1554
1625
  /**
1555
- * Channel used for the CSAT request
1626
+ * Channel used for the CSAT request. `desktop` = web messenger, `email` =
1627
+ * follow-up email, `slack` = Block Kit prompt in the conversation thread.
1556
1628
  */
1557
- channel: 'desktop' | 'email';
1629
+ channel: 'desktop' | 'email' | 'slack';
1558
1630
  /**
1559
1631
  * ISO timestamp when the request was created
1560
1632
  */
@@ -1622,9 +1694,10 @@ export declare namespace ConversationPart {
1622
1694
  */
1623
1695
  interface Csat {
1624
1696
  /**
1625
- * Channel used for the CSAT request
1697
+ * Channel used for the CSAT request. `desktop` = web messenger, `email` =
1698
+ * follow-up email, `slack` = Block Kit prompt in the conversation thread.
1626
1699
  */
1627
- channel: 'desktop' | 'email';
1700
+ channel: 'desktop' | 'email' | 'slack';
1628
1701
  /**
1629
1702
  * ISO timestamp when the customer submitted the rating
1630
1703
  */
@@ -1860,7 +1933,7 @@ export declare namespace ConversationPart {
1860
1933
  /**
1861
1934
  * Actor that applied the tag
1862
1935
  */
1863
- actor?: TagUpdate.Actor;
1936
+ actor?: ConversationsAPI.ConversationTagMutationActor;
1864
1937
  /**
1865
1938
  * Tag name at the time of the event or the best available current display name
1866
1939
  */
@@ -1870,25 +1943,6 @@ export declare namespace ConversationPart {
1870
1943
  */
1871
1944
  targetPartId?: string | null;
1872
1945
  }
1873
- namespace TagUpdate {
1874
- /**
1875
- * Actor that applied the tag
1876
- */
1877
- interface Actor {
1878
- /**
1879
- * Actor that caused the tag mutation
1880
- */
1881
- type: 'admin' | 'customer' | 'lead' | 'bot' | 'integration' | 'system' | 'workflow';
1882
- /**
1883
- * Actor identifier when available
1884
- */
1885
- id?: string | null;
1886
- /**
1887
- * Actor display name when available
1888
- */
1889
- name?: string | null;
1890
- }
1891
- }
1892
1946
  /**
1893
1947
  * Represents a workflow wait start, finish, or interruption in the conversation
1894
1948
  * thread
@@ -2068,7 +2122,7 @@ export interface ConversationTagApplication {
2068
2122
  /**
2069
2123
  * Actor that applied the tag
2070
2124
  */
2071
- appliedBy?: ConversationTagApplication.AppliedBy;
2125
+ appliedBy?: ConversationTagMutationActor;
2072
2126
  /**
2073
2127
  * ISO timestamp when the tag was removed from this reply, if it was removed
2074
2128
  */
@@ -2076,47 +2130,28 @@ export interface ConversationTagApplication {
2076
2130
  /**
2077
2131
  * Actor that applied the tag
2078
2132
  */
2079
- removedBy?: ConversationTagApplication.RemovedBy;
2133
+ removedBy?: ConversationTagMutationActor;
2080
2134
  /**
2081
2135
  * Resolved tag object when the tag still exists in the shared workspace catalog
2082
2136
  */
2083
2137
  tag?: ConversationTagsAPI.ConversationTag;
2084
2138
  }
2085
- export declare namespace ConversationTagApplication {
2139
+ /**
2140
+ * Actor that applied the tag
2141
+ */
2142
+ export interface ConversationTagMutationActor {
2086
2143
  /**
2087
- * Actor that applied the tag
2144
+ * Actor that caused the tag mutation
2088
2145
  */
2089
- interface AppliedBy {
2090
- /**
2091
- * Actor that caused the tag mutation
2092
- */
2093
- type: 'admin' | 'customer' | 'lead' | 'bot' | 'integration' | 'system' | 'workflow';
2094
- /**
2095
- * Actor identifier when available
2096
- */
2097
- id?: string | null;
2098
- /**
2099
- * Actor display name when available
2100
- */
2101
- name?: string | null;
2102
- }
2146
+ type: 'admin' | 'customer' | 'lead' | 'bot' | 'integration' | 'system' | 'workflow';
2103
2147
  /**
2104
- * Actor that applied the tag
2148
+ * Actor identifier when available
2105
2149
  */
2106
- interface RemovedBy {
2107
- /**
2108
- * Actor that caused the tag mutation
2109
- */
2110
- type: 'admin' | 'customer' | 'lead' | 'bot' | 'integration' | 'system' | 'workflow';
2111
- /**
2112
- * Actor identifier when available
2113
- */
2114
- id?: string | null;
2115
- /**
2116
- * Actor display name when available
2117
- */
2118
- name?: string | null;
2119
- }
2150
+ id?: string | null;
2151
+ /**
2152
+ * Actor display name when available
2153
+ */
2154
+ name?: string | null;
2120
2155
  }
2121
2156
  export interface CsatEmailDelivery {
2122
2157
  /**
@@ -2150,6 +2185,37 @@ export interface CsatRatedAgent {
2150
2185
  */
2151
2186
  id?: string;
2152
2187
  }
2188
+ export interface CsatSlackDelivery {
2189
+ /**
2190
+ * Slack Block Kit prompt delivery status for the CSAT request when the channel is
2191
+ * Slack
2192
+ */
2193
+ status: 'pending' | 'posted' | 'failed';
2194
+ /**
2195
+ * Slack channel id the CSAT prompt was posted to
2196
+ */
2197
+ channelId?: string;
2198
+ /**
2199
+ * ISO timestamp when posting the CSAT prompt to Slack failed
2200
+ */
2201
+ failedAt?: string;
2202
+ /**
2203
+ * Operational failure reason for the Slack CSAT prompt delivery
2204
+ */
2205
+ failureReason?: string;
2206
+ /**
2207
+ * Slack message timestamp of the posted CSAT prompt
2208
+ */
2209
+ messageTs?: string;
2210
+ /**
2211
+ * ISO timestamp when the CSAT prompt was enqueued for Slack
2212
+ */
2213
+ postedAt?: string;
2214
+ /**
2215
+ * Slack workspace (team) the CSAT prompt was posted to
2216
+ */
2217
+ teamId?: string;
2218
+ }
2153
2219
  export interface CsatWorkflowLink {
2154
2220
  /**
2155
2221
  * Workflow action ID associated with the CSAT request
@@ -2181,161 +2247,135 @@ export interface EmailRecipients {
2181
2247
  */
2182
2248
  ids?: Array<string>;
2183
2249
  }
2184
- export interface ConversationDeleteResponse {
2185
- /**
2186
- * Unique identifier of the deleted conversation
2187
- */
2188
- id: string;
2189
- /**
2190
- * Indicates the resource was deleted
2191
- */
2192
- deleted: true;
2193
- /**
2194
- * Object type identifier
2195
- */
2196
- object: 'conversation';
2197
- }
2198
- export interface ConversationAttachTagResponse {
2199
- /**
2200
- * Unique tag identifier
2201
- */
2202
- id: string;
2250
+ export interface MessageSource {
2203
2251
  /**
2204
- * Current tag name
2252
+ * Body of the initial message as HTML with signed image URLs
2205
2253
  */
2206
- name: string;
2254
+ bodyHtml: string;
2207
2255
  /**
2208
- * Object type identifier for a tag
2256
+ * Body of the initial message as markdown
2209
2257
  */
2210
- type: 'tag';
2258
+ bodyMarkdown: string;
2211
2259
  /**
2212
- * ISO timestamp when the tag was applied
2260
+ * Channel through which the conversation was initiated
2213
2261
  */
2214
- appliedAt?: string | null;
2262
+ channel: 'unknown' | 'desktop' | 'android' | 'ios' | 'email' | 'slack';
2263
+ author?: ConversationParticipant;
2215
2264
  /**
2216
- * Actor that applied the tag
2265
+ * How the conversation was initiated
2217
2266
  */
2218
- appliedBy?: ConversationAttachTagResponse.AppliedBy | null;
2267
+ deliveredAs?: 'customer_initiated' | 'admin_initiated';
2219
2268
  /**
2220
- * ISO timestamp when the tag was removed, if applicable
2269
+ * Safe Slack thread identifiers. Only present for Slack-origin conversations while
2270
+ * the organization has Slack integration enabled.
2221
2271
  */
2222
- removedAt?: string | null;
2272
+ slack?: MessageSource.Slack;
2223
2273
  /**
2224
- * Actor that applied the tag
2274
+ * Subject line for email conversations
2225
2275
  */
2226
- removedBy?: ConversationAttachTagResponse.RemovedBy | null;
2276
+ subject?: string;
2227
2277
  /**
2228
- * Reply/message ID used as the deterministic attachment target for this
2229
- * conversation tag mutation.
2278
+ * URL where the conversation was initiated
2230
2279
  */
2231
- targetPartId?: string | null;
2280
+ url?: string;
2232
2281
  }
2233
- export declare namespace ConversationAttachTagResponse {
2234
- /**
2235
- * Actor that applied the tag
2236
- */
2237
- interface AppliedBy {
2238
- /**
2239
- * Actor that caused the tag mutation
2240
- */
2241
- type: 'admin' | 'customer' | 'lead' | 'bot' | 'integration' | 'system' | 'workflow';
2242
- /**
2243
- * Actor identifier when available
2244
- */
2245
- id?: string | null;
2246
- /**
2247
- * Actor display name when available
2248
- */
2249
- name?: string | null;
2250
- }
2282
+ export declare namespace MessageSource {
2251
2283
  /**
2252
- * Actor that applied the tag
2284
+ * Safe Slack thread identifiers. Only present for Slack-origin conversations while
2285
+ * the organization has Slack integration enabled.
2253
2286
  */
2254
- interface RemovedBy {
2287
+ interface Slack {
2255
2288
  /**
2256
- * Actor that caused the tag mutation
2289
+ * Slack channel ID for the thread
2257
2290
  */
2258
- type: 'admin' | 'customer' | 'lead' | 'bot' | 'integration' | 'system' | 'workflow';
2291
+ channelId: string;
2259
2292
  /**
2260
- * Actor identifier when available
2293
+ * Slack workspace/team ID for the thread
2261
2294
  */
2262
- id?: string | null;
2295
+ teamId: string;
2263
2296
  /**
2264
- * Actor display name when available
2297
+ * Slack root thread timestamp
2265
2298
  */
2266
- name?: string | null;
2299
+ threadTs: string;
2267
2300
  }
2268
2301
  }
2269
- export interface ConversationDetachTagResponse {
2302
+ /**
2303
+ * The customer or lead the conversation is with. Use this for the row identity;
2304
+ * use `matchingPartAuthor` if you specifically want the message author.
2305
+ */
2306
+ export interface SearchMatchingPartAuthor {
2270
2307
  /**
2271
- * Unique tag identifier
2308
+ * Author id
2272
2309
  */
2273
2310
  id: string;
2274
2311
  /**
2275
- * Current tag name
2312
+ * Author type
2276
2313
  */
2277
- name: string;
2314
+ type: 'admin' | 'customer' | 'lead' | 'bot' | 'guest' | 'integration';
2278
2315
  /**
2279
- * Object type identifier for a tag
2316
+ * Companies the author belongs to (customers only)
2280
2317
  */
2281
- type: 'tag';
2318
+ companies?: Array<SearchMatchingPartAuthor.Company>;
2282
2319
  /**
2283
- * ISO timestamp when the tag was applied
2320
+ * Email when known
2284
2321
  */
2285
- appliedAt?: string | null;
2322
+ email?: string | null;
2286
2323
  /**
2287
- * Actor that applied the tag
2324
+ * Display name when known
2288
2325
  */
2289
- appliedBy?: ConversationDetachTagResponse.AppliedBy | null;
2326
+ name?: string | null;
2290
2327
  /**
2291
- * ISO timestamp when the tag was removed, if applicable
2328
+ * Profile picture URL when known
2292
2329
  */
2293
- removedAt?: string | null;
2330
+ profilePicture?: string | null;
2331
+ }
2332
+ export declare namespace SearchMatchingPartAuthor {
2333
+ interface Company {
2334
+ /**
2335
+ * Company id
2336
+ */
2337
+ id: string;
2338
+ /**
2339
+ * Company name
2340
+ */
2341
+ name?: string;
2342
+ }
2343
+ }
2344
+ /**
2345
+ * Safe Slack message identifiers. Only present for Slack-backed messages while the
2346
+ * organization has Slack integration enabled.
2347
+ */
2348
+ export interface SlackMessageDetails {
2294
2349
  /**
2295
- * Actor that applied the tag
2350
+ * Slack channel ID for the message
2296
2351
  */
2297
- removedBy?: ConversationDetachTagResponse.RemovedBy | null;
2352
+ channelId: string;
2298
2353
  /**
2299
- * Reply/message ID used as the deterministic attachment target for this
2300
- * conversation tag mutation.
2354
+ * Slack message timestamp
2301
2355
  */
2302
- targetPartId?: string | null;
2356
+ messageTs: string;
2357
+ /**
2358
+ * Slack workspace/team ID for the message
2359
+ */
2360
+ teamId: string;
2361
+ /**
2362
+ * Slack root thread timestamp when this message belongs to a thread
2363
+ */
2364
+ threadTs?: string;
2303
2365
  }
2304
- export declare namespace ConversationDetachTagResponse {
2366
+ export interface ConversationDeleteResponse {
2305
2367
  /**
2306
- * Actor that applied the tag
2368
+ * Unique identifier of the deleted conversation
2307
2369
  */
2308
- interface AppliedBy {
2309
- /**
2310
- * Actor that caused the tag mutation
2311
- */
2312
- type: 'admin' | 'customer' | 'lead' | 'bot' | 'integration' | 'system' | 'workflow';
2313
- /**
2314
- * Actor identifier when available
2315
- */
2316
- id?: string | null;
2317
- /**
2318
- * Actor display name when available
2319
- */
2320
- name?: string | null;
2321
- }
2370
+ id: string;
2322
2371
  /**
2323
- * Actor that applied the tag
2372
+ * Indicates the resource was deleted
2324
2373
  */
2325
- interface RemovedBy {
2326
- /**
2327
- * Actor that caused the tag mutation
2328
- */
2329
- type: 'admin' | 'customer' | 'lead' | 'bot' | 'integration' | 'system' | 'workflow';
2330
- /**
2331
- * Actor identifier when available
2332
- */
2333
- id?: string | null;
2334
- /**
2335
- * Actor display name when available
2336
- */
2337
- name?: string | null;
2338
- }
2374
+ deleted: true;
2375
+ /**
2376
+ * Object type identifier
2377
+ */
2378
+ object: 'conversation';
2339
2379
  }
2340
2380
  export interface ConversationSearchResponse {
2341
2381
  /**
@@ -2424,7 +2464,20 @@ export declare namespace ConversationSearchResponse {
2424
2464
  * The customer or lead the conversation is with. Use this for the row identity;
2425
2465
  * use `matchingPartAuthor` if you specifically want the message author.
2426
2466
  */
2427
- conversationUser?: Data.ConversationUser | null;
2467
+ conversationUser?: ConversationsAPI.SearchMatchingPartAuthor | null;
2468
+ /**
2469
+ * Custom conversation attributes keyed by custom attribute ID. Only org-defined,
2470
+ * non-archived conversation attributes are returned; internal workflow metadata is
2471
+ * omitted.
2472
+ */
2473
+ customAttributes?: {
2474
+ [key: string]: unknown;
2475
+ };
2476
+ /**
2477
+ * Custom conversation attribute values expanded with definition metadata. Returned
2478
+ * only when `include=customAttributeDefinitions` is provided.
2479
+ */
2480
+ customAttributeValues?: Array<ConversationsAPI.ConversationAttributeValue>;
2428
2481
  /**
2429
2482
  * Plain-text / markdown preview of the matching conversation part body (search
2430
2483
  * mode only)
@@ -2439,13 +2492,13 @@ export declare namespace ConversationSearchResponse {
2439
2492
  * The customer or lead the conversation is with. Use this for the row identity;
2440
2493
  * use `matchingPartAuthor` if you specifically want the message author.
2441
2494
  */
2442
- matchingPartAuthor?: Data.MatchingPartAuthor | null;
2495
+ matchingPartAuthor?: ConversationsAPI.SearchMatchingPartAuthor | null;
2443
2496
  /**
2444
2497
  * Aggregate relevance score for the conversation (search mode only). Higher is
2445
2498
  * more relevant.
2446
2499
  */
2447
2500
  relevanceScore?: number | null;
2448
- source?: Data.Source;
2501
+ source?: ConversationsAPI.MessageSource;
2449
2502
  /**
2450
2503
  * Window of conversation messages around the matching part for lightweight context
2451
2504
  * previews. In search mode this is up to 15 messages before plus 15 from the
@@ -2461,42 +2514,6 @@ export declare namespace ConversationSearchResponse {
2461
2514
  title?: string;
2462
2515
  }
2463
2516
  namespace Data {
2464
- /**
2465
- * The customer or lead the conversation is with. Use this for the row identity;
2466
- * use `matchingPartAuthor` if you specifically want the message author.
2467
- */
2468
- interface ConversationUser {
2469
- /**
2470
- * Author id
2471
- */
2472
- id: string;
2473
- /**
2474
- * Author type
2475
- */
2476
- type: 'admin' | 'customer' | 'lead' | 'bot' | 'guest' | 'integration';
2477
- /**
2478
- * Companies the author belongs to (customers only)
2479
- */
2480
- companies?: Array<ConversationUser.Company>;
2481
- /**
2482
- * Email when known
2483
- */
2484
- email?: string | null;
2485
- /**
2486
- * Display name when known
2487
- */
2488
- name?: string | null;
2489
- /**
2490
- * Profile picture URL when known
2491
- */
2492
- profilePicture?: string | null;
2493
- }
2494
- namespace ConversationUser {
2495
- interface Company {
2496
- id: string;
2497
- name?: string;
2498
- }
2499
- }
2500
2517
  /**
2501
2518
  * Reference to the conversation part that best matched the search query (search
2502
2519
  * mode only)
@@ -2515,69 +2532,6 @@ export declare namespace ConversationSearchResponse {
2515
2532
  */
2516
2533
  partType?: string;
2517
2534
  }
2518
- /**
2519
- * The customer or lead the conversation is with. Use this for the row identity;
2520
- * use `matchingPartAuthor` if you specifically want the message author.
2521
- */
2522
- interface MatchingPartAuthor {
2523
- /**
2524
- * Author id
2525
- */
2526
- id: string;
2527
- /**
2528
- * Author type
2529
- */
2530
- type: 'admin' | 'customer' | 'lead' | 'bot' | 'guest' | 'integration';
2531
- /**
2532
- * Companies the author belongs to (customers only)
2533
- */
2534
- companies?: Array<MatchingPartAuthor.Company>;
2535
- /**
2536
- * Email when known
2537
- */
2538
- email?: string | null;
2539
- /**
2540
- * Display name when known
2541
- */
2542
- name?: string | null;
2543
- /**
2544
- * Profile picture URL when known
2545
- */
2546
- profilePicture?: string | null;
2547
- }
2548
- namespace MatchingPartAuthor {
2549
- interface Company {
2550
- id: string;
2551
- name?: string;
2552
- }
2553
- }
2554
- interface Source {
2555
- /**
2556
- * Body of the initial message as HTML with signed image URLs
2557
- */
2558
- bodyHtml: string;
2559
- /**
2560
- * Body of the initial message as markdown
2561
- */
2562
- bodyMarkdown: string;
2563
- /**
2564
- * Channel through which the conversation was initiated
2565
- */
2566
- channel: 'unknown' | 'desktop' | 'android' | 'ios' | 'email';
2567
- author?: ConversationsAPI.ConversationParticipant;
2568
- /**
2569
- * How the conversation was initiated
2570
- */
2571
- deliveredAs?: 'customer_initiated' | 'admin_initiated';
2572
- /**
2573
- * Subject line for email conversations
2574
- */
2575
- subject?: string;
2576
- /**
2577
- * URL where the conversation was initiated
2578
- */
2579
- url?: string;
2580
- }
2581
2535
  interface SurroundingConversationPart {
2582
2536
  /**
2583
2537
  * Conversation part id
@@ -2595,7 +2549,7 @@ export declare namespace ConversationSearchResponse {
2595
2549
  * The customer or lead the conversation is with. Use this for the row identity;
2596
2550
  * use `matchingPartAuthor` if you specifically want the message author.
2597
2551
  */
2598
- author?: SurroundingConversationPart.Author | null;
2552
+ author?: ConversationsAPI.SearchMatchingPartAuthor | null;
2599
2553
  /**
2600
2554
  * ISO timestamp when the part was created
2601
2555
  */
@@ -2605,46 +2559,26 @@ export declare namespace ConversationSearchResponse {
2605
2559
  */
2606
2560
  partType?: string;
2607
2561
  }
2608
- namespace SurroundingConversationPart {
2609
- /**
2610
- * The customer or lead the conversation is with. Use this for the row identity;
2611
- * use `matchingPartAuthor` if you specifically want the message author.
2612
- */
2613
- interface Author {
2614
- /**
2615
- * Author id
2616
- */
2617
- id: string;
2618
- /**
2619
- * Author type
2620
- */
2621
- type: 'admin' | 'customer' | 'lead' | 'bot' | 'guest' | 'integration';
2622
- /**
2623
- * Companies the author belongs to (customers only)
2624
- */
2625
- companies?: Array<Author.Company>;
2626
- /**
2627
- * Email when known
2628
- */
2629
- email?: string | null;
2630
- /**
2631
- * Display name when known
2632
- */
2633
- name?: string | null;
2634
- /**
2635
- * Profile picture URL when known
2636
- */
2637
- profilePicture?: string | null;
2638
- }
2639
- namespace Author {
2640
- interface Company {
2641
- id: string;
2642
- name?: string;
2643
- }
2644
- }
2645
- }
2646
2562
  }
2647
2563
  }
2564
+ export interface ConversationListParams extends CursorPageParams {
2565
+ /**
2566
+ * Query param: Comma-separated optional expansions. Use
2567
+ * `customAttributeDefinitions` to return `customAttributeValues` with names and
2568
+ * types alongside ID-keyed `customAttributes`.
2569
+ */
2570
+ include?: string | Array<string>;
2571
+ /**
2572
+ * Query param: Filter conversations by one or more tag IDs using a comma-separated
2573
+ * list. Conversations must contain all provided tags.
2574
+ */
2575
+ tagIds?: string | Array<string>;
2576
+ /**
2577
+ * Header param: API version for this request. Defaults to your organization's
2578
+ * configured API version if not specified.
2579
+ */
2580
+ 'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
2581
+ }
2648
2582
  export interface ConversationCreateParams {
2649
2583
  /**
2650
2584
  * Body param: The content of the initial message in markdown format. Images
@@ -2731,6 +2665,19 @@ export declare namespace ConversationCreateParams {
2731
2665
  }
2732
2666
  }
2733
2667
  export interface ConversationRetrieveParams {
2668
+ /**
2669
+ * Query param: Comma-separated optional expansions. Use
2670
+ * `customAttributeDefinitions` to return `customAttributeValues` with names and
2671
+ * types alongside ID-keyed `customAttributes`.
2672
+ */
2673
+ include?: string | Array<string>;
2674
+ /**
2675
+ * Header param: API version for this request. Defaults to your organization's
2676
+ * configured API version if not specified.
2677
+ */
2678
+ 'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
2679
+ }
2680
+ export interface ConversationDeleteParams {
2734
2681
  /**
2735
2682
  * API version for this request. Defaults to your organization's configured API
2736
2683
  * version if not specified.
@@ -2749,8 +2696,9 @@ export interface ConversationUpdateParams {
2749
2696
  */
2750
2697
  adminAssigneeId?: string | null;
2751
2698
  /**
2752
- * Body param: Custom attributes to set on the conversation. Uses the same
2753
- * validation as v1 API.
2699
+ * Body param: Custom attributes to set on the conversation, keyed by conversation
2700
+ * custom attribute ID. Use the custom attribute definitions for your organization
2701
+ * to map IDs to display names.
2754
2702
  */
2755
2703
  customAttributes?: {
2756
2704
  [key: string]: unknown;
@@ -2809,82 +2757,6 @@ export declare namespace ConversationUpdateParams {
2809
2757
  contactIds?: Array<string>;
2810
2758
  }
2811
2759
  }
2812
- export interface ConversationListParams extends CursorPageParams {
2813
- /**
2814
- * Query param: Filter conversations by one or more tag IDs using a comma-separated
2815
- * list. Conversations must contain all provided tags.
2816
- */
2817
- tagIds?: string | Array<string>;
2818
- /**
2819
- * Header param: API version for this request. Defaults to your organization's
2820
- * configured API version if not specified.
2821
- */
2822
- 'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
2823
- }
2824
- export interface ConversationDeleteParams {
2825
- /**
2826
- * API version for this request. Defaults to your organization's configured API
2827
- * version if not specified.
2828
- */
2829
- 'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
2830
- }
2831
- export interface ConversationAttachTagParams {
2832
- /**
2833
- * Body param: Required admin ID performing this tag attachment. Must be a member
2834
- * of the organization so the mutation can be attributed to a real admin actor.
2835
- */
2836
- actingAdminId: string;
2837
- /**
2838
- * Body param: The Featurebase tag ID to attach to the conversation.
2839
- */
2840
- tagId: string;
2841
- /**
2842
- * Header param: API version for this request. Defaults to your organization's
2843
- * configured API version if not specified.
2844
- */
2845
- 'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
2846
- }
2847
- export interface ConversationDetachTagParams {
2848
- /**
2849
- * Path param: Conversation ID (short ID)
2850
- */
2851
- id: string;
2852
- /**
2853
- * Body param: Required admin ID performing this tag removal. Must be a member of
2854
- * the organization so the mutation can be attributed to a real admin actor.
2855
- */
2856
- actingAdminId: string;
2857
- /**
2858
- * Header param: API version for this request. Defaults to your organization's
2859
- * configured API version if not specified.
2860
- */
2861
- 'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
2862
- }
2863
- export interface ConversationRedactParams {
2864
- /**
2865
- * Body param: The conversation short ID that contains the part to redact
2866
- */
2867
- conversationId: string;
2868
- /**
2869
- * Body param: The conversation part short ID to redact
2870
- */
2871
- conversationPartId: string;
2872
- /**
2873
- * Body param: The type of item to redact. Currently only "conversation_part" is
2874
- * supported.
2875
- */
2876
- type: 'conversation_part';
2877
- /**
2878
- * Body param: The admin ID performing this action. If not provided, changes are
2879
- * attributed to the system bot user.
2880
- */
2881
- actingAdminId?: string;
2882
- /**
2883
- * Header param: API version for this request. Defaults to your organization's
2884
- * configured API version if not specified.
2885
- */
2886
- 'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
2887
- }
2888
2760
  export type ConversationReplyParams = ConversationReplyParams.ContactReplyBody | ConversationReplyParams.AdminReplyBody;
2889
2761
  export declare namespace ConversationReplyParams {
2890
2762
  interface ContactReplyBody {
@@ -2953,12 +2825,75 @@ export declare namespace ConversationReplyParams {
2953
2825
  'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
2954
2826
  }
2955
2827
  }
2828
+ export interface ConversationRedactParams {
2829
+ /**
2830
+ * Body param: The conversation short ID that contains the part to redact
2831
+ */
2832
+ conversationId: string;
2833
+ /**
2834
+ * Body param: The conversation part short ID to redact
2835
+ */
2836
+ conversationPartId: string;
2837
+ /**
2838
+ * Body param: The type of item to redact. Currently only "conversation_part" is
2839
+ * supported.
2840
+ */
2841
+ type: 'conversation_part';
2842
+ /**
2843
+ * Body param: The admin ID performing this action. If not provided, changes are
2844
+ * attributed to the system bot user.
2845
+ */
2846
+ actingAdminId?: string;
2847
+ /**
2848
+ * Header param: API version for this request. Defaults to your organization's
2849
+ * configured API version if not specified.
2850
+ */
2851
+ 'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
2852
+ }
2853
+ export interface ConversationAttachTagParams {
2854
+ /**
2855
+ * Body param: Required admin ID performing this tag attachment. Must be a member
2856
+ * of the organization so the mutation can be attributed to a real admin actor.
2857
+ */
2858
+ actingAdminId: string;
2859
+ /**
2860
+ * Body param: The Featurebase tag ID to attach to the conversation.
2861
+ */
2862
+ tagId: string;
2863
+ /**
2864
+ * Header param: API version for this request. Defaults to your organization's
2865
+ * configured API version if not specified.
2866
+ */
2867
+ 'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
2868
+ }
2869
+ export interface ConversationDetachTagParams {
2870
+ /**
2871
+ * Path param: Conversation ID (short ID)
2872
+ */
2873
+ id: string;
2874
+ /**
2875
+ * Body param: Required admin ID performing this tag removal. Must be a member of
2876
+ * the organization so the mutation can be attributed to a real admin actor.
2877
+ */
2878
+ actingAdminId: string;
2879
+ /**
2880
+ * Header param: API version for this request. Defaults to your organization's
2881
+ * configured API version if not specified.
2882
+ */
2883
+ 'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
2884
+ }
2956
2885
  export interface ConversationSearchParams {
2957
2886
  /**
2958
2887
  * Body param: An opaque cursor for pagination. Use the nextCursor value from a
2959
2888
  * previous response to fetch the next page of results.
2960
2889
  */
2961
2890
  cursor?: string;
2891
+ /**
2892
+ * Body param: Optional expansions. Use `customAttributeDefinitions` to return
2893
+ * `customAttributeValues` with names and types alongside ID-keyed
2894
+ * `customAttributes`.
2895
+ */
2896
+ include?: Array<'customAttributeDefinitions'>;
2962
2897
  /**
2963
2898
  * Body param: A limit on the number of objects to be returned, between 1 and 100.
2964
2899
  */
@@ -2966,10 +2901,11 @@ export interface ConversationSearchParams {
2966
2901
  /**
2967
2902
  * Body param: Structured filter AST. Either a single filter clause or one
2968
2903
  * top-level AND group. Use this for filtering by `state`, `tagIds`,
2969
- * `adminAssigneeId`, etc. (Legacy snake_case names are accepted for back-compat —
2970
- * see the OpenAPI route description for the full alias map.)
2904
+ * `adminAssigneeId`, `customAttributes.<attributeId>`, etc. (Legacy snake_case
2905
+ * names are accepted for back-compat — see the OpenAPI route description for the
2906
+ * full alias map.)
2971
2907
  */
2972
- query?: ConversationSearchParams.SearchFilter | ConversationSearchParams.SearchFilterGroup;
2908
+ query?: PostsAPI.SearchFilter | PostsAPI.SearchFilterGroup;
2973
2909
  /**
2974
2910
  * Body param: Plain-text full-text search across conversation messages.
2975
2911
  * Server-managed - no operators, no field selection.
@@ -2989,50 +2925,8 @@ export interface ConversationSearchParams {
2989
2925
  */
2990
2926
  'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
2991
2927
  }
2992
- export declare namespace ConversationSearchParams {
2993
- interface SearchFilter {
2994
- /**
2995
- * Field name to filter on (e.g. `state`, `tag_ids`, `created_at`)
2996
- */
2997
- field: string;
2998
- /**
2999
- * Comparison operator
3000
- */
3001
- operator: '=' | '!=' | 'IN' | 'NIN' | '>' | '<' | '>=' | '<=' | '~' | '!~' | '^' | '$';
3002
- /**
3003
- * Value to compare against (primitive or array of primitives)
3004
- */
3005
- value: string | number | boolean | Array<string | number> | null;
3006
- }
3007
- interface SearchFilterGroup {
3008
- /**
3009
- * Group operator: AND (all match) or OR (any match)
3010
- */
3011
- operator: 'AND' | 'OR';
3012
- /**
3013
- * Array of filter clauses (1-15 entries)
3014
- */
3015
- value: Array<SearchFilterGroup.Value>;
3016
- }
3017
- namespace SearchFilterGroup {
3018
- interface Value {
3019
- /**
3020
- * Field name to filter on (e.g. `state`, `tag_ids`, `created_at`)
3021
- */
3022
- field: string;
3023
- /**
3024
- * Comparison operator
3025
- */
3026
- operator: '=' | '!=' | 'IN' | 'NIN' | '>' | '<' | '>=' | '<=' | '~' | '!~' | '^' | '$';
3027
- /**
3028
- * Value to compare against (primitive or array of primitives)
3029
- */
3030
- value: string | number | boolean | Array<string | number> | null;
3031
- }
3032
- }
3033
- }
3034
2928
  export declare namespace Conversations {
3035
- export { type Conversation as Conversation, type ConversationPart as ConversationPart, type ConversationPartAuthor as ConversationPartAuthor, type ConversationParticipant as ConversationParticipant, type ConversationTagApplication as ConversationTagApplication, type CsatEmailDelivery as CsatEmailDelivery, type CsatRatedAgent as CsatRatedAgent, type CsatWorkflowLink as CsatWorkflowLink, type EmailRecipients as EmailRecipients, type ConversationDeleteResponse as ConversationDeleteResponse, type ConversationAttachTagResponse as ConversationAttachTagResponse, type ConversationDetachTagResponse as ConversationDetachTagResponse, type ConversationSearchResponse as ConversationSearchResponse, type ConversationsCursorPage as ConversationsCursorPage, type ConversationCreateParams as ConversationCreateParams, type ConversationRetrieveParams as ConversationRetrieveParams, type ConversationUpdateParams as ConversationUpdateParams, type ConversationListParams as ConversationListParams, type ConversationDeleteParams as ConversationDeleteParams, type ConversationAttachTagParams as ConversationAttachTagParams, type ConversationDetachTagParams as ConversationDetachTagParams, type ConversationRedactParams as ConversationRedactParams, type ConversationReplyParams as ConversationReplyParams, type ConversationSearchParams as ConversationSearchParams, };
2929
+ export { type AttachedConversationTag as AttachedConversationTag, type Conversation as Conversation, type ConversationAttributeValue as ConversationAttributeValue, type ConversationPart as ConversationPart, type ConversationPartAuthor as ConversationPartAuthor, type ConversationParticipant as ConversationParticipant, type ConversationTagApplication as ConversationTagApplication, type ConversationTagMutationActor as ConversationTagMutationActor, type CsatEmailDelivery as CsatEmailDelivery, type CsatRatedAgent as CsatRatedAgent, type CsatSlackDelivery as CsatSlackDelivery, type CsatWorkflowLink as CsatWorkflowLink, type EmailRecipients as EmailRecipients, type MessageSource as MessageSource, type SearchMatchingPartAuthor as SearchMatchingPartAuthor, type SlackMessageDetails as SlackMessageDetails, type ConversationDeleteResponse as ConversationDeleteResponse, type ConversationSearchResponse as ConversationSearchResponse, type ConversationsCursorPage as ConversationsCursorPage, type ConversationListParams as ConversationListParams, type ConversationCreateParams as ConversationCreateParams, type ConversationRetrieveParams as ConversationRetrieveParams, type ConversationDeleteParams as ConversationDeleteParams, type ConversationUpdateParams as ConversationUpdateParams, type ConversationReplyParams as ConversationReplyParams, type ConversationRedactParams as ConversationRedactParams, type ConversationAttachTagParams as ConversationAttachTagParams, type ConversationDetachTagParams as ConversationDetachTagParams, type ConversationSearchParams as ConversationSearchParams, };
3036
2930
  export { Participants as Participants, type ParticipantAddParams as ParticipantAddParams, type ParticipantRemoveParams as ParticipantRemoveParams, };
3037
2931
  }
3038
2932
  //# sourceMappingURL=conversations.d.ts.map