@graph8/sdk 0.251.0 → 0.260.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (350) hide show
  1. package/README.md +9 -2
  2. package/dist/cli.js +216 -0
  3. package/dist/index.d.mts +104 -7
  4. package/dist/index.d.ts +104 -7
  5. package/dist/index.js +44 -3
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.mjs +44 -3
  8. package/dist/index.mjs.map +1 -1
  9. package/dist/react.d.mts +102 -7
  10. package/dist/react.d.ts +102 -7
  11. package/dist/react.js +62 -11
  12. package/dist/react.js.map +1 -1
  13. package/dist/react.mjs +53 -12
  14. package/dist/react.mjs.map +1 -1
  15. package/dist/types/README.md +7 -0
  16. package/dist/types/agency.d.ts +20 -0
  17. package/dist/types/agentSetup.d.ts +57 -0
  18. package/dist/types/api.d.ts +127 -0
  19. package/dist/types/appClient.d.ts +99 -0
  20. package/dist/types/appPlatform.d.ts +269 -0
  21. package/dist/types/appTokens.d.ts +125 -0
  22. package/dist/types/apps.d.ts +130 -0
  23. package/dist/types/audiences.d.ts +88 -0
  24. package/dist/types/calendar.d.ts +55 -0
  25. package/dist/types/campaigns.d.ts +61 -0
  26. package/dist/types/chat.d.ts +35 -0
  27. package/dist/types/cli.d.ts +14 -0
  28. package/dist/types/companies.d.ts +123 -0
  29. package/dist/types/contacts.d.ts +200 -0
  30. package/dist/types/copilot.d.ts +31 -0
  31. package/dist/types/core.d.ts +1052 -0
  32. package/dist/types/deals.d.ts +215 -0
  33. package/dist/types/enrich.d.ts +51 -0
  34. package/dist/types/fields.d.ts +84 -0
  35. package/dist/types/forms.d.ts +16 -0
  36. package/dist/types/http.d.ts +141 -0
  37. package/dist/types/inbox.d.ts +123 -0
  38. package/dist/types/index.d.ts +63 -0
  39. package/dist/types/intent.d.ts +196 -0
  40. package/dist/types/lists.d.ts +44 -0
  41. package/dist/types/mailboxes.d.ts +240 -0
  42. package/dist/types/marketplace.d.ts +62 -0
  43. package/dist/types/meetings.d.ts +70 -0
  44. package/dist/types/newsletter.d.ts +212 -0
  45. package/dist/types/notes.d.ts +57 -0
  46. package/dist/types/objects.d.ts +281 -0
  47. package/dist/types/pipelines.d.ts +135 -0
  48. package/dist/types/quotes.d.ts +143 -0
  49. package/dist/types/react.d.ts +978 -0
  50. package/dist/types/search.d.ts +99 -0
  51. package/dist/types/sequences.d.ts +255 -0
  52. package/dist/types/signals.d.ts +28 -0
  53. package/dist/types/skills.d.ts +176 -0
  54. package/dist/types/snippet.d.ts +24 -0
  55. package/dist/types/studio.d.ts +161 -0
  56. package/dist/types/tasks.d.ts +101 -0
  57. package/dist/types/types.d.ts +45 -0
  58. package/dist/types/utils.d.ts +21 -0
  59. package/dist/types/version.d.ts +10 -0
  60. package/dist/types/visitors.d.ts +29 -0
  61. package/dist/types/voice.d.ts +304 -0
  62. package/dist/types/webhooks.d.ts +71 -0
  63. package/dist/types/workflows.d.ts +229 -0
  64. package/docs/agents.md +748 -0
  65. package/docs/api/README.md +165 -0
  66. package/docs/api/accounts.d.ts +396 -0
  67. package/docs/api/accounts.md +644 -0
  68. package/docs/api/adCampaigns.d.ts +707 -0
  69. package/docs/api/adCampaigns.md +1091 -0
  70. package/docs/api/adCreatives.d.ts +996 -0
  71. package/docs/api/adCreatives.md +1708 -0
  72. package/docs/api/agency.d.ts +556 -0
  73. package/docs/api/agency.md +845 -0
  74. package/docs/api/agent.d.ts +330 -0
  75. package/docs/api/agent.md +514 -0
  76. package/docs/api/agents.d.ts +1622 -0
  77. package/docs/api/agents.md +2860 -0
  78. package/docs/api/aiInbox.d.ts +1984 -0
  79. package/docs/api/aiInbox.md +3490 -0
  80. package/docs/api/analytics.d.ts +1273 -0
  81. package/docs/api/analytics.md +2095 -0
  82. package/docs/api/apiKeys.d.ts +252 -0
  83. package/docs/api/apiKeys.md +318 -0
  84. package/docs/api/appDeployments.d.ts +236 -0
  85. package/docs/api/appDeployments.md +471 -0
  86. package/docs/api/appDomains.d.ts +171 -0
  87. package/docs/api/appDomains.md +281 -0
  88. package/docs/api/appLogs.d.ts +120 -0
  89. package/docs/api/appLogs.md +159 -0
  90. package/docs/api/appObjects.d.ts +415 -0
  91. package/docs/api/appObjects.md +568 -0
  92. package/docs/api/appPages.d.ts +557 -0
  93. package/docs/api/appPages.md +796 -0
  94. package/docs/api/appPlatformTokens.d.ts +123 -0
  95. package/docs/api/appPlatformTokens.md +172 -0
  96. package/docs/api/appointments.d.ts +2361 -0
  97. package/docs/api/appointments.md +3917 -0
  98. package/docs/api/apps.d.ts +822 -0
  99. package/docs/api/apps.md +1342 -0
  100. package/docs/api/assertUpsert.d.ts +286 -0
  101. package/docs/api/assertUpsert.md +370 -0
  102. package/docs/api/audienceSyncs.d.ts +259 -0
  103. package/docs/api/audienceSyncs.md +395 -0
  104. package/docs/api/brandKit.d.ts +686 -0
  105. package/docs/api/brandKit.md +1133 -0
  106. package/docs/api/bugReports.d.ts +181 -0
  107. package/docs/api/bugReports.md +268 -0
  108. package/docs/api/by-path.md +3260 -0
  109. package/docs/api/calendarInvites.d.ts +117 -0
  110. package/docs/api/calendarInvites.md +148 -0
  111. package/docs/api/campaignWorkflows.d.ts +152 -0
  112. package/docs/api/campaignWorkflows.md +200 -0
  113. package/docs/api/campaigns.d.ts +721 -0
  114. package/docs/api/campaigns.md +1236 -0
  115. package/docs/api/channels.d.ts +171 -0
  116. package/docs/api/channels.md +235 -0
  117. package/docs/api/cliCampaigns.d.ts +205 -0
  118. package/docs/api/cliCampaigns.md +256 -0
  119. package/docs/api/cliPipelines.d.ts +324 -0
  120. package/docs/api/cliPipelines.md +562 -0
  121. package/docs/api/clickHouse.d.ts +115 -0
  122. package/docs/api/clickHouse.md +138 -0
  123. package/docs/api/companies.d.ts +1636 -0
  124. package/docs/api/companies.md +2211 -0
  125. package/docs/api/companyIntelligence.d.ts +299 -0
  126. package/docs/api/companyIntelligence.md +488 -0
  127. package/docs/api/contacts.d.ts +2173 -0
  128. package/docs/api/contacts.md +3143 -0
  129. package/docs/api/content.d.ts +968 -0
  130. package/docs/api/content.md +1667 -0
  131. package/docs/api/contentGridSkills.d.ts +177 -0
  132. package/docs/api/contentGridSkills.md +271 -0
  133. package/docs/api/copilot.d.ts +1017 -0
  134. package/docs/api/copilot.md +1765 -0
  135. package/docs/api/crmSyncs.d.ts +215 -0
  136. package/docs/api/crmSyncs.md +301 -0
  137. package/docs/api/customerSuccess.d.ts +491 -0
  138. package/docs/api/customerSuccess.md +776 -0
  139. package/docs/api/deals.d.ts +1696 -0
  140. package/docs/api/deals.md +2432 -0
  141. package/docs/api/deliverability.d.ts +418 -0
  142. package/docs/api/deliverability.md +677 -0
  143. package/docs/api/desk.d.ts +1765 -0
  144. package/docs/api/desk.md +3007 -0
  145. package/docs/api/dialer.d.ts +1185 -0
  146. package/docs/api/dialer.md +2166 -0
  147. package/docs/api/dialerAnalytics.d.ts +187 -0
  148. package/docs/api/dialerAnalytics.md +257 -0
  149. package/docs/api/documents.d.ts +895 -0
  150. package/docs/api/documents.md +1440 -0
  151. package/docs/api/duplicates.d.ts +195 -0
  152. package/docs/api/duplicates.md +315 -0
  153. package/docs/api/eSign.d.ts +38 -0
  154. package/docs/api/eSign.md +54 -0
  155. package/docs/api/eSignature.d.ts +242 -0
  156. package/docs/api/eSignature.md +341 -0
  157. package/docs/api/enrichment.d.ts +3207 -0
  158. package/docs/api/enrichment.md +5225 -0
  159. package/docs/api/events.d.ts +115 -0
  160. package/docs/api/events.md +105 -0
  161. package/docs/api/fields.d.ts +482 -0
  162. package/docs/api/fields.md +566 -0
  163. package/docs/api/forms.d.ts +1012 -0
  164. package/docs/api/forms.md +1542 -0
  165. package/docs/api/gtmCampaigns.d.ts +662 -0
  166. package/docs/api/gtmCampaigns.md +1044 -0
  167. package/docs/api/gtmContext.d.ts +1187 -0
  168. package/docs/api/gtmContext.md +2112 -0
  169. package/docs/api/gtmDeliverability.d.ts +60 -0
  170. package/docs/api/gtmDeliverability.md +63 -0
  171. package/docs/api/gtmKnowledgeBase.d.ts +76 -0
  172. package/docs/api/gtmKnowledgeBase.md +91 -0
  173. package/docs/api/gtmLaunchHelpers.d.ts +123 -0
  174. package/docs/api/gtmLaunchHelpers.md +148 -0
  175. package/docs/api/gtmLibrary.d.ts +448 -0
  176. package/docs/api/gtmLibrary.md +780 -0
  177. package/docs/api/health.d.ts +39 -0
  178. package/docs/api/health.md +58 -0
  179. package/docs/api/imageLibrary.d.ts +341 -0
  180. package/docs/api/imageLibrary.md +569 -0
  181. package/docs/api/imports.d.ts +157 -0
  182. package/docs/api/imports.md +174 -0
  183. package/docs/api/inbox.d.ts +709 -0
  184. package/docs/api/inbox.md +1067 -0
  185. package/docs/api/install.d.ts +213 -0
  186. package/docs/api/install.md +317 -0
  187. package/docs/api/installedApps.d.ts +131 -0
  188. package/docs/api/installedApps.md +241 -0
  189. package/docs/api/integrationStatus.d.ts +142 -0
  190. package/docs/api/integrationStatus.md +205 -0
  191. package/docs/api/integrations.d.ts +2327 -0
  192. package/docs/api/integrations.md +3791 -0
  193. package/docs/api/intent.d.ts +482 -0
  194. package/docs/api/intent.md +858 -0
  195. package/docs/api/knowledge.d.ts +501 -0
  196. package/docs/api/knowledge.md +843 -0
  197. package/docs/api/knowledgeBase.d.ts +84 -0
  198. package/docs/api/knowledgeBase.md +96 -0
  199. package/docs/api/landingPages.d.ts +1411 -0
  200. package/docs/api/landingPages.md +2488 -0
  201. package/docs/api/leads.d.ts +133 -0
  202. package/docs/api/leads.md +180 -0
  203. package/docs/api/library.d.ts +217 -0
  204. package/docs/api/library.md +338 -0
  205. package/docs/api/linkedIn.d.ts +227 -0
  206. package/docs/api/linkedIn.md +289 -0
  207. package/docs/api/linkedInOutreach.d.ts +727 -0
  208. package/docs/api/linkedInOutreach.md +990 -0
  209. package/docs/api/lists.d.ts +1106 -0
  210. package/docs/api/lists.md +1609 -0
  211. package/docs/api/logs.d.ts +71 -0
  212. package/docs/api/logs.md +70 -0
  213. package/docs/api/mailboxes.d.ts +1050 -0
  214. package/docs/api/mailboxes.md +1690 -0
  215. package/docs/api/marketingIntelligence.d.ts +256 -0
  216. package/docs/api/marketingIntelligence.md +454 -0
  217. package/docs/api/marketplace.d.ts +3173 -0
  218. package/docs/api/marketplace.md +5953 -0
  219. package/docs/api/mcp.d.ts +69 -0
  220. package/docs/api/mcp.md +69 -0
  221. package/docs/api/me.d.ts +54 -0
  222. package/docs/api/me.md +56 -0
  223. package/docs/api/meetings.d.ts +539 -0
  224. package/docs/api/meetings.md +747 -0
  225. package/docs/api/newsletter.d.ts +1613 -0
  226. package/docs/api/newsletter.md +2746 -0
  227. package/docs/api/notes.d.ts +517 -0
  228. package/docs/api/notes.md +888 -0
  229. package/docs/api/notifications.d.ts +94 -0
  230. package/docs/api/notifications.md +105 -0
  231. package/docs/api/objects.d.ts +621 -0
  232. package/docs/api/objects.md +1098 -0
  233. package/docs/api/openSearch.d.ts +234 -0
  234. package/docs/api/openSearch.md +297 -0
  235. package/docs/api/ops.d.ts +299 -0
  236. package/docs/api/ops.md +339 -0
  237. package/docs/api/orgGovernance.d.ts +393 -0
  238. package/docs/api/orgGovernance.md +623 -0
  239. package/docs/api/orgVideos.d.ts +184 -0
  240. package/docs/api/orgVideos.md +252 -0
  241. package/docs/api/organizationSettings.d.ts +626 -0
  242. package/docs/api/organizationSettings.md +911 -0
  243. package/docs/api/phoneNumbers.d.ts +484 -0
  244. package/docs/api/phoneNumbers.md +777 -0
  245. package/docs/api/profile.d.ts +329 -0
  246. package/docs/api/profile.md +540 -0
  247. package/docs/api/programmaticPages.d.ts +400 -0
  248. package/docs/api/programmaticPages.md +626 -0
  249. package/docs/api/providerDomains.d.ts +866 -0
  250. package/docs/api/providerDomains.md +1446 -0
  251. package/docs/api/providerUsage.d.ts +129 -0
  252. package/docs/api/providerUsage.md +186 -0
  253. package/docs/api/public.d.ts +69 -0
  254. package/docs/api/public.md +78 -0
  255. package/docs/api/publicCopilot.d.ts +67 -0
  256. package/docs/api/publicCopilot.md +80 -0
  257. package/docs/api/publicSignals.d.ts +66 -0
  258. package/docs/api/publicSignals.md +71 -0
  259. package/docs/api/publicVisitors.d.ts +97 -0
  260. package/docs/api/publicVisitors.md +118 -0
  261. package/docs/api/quotes.d.ts +1564 -0
  262. package/docs/api/quotes.md +2553 -0
  263. package/docs/api/radar.d.ts +808 -0
  264. package/docs/api/radar.md +1431 -0
  265. package/docs/api/radarReports.d.ts +208 -0
  266. package/docs/api/radarReports.md +306 -0
  267. package/docs/api/recordRoles.d.ts +143 -0
  268. package/docs/api/recordRoles.md +175 -0
  269. package/docs/api/repos.d.ts +146 -0
  270. package/docs/api/repos.md +211 -0
  271. package/docs/api/research.d.ts +295 -0
  272. package/docs/api/research.md +534 -0
  273. package/docs/api/revenue.d.ts +402 -0
  274. package/docs/api/revenue.md +608 -0
  275. package/docs/api/revenueAnalytics.d.ts +147 -0
  276. package/docs/api/revenueAnalytics.md +212 -0
  277. package/docs/api/revenueLifecycle.d.ts +207 -0
  278. package/docs/api/revenueLifecycle.md +274 -0
  279. package/docs/api/revenueRecords.d.ts +372 -0
  280. package/docs/api/revenueRecords.md +563 -0
  281. package/docs/api/roles.d.ts +431 -0
  282. package/docs/api/roles.md +812 -0
  283. package/docs/api/salesCoach.d.ts +877 -0
  284. package/docs/api/salesCoach.md +1540 -0
  285. package/docs/api/sandbox.d.ts +210 -0
  286. package/docs/api/sandbox.md +380 -0
  287. package/docs/api/scans.d.ts +104 -0
  288. package/docs/api/scans.md +136 -0
  289. package/docs/api/scheduleBuy.d.ts +293 -0
  290. package/docs/api/scheduleBuy.md +431 -0
  291. package/docs/api/scraping.d.ts +266 -0
  292. package/docs/api/scraping.md +383 -0
  293. package/docs/api/sdrAnalytics.d.ts +138 -0
  294. package/docs/api/sdrAnalytics.md +246 -0
  295. package/docs/api/search.d.ts +598 -0
  296. package/docs/api/search.md +866 -0
  297. package/docs/api/seo.d.ts +447 -0
  298. package/docs/api/seo.md +660 -0
  299. package/docs/api/sequenceLifecycle.d.ts +439 -0
  300. package/docs/api/sequenceLifecycle.md +513 -0
  301. package/docs/api/sequences.d.ts +1936 -0
  302. package/docs/api/sequences.md +3232 -0
  303. package/docs/api/settings.d.ts +448 -0
  304. package/docs/api/settings.md +731 -0
  305. package/docs/api/signals.d.ts +1441 -0
  306. package/docs/api/signals.md +2526 -0
  307. package/docs/api/signatures.d.ts +719 -0
  308. package/docs/api/signatures.md +1247 -0
  309. package/docs/api/skills.d.ts +230 -0
  310. package/docs/api/skills.md +466 -0
  311. package/docs/api/snippet.d.ts +85 -0
  312. package/docs/api/snippet.md +106 -0
  313. package/docs/api/socialPublishing.d.ts +824 -0
  314. package/docs/api/socialPublishing.md +1245 -0
  315. package/docs/api/studioDocuments.d.ts +244 -0
  316. package/docs/api/studioDocuments.md +348 -0
  317. package/docs/api/support.d.ts +90 -0
  318. package/docs/api/support.md +76 -0
  319. package/docs/api/suppressions.d.ts +241 -0
  320. package/docs/api/suppressions.md +343 -0
  321. package/docs/api/surveys.d.ts +847 -0
  322. package/docs/api/surveys.md +1223 -0
  323. package/docs/api/tasks.d.ts +813 -0
  324. package/docs/api/tasks.md +1344 -0
  325. package/docs/api/teamMembers.d.ts +668 -0
  326. package/docs/api/teamMembers.md +1040 -0
  327. package/docs/api/teams.d.ts +784 -0
  328. package/docs/api/teams.md +1395 -0
  329. package/docs/api/usage.d.ts +277 -0
  330. package/docs/api/usage.md +389 -0
  331. package/docs/api/visitors.d.ts +690 -0
  332. package/docs/api/visitors.md +1075 -0
  333. package/docs/api/voice.d.ts +4661 -0
  334. package/docs/api/voice.md +7905 -0
  335. package/docs/api/webAnalytics.d.ts +964 -0
  336. package/docs/api/webAnalytics.md +1452 -0
  337. package/docs/api/webChat.d.ts +1704 -0
  338. package/docs/api/webChat.md +2048 -0
  339. package/docs/api/webhooks.d.ts +251 -0
  340. package/docs/api/webhooks.md +386 -0
  341. package/docs/api/websiteEditor.d.ts +324 -0
  342. package/docs/api/websiteEditor.md +517 -0
  343. package/docs/api/work.d.ts +2298 -0
  344. package/docs/api/work.md +3096 -0
  345. package/docs/api/workbench.d.ts +2962 -0
  346. package/docs/api/workbench.md +4884 -0
  347. package/docs/api/workflows.d.ts +1218 -0
  348. package/docs/api/workflows.md +2302 -0
  349. package/docs/sdk-clients.md +4339 -0
  350. package/package.json +10 -3
@@ -0,0 +1,274 @@
1
+ <!-- Generated by sdk/js/scripts/generate-agent-docs.ts from developer-contract/openapi.json. Regenerated on every build. -->
2
+
3
+ # `g8.api.revenueLifecycle`: Revenue Lifecycle
4
+
5
+ 5 operations (3 read, 2 write).
6
+
7
+ No hand-written client covers this area. Call it through `g8.api.revenueLifecycle.*` as shown below, or by operationId with `g8.api.call(operationId, input)`.
8
+
9
+ Every example below assumes this setup (server-side, API key):
10
+
11
+ ```ts
12
+ import { g8 } from "@graph8/sdk";
13
+
14
+ g8.init({ apiKey: process.env.G8_API_KEY! });
15
+ ```
16
+
17
+ Example values are placeholders that match each field's type. Only required fields are shown. Every example is type-checked against the SDK in CI.
18
+
19
+ Exact TypeScript types for every operation on this page, and every schema they use: [revenueLifecycle.d.ts](revenueLifecycle.d.ts).
20
+
21
+ ## Operations
22
+
23
+ | Call | HTTP | Tier | Scope | Summary |
24
+ |---|---|---|---|---|
25
+ | [`getLifecycleStageCounts`](#op-getlifecyclestagecounts) | `GET /api/v1/lifecycle-stages/counts` | read | `deals:read` | Get Lifecycle Stage Counts |
26
+ | [`listLifecycleStageRecords`](#op-listlifecyclestagerecords) | `GET /api/v1/lifecycle-stages/{stage}/records` | read | `deals:read` | List Lifecycle Stage Records |
27
+ | [`listLifecycleStages`](#op-listlifecyclestages) | `GET /api/v1/lifecycle-stages` | read | `deals:read` | List Lifecycle Stages |
28
+ | [`moveCompanyLifecycleStage`](#op-movecompanylifecyclestage) | `POST /api/v1/companies/{company_id}/lifecycle-stage` | write | `deals:write` | Move Company Lifecycle Stage |
29
+ | [`moveContactLifecycleStage`](#op-movecontactlifecyclestage) | `POST /api/v1/contacts/{contact_id}/lifecycle-stage` | write | `deals:write` | Move Contact Lifecycle Stage |
30
+
31
+ ---
32
+
33
+ <a id="op-getlifecyclestagecounts"></a>
34
+
35
+ ### `g8.api.revenueLifecycle.getLifecycleStageCounts(input?)`
36
+
37
+ **Get Lifecycle Stage Counts**
38
+
39
+ - HTTP: `GET /api/v1/lifecycle-stages/counts`
40
+ - operationId: `get_lifecycle_stage_counts_lifecycle_stages_counts_get` (also callable as `g8.api.call("get_lifecycle_stage_counts_lifecycle_stages_counts_get", input)`)
41
+ - Tier: `read`: reads data; safe to call and to retry
42
+ - API-key scope: `deals:read`
43
+
44
+ Per-stage company counts — cheap enough to power a lifecycle board header.
45
+
46
+ The returned map is keyed by lifecycle ENTRY ID, not slug (matches
47
+ `GET /settings/revenue/lifecycle/counts` exactly — see
48
+ `.claude/agent-context/lifecycle-stage-moves.md` Gotcha 4). Cross-reference
49
+ against `GET /lifecycle-stages` to resolve an id to its slug/name. Counts
50
+ are company-only, same as the app's nav badges — contact-stage membership
51
+ has no counts surface yet (see the module docstring's dropped-scope note).
52
+
53
+ **Input**: none.
54
+
55
+ **Returns** `ApiResponse_dict_str__int__`: the envelope `{ data: Record<string, integer>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
56
+
57
+ Other envelope fields: `pagination` (PaginationMeta).
58
+
59
+ **Example**
60
+
61
+ ```ts
62
+ const result = await g8.api.revenueLifecycle.getLifecycleStageCounts();
63
+ ```
64
+
65
+ ---
66
+
67
+ <a id="op-listlifecyclestagerecords"></a>
68
+
69
+ ### `g8.api.revenueLifecycle.listLifecycleStageRecords(input)`
70
+
71
+ **List Lifecycle Stage Records**
72
+
73
+ - HTTP: `GET /api/v1/lifecycle-stages/{stage}/records`
74
+ - operationId: `list_lifecycle_stage_records_lifecycle_stages__stage__records_get` (also callable as `g8.api.call("list_lifecycle_stage_records_lifecycle_stages__stage__records_get", input)`)
75
+ - Tier: `read`: reads data; safe to call and to retry
76
+ - API-key scope: `deals:read`
77
+
78
+ List the companies currently in a lifecycle stage.
79
+
80
+ Membership is resolved with the exact same predicate the Suspects/Leads/
81
+ Trial/Customers/Churned grid and the counts endpoint use — this endpoint,
82
+ the grid, and `GET /lifecycle-stages/counts` can never disagree about who
83
+ is in a stage. Row visibility is additionally narrowed by the calling
84
+ key's declared company scope (own/team/all), same as `GET /companies`.
85
+
86
+ **Input**
87
+
88
+ | Field | Type | Required | Description |
89
+ |---|---|---|---|
90
+ | `path.stage` | `string` | yes | Lifecycle slug (e.g. 'leads') OR lifecycle entry UUID — either works. |
91
+ | `query.page` | `integer` | no | Page number (1-indexed). default `1` |
92
+ | `query.limit` | `integer` | no | Items per page (max 200). default `50` |
93
+
94
+ **Returns** `ApiResponse_list_LifecycleRecordItem__`: the envelope `{ data: Array<LifecycleRecordItem>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
95
+
96
+ Other envelope fields: `pagination` (PaginationMeta).
97
+
98
+ `LifecycleRecordItem` fields:
99
+
100
+ | Field | Type | Required | Description |
101
+ |---|---|---|---|
102
+ | `company_id` | `integer` | yes | |
103
+ | `custom_status` | `string \| null` | no | |
104
+ | `domain` | `string \| null` | no | |
105
+ | `industry` | `string \| null` | no | |
106
+ | `mrr_cents` | `integer \| null` | no | |
107
+ | `name` | `string \| null` | no | |
108
+ | `owner_id` | `string \| null` | no | |
109
+ | `status` | `string \| null` | no | |
110
+ | `subscription_status` | `string \| null` | no | |
111
+
112
+ **Example**
113
+
114
+ ```ts
115
+ const result = await g8.api.revenueLifecycle.listLifecycleStageRecords({ path: { stage: "example" } });
116
+ ```
117
+
118
+ ---
119
+
120
+ <a id="op-listlifecyclestages"></a>
121
+
122
+ ### `g8.api.revenueLifecycle.listLifecycleStages(input?)`
123
+
124
+ **List Lifecycle Stages**
125
+
126
+ - HTTP: `GET /api/v1/lifecycle-stages`
127
+ - operationId: `list_lifecycle_stages_lifecycle_stages_get` (also callable as `g8.api.call("list_lifecycle_stages_lifecycle_stages_get", input)`)
128
+ - Tier: `read`: reads data; safe to call and to retry
129
+ - API-key scope: `deals:read`
130
+
131
+ List the org's configured revenue lifecycle stages, sorted for display.
132
+
133
+ Suspects/Leads/Trial/Customers/Churned ship seeded by default; an org may
134
+ also have added custom stages via the Settings > Revenue Lifecycle editor.
135
+ Pass either `slug` or `id` from this response to
136
+ `GET /lifecycle-stages/{stage}/records` and
137
+ `POST /{companies,contacts}/{id}/lifecycle-stage`.
138
+
139
+ **Input**: none.
140
+
141
+ **Returns** `ApiResponse_list_LifecycleStageResponse__`: the envelope `{ data: Array<LifecycleStageResponse>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
142
+
143
+ Other envelope fields: `pagination` (PaginationMeta).
144
+
145
+ `LifecycleStageResponse` fields:
146
+
147
+ | Field | Type | Required | Description |
148
+ |---|---|---|---|
149
+ | `hidden` | `boolean` | yes | |
150
+ | `icon` | `string` | yes | |
151
+ | `id` | `string` | yes | Lifecycle entry UUID — the key `GET /lifecycle-stages/counts` uses. |
152
+ | `name` | `string` | yes | |
153
+ | `slug` | `string` | yes | Stable machine slug, e.g. 'leads', 'trials'. Accepted by the /records path. |
154
+ | `sort_order` | `integer` | yes | |
155
+ | `custom_status_match` | `Array<string>` | no | cb_accounts.custom_status values that also match this stage. |
156
+ | `description` | `string \| null` | no | |
157
+ | `status_match` | `Array<string>` | no | cb_accounts.status values that match this stage. |
158
+ | `subscription_filter` | `Array<string> \| null` | no | When set, cb_accounts.subscription_status must also be one of these. |
159
+
160
+ **Example**
161
+
162
+ ```ts
163
+ const result = await g8.api.revenueLifecycle.listLifecycleStages();
164
+ ```
165
+
166
+ ---
167
+
168
+ <a id="op-movecompanylifecyclestage"></a>
169
+
170
+ ### `g8.api.revenueLifecycle.moveCompanyLifecycleStage(input)`
171
+
172
+ **Move Company Lifecycle Stage**
173
+
174
+ - HTTP: `POST /api/v1/companies/{company_id}/lifecycle-stage`
175
+ - operationId: `move_company_lifecycle_stage_companies__company_id__lifecycle_stage_post` (also callable as `g8.api.call("move_company_lifecycle_stage_companies__company_id__lifecycle_stage_post", input)`)
176
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
177
+ - API-key scope: `deals:write`
178
+
179
+ Move a company to a different lifecycle stage.
180
+
181
+ Proxies `promote_company_lifecycle_stage` — atomically writes `status` +
182
+ `custom_status` to both the `cb_accounts` and `cb_company_extensions`
183
+ overlays, refuses a move to `customers` when the company has no active/
184
+ past_due Stripe subscription (400, same guard the app enforces), and
185
+ records a `cb_lead_stage_history`-style audit row. `org_id` is always the
186
+ authenticated key's own organisation; there is no way to target another
187
+ org's company through this endpoint.
188
+
189
+ **Input**
190
+
191
+ | Field | Type | Required | Description |
192
+ |---|---|---|---|
193
+ | `path.company_id` | `integer` | yes | Company ID (mashup_companies.id, same as GET /companies/{company_id}). |
194
+ | `body` | `LifecycleStageMoveRequest` | yes | Request body; fields below. |
195
+
196
+ Body fields (`LifecycleStageMoveRequest`):
197
+
198
+ | Field | Type | Required | Description |
199
+ |---|---|---|---|
200
+ | `body.target_slug` | `string` | yes | Destination lifecycle slug, e.g. 'suspects', 'leads', 'trials', 'customers', 'churned'. |
201
+
202
+ **Returns** `ApiResponse_LifecycleStageMoveResponse_`: the envelope `{ data: LifecycleStageMoveResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
203
+
204
+ Other envelope fields: `pagination` (PaginationMeta).
205
+
206
+ `LifecycleStageMoveResponse` fields:
207
+
208
+ | Field | Type | Required | Description |
209
+ |---|---|---|---|
210
+ | `target_slug` | `string` | yes | |
211
+ | `new_custom_status` | `string \| null` | no | |
212
+ | `new_status` | `string \| null` | no | |
213
+ | `previous_custom_status` | `string \| null` | no | |
214
+ | `previous_status` | `string \| null` | no | |
215
+
216
+ **Example**
217
+
218
+ ```ts
219
+ const result = await g8.api.revenueLifecycle.moveCompanyLifecycleStage({ path: { company_id: 123 }, body: { target_slug: "example" } });
220
+ ```
221
+
222
+ ---
223
+
224
+ <a id="op-movecontactlifecyclestage"></a>
225
+
226
+ ### `g8.api.revenueLifecycle.moveContactLifecycleStage(input)`
227
+
228
+ **Move Contact Lifecycle Stage**
229
+
230
+ - HTTP: `POST /api/v1/contacts/{contact_id}/lifecycle-stage`
231
+ - operationId: `move_contact_lifecycle_stage_contacts__contact_id__lifecycle_stage_post` (also callable as `g8.api.call("move_contact_lifecycle_stage_contacts__contact_id__lifecycle_stage_post", input)`)
232
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
233
+ - API-key scope: `deals:write`
234
+
235
+ Move a contact to a different lifecycle stage.
236
+
237
+ Proxies `promote_contact_lifecycle_stage` — writes `cb_contact_extensions
238
+ .custom_status` (auto-creating the extension row if the contact has none
239
+ yet, which is common for Suspects-stage contacts), and records the same
240
+ audit trail the in-app Move-Stage dialog's contact mode does. Returns no
241
+ contact PII (see the module docstring) — only the status transition.
242
+
243
+ **Input**
244
+
245
+ | Field | Type | Required | Description |
246
+ |---|---|---|---|
247
+ | `path.contact_id` | `integer` | yes | Contact ID — accepts mashup_contacts.CONTACT_ID or .id, same as GET /contacts/{contact_id}. |
248
+ | `body` | `LifecycleStageMoveRequest` | yes | Request body; fields below. |
249
+
250
+ Body fields (`LifecycleStageMoveRequest`):
251
+
252
+ | Field | Type | Required | Description |
253
+ |---|---|---|---|
254
+ | `body.target_slug` | `string` | yes | Destination lifecycle slug, e.g. 'suspects', 'leads', 'trials', 'customers', 'churned'. |
255
+
256
+ **Returns** `ApiResponse_LifecycleStageMoveResponse_`: the envelope `{ data: LifecycleStageMoveResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
257
+
258
+ Other envelope fields: `pagination` (PaginationMeta).
259
+
260
+ `LifecycleStageMoveResponse` fields:
261
+
262
+ | Field | Type | Required | Description |
263
+ |---|---|---|---|
264
+ | `target_slug` | `string` | yes | |
265
+ | `new_custom_status` | `string \| null` | no | |
266
+ | `new_status` | `string \| null` | no | |
267
+ | `previous_custom_status` | `string \| null` | no | |
268
+ | `previous_status` | `string \| null` | no | |
269
+
270
+ **Example**
271
+
272
+ ```ts
273
+ const result = await g8.api.revenueLifecycle.moveContactLifecycleStage({ path: { contact_id: 123 }, body: { target_slug: "example" } });
274
+ ```
@@ -0,0 +1,372 @@
1
+ /* Generated by sdk/js/scripts/generate-agent-docs.ts from developer-contract/openapi.json. Regenerated on every build. */
2
+
3
+ /**
4
+ * Types for `g8.api.revenueRecords` (Revenue Records): 15 operations.
5
+ *
6
+ * For reading. In code, import from the package instead:
7
+ * import type { ApiInput, ApiOutput, G8Contract } from "@graph8/sdk";
8
+ * type In = ApiInput<"create_revenue_plan_revenue_plans_post">;
9
+ *
10
+ * Reference with examples: revenueRecords.md
11
+ */
12
+ /* eslint-disable */
13
+
14
+ /** `g8.api.revenueRecords.<member>` -> the operationId it calls. */
15
+ export interface RevenueRecordsMembers {
16
+ createRevenuePlan: "create_revenue_plan_revenue_plans_post";
17
+ deactivateRevenuePlan: "deactivate_revenue_plan_revenue_plans__plan_id__delete";
18
+ getActivity: "get_activity_activities__activity_id__get";
19
+ getActivityMetrics: "get_activity_metrics_activities_metrics_summary_get";
20
+ getCompanyEvents: "get_company_events_companies__company_id__events_get";
21
+ getCompanyLifecycleSnapshot: "get_company_lifecycle_snapshot_companies__company_id__lifecycle_snapshot_get";
22
+ getContactLifecycleSnapshot: "get_contact_lifecycle_snapshot_contacts__contact_id__lifecycle_snapshot_get";
23
+ listCompanyActivities: "list_company_activities_companies__company_id__activities_get";
24
+ listDealActivities: "list_deal_activities_deals__deal_id__activities_get";
25
+ listLifecycleContacts: "list_lifecycle_contacts_lifecycle_contacts_get";
26
+ listRevenuePlans: "list_revenue_plans_revenue_plans_get";
27
+ normalizeRevenuePlans: "normalize_revenue_plans_revenue_plans_normalize_post";
28
+ setDefaultPipeline: "set_default_pipeline_deals_pipelines__pipeline_id__default_put";
29
+ unlockLifecycleContacts: "unlock_lifecycle_contacts_lifecycle_contacts_unlock_post";
30
+ updateRevenuePlan: "update_revenue_plan_revenue_plans__plan_id__put";
31
+ }
32
+
33
+ /** Input and output of every `g8.api.revenueRecords` operation, keyed by operationId. */
34
+ export interface RevenueRecordsOperations {
35
+ /**
36
+ * POST /revenue/plans
37
+ * Create Revenue Plan
38
+ * tier: write · scope: deals:write
39
+ */
40
+ create_revenue_plan_revenue_plans_post: {
41
+ input: {
42
+ headers?: {
43
+ "X-Target-Org-Id"?: string | null;
44
+ };
45
+ body: RevenuePlanCreateRequest;
46
+ };
47
+ output: ApiResponse_RevenueRecordPayload_;
48
+ };
49
+ /**
50
+ * DELETE /revenue/plans/{plan_id}
51
+ * Deactivate Revenue Plan
52
+ * tier: destructive · scope: deals:delete
53
+ */
54
+ deactivate_revenue_plan_revenue_plans__plan_id__delete: {
55
+ input: {
56
+ path: {
57
+ /** Plan id. */
58
+ plan_id: string;
59
+ };
60
+ headers?: {
61
+ "X-Target-Org-Id"?: string | null;
62
+ };
63
+ };
64
+ output: ApiResponse_RevenueRecordPayload_;
65
+ };
66
+ /**
67
+ * GET /activities/{activity_id}
68
+ * Get Activity
69
+ * tier: read · scope: deals:read
70
+ */
71
+ get_activity_activities__activity_id__get: {
72
+ input: {
73
+ path: {
74
+ /** Activity id. */
75
+ activity_id: string;
76
+ };
77
+ headers?: {
78
+ "X-Target-Org-Id"?: string | null;
79
+ };
80
+ };
81
+ output: ApiResponse_RevenueRecordPayload_;
82
+ };
83
+ /**
84
+ * GET /activities/metrics/summary
85
+ * Get Activity Metrics
86
+ * tier: read · scope: deals:read
87
+ */
88
+ get_activity_metrics_activities_metrics_summary_get: {
89
+ input: {
90
+ query?: {
91
+ /** Days to analyse. */
92
+ period_days?: number;
93
+ /** Only this owner's activities. */
94
+ owner_id?: string | null;
95
+ /** Only activities from this source. */
96
+ source?: string | null;
97
+ };
98
+ headers?: {
99
+ "X-Target-Org-Id"?: string | null;
100
+ };
101
+ };
102
+ output: ApiResponse_RevenueRecordPayload_;
103
+ };
104
+ /**
105
+ * GET /companies/{company_id}/events
106
+ * Get Company Events
107
+ * tier: read · scope: deals:read
108
+ */
109
+ get_company_events_companies__company_id__events_get: {
110
+ input: {
111
+ path: {
112
+ /** Account or company id. */
113
+ company_id: string;
114
+ };
115
+ query: {
116
+ /** Comma-separated event names. */
117
+ names: string;
118
+ window_days?: number;
119
+ };
120
+ headers?: {
121
+ "X-Target-Org-Id"?: string | null;
122
+ };
123
+ };
124
+ output: ApiResponse_RevenueRecordPayload_;
125
+ };
126
+ /**
127
+ * GET /companies/{company_id}/lifecycle-snapshot
128
+ * Get Company Lifecycle Snapshot
129
+ * tier: read · scope: deals:read
130
+ */
131
+ get_company_lifecycle_snapshot_companies__company_id__lifecycle_snapshot_get: {
132
+ input: {
133
+ path: {
134
+ /** Account, company-extension or company id. */
135
+ company_id: string;
136
+ };
137
+ headers?: {
138
+ "X-Target-Org-Id"?: string | null;
139
+ };
140
+ };
141
+ output: ApiResponse_RevenueRecordPayload_;
142
+ };
143
+ /**
144
+ * GET /contacts/{contact_id}/lifecycle-snapshot
145
+ * Get Contact Lifecycle Snapshot
146
+ * tier: read · scope: deals:read
147
+ */
148
+ get_contact_lifecycle_snapshot_contacts__contact_id__lifecycle_snapshot_get: {
149
+ input: {
150
+ path: {
151
+ /** Contact id. */
152
+ contact_id: number;
153
+ };
154
+ headers?: {
155
+ "X-Target-Org-Id"?: string | null;
156
+ };
157
+ };
158
+ output: ApiResponse_RevenueRecordPayload_;
159
+ };
160
+ /**
161
+ * GET /companies/{company_id}/activities
162
+ * List Company Activities
163
+ * tier: read · scope: deals:read
164
+ */
165
+ list_company_activities_companies__company_id__activities_get: {
166
+ input: {
167
+ path: {
168
+ /** Company id. */
169
+ company_id: string;
170
+ };
171
+ query?: {
172
+ activity_type?: string | null;
173
+ /** Only activities from this source. */
174
+ source?: string | null;
175
+ limit?: number;
176
+ offset?: number;
177
+ };
178
+ headers?: {
179
+ "X-Target-Org-Id"?: string | null;
180
+ };
181
+ };
182
+ output: ApiResponse_RevenueRecordListPayload_;
183
+ };
184
+ /**
185
+ * GET /deals/{deal_id}/activities
186
+ * List Deal Activities
187
+ * tier: read · scope: deals:read
188
+ */
189
+ list_deal_activities_deals__deal_id__activities_get: {
190
+ input: {
191
+ path: {
192
+ /** Deal id. */
193
+ deal_id: string;
194
+ };
195
+ query?: {
196
+ activity_type?: string | null;
197
+ /** Only activities from this source. */
198
+ source?: string | null;
199
+ limit?: number;
200
+ offset?: number;
201
+ };
202
+ headers?: {
203
+ "X-Target-Org-Id"?: string | null;
204
+ };
205
+ };
206
+ output: ApiResponse_RevenueRecordListPayload_;
207
+ };
208
+ /**
209
+ * GET /lifecycle-contacts
210
+ * List Lifecycle Contacts
211
+ * tier: read · scope: deals:read
212
+ */
213
+ list_lifecycle_contacts_lifecycle_contacts_get: {
214
+ input: {
215
+ query: {
216
+ /** The lifecycle stage. */
217
+ lifecycle_id: string;
218
+ skip?: number;
219
+ limit?: number | null;
220
+ company_status?: string | null;
221
+ search?: string | null;
222
+ /** JSON grid filter model. */
223
+ agFilterModel?: string | null;
224
+ /** JSON grid sort model. */
225
+ agSortModel?: string | null;
226
+ };
227
+ headers?: {
228
+ "X-Target-Org-Id"?: string | null;
229
+ };
230
+ };
231
+ output: ApiResponse_RevenueRecordPayload_;
232
+ };
233
+ /**
234
+ * GET /revenue/plans
235
+ * List Revenue Plans
236
+ * tier: read · scope: deals:read
237
+ */
238
+ list_revenue_plans_revenue_plans_get: {
239
+ input: {
240
+ query?: {
241
+ include_inactive?: boolean;
242
+ };
243
+ headers?: {
244
+ "X-Target-Org-Id"?: string | null;
245
+ };
246
+ };
247
+ output: ApiResponse_RevenueRecordPayload_;
248
+ };
249
+ /**
250
+ * POST /revenue/plans/normalize
251
+ * Normalize Revenue Plans
252
+ * tier: write · scope: deals:write
253
+ */
254
+ normalize_revenue_plans_revenue_plans_normalize_post: {
255
+ input: {
256
+ headers?: {
257
+ "X-Target-Org-Id"?: string | null;
258
+ };
259
+ };
260
+ output: ApiResponse_RevenueRecordPayload_;
261
+ };
262
+ /**
263
+ * PUT /deals/pipelines/{pipeline_id}/default
264
+ * Set Default Pipeline
265
+ * tier: write · scope: deals:write
266
+ */
267
+ set_default_pipeline_deals_pipelines__pipeline_id__default_put: {
268
+ input: {
269
+ path: {
270
+ /** Pipeline id. */
271
+ pipeline_id: string;
272
+ };
273
+ headers?: {
274
+ "X-Target-Org-Id"?: string | null;
275
+ };
276
+ };
277
+ output: ApiResponse_RevenueRecordPayload_;
278
+ };
279
+ /**
280
+ * POST /lifecycle-contacts/unlock
281
+ * Unlock Lifecycle Contacts
282
+ * tier: billable · scope: deals:run
283
+ */
284
+ unlock_lifecycle_contacts_lifecycle_contacts_unlock_post: {
285
+ input: {
286
+ headers?: {
287
+ "X-Target-Org-Id"?: string | null;
288
+ };
289
+ body: LifecycleContactsUnlockRequest;
290
+ };
291
+ output: ApiResponse_RevenueRecordPayload_;
292
+ };
293
+ /**
294
+ * PUT /revenue/plans/{plan_id}
295
+ * Update Revenue Plan
296
+ * tier: write · scope: deals:write
297
+ */
298
+ update_revenue_plan_revenue_plans__plan_id__put: {
299
+ input: {
300
+ path: {
301
+ /** Plan id. */
302
+ plan_id: string;
303
+ };
304
+ headers?: {
305
+ "X-Target-Org-Id"?: string | null;
306
+ };
307
+ body: RevenuePlanUpdateRequest;
308
+ };
309
+ output: ApiResponse_RevenueRecordPayload_;
310
+ };
311
+ }
312
+
313
+ // 8 schemas referenced above (the same as G8Contract.<Name>).
314
+
315
+ export interface ApiResponse_RevenueRecordListPayload_ {
316
+ data: RevenueRecordListPayload;
317
+ pagination?: PaginationMeta | null;
318
+ }
319
+
320
+ export interface ApiResponse_RevenueRecordPayload_ {
321
+ data: RevenueRecordPayload;
322
+ pagination?: PaginationMeta | null;
323
+ }
324
+
325
+ export interface LifecycleContactsUnlockRequest {
326
+ /** Grid filter model. With no `contact_ids`, every matching contact in the stage is unlocked; with neither, the WHOLE stage is. */
327
+ agFilterModel?: Record<string, unknown> | null;
328
+ /** Comma-separated company_status narrowing. */
329
+ company_status?: string | null;
330
+ /** Unlock exactly these. Takes precedence over `agFilterModel`. */
331
+ contact_ids?: Array<number> | null;
332
+ /** The lifecycle stage to unlock contacts in. */
333
+ lifecycle_id: string;
334
+ }
335
+
336
+ export interface PaginationMeta {
337
+ /** Whether there are more pages */
338
+ has_next: boolean;
339
+ /** Items per page */
340
+ limit: number;
341
+ /** Opaque cursor for the next page; null when there are no more items. Pass it back as the `cursor` query param to fetch the following page without computing page numbers. */
342
+ next_cursor?: string | null;
343
+ /** Current page number (1-indexed) */
344
+ page: number;
345
+ /** Total number of items */
346
+ total: number;
347
+ }
348
+
349
+ export interface RevenuePlanCreateRequest {
350
+ list_price_cents?: number | null;
351
+ mrr_band?: ("<1k" | "1k-5k" | "5k-25k" | ">25k") | null;
352
+ name: string;
353
+ /** Derived from `name` when omitted. */
354
+ slug?: string | null;
355
+ }
356
+
357
+ export interface RevenuePlanUpdateRequest {
358
+ active?: boolean | null;
359
+ list_price_cents?: number | null;
360
+ mrr_band?: ("<1k" | "1k-5k" | "5k-25k" | ">25k") | null;
361
+ name?: string | null;
362
+ slug?: string | null;
363
+ }
364
+
365
+ /** A list result under `items`. */
366
+ export interface RevenueRecordListPayload {
367
+ items?: Array<unknown>;
368
+ [key: string]: unknown;
369
+ }
370
+
371
+ /** An activity, snapshot, plan or result, as the app returns it. */
372
+ export type RevenueRecordPayload = Record<string, unknown>;