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
@@ -0,0 +1,908 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../core/resource';
4
+ import * as ReportsAPI from './reports';
5
+ import { APIPromise } from '../core/api-promise';
6
+ import { buildHeaders } from '../internal/headers';
7
+ import { RequestOptions } from '../internal/request-options';
8
+
9
+ /**
10
+ * Query your workspace analytics: conversation volume, response times, CSAT, SLA compliance, teammate performance, AI agent resolutions and more. Start with the datasets catalog to discover metrics and attributes, then run queries with filters, grouping and period comparison.
11
+ */
12
+ export class Reports extends APIResource {
13
+ /**
14
+ * Returns the reporting catalog: every dataset available to your workspace with
15
+ * its metrics and attributes.
16
+ *
17
+ * This is the discovery endpoint for the reporting API — read it before building
18
+ * query payloads:
19
+ *
20
+ * - **Metrics** carry the `metric` IDs accepted by `POST /v2/reports/query`, plus
21
+ * each metric's `allowedAggregations`, unit, and whether it supports
22
+ * office-hours restriction and period comparison.
23
+ * - **Attributes** carry the `fieldId`s accepted in filter rules and the attribute
24
+ * IDs accepted as `groupBy` / `segmentBy`, plus each attribute's
25
+ * `allowedOperators` and value type. Attributes with `staticOptions` list their
26
+ * full value set inline; other filterable attributes resolve values via
27
+ * `POST /v2/reports/filter-values`.
28
+ *
29
+ * The catalog includes your workspace's custom conversation/ticket attributes
30
+ * where applicable, so it can differ between workspaces.
31
+ *
32
+ * ### Version Availability
33
+ *
34
+ * This endpoint is only available in API version 2026-01-01.nova and newer, and
35
+ * only for workspaces with the Reports product enabled (404 otherwise).
36
+ *
37
+ * @example
38
+ * ```ts
39
+ * const response = await client.reports.listDatasets();
40
+ * ```
41
+ */
42
+ listDatasets(
43
+ params: ReportListDatasetsParams | null | undefined = {},
44
+ options?: RequestOptions,
45
+ ): APIPromise<ReportListDatasetsResponse> {
46
+ const { 'Featurebase-Version': featurebaseVersion } = params ?? {};
47
+ return this._client.get('/v2/reports/datasets', {
48
+ ...options,
49
+ headers: buildHeaders([
50
+ {
51
+ ...(featurebaseVersion?.toString() != null ?
52
+ { 'Featurebase-Version': featurebaseVersion?.toString() }
53
+ : undefined),
54
+ },
55
+ options?.headers,
56
+ ]),
57
+ });
58
+ }
59
+
60
+ /**
61
+ * Executes an ad-hoc reporting query: one metric + aggregation over a date range,
62
+ * with optional filters, grouping, segmentation and period-over-period comparison.
63
+ *
64
+ * ### Building a query
65
+ *
66
+ * 1. Pick a `metric` and `aggregation` from the datasets catalog
67
+ * (`GET /v2/reports/datasets`). Counts use `count`; duration metrics support
68
+ * `avg`, `median`, `min`, `max` and `percentile` (pass `percentile: 95` for
69
+ * p95); rate metrics use `value`.
70
+ * 2. Set the reporting window with `startDate` / `endDate` (ISO 8601) and a
71
+ * `granularity` (`hour`, `day`, `week`, `month`) for the returned time series.
72
+ * 3. Optionally narrow with `filters` — a rule
73
+ * (`{ "kind": "rule", "fieldId": "...", "operator": "in", "value": [...] }`) or
74
+ * an `and`/`or` group of rules. Attribute IDs and allowed operators come from
75
+ * the catalog.
76
+ * 4. Optionally break results down with `groupBy` (primary dimension) and
77
+ * `segmentBy` (secondary dimension).
78
+ * 5. Optionally pass `compareStartDate` / `compareEndDate` to get `previousValue`
79
+ * / `deltaPercent` alongside every data point.
80
+ *
81
+ * ### Example
82
+ *
83
+ * ```json
84
+ * {
85
+ * "metric": "new_conversations",
86
+ * "aggregation": "count",
87
+ * "startDate": "2026-06-01",
88
+ * "endDate": "2026-06-30",
89
+ * "granularity": "day",
90
+ * "groupBy": "conversation.channel",
91
+ * "filters": {
92
+ * "kind": "rule",
93
+ * "fieldId": "conversation.state",
94
+ * "operator": "is",
95
+ * "value": "closed"
96
+ * }
97
+ * }
98
+ * ```
99
+ *
100
+ * ### Response shape
101
+ *
102
+ * - `value` — the aggregate across the whole window
103
+ * - `timeSeries` — one datum per granularity bucket
104
+ * - `groupedData` / `segmentData` — present when `groupBy` / `segmentBy` were
105
+ * requested
106
+ * - `flowData` — present for `view: "sankey"` (Overview conversation-flow metrics)
107
+ * - `meta` — echo of the resolved metric, dataset, unit and aggregation
108
+ *
109
+ * ### Special views
110
+ *
111
+ * - `view: "hourly_heatmap"` buckets by day-of-week × hour-of-day (use with volume
112
+ * metrics)
113
+ * - `view: "sankey"` returns conversation flow edges (Overview metrics only)
114
+ *
115
+ * ### Version Availability
116
+ *
117
+ * This endpoint is only available in API version 2026-01-01.nova and newer, and
118
+ * only for workspaces with the Reports product enabled (404 otherwise).
119
+ *
120
+ * @example
121
+ * ```ts
122
+ * const response = await client.reports.query({
123
+ * aggregation: 'count',
124
+ * endDate: '2026-06-30',
125
+ * granularity: 'day',
126
+ * metric: 'new_conversations',
127
+ * startDate: '2026-06-01',
128
+ * });
129
+ * ```
130
+ */
131
+ query(params: ReportQueryParams, options?: RequestOptions): APIPromise<ReportQueryResponse> {
132
+ const { 'Featurebase-Version': featurebaseVersion, ...body } = params;
133
+ return this._client.post('/v2/reports/query', {
134
+ body,
135
+ ...options,
136
+ headers: buildHeaders([
137
+ {
138
+ ...(featurebaseVersion?.toString() != null ?
139
+ { 'Featurebase-Version': featurebaseVersion?.toString() }
140
+ : undefined),
141
+ },
142
+ options?.headers,
143
+ ]),
144
+ });
145
+ }
146
+
147
+ /**
148
+ * Returns the available values for a filterable attribute — use it to build valid
149
+ * `filters` rules for `POST /v2/reports/query`.
150
+ *
151
+ * Works for attributes whose values live in your workspace data (tags, teammates,
152
+ * teams, companies, plans, countries, ...). Attributes with `staticOptions` in the
153
+ * catalog don't need this endpoint — their value set is already inline.
154
+ *
155
+ * - `query` narrows results by search string
156
+ * - `selectedValues` resolves labels for values you already hold (returned
157
+ * alongside search results)
158
+ *
159
+ * ### Example
160
+ *
161
+ * ```json
162
+ * { "fieldId": "conversation.tags", "query": "bill", "limit": 20 }
163
+ * ```
164
+ *
165
+ * ### Version Availability
166
+ *
167
+ * This endpoint is only available in API version 2026-01-01.nova and newer, and
168
+ * only for workspaces with the Reports product enabled (404 otherwise).
169
+ *
170
+ * @example
171
+ * ```ts
172
+ * const response = await client.reports.lookupFilterValues({
173
+ * fieldId: 'conversation.tags',
174
+ * });
175
+ * ```
176
+ */
177
+ lookupFilterValues(
178
+ params: ReportLookupFilterValuesParams,
179
+ options?: RequestOptions,
180
+ ): APIPromise<ReportLookupFilterValuesResponse> {
181
+ const { 'Featurebase-Version': featurebaseVersion, ...body } = params;
182
+ return this._client.post('/v2/reports/filter-values', {
183
+ body,
184
+ ...options,
185
+ headers: buildHeaders([
186
+ {
187
+ ...(featurebaseVersion?.toString() != null ?
188
+ { 'Featurebase-Version': featurebaseVersion?.toString() }
189
+ : undefined),
190
+ },
191
+ options?.headers,
192
+ ]),
193
+ });
194
+ }
195
+
196
+ /**
197
+ * Returns the paginated row-level records behind a metric — either the whole
198
+ * reporting window, or one specific data point from a previous
199
+ * `POST /v2/reports/query` response.
200
+ *
201
+ * Send the **same** `metric`, date range, `granularity`, `filters`, `groupBy` /
202
+ * `segmentBy` and `view` as the query you're drilling into, plus
203
+ * `dataPointFilters` selecting the data point:
204
+ *
205
+ * - `timeBucket` — a `date` from the time series
206
+ * - `groupValue` / `segmentValue` — a `group` / `segment` value from grouped data
207
+ * - `dayOfWeek` + `hourOfDay` — a heatmap cell (`hourly_heatmap` view)
208
+ * - `flowPathId` or `sourceNodeId` + `targetNodeId` — a flow edge (`sankey` view)
209
+ *
210
+ * Pass `dataPointFilters: {}` to list all rows behind the metric for the window.
211
+ *
212
+ * Results are paginated with `page` / `pageSize` (max 200 per page);
213
+ * `availableColumns` describes every column the dataset can return and
214
+ * `defaultColumnIds` the recommended subset. Rows are keyed by column ID; identity
215
+ * cells (teammates, contacts) are objects with `id` + `label`.
216
+ *
217
+ * ### Version Availability
218
+ *
219
+ * This endpoint is only available in API version 2026-01-01.nova and newer, and
220
+ * only for workspaces with the Reports product enabled (404 otherwise).
221
+ *
222
+ * @example
223
+ * ```ts
224
+ * const response = await client.reports.drillIn({
225
+ * endDate: 'xxxxxxxxxx',
226
+ * granularity: 'day',
227
+ * metric: 'new_conversations',
228
+ * startDate: 'xxxxxxxxxx',
229
+ * });
230
+ * ```
231
+ */
232
+ drillIn(params: ReportDrillInParams, options?: RequestOptions): APIPromise<ReportDrillInResponse> {
233
+ const { 'Featurebase-Version': featurebaseVersion, ...body } = params;
234
+ return this._client.post('/v2/reports/drill-in', {
235
+ body,
236
+ ...options,
237
+ headers: buildHeaders([
238
+ {
239
+ ...(featurebaseVersion?.toString() != null ?
240
+ { 'Featurebase-Version': featurebaseVersion?.toString() }
241
+ : undefined),
242
+ },
243
+ options?.headers,
244
+ ]),
245
+ });
246
+ }
247
+ }
248
+
249
+ export interface ReportAttribute {
250
+ /**
251
+ * Attribute ID — use as `fieldId` in filter rules and as `groupBy` / `segmentBy`
252
+ * in query requests.
253
+ */
254
+ id: string;
255
+
256
+ allowedOperators: Array<
257
+ | 'is'
258
+ | 'is_not'
259
+ | 'in'
260
+ | 'not_in'
261
+ | 'contains'
262
+ | 'not_contains'
263
+ | 'gte'
264
+ | 'lte'
265
+ | 'between'
266
+ | 'exists'
267
+ | 'not_exists'
268
+ | 'is_member_of'
269
+ | 'is_not_member_of'
270
+ >;
271
+
272
+ category: string;
273
+
274
+ description: string;
275
+
276
+ name: string;
277
+
278
+ /**
279
+ * Whether the attribute can be used in `filters` rules.
280
+ */
281
+ supportsFilter: boolean;
282
+
283
+ /**
284
+ * Whether the attribute can be used as `groupBy` / `segmentBy`.
285
+ */
286
+ supportsGroupBy: boolean;
287
+
288
+ /**
289
+ * Whether `POST /v2/reports/filter-values` can list this attribute's values.
290
+ */
291
+ supportsValueLookup: boolean;
292
+
293
+ valueType: 'string' | 'number' | 'boolean' | 'date' | 'enum' | 'id';
294
+
295
+ multiValue?: boolean;
296
+
297
+ /**
298
+ * Fixed value set for enum-like attributes. Attributes without static options
299
+ * resolve values via `POST /v2/reports/filter-values`.
300
+ */
301
+ staticOptions?: Array<ReportAttributeOption>;
302
+ }
303
+
304
+ export interface ReportAttributeOption {
305
+ label: string;
306
+
307
+ value: string;
308
+ }
309
+
310
+ export interface ReportDataset {
311
+ id: string;
312
+
313
+ attributes: Array<ReportAttribute>;
314
+
315
+ description: string;
316
+
317
+ metrics: Array<ReportMetric>;
318
+
319
+ name: string;
320
+ }
321
+
322
+ export interface ReportFilterExpression {
323
+ /**
324
+ * Rules and/or nested groups of rules. Groups may nest up to 6 levels at runtime;
325
+ * 100 rules max per expression.
326
+ */
327
+ children: Array<ReportFilterRule | ReportFilterExpression.ReportFilterGroup>;
328
+
329
+ kind: 'group';
330
+
331
+ /**
332
+ * Group operator: `and` (all match) or `or` (any match).
333
+ */
334
+ op: 'and' | 'or';
335
+ }
336
+
337
+ export namespace ReportFilterExpression {
338
+ export interface ReportFilterGroup {
339
+ children: Array<ReportsAPI.ReportFilterRule>;
340
+
341
+ kind: 'group';
342
+
343
+ /**
344
+ * Group operator: `and` (all match) or `or` (any match).
345
+ */
346
+ op: 'and' | 'or';
347
+ }
348
+ }
349
+
350
+ export interface ReportFilterRule {
351
+ /**
352
+ * Attribute ID to filter on (e.g. `conversation.channel`). Discover attribute IDs
353
+ * via `GET /v2/reports/datasets`.
354
+ */
355
+ fieldId: string;
356
+
357
+ kind: 'rule';
358
+
359
+ /**
360
+ * Comparison operator. Each attribute supports a subset of operators — see the
361
+ * `allowedOperators` field in the `GET /v2/reports/datasets` catalog.
362
+ */
363
+ operator:
364
+ | 'is'
365
+ | 'is_not'
366
+ | 'in'
367
+ | 'not_in'
368
+ | 'contains'
369
+ | 'not_contains'
370
+ | 'gte'
371
+ | 'lte'
372
+ | 'between'
373
+ | 'exists'
374
+ | 'not_exists'
375
+ | 'is_member_of'
376
+ | 'is_not_member_of';
377
+
378
+ /**
379
+ * Value to compare against. Scalar for `is`, `is_not`, `contains`, `not_contains`,
380
+ * `gte`, `lte` (ISO date strings for date attributes); non-empty array for `in`,
381
+ * `not_in`, `is_member_of`, `is_not_member_of`; 2-element array for `between`;
382
+ * omit for `exists` / `not_exists`.
383
+ */
384
+ value?: string | number | boolean | Array<string | number | boolean>;
385
+ }
386
+
387
+ export interface ReportGroupedDatum {
388
+ /**
389
+ * Raw group value (e.g. an ID). Use `groupLabel` for display.
390
+ */
391
+ group: string;
392
+
393
+ value: number;
394
+
395
+ groupLabel?: string;
396
+
397
+ previousValue?: number;
398
+
399
+ segments?: Array<ReportSegmentDatum>;
400
+ }
401
+
402
+ export interface ReportMetric {
403
+ /**
404
+ * Metric ID — use as `metric` in query requests.
405
+ */
406
+ id: string;
407
+
408
+ allowedAggregations: Array<'count' | 'sum' | 'avg' | 'median' | 'min' | 'max' | 'percentile' | 'value'>;
409
+
410
+ description: string;
411
+
412
+ name: string;
413
+
414
+ /**
415
+ * Which `view` values `POST /v2/reports/query` accepts for this metric. Most
416
+ * metrics support `standard` and `hourly_heatmap`; conversation-flow metrics are
417
+ * `sankey`-only.
418
+ */
419
+ supportedViews: Array<'standard' | 'hourly_heatmap' | 'sankey'>;
420
+
421
+ supportsOfficeHours: boolean;
422
+
423
+ supportsPeriodComparison: boolean;
424
+
425
+ type: 'count' | 'percentage' | 'duration' | 'number';
426
+
427
+ unit: 'count' | 'percentage' | 'duration_ms' | 'number';
428
+ }
429
+
430
+ export interface ReportSegmentDatum {
431
+ segment: string;
432
+
433
+ value: number;
434
+
435
+ previousValue?: number;
436
+
437
+ segmentLabel?: string;
438
+ }
439
+
440
+ export interface ReportTimeSeriesDatum {
441
+ /**
442
+ * Time bucket start (ISO 8601).
443
+ */
444
+ date: string;
445
+
446
+ value: number;
447
+
448
+ /**
449
+ * Value for the same bucket in the comparison window, when requested.
450
+ */
451
+ previousValue?: number;
452
+
453
+ segments?: Array<ReportSegmentDatum>;
454
+ }
455
+
456
+ export interface ReportDrillInResponse {
457
+ availableColumns: Array<ReportDrillInResponse.AvailableColumn>;
458
+
459
+ defaultColumnIds: Array<string>;
460
+
461
+ meta: ReportDrillInResponse.Meta;
462
+
463
+ object: 'report_drill_in_result';
464
+
465
+ page: number;
466
+
467
+ pageSize: number;
468
+
469
+ /**
470
+ * One record per underlying row, keyed by column ID.
471
+ */
472
+ rows: Array<{
473
+ [key: string]:
474
+ | string
475
+ | number
476
+ | boolean
477
+ | Array<string>
478
+ | ReportDrillInResponse.ReportDrillInIdentityCell
479
+ | null;
480
+ }>;
481
+
482
+ timezone: string;
483
+
484
+ total: number;
485
+ }
486
+
487
+ export namespace ReportDrillInResponse {
488
+ export interface AvailableColumn {
489
+ /**
490
+ * Column ID (an attribute ID or `metric.value`).
491
+ */
492
+ id: string;
493
+
494
+ name: string;
495
+
496
+ valueType: string;
497
+
498
+ category?: string;
499
+ }
500
+
501
+ export interface Meta {
502
+ datasetId: string;
503
+
504
+ metricId: string;
505
+ }
506
+
507
+ export interface ReportDrillInIdentityCell {
508
+ id: string;
509
+
510
+ kind: 'identity';
511
+
512
+ label: string;
513
+
514
+ avatarUrl?: string;
515
+
516
+ color?: string;
517
+ }
518
+ }
519
+
520
+ export interface ReportListDatasetsResponse {
521
+ data: Array<ReportDataset>;
522
+
523
+ object: 'list';
524
+ }
525
+
526
+ export interface ReportLookupFilterValuesResponse {
527
+ data: Array<ReportAttributeOption>;
528
+
529
+ object: 'list';
530
+ }
531
+
532
+ export interface ReportQueryResponse {
533
+ meta: ReportQueryResponse.Meta;
534
+
535
+ object: 'report_query_result';
536
+
537
+ /**
538
+ * Aggregated value across the whole reporting window.
539
+ */
540
+ value: number;
541
+
542
+ /**
543
+ * Percentage change vs the comparison window.
544
+ */
545
+ deltaPercent?: number;
546
+
547
+ flowData?: Array<ReportQueryResponse.FlowData>;
548
+
549
+ groupedData?: Array<ReportGroupedDatum>;
550
+
551
+ /**
552
+ * Aggregated value for the comparison window, when requested.
553
+ */
554
+ previousValue?: number;
555
+
556
+ segmentData?: Array<ReportSegmentDatum>;
557
+
558
+ timeSeries?: Array<ReportTimeSeriesDatum>;
559
+ }
560
+
561
+ export namespace ReportQueryResponse {
562
+ export interface Meta {
563
+ /**
564
+ * Aggregation function applied to the metric. Each metric supports a subset of
565
+ * aggregations — see the `allowedAggregations` field in the
566
+ * `GET /v2/reports/datasets` catalog.
567
+ */
568
+ aggregation: 'count' | 'sum' | 'avg' | 'median' | 'min' | 'max' | 'percentile' | 'value';
569
+
570
+ datasetId: string;
571
+
572
+ granularity: string;
573
+
574
+ metric: string;
575
+
576
+ officeHoursOnly: boolean;
577
+
578
+ unit: 'count' | 'percentage' | 'duration_ms' | 'number';
579
+
580
+ groupBy?: string;
581
+
582
+ segmentBy?: string;
583
+ }
584
+
585
+ export interface FlowData {
586
+ metricId: string;
587
+
588
+ pathId: string;
589
+
590
+ source: string;
591
+
592
+ sourceLabel: string;
593
+
594
+ target: string;
595
+
596
+ targetLabel: string;
597
+
598
+ value: number;
599
+
600
+ colorKey?: string;
601
+
602
+ percentage?: number;
603
+
604
+ sortOrder?: number;
605
+ }
606
+ }
607
+
608
+ export interface ReportListDatasetsParams {
609
+ /**
610
+ * API version for this request. Defaults to your organization's configured API
611
+ * version if not specified.
612
+ */
613
+ 'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
614
+ }
615
+
616
+ export interface ReportQueryParams {
617
+ /**
618
+ * Body param: Aggregation function applied to the metric. Each metric supports a
619
+ * subset of aggregations — see the `allowedAggregations` field in the
620
+ * `GET /v2/reports/datasets` catalog.
621
+ */
622
+ aggregation: 'count' | 'sum' | 'avg' | 'median' | 'min' | 'max' | 'percentile' | 'value';
623
+
624
+ /**
625
+ * Body param: End of the reporting window (ISO 8601 date or datetime, inclusive).
626
+ */
627
+ endDate: string;
628
+
629
+ /**
630
+ * Body param: Time bucket size for the returned time series.
631
+ */
632
+ granularity: 'hour' | 'day' | 'week' | 'month';
633
+
634
+ /**
635
+ * Body param: Metric ID to query (e.g. `new_conversations`). Discover metric IDs
636
+ * via `GET /v2/reports/datasets`.
637
+ */
638
+ metric: string;
639
+
640
+ /**
641
+ * Body param: Start of the reporting window (ISO 8601 date or datetime,
642
+ * inclusive).
643
+ */
644
+ startDate: string;
645
+
646
+ /**
647
+ * Body param: End of the comparison window. Must be paired with
648
+ * `compareStartDate`.
649
+ */
650
+ compareEndDate?: string;
651
+
652
+ /**
653
+ * Body param: Start of the comparison window for period-over-period deltas. Must
654
+ * be paired with `compareEndDate`.
655
+ */
656
+ compareStartDate?: string;
657
+
658
+ /**
659
+ * Body param: Filter expression: a single rule, or an `and`/`or` group combining
660
+ * rules and nested groups. Attribute IDs and their allowed operators come from
661
+ * `GET /v2/reports/datasets`.
662
+ */
663
+ filters?: ReportFilterRule | ReportFilterExpression;
664
+
665
+ /**
666
+ * Body param: Attribute ID to group results by (e.g. `conversation.channel`). See
667
+ * `supportsGroupBy` in the catalog.
668
+ */
669
+ groupBy?: string;
670
+
671
+ /**
672
+ * Body param: Restrict time-based metrics to configured office hours. Only
673
+ * supported by some metrics (see `supportsOfficeHours` in the catalog).
674
+ */
675
+ officeHoursOnly?: boolean;
676
+
677
+ /**
678
+ * Body param: Percentile (1-100) — required when `aggregation` is `percentile`.
679
+ */
680
+ percentile?: number;
681
+
682
+ /**
683
+ * Body param: Attribute ID for secondary segmentation within each group or time
684
+ * bucket.
685
+ */
686
+ segmentBy?: string;
687
+
688
+ /**
689
+ * Body param: IANA timezone for date bucketing (e.g. `America/New_York`). Defaults
690
+ * to UTC.
691
+ */
692
+ timezone?: string;
693
+
694
+ /**
695
+ * Body param: Result shape. `standard` returns a time series (plus grouped/segment
696
+ * data when requested), `hourly_heatmap` buckets by day-of-week × hour-of-day,
697
+ * `sankey` returns conversation flow data. Each metric lists its `supportedViews`
698
+ * in the `GET /v2/reports/datasets` catalog.
699
+ */
700
+ view?: 'standard' | 'hourly_heatmap' | 'sankey';
701
+
702
+ /**
703
+ * Header param: API version for this request. Defaults to your organization's
704
+ * configured API version if not specified.
705
+ */
706
+ 'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
707
+ }
708
+
709
+ export interface ReportLookupFilterValuesParams {
710
+ /**
711
+ * Body param: Attribute ID to look up values for (must have
712
+ * `valueSource: "remote_search"` or static options in the catalog).
713
+ */
714
+ fieldId: string;
715
+
716
+ /**
717
+ * Body param: Maximum number of options to return (1-50, default 20).
718
+ */
719
+ limit?: number;
720
+
721
+ /**
722
+ * Body param: Optional search string to narrow the returned options.
723
+ */
724
+ query?: string;
725
+
726
+ /**
727
+ * Body param: Already-selected values to resolve labels for (returned alongside
728
+ * search results).
729
+ */
730
+ selectedValues?: Array<string>;
731
+
732
+ /**
733
+ * Header param: API version for this request. Defaults to your organization's
734
+ * configured API version if not specified.
735
+ */
736
+ 'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
737
+ }
738
+
739
+ export interface ReportDrillInParams {
740
+ /**
741
+ * Body param
742
+ */
743
+ endDate: string;
744
+
745
+ /**
746
+ * Body param: Time bucket size for the returned time series.
747
+ */
748
+ granularity: 'hour' | 'day' | 'week' | 'month';
749
+
750
+ /**
751
+ * Body param: Metric ID the drill-in belongs to.
752
+ */
753
+ metric: string;
754
+
755
+ /**
756
+ * Body param
757
+ */
758
+ startDate: string;
759
+
760
+ /**
761
+ * Body param: Narrows the drill-in to one data point from a previous query (time
762
+ * bucket, group value, heatmap cell, or flow edge). Pass `{}` to list all
763
+ * underlying rows.
764
+ */
765
+ dataPointFilters?: ReportDrillInParams.DataPointFilters;
766
+
767
+ /**
768
+ * Body param: Filter expression: a single rule, or an `and`/`or` group combining
769
+ * rules and nested groups. Attribute IDs and their allowed operators come from
770
+ * `GET /v2/reports/datasets`.
771
+ */
772
+ filters?: ReportFilterRule | ReportFilterExpression;
773
+
774
+ /**
775
+ * Body param
776
+ */
777
+ groupBy?: string;
778
+
779
+ /**
780
+ * Body param
781
+ */
782
+ officeHoursOnly?: boolean;
783
+
784
+ /**
785
+ * Body param: Page number (1-based).
786
+ */
787
+ page?: number;
788
+
789
+ /**
790
+ * Body param: Rows per page (1-200, default 25).
791
+ */
792
+ pageSize?: number;
793
+
794
+ /**
795
+ * Body param
796
+ */
797
+ segmentBy?: string;
798
+
799
+ /**
800
+ * Body param: A metric ID from the datasets catalog. Use when the originating
801
+ * chart aggregates several metrics to pick which one the drill-in follows.
802
+ * Defaults to `metric`.
803
+ */
804
+ selectedMetricId?: string;
805
+
806
+ /**
807
+ * Body param
808
+ */
809
+ sort?: Array<ReportDrillInParams.Sort>;
810
+
811
+ /**
812
+ * Body param
813
+ */
814
+ timezone?: string;
815
+
816
+ /**
817
+ * Body param: Result shape. `standard` returns a time series (plus grouped/segment
818
+ * data when requested), `hourly_heatmap` buckets by day-of-week × hour-of-day,
819
+ * `sankey` returns conversation flow data. Each metric lists its `supportedViews`
820
+ * in the `GET /v2/reports/datasets` catalog.
821
+ */
822
+ view?: 'standard' | 'hourly_heatmap' | 'sankey';
823
+
824
+ /**
825
+ * Header param: API version for this request. Defaults to your organization's
826
+ * configured API version if not specified.
827
+ */
828
+ 'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
829
+ }
830
+
831
+ export namespace ReportDrillInParams {
832
+ /**
833
+ * Narrows the drill-in to one data point from a previous query (time bucket, group
834
+ * value, heatmap cell, or flow edge). Pass `{}` to list all underlying rows.
835
+ */
836
+ export interface DataPointFilters {
837
+ /**
838
+ * Day of week (1 = Monday … 7 = Sunday) — for `hourly_heatmap` views.
839
+ */
840
+ dayOfWeek?: number;
841
+
842
+ /**
843
+ * Flow path ID — for `sankey` views.
844
+ */
845
+ flowPathId?: string;
846
+
847
+ /**
848
+ * Group value to drill into (a `group` value from `groupedData`).
849
+ */
850
+ groupValue?: string;
851
+
852
+ /**
853
+ * Hour of day (0-23) — for `hourly_heatmap` views.
854
+ */
855
+ hourOfDay?: number;
856
+
857
+ /**
858
+ * Segment value to drill into (a `segment` value from segment data).
859
+ */
860
+ segmentValue?: string;
861
+
862
+ /**
863
+ * Flow source node ID — for `sankey` views.
864
+ */
865
+ sourceNodeId?: string;
866
+
867
+ /**
868
+ * Flow target node ID — for `sankey` views.
869
+ */
870
+ targetNodeId?: string;
871
+
872
+ /**
873
+ * Time bucket to drill into (a `date` value from the query time series).
874
+ */
875
+ timeBucket?: string;
876
+ }
877
+
878
+ export interface Sort {
879
+ direction: 'asc' | 'desc';
880
+
881
+ /**
882
+ * Column ID to sort by (an attribute ID or `metric.value`).
883
+ */
884
+ fieldId: string;
885
+ }
886
+ }
887
+
888
+ export declare namespace Reports {
889
+ export {
890
+ type ReportAttribute as ReportAttribute,
891
+ type ReportAttributeOption as ReportAttributeOption,
892
+ type ReportDataset as ReportDataset,
893
+ type ReportFilterExpression as ReportFilterExpression,
894
+ type ReportFilterRule as ReportFilterRule,
895
+ type ReportGroupedDatum as ReportGroupedDatum,
896
+ type ReportMetric as ReportMetric,
897
+ type ReportSegmentDatum as ReportSegmentDatum,
898
+ type ReportTimeSeriesDatum as ReportTimeSeriesDatum,
899
+ type ReportDrillInResponse as ReportDrillInResponse,
900
+ type ReportListDatasetsResponse as ReportListDatasetsResponse,
901
+ type ReportLookupFilterValuesResponse as ReportLookupFilterValuesResponse,
902
+ type ReportQueryResponse as ReportQueryResponse,
903
+ type ReportListDatasetsParams as ReportListDatasetsParams,
904
+ type ReportQueryParams as ReportQueryParams,
905
+ type ReportLookupFilterValuesParams as ReportLookupFilterValuesParams,
906
+ type ReportDrillInParams as ReportDrillInParams,
907
+ };
908
+ }