@graph8/sdk 0.251.0 → 0.262.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 +105 -7
  4. package/dist/index.d.ts +105 -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 +103 -7
  10. package/dist/react.d.ts +103 -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 +1697 -0
  140. package/docs/api/deals.md +2436 -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,2327 @@
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.integrations` (Integrations): 83 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<"batch_create_crm_contacts_integrations_crm_connections__connection_id__batch_contacts_post">;
9
+ *
10
+ * Reference with examples: integrations.md
11
+ */
12
+ /* eslint-disable */
13
+
14
+ /** `g8.api.integrations.<member>` -> the operationId it calls. */
15
+ export interface IntegrationsMembers {
16
+ batchCreateCrmContacts: "batch_create_crm_contacts_integrations_crm_connections__connection_id__batch_contacts_post";
17
+ batchUpdateCrmContacts: "batch_update_crm_contacts_integrations_crm_connections__connection_id__batch_contacts_put";
18
+ cancelMigration: "cancel_migration_integrations_migrations__migration_id__cancel_post";
19
+ confirmMigration: "confirm_migration_integrations_migrations__migration_id__confirm_post";
20
+ connectSugarcrm: "connect_sugarcrm_integrations_sugarcrm_connect_post";
21
+ createConnectionSessionToken: "create_connection_session_token_integrations_connections_session_token_post";
22
+ createCrmCompany: "create_crm_company_integrations_crm_connections__connection_id__companies_post";
23
+ createCrmContact: "create_crm_contact_integrations_crm_connections__connection_id__contacts_post";
24
+ createCrmDeal: "create_crm_deal_integrations_crm_connections__connection_id__deals_post";
25
+ createCrmLead: "create_crm_lead_integrations_crm_connections__connection_id__leads_post";
26
+ createCrmMeeting: "create_crm_meeting_integrations_crm_meetings_post";
27
+ createGoogleConversionAction: "create_google_conversion_action_audience_syncs_google_conversion_actions_post";
28
+ createVideoUploadUrl: "create_video_upload_url_audience_syncs_google_video_assets_upload_urls_post";
29
+ deleteConnection: "delete_connection_integrations_connections__connection_id__delete";
30
+ deleteCrmContact: "delete_crm_contact_integrations_crm_connections__connection_id__contacts__contact_id__delete";
31
+ discardDraftSyncConfig: "discard_draft_sync_config_audience_syncs__config_id__draft_delete";
32
+ disconnectSugarcrm: "disconnect_sugarcrm_integrations_sugarcrm_delete";
33
+ discoverCrmFields: "discover_crm_fields_integrations_crm_fields_get";
34
+ findCrmUserByEmail: "find_crm_user_by_email_integrations_crm_users_by_email_get";
35
+ getAdAnalyticsSummary: "get_ad_analytics_summary_audience_syncs_analytics_summary_get";
36
+ getAdDailyTrend: "get_ad_daily_trend_audience_syncs_analytics_daily_trend_get";
37
+ getCrmCompany: "get_crm_company_integrations_crm_connections__connection_id__companies__company_id__get";
38
+ getCrmConnection: "get_crm_connection_integrations_crm_connections__connection_id__get";
39
+ getCrmConnectionMetadata: "get_crm_connection_metadata_integrations_crm_connections__connection_id__metadata_get";
40
+ getCrmConnectionStatus: "get_crm_connection_status_integrations_crm_connections__connection_id__status_get";
41
+ getCrmContact: "get_crm_contact_integrations_crm_connections__connection_id__contacts__contact_id__get";
42
+ getCrmDeal: "get_crm_deal_integrations_crm_connections__connection_id__deals__deal_id__get";
43
+ getCrmLead: "get_crm_lead_integrations_crm_connections__connection_id__leads__lead_id__get";
44
+ getGoogleConversionTracking: "get_google_conversion_tracking_audience_syncs_google_conversion_tracking_get";
45
+ getLastCompletedMigration: "get_last_completed_migration_integrations_connections__connection_id__last_migration_get";
46
+ getMigrationStatus: "get_migration_status_integrations_migrations__migration_id__get";
47
+ getOrCreateCrmAudience: "get_or_create_crm_audience_integrations_crm_sync_audiences_post";
48
+ getOrCreateCrmList: "get_or_create_crm_list_integrations_crm_lists_post";
49
+ getSyncConfigAnalytics: "get_sync_config_analytics_audience_syncs__config_id__analytics_get";
50
+ getSyncJob: "get_sync_job_integrations_crm_sync_jobs__job_id__get";
51
+ getSyncSegmentStatus: "get_sync_segment_status_audience_syncs__config_id__segment_status_get";
52
+ getVideoAsset: "get_video_asset_audience_syncs_google_video_assets__asset_id__get";
53
+ listAdAccountHealth: "list_ad_account_health_audience_syncs_account_health_get";
54
+ listAdAccounts: "list_ad_accounts_audience_syncs_accounts_get";
55
+ listAdPlatforms: "list_ad_platforms_audience_syncs_platforms_get";
56
+ listCompanyActivitiesByGraph8Id: "list_company_activities_by_graph8_id_integrations_crm_company_activities_get";
57
+ listConnections: "list_connections_integrations_connections_get";
58
+ listContactActivitiesByGraph8Id: "list_contact_activities_by_graph8_id_integrations_crm_contact_activities_get";
59
+ listCrmActivities: "list_crm_activities_integrations_crm_activities_get";
60
+ listCrmCompanies: "list_crm_companies_integrations_crm_connections__connection_id__companies_get";
61
+ listCrmContactActivities: "list_crm_contact_activities_integrations_crm_connections__connection_id__contacts__contact_id__activities_get";
62
+ listCrmContacts: "list_crm_contacts_integrations_crm_connections__connection_id__contacts_get";
63
+ listCrmDeals: "list_crm_deals_integrations_crm_connections__connection_id__deals_get";
64
+ listCrmLeads: "list_crm_leads_integrations_crm_connections__connection_id__leads_get";
65
+ listCrmLists: "list_crm_lists_integrations_crm_lists_get";
66
+ listCrmMeetings: "list_crm_meetings_integrations_crm_meetings_get";
67
+ listCrmUsers: "list_crm_users_integrations_crm_users_get";
68
+ listLeadStatuses: "list_lead_statuses_integrations_crm_sync_leads_statuses_get";
69
+ listMappableGraph8Fields: "list_mappable_graph8_fields_integrations_crm_fields_mappable_get";
70
+ listVideoAssets: "list_video_assets_audience_syncs_google_video_assets_get";
71
+ lookupCrmContactsByEmail: "lookup_crm_contacts_by_email_integrations_crm_connections__connection_id__batch_contacts_lookup_by_email_post";
72
+ modifyCrmListMemberships: "modify_crm_list_memberships_integrations_crm_lists_memberships_post";
73
+ previewLeadPush: "preview_lead_push_integrations_crm_sync_leads_push_preview_get";
74
+ pullAllContacts: "pull_all_contacts_integrations_crm_sync_contacts_pull_post";
75
+ pullAllDeals: "pull_all_deals_integrations_crm_sync_deals_pull_post";
76
+ pullAllLeads: "pull_all_leads_integrations_crm_sync_leads_pull_post";
77
+ pullCrmList: "pull_crm_list_integrations_crm_sync_pull_post";
78
+ pushAllContacts: "push_all_contacts_integrations_crm_sync_contacts_push_post";
79
+ pushAllDeals: "push_all_deals_integrations_crm_sync_deals_push_post";
80
+ pushAllLeads: "push_all_leads_integrations_crm_sync_leads_push_post";
81
+ pushAudience: "push_audience_integrations_crm_sync_push_post";
82
+ reconnectSugarcrm: "reconnect_sugarcrm_integrations_sugarcrm_reconnect_post";
83
+ registerUploadedVideoAsset: "register_uploaded_video_asset_audience_syncs_google_video_assets_uploads_post";
84
+ registerVideoAssetFromLibrary: "register_video_asset_from_library_audience_syncs_google_video_assets_library_post";
85
+ registerVideoAssetFromLink: "register_video_asset_from_link_audience_syncs_google_video_assets_links_post";
86
+ saveConnection: "save_connection_integrations_connections_post";
87
+ setPullSyncEnabled: "set_pull_sync_enabled_integrations_crm_sync_pull_enabled_put";
88
+ setPushSyncEnabled: "set_push_sync_enabled_integrations_crm_sync_push_enabled_put";
89
+ startDeltaSync: "start_delta_sync_integrations_migrations_delta_sync_post";
90
+ startLeadPreview: "start_lead_preview_integrations_crm_sync_leads_previews_post";
91
+ startMigrationDiscovery: "start_migration_discovery_integrations_migrations_discovery_post";
92
+ updateCrmCompany: "update_crm_company_integrations_crm_connections__connection_id__companies__company_id__put";
93
+ updateCrmContact: "update_crm_contact_integrations_crm_connections__connection_id__contacts__contact_id__put";
94
+ updateCrmDeal: "update_crm_deal_integrations_crm_connections__connection_id__deals__deal_id__put";
95
+ updateCrmLead: "update_crm_lead_integrations_crm_connections__connection_id__leads__lead_id__put";
96
+ updateCrmMeeting: "update_crm_meeting_integrations_crm_meetings__event_id__patch";
97
+ uploadGoogleConversions: "upload_google_conversions_audience_syncs_google_conversions_post";
98
+ validateSugarcrm: "validate_sugarcrm_integrations_sugarcrm_validate_post";
99
+ }
100
+
101
+ /** Input and output of every `g8.api.integrations` operation, keyed by operationId. */
102
+ export interface IntegrationsOperations {
103
+ /**
104
+ * POST /integrations/crm/connections/{connection_id}/batch/contacts
105
+ * Batch Create Crm Contacts
106
+ * tier: external · scope: integrations:run
107
+ */
108
+ batch_create_crm_contacts_integrations_crm_connections__connection_id__batch_contacts_post: {
109
+ input: {
110
+ path: {
111
+ /** The CRM connection to act through. */
112
+ connection_id: string;
113
+ };
114
+ headers?: {
115
+ "X-Target-Org-Id"?: string | null;
116
+ };
117
+ body: BatchContactsRequest;
118
+ };
119
+ output: ApiResponse_CrmPayload_;
120
+ };
121
+ /**
122
+ * PUT /integrations/crm/connections/{connection_id}/batch/contacts
123
+ * Batch Update Crm Contacts
124
+ * tier: external · scope: integrations:run
125
+ */
126
+ batch_update_crm_contacts_integrations_crm_connections__connection_id__batch_contacts_put: {
127
+ input: {
128
+ path: {
129
+ /** The CRM connection to act through. */
130
+ connection_id: string;
131
+ };
132
+ headers?: {
133
+ "X-Target-Org-Id"?: string | null;
134
+ };
135
+ body: BatchContactsRequest;
136
+ };
137
+ output: ApiResponse_CrmPayload_;
138
+ };
139
+ /**
140
+ * POST /integrations/migrations/{migration_id}/cancel
141
+ * Cancel Migration
142
+ * tier: destructive · scope: integrations:delete
143
+ */
144
+ cancel_migration_integrations_migrations__migration_id__cancel_post: {
145
+ input: {
146
+ path: {
147
+ /** Migration id. */
148
+ migration_id: string;
149
+ };
150
+ headers?: {
151
+ "X-Target-Org-Id"?: string | null;
152
+ };
153
+ };
154
+ output: ApiResponse_ConnectionPayload_;
155
+ };
156
+ /**
157
+ * POST /integrations/migrations/{migration_id}/confirm
158
+ * Confirm Migration
159
+ * tier: external · scope: integrations:run
160
+ */
161
+ confirm_migration_integrations_migrations__migration_id__confirm_post: {
162
+ input: {
163
+ path: {
164
+ /** Migration id from discovery. */
165
+ migration_id: string;
166
+ };
167
+ headers?: {
168
+ "X-Target-Org-Id"?: string | null;
169
+ };
170
+ body?: ConfirmMigrationRequest;
171
+ };
172
+ output: ApiResponse_ConnectionPayload_;
173
+ };
174
+ /**
175
+ * POST /integrations/sugarcrm/connect
176
+ * Connect Sugarcrm
177
+ * tier: external · scope: integrations:run
178
+ */
179
+ connect_sugarcrm_integrations_sugarcrm_connect_post: {
180
+ input: {
181
+ headers?: {
182
+ "X-Target-Org-Id"?: string | null;
183
+ };
184
+ body: SugarCrmConnectRequest;
185
+ };
186
+ output: ApiResponse_IntegrationOpPayload_;
187
+ };
188
+ /**
189
+ * POST /integrations/connections/session-token
190
+ * Create Connection Session Token
191
+ * tier: external · scope: integrations:run
192
+ */
193
+ create_connection_session_token_integrations_connections_session_token_post: {
194
+ input: {
195
+ headers?: {
196
+ "X-Target-Org-Id"?: string | null;
197
+ };
198
+ body?: SessionTokenRequest | null;
199
+ };
200
+ output: ApiResponse_ConnectionPayload_;
201
+ };
202
+ /**
203
+ * POST /integrations/crm/connections/{connection_id}/companies
204
+ * Create Crm Company
205
+ * tier: external · scope: integrations:run
206
+ */
207
+ create_crm_company_integrations_crm_connections__connection_id__companies_post: {
208
+ input: {
209
+ path: {
210
+ /** The CRM connection to act through. */
211
+ connection_id: string;
212
+ };
213
+ headers?: {
214
+ "X-Target-Org-Id"?: string | null;
215
+ };
216
+ body: CrmCompanyCreateRequest;
217
+ };
218
+ output: ApiResponse_CrmPayload_;
219
+ };
220
+ /**
221
+ * POST /integrations/crm/connections/{connection_id}/contacts
222
+ * Create Crm Contact
223
+ * tier: external · scope: integrations:run
224
+ */
225
+ create_crm_contact_integrations_crm_connections__connection_id__contacts_post: {
226
+ input: {
227
+ path: {
228
+ /** The CRM connection to act through. */
229
+ connection_id: string;
230
+ };
231
+ headers?: {
232
+ "X-Target-Org-Id"?: string | null;
233
+ };
234
+ body: CrmContactCreateRequest;
235
+ };
236
+ output: ApiResponse_CrmPayload_;
237
+ };
238
+ /**
239
+ * POST /integrations/crm/connections/{connection_id}/deals
240
+ * Create Crm Deal
241
+ * tier: external · scope: integrations:run
242
+ */
243
+ create_crm_deal_integrations_crm_connections__connection_id__deals_post: {
244
+ input: {
245
+ path: {
246
+ /** The CRM connection to act through. */
247
+ connection_id: string;
248
+ };
249
+ headers?: {
250
+ "X-Target-Org-Id"?: string | null;
251
+ };
252
+ body: CrmDealCreateRequest;
253
+ };
254
+ output: ApiResponse_CrmPayload_;
255
+ };
256
+ /**
257
+ * POST /integrations/crm/connections/{connection_id}/leads
258
+ * Create Crm Lead
259
+ * tier: external · scope: integrations:run
260
+ */
261
+ create_crm_lead_integrations_crm_connections__connection_id__leads_post: {
262
+ input: {
263
+ path: {
264
+ /** The CRM connection to act through. */
265
+ connection_id: string;
266
+ };
267
+ headers?: {
268
+ "X-Target-Org-Id"?: string | null;
269
+ };
270
+ body: LeadCreateRequest;
271
+ };
272
+ output: ApiResponse_CrmPayload_;
273
+ };
274
+ /**
275
+ * POST /integrations/crm/meetings
276
+ * Create Crm Meeting
277
+ * tier: external · scope: integrations:run
278
+ */
279
+ create_crm_meeting_integrations_crm_meetings_post: {
280
+ input: {
281
+ query: {
282
+ connection_id: string;
283
+ };
284
+ headers?: {
285
+ "X-Target-Org-Id"?: string | null;
286
+ };
287
+ body: CreateMeetingRequest;
288
+ };
289
+ output: ApiResponse_CrmPayload_;
290
+ };
291
+ /**
292
+ * POST /audience-syncs/google/conversion-actions
293
+ * Create Google Conversion Action
294
+ * tier: external · scope: integrations:run
295
+ */
296
+ create_google_conversion_action_audience_syncs_google_conversion_actions_post: {
297
+ input: {
298
+ query?: {
299
+ ad_account_id?: string | null;
300
+ };
301
+ headers?: {
302
+ "X-Target-Org-Id"?: string | null;
303
+ };
304
+ body?: CreateConversionActionRequest | null;
305
+ };
306
+ output: ApiResponse_AdPayload_;
307
+ };
308
+ /**
309
+ * POST /audience-syncs/google/video-assets/upload-urls
310
+ * Create Video Upload Url
311
+ * tier: external · scope: integrations:run
312
+ */
313
+ create_video_upload_url_audience_syncs_google_video_assets_upload_urls_post: {
314
+ input: {
315
+ headers?: {
316
+ "X-Target-Org-Id"?: string | null;
317
+ };
318
+ body: CreateVideoUploadUrlRequest;
319
+ };
320
+ output: ApiResponse_AdPayload_;
321
+ };
322
+ /**
323
+ * DELETE /integrations/connections/{connection_id}
324
+ * Delete Connection
325
+ * tier: destructive · scope: integrations:delete
326
+ */
327
+ delete_connection_integrations_connections__connection_id__delete: {
328
+ input: {
329
+ path: {
330
+ /** Connection id. */
331
+ connection_id: string;
332
+ };
333
+ query: {
334
+ /** Provider config key, e.g. `hubspot` or `salesforce`. REQUIRED: the same connection id can exist under more than one provider config, so the key is what identifies which one to remove. */
335
+ provider_config_key: string;
336
+ };
337
+ headers?: {
338
+ "X-Target-Org-Id"?: string | null;
339
+ };
340
+ };
341
+ output: ApiResponse_ConnectionPayload_;
342
+ };
343
+ /**
344
+ * DELETE /integrations/crm/connections/{connection_id}/contacts/{contact_id}
345
+ * Delete Crm Contact
346
+ * tier: destructive · scope: integrations:delete
347
+ */
348
+ delete_crm_contact_integrations_crm_connections__connection_id__contacts__contact_id__delete: {
349
+ input: {
350
+ path: {
351
+ /** The CRM connection to act through. */
352
+ connection_id: string;
353
+ contact_id: string;
354
+ };
355
+ headers?: {
356
+ "X-Target-Org-Id"?: string | null;
357
+ };
358
+ };
359
+ output: ApiResponse_CrmPayload_;
360
+ };
361
+ /**
362
+ * DELETE /audience-syncs/{config_id}/draft
363
+ * Discard Draft Sync Config
364
+ * tier: destructive · scope: integrations:delete
365
+ */
366
+ discard_draft_sync_config_audience_syncs__config_id__draft_delete: {
367
+ input: {
368
+ path: {
369
+ /** The sync config's id. */
370
+ config_id: number;
371
+ };
372
+ headers?: {
373
+ "X-Target-Org-Id"?: string | null;
374
+ };
375
+ };
376
+ output: ApiResponse_AdPayload_;
377
+ };
378
+ /**
379
+ * DELETE /integrations/sugarcrm
380
+ * Disconnect Sugarcrm
381
+ * tier: destructive · scope: integrations:delete
382
+ */
383
+ disconnect_sugarcrm_integrations_sugarcrm_delete: {
384
+ input: {
385
+ headers?: {
386
+ "X-Target-Org-Id"?: string | null;
387
+ };
388
+ };
389
+ output: ApiResponse_IntegrationOpPayload_;
390
+ };
391
+ /**
392
+ * GET /integrations/crm/fields
393
+ * Discover Crm Fields
394
+ * tier: read · scope: integrations:read
395
+ */
396
+ discover_crm_fields_integrations_crm_fields_get: {
397
+ input: {
398
+ query: {
399
+ connection_id: string;
400
+ /** Which CRM object to describe. `meetings`/`tasks` are Salesforce's Event/Task and `activities` is Pipedrive's; other providers fall back to contacts for an object they do not model. */
401
+ entity_type?: "contacts" | "companies" | "deals" | "leads" | "meetings" | "tasks" | "activities";
402
+ };
403
+ headers?: {
404
+ "X-Target-Org-Id"?: string | null;
405
+ };
406
+ };
407
+ output: ApiResponse_CrmCollection_;
408
+ };
409
+ /**
410
+ * GET /integrations/crm/users/by-email
411
+ * Find Crm User By Email
412
+ * tier: read · scope: integrations:read
413
+ */
414
+ find_crm_user_by_email_integrations_crm_users_by_email_get: {
415
+ input: {
416
+ query: {
417
+ connection_id: string;
418
+ /** The user's address in the CRM. */
419
+ email: string;
420
+ };
421
+ headers?: {
422
+ "X-Target-Org-Id"?: string | null;
423
+ };
424
+ };
425
+ output: ApiResponse_CrmCollection_;
426
+ };
427
+ /**
428
+ * GET /audience-syncs/analytics/summary
429
+ * Get Ad Analytics Summary
430
+ * tier: read · scope: integrations:read
431
+ */
432
+ get_ad_analytics_summary_audience_syncs_analytics_summary_get: {
433
+ input: {
434
+ query?: {
435
+ /** Days to look back. */
436
+ days?: number;
437
+ /** One platform. Omit for all. */
438
+ platform?: ("meta" | "linkedin" | "google" | "x") | null;
439
+ ad_account_id?: string | null;
440
+ };
441
+ headers?: {
442
+ "X-Target-Org-Id"?: string | null;
443
+ };
444
+ };
445
+ output: ApiResponse_AdPayload_;
446
+ };
447
+ /**
448
+ * GET /audience-syncs/analytics/daily-trend
449
+ * Get Ad Daily Trend
450
+ * tier: read · scope: integrations:read
451
+ */
452
+ get_ad_daily_trend_audience_syncs_analytics_daily_trend_get: {
453
+ input: {
454
+ query?: {
455
+ /** Days to look back. */
456
+ days?: number;
457
+ /** One platform. Omit for all. */
458
+ platform?: ("meta" | "linkedin" | "google" | "x") | null;
459
+ /** Scope to one sync config. */
460
+ sync_config_id?: number | null;
461
+ ad_account_id?: string | null;
462
+ };
463
+ headers?: {
464
+ "X-Target-Org-Id"?: string | null;
465
+ };
466
+ };
467
+ output: ApiResponse_AdPayload_;
468
+ };
469
+ /**
470
+ * GET /integrations/crm/connections/{connection_id}/companies/{company_id}
471
+ * Get Crm Company
472
+ * tier: read · scope: integrations:read
473
+ */
474
+ get_crm_company_integrations_crm_connections__connection_id__companies__company_id__get: {
475
+ input: {
476
+ path: {
477
+ /** The CRM connection to act through. */
478
+ connection_id: string;
479
+ /** The CRM's company id, not graph8's. */
480
+ company_id: string;
481
+ };
482
+ headers?: {
483
+ "X-Target-Org-Id"?: string | null;
484
+ };
485
+ };
486
+ output: ApiResponse_CrmPayload_;
487
+ };
488
+ /**
489
+ * GET /integrations/crm/connections/{connection_id}
490
+ * Get Crm Connection
491
+ * tier: read · scope: integrations:read
492
+ */
493
+ get_crm_connection_integrations_crm_connections__connection_id__get: {
494
+ input: {
495
+ path: {
496
+ /** The CRM connection to act through. */
497
+ connection_id: string;
498
+ };
499
+ headers?: {
500
+ "X-Target-Org-Id"?: string | null;
501
+ };
502
+ };
503
+ output: ApiResponse_CrmPayload_;
504
+ };
505
+ /**
506
+ * GET /integrations/crm/connections/{connection_id}/metadata
507
+ * Get Crm Connection Metadata
508
+ * tier: read · scope: integrations:read
509
+ */
510
+ get_crm_connection_metadata_integrations_crm_connections__connection_id__metadata_get: {
511
+ input: {
512
+ path: {
513
+ /** The CRM connection to act through. */
514
+ connection_id: string;
515
+ };
516
+ query: {
517
+ /** The provider this connection belongs to. A mismatch is a 404. */
518
+ crm_type: "hubspot" | "salesforce" | "pipedrive" | "sugarcrm" | "stripe" | "zoho-crm" | "freshworks" | "facebook-ads" | "linkedin-ads" | "google-ads" | "x-ads" | "google-search-console";
519
+ };
520
+ headers?: {
521
+ "X-Target-Org-Id"?: string | null;
522
+ };
523
+ };
524
+ output: ApiResponse_CrmPayload_;
525
+ };
526
+ /**
527
+ * GET /integrations/crm/connections/{connection_id}/status
528
+ * Get Crm Connection Status
529
+ * tier: read · scope: integrations:read
530
+ */
531
+ get_crm_connection_status_integrations_crm_connections__connection_id__status_get: {
532
+ input: {
533
+ path: {
534
+ /** The CRM connection to act through. */
535
+ connection_id: string;
536
+ };
537
+ headers?: {
538
+ "X-Target-Org-Id"?: string | null;
539
+ };
540
+ };
541
+ output: ApiResponse_CrmPayload_;
542
+ };
543
+ /**
544
+ * GET /integrations/crm/connections/{connection_id}/contacts/{contact_id}
545
+ * Get Crm Contact
546
+ * tier: read · scope: integrations:read
547
+ */
548
+ get_crm_contact_integrations_crm_connections__connection_id__contacts__contact_id__get: {
549
+ input: {
550
+ path: {
551
+ /** The CRM connection to act through. */
552
+ connection_id: string;
553
+ /** The CRM's contact id, not graph8's. */
554
+ contact_id: string;
555
+ };
556
+ headers?: {
557
+ "X-Target-Org-Id"?: string | null;
558
+ };
559
+ };
560
+ output: ApiResponse_CrmPayload_;
561
+ };
562
+ /**
563
+ * GET /integrations/crm/connections/{connection_id}/deals/{deal_id}
564
+ * Get Crm Deal
565
+ * tier: read · scope: integrations:read
566
+ */
567
+ get_crm_deal_integrations_crm_connections__connection_id__deals__deal_id__get: {
568
+ input: {
569
+ path: {
570
+ /** The CRM connection to act through. */
571
+ connection_id: string;
572
+ /** The CRM's deal id, not graph8's. */
573
+ deal_id: string;
574
+ };
575
+ headers?: {
576
+ "X-Target-Org-Id"?: string | null;
577
+ };
578
+ };
579
+ output: ApiResponse_CrmPayload_;
580
+ };
581
+ /**
582
+ * GET /integrations/crm/connections/{connection_id}/leads/{lead_id}
583
+ * Get Crm Lead
584
+ * tier: read · scope: integrations:read
585
+ */
586
+ get_crm_lead_integrations_crm_connections__connection_id__leads__lead_id__get: {
587
+ input: {
588
+ path: {
589
+ /** The CRM connection to act through. */
590
+ connection_id: string;
591
+ /** The CRM's lead id. */
592
+ lead_id: string;
593
+ };
594
+ headers?: {
595
+ "X-Target-Org-Id"?: string | null;
596
+ };
597
+ };
598
+ output: ApiResponse_CrmPayload_;
599
+ };
600
+ /**
601
+ * GET /audience-syncs/google/conversion-tracking
602
+ * Get Google Conversion Tracking
603
+ * tier: read · scope: integrations:read
604
+ */
605
+ get_google_conversion_tracking_audience_syncs_google_conversion_tracking_get: {
606
+ input: {
607
+ query?: {
608
+ /** A Google Ads customer id. Omit to use the org's own. */
609
+ ad_account_id?: string | null;
610
+ };
611
+ headers?: {
612
+ "X-Target-Org-Id"?: string | null;
613
+ };
614
+ };
615
+ output: ApiResponse_AdPayload_;
616
+ };
617
+ /**
618
+ * GET /integrations/connections/{connection_id}/last-migration
619
+ * Get Last Completed Migration
620
+ * tier: read · scope: integrations:read
621
+ */
622
+ get_last_completed_migration_integrations_connections__connection_id__last_migration_get: {
623
+ input: {
624
+ path: {
625
+ /** CRM connection id. */
626
+ connection_id: string;
627
+ };
628
+ headers?: {
629
+ "X-Target-Org-Id"?: string | null;
630
+ };
631
+ };
632
+ output: ApiResponse_IntegrationOpPayload_;
633
+ };
634
+ /**
635
+ * GET /integrations/migrations/{migration_id}
636
+ * Get Migration Status
637
+ * tier: read · scope: integrations:read
638
+ */
639
+ get_migration_status_integrations_migrations__migration_id__get: {
640
+ input: {
641
+ path: {
642
+ /** Migration id. */
643
+ migration_id: string;
644
+ };
645
+ headers?: {
646
+ "X-Target-Org-Id"?: string | null;
647
+ };
648
+ };
649
+ output: ApiResponse_ConnectionPayload_;
650
+ };
651
+ /**
652
+ * POST /integrations/crm-sync/audiences
653
+ * Get Or Create Crm Audience
654
+ * tier: external · scope: integrations:run
655
+ */
656
+ get_or_create_crm_audience_integrations_crm_sync_audiences_post: {
657
+ input: {
658
+ headers?: {
659
+ "X-Target-Org-Id"?: string | null;
660
+ };
661
+ body: CrmAudienceRequest;
662
+ };
663
+ output: ApiResponse_CrmAudienceResponse_;
664
+ };
665
+ /**
666
+ * POST /integrations/crm/lists
667
+ * Get Or Create Crm List
668
+ * tier: external · scope: integrations:run
669
+ */
670
+ get_or_create_crm_list_integrations_crm_lists_post: {
671
+ input: {
672
+ headers?: {
673
+ "X-Target-Org-Id"?: string | null;
674
+ };
675
+ body: GetOrCreateCrmListRequest;
676
+ };
677
+ output: ApiResponse_CrmPayload_;
678
+ };
679
+ /**
680
+ * GET /audience-syncs/{config_id}/analytics
681
+ * Get Sync Config Analytics
682
+ * tier: read · scope: integrations:read
683
+ */
684
+ get_sync_config_analytics_audience_syncs__config_id__analytics_get: {
685
+ input: {
686
+ path: {
687
+ /** The sync config's id. */
688
+ config_id: number;
689
+ };
690
+ query?: {
691
+ /** Days to look back. */
692
+ days?: number;
693
+ };
694
+ headers?: {
695
+ "X-Target-Org-Id"?: string | null;
696
+ };
697
+ };
698
+ output: ApiResponse_AdPayload_;
699
+ };
700
+ /**
701
+ * GET /integrations/crm-sync/jobs/{job_id}
702
+ * Get Sync Job
703
+ * tier: read · scope: integrations:read
704
+ */
705
+ get_sync_job_integrations_crm_sync_jobs__job_id__get: {
706
+ input: {
707
+ path: {
708
+ /** Job id returned by a push or pull. */
709
+ job_id: string;
710
+ };
711
+ headers?: {
712
+ "X-Target-Org-Id"?: string | null;
713
+ };
714
+ };
715
+ output: ApiResponse_SyncJobResponse_;
716
+ };
717
+ /**
718
+ * GET /audience-syncs/{config_id}/segment-status
719
+ * Get Sync Segment Status
720
+ * tier: read · scope: integrations:read
721
+ */
722
+ get_sync_segment_status_audience_syncs__config_id__segment_status_get: {
723
+ input: {
724
+ path: {
725
+ /** The sync config's id. */
726
+ config_id: number;
727
+ };
728
+ headers?: {
729
+ "X-Target-Org-Id"?: string | null;
730
+ };
731
+ };
732
+ output: ApiResponse_AdPayload_;
733
+ };
734
+ /**
735
+ * GET /audience-syncs/google/video-assets/{asset_id}
736
+ * Get Video Asset
737
+ * tier: read · scope: integrations:read
738
+ */
739
+ get_video_asset_audience_syncs_google_video_assets__asset_id__get: {
740
+ input: {
741
+ path: {
742
+ /** The video asset's id. */
743
+ asset_id: number;
744
+ };
745
+ headers?: {
746
+ "X-Target-Org-Id"?: string | null;
747
+ };
748
+ };
749
+ output: ApiResponse_AdPayload_;
750
+ };
751
+ /**
752
+ * GET /audience-syncs/account-health
753
+ * List Ad Account Health
754
+ * tier: read · scope: integrations:read
755
+ */
756
+ list_ad_account_health_audience_syncs_account_health_get: {
757
+ input: {
758
+ headers?: {
759
+ "X-Target-Org-Id"?: string | null;
760
+ };
761
+ };
762
+ output: ApiResponse_AdCollection_;
763
+ };
764
+ /**
765
+ * GET /audience-syncs/accounts
766
+ * List Ad Accounts
767
+ * tier: read · scope: integrations:read
768
+ */
769
+ list_ad_accounts_audience_syncs_accounts_get: {
770
+ input: {
771
+ headers?: {
772
+ "X-Target-Org-Id"?: string | null;
773
+ };
774
+ };
775
+ output: ApiResponse_AdCollection_;
776
+ };
777
+ /**
778
+ * GET /audience-syncs/platforms
779
+ * List Ad Platforms
780
+ * tier: read · scope: integrations:read
781
+ */
782
+ list_ad_platforms_audience_syncs_platforms_get: {
783
+ input: {
784
+ headers?: {
785
+ "X-Target-Org-Id"?: string | null;
786
+ };
787
+ };
788
+ output: ApiResponse_AdCollection_;
789
+ };
790
+ /**
791
+ * GET /integrations/crm/company-activities
792
+ * List Company Activities By Graph8 Id
793
+ * tier: read · scope: integrations:read
794
+ */
795
+ list_company_activities_by_graph8_id_integrations_crm_company_activities_get: {
796
+ input: {
797
+ query: {
798
+ /** graph8 `mashup_companies.id`. */
799
+ company_id: number;
800
+ /** Comma-separated activity types. */
801
+ activity_types?: string | null;
802
+ /** `manual` or `crm`. */
803
+ source?: string | null;
804
+ limit?: number;
805
+ };
806
+ headers?: {
807
+ "X-Target-Org-Id"?: string | null;
808
+ };
809
+ };
810
+ output: ApiResponse_CrmPayload_;
811
+ };
812
+ /**
813
+ * GET /integrations/connections
814
+ * List Connections
815
+ * tier: read · scope: integrations:read
816
+ */
817
+ list_connections_integrations_connections_get: {
818
+ input: {
819
+ headers?: {
820
+ "X-Target-Org-Id"?: string | null;
821
+ };
822
+ };
823
+ output: ApiResponse_ConnectionListPayload_;
824
+ };
825
+ /**
826
+ * GET /integrations/crm/contact-activities
827
+ * List Contact Activities By Graph8 Id
828
+ * tier: read · scope: integrations:read
829
+ */
830
+ list_contact_activities_by_graph8_id_integrations_crm_contact_activities_get: {
831
+ input: {
832
+ query: {
833
+ /** graph8 `mashup_contacts.id`. */
834
+ contact_id: number;
835
+ /** Auto-discovered from the org's connections when omitted. */
836
+ connection_id?: string | null;
837
+ limit?: number;
838
+ /** Comma-separated: `calls,emails,notes,meetings,tasks`. */
839
+ activity_types?: string | null;
840
+ /** `manual`, `crm` (any provider), or a provider name. Omit for everything - which is the point of this route: one timeline whether the activity was logged in graph8 or in the CRM. */
841
+ source?: string | null;
842
+ };
843
+ headers?: {
844
+ "X-Target-Org-Id"?: string | null;
845
+ };
846
+ };
847
+ output: ApiResponse_CrmPayload_;
848
+ };
849
+ /**
850
+ * GET /integrations/crm/activities
851
+ * List Crm Activities
852
+ * tier: read · scope: integrations:read
853
+ */
854
+ list_crm_activities_integrations_crm_activities_get: {
855
+ input: {
856
+ query: {
857
+ connection_id: string;
858
+ /** One activity type, e.g. `call`. */
859
+ type?: string | null;
860
+ /** Records per page. */
861
+ limit?: number;
862
+ /** Records to skip. */
863
+ offset?: number;
864
+ };
865
+ headers?: {
866
+ "X-Target-Org-Id"?: string | null;
867
+ };
868
+ };
869
+ output: ApiResponse_CrmCollection_;
870
+ };
871
+ /**
872
+ * GET /integrations/crm/connections/{connection_id}/companies
873
+ * List Crm Companies
874
+ * tier: read · scope: integrations:read
875
+ */
876
+ list_crm_companies_integrations_crm_connections__connection_id__companies_get: {
877
+ input: {
878
+ path: {
879
+ /** The CRM connection to act through. */
880
+ connection_id: string;
881
+ };
882
+ query?: {
883
+ /** Records per page. */
884
+ limit?: number;
885
+ /** Records to skip. */
886
+ offset?: number;
887
+ };
888
+ headers?: {
889
+ "X-Target-Org-Id"?: string | null;
890
+ };
891
+ };
892
+ output: ApiResponse_CrmCollection_;
893
+ };
894
+ /**
895
+ * GET /integrations/crm/connections/{connection_id}/contacts/{contact_id}/activities
896
+ * List Crm Contact Activities
897
+ * tier: read · scope: integrations:read
898
+ */
899
+ list_crm_contact_activities_integrations_crm_connections__connection_id__contacts__contact_id__activities_get: {
900
+ input: {
901
+ path: {
902
+ /** The CRM connection to act through. */
903
+ connection_id: string;
904
+ /** The CRM's contact id. */
905
+ contact_id: string;
906
+ };
907
+ query?: {
908
+ limit?: number;
909
+ /** Comma-separated: `calls,emails,notes,meetings,tasks`. */
910
+ activity_types?: string | null;
911
+ };
912
+ headers?: {
913
+ "X-Target-Org-Id"?: string | null;
914
+ };
915
+ };
916
+ output: ApiResponse_CrmCollection_;
917
+ };
918
+ /**
919
+ * GET /integrations/crm/connections/{connection_id}/contacts
920
+ * List Crm Contacts
921
+ * tier: read · scope: integrations:read
922
+ */
923
+ list_crm_contacts_integrations_crm_connections__connection_id__contacts_get: {
924
+ input: {
925
+ path: {
926
+ /** The CRM connection to act through. */
927
+ connection_id: string;
928
+ };
929
+ query?: {
930
+ /** Records per page. */
931
+ limit?: number;
932
+ /** Records to skip. */
933
+ offset?: number;
934
+ /** ISO 8601 timestamp. Only contacts modified at or after it - the parameter an incremental reader should page on rather than re-reading the whole CRM. */
935
+ updated_gte?: string | null;
936
+ /** Exact-match filter. */
937
+ email?: string | null;
938
+ name?: string | null;
939
+ /** The CRM's company id. */
940
+ company_id?: string | null;
941
+ };
942
+ headers?: {
943
+ "X-Target-Org-Id"?: string | null;
944
+ };
945
+ };
946
+ output: ApiResponse_CrmCollection_;
947
+ };
948
+ /**
949
+ * GET /integrations/crm/connections/{connection_id}/deals
950
+ * List Crm Deals
951
+ * tier: read · scope: integrations:read
952
+ */
953
+ list_crm_deals_integrations_crm_connections__connection_id__deals_get: {
954
+ input: {
955
+ path: {
956
+ /** The CRM connection to act through. */
957
+ connection_id: string;
958
+ };
959
+ query?: {
960
+ /** Records per page. */
961
+ limit?: number;
962
+ /** Records to skip. */
963
+ offset?: number;
964
+ };
965
+ headers?: {
966
+ "X-Target-Org-Id"?: string | null;
967
+ };
968
+ };
969
+ output: ApiResponse_CrmCollection_;
970
+ };
971
+ /**
972
+ * GET /integrations/crm/connections/{connection_id}/leads
973
+ * List Crm Leads
974
+ * tier: read · scope: integrations:read
975
+ */
976
+ list_crm_leads_integrations_crm_connections__connection_id__leads_get: {
977
+ input: {
978
+ path: {
979
+ /** The CRM connection to act through. */
980
+ connection_id: string;
981
+ };
982
+ query?: {
983
+ /** Records per page. */
984
+ limit?: number;
985
+ /** Records to skip. */
986
+ offset?: number;
987
+ };
988
+ headers?: {
989
+ "X-Target-Org-Id"?: string | null;
990
+ };
991
+ };
992
+ output: ApiResponse_CrmCollection_;
993
+ };
994
+ /**
995
+ * GET /integrations/crm/lists
996
+ * List Crm Lists
997
+ * tier: read · scope: integrations:read
998
+ */
999
+ list_crm_lists_integrations_crm_lists_get: {
1000
+ input: {
1001
+ query: {
1002
+ connection_id: string;
1003
+ /** Filter by list name. */
1004
+ query?: string | null;
1005
+ limit?: number;
1006
+ offset?: number;
1007
+ /** Which object the list holds. */
1008
+ entity_type?: "contacts" | "companies" | "deals" | "leads";
1009
+ };
1010
+ headers?: {
1011
+ "X-Target-Org-Id"?: string | null;
1012
+ };
1013
+ };
1014
+ output: ApiResponse_CrmPayload_;
1015
+ };
1016
+ /**
1017
+ * GET /integrations/crm/meetings
1018
+ * List Crm Meetings
1019
+ * tier: read · scope: integrations:read
1020
+ */
1021
+ list_crm_meetings_integrations_crm_meetings_get: {
1022
+ input: {
1023
+ query: {
1024
+ connection_id: string;
1025
+ /** Records per page. */
1026
+ limit?: number;
1027
+ /** Records to skip. */
1028
+ offset?: number;
1029
+ };
1030
+ headers?: {
1031
+ "X-Target-Org-Id"?: string | null;
1032
+ };
1033
+ };
1034
+ output: ApiResponse_CrmCollection_;
1035
+ };
1036
+ /**
1037
+ * GET /integrations/crm/users
1038
+ * List Crm Users
1039
+ * tier: read · scope: integrations:read
1040
+ */
1041
+ list_crm_users_integrations_crm_users_get: {
1042
+ input: {
1043
+ query: {
1044
+ /** The CRM connection to act through. */
1045
+ connection_id: string;
1046
+ };
1047
+ headers?: {
1048
+ "X-Target-Org-Id"?: string | null;
1049
+ };
1050
+ };
1051
+ output: ApiResponse_CrmCollection_;
1052
+ };
1053
+ /**
1054
+ * GET /integrations/crm-sync/leads/statuses
1055
+ * List Lead Statuses
1056
+ * tier: read · scope: integrations:read
1057
+ */
1058
+ list_lead_statuses_integrations_crm_sync_leads_statuses_get: {
1059
+ input: {
1060
+ query: {
1061
+ /** A Salesforce connection. */
1062
+ connection_id: string;
1063
+ };
1064
+ headers?: {
1065
+ "X-Target-Org-Id"?: string | null;
1066
+ };
1067
+ };
1068
+ output: ApiResponse_LeadStatusesResponse_;
1069
+ };
1070
+ /**
1071
+ * GET /integrations/crm/fields/mappable
1072
+ * List Mappable Graph8 Fields
1073
+ * tier: read · scope: integrations:read
1074
+ */
1075
+ list_mappable_graph8_fields_integrations_crm_fields_mappable_get: {
1076
+ input: {
1077
+ query?: {
1078
+ /** Which graph8 object. */
1079
+ object_type?: "contacts" | "companies" | "deals" | "leads" | "activities";
1080
+ };
1081
+ headers?: {
1082
+ "X-Target-Org-Id"?: string | null;
1083
+ };
1084
+ };
1085
+ output: ApiResponse_CrmCollection_;
1086
+ };
1087
+ /**
1088
+ * GET /audience-syncs/google/video-assets
1089
+ * List Video Assets
1090
+ * tier: read · scope: integrations:read
1091
+ */
1092
+ list_video_assets_audience_syncs_google_video_assets_get: {
1093
+ input: {
1094
+ query?: {
1095
+ /** Omit for every source. */
1096
+ source?: ("link" | "upload" | "studio") | null;
1097
+ };
1098
+ headers?: {
1099
+ "X-Target-Org-Id"?: string | null;
1100
+ };
1101
+ };
1102
+ output: ApiResponse_AdCollection_;
1103
+ };
1104
+ /**
1105
+ * POST /integrations/crm/connections/{connection_id}/batch/contacts/lookup-by-email
1106
+ * Lookup Crm Contacts By Email
1107
+ * tier: read · scope: integrations:read
1108
+ */
1109
+ lookup_crm_contacts_by_email_integrations_crm_connections__connection_id__batch_contacts_lookup_by_email_post: {
1110
+ input: {
1111
+ path: {
1112
+ /** The CRM connection to act through. */
1113
+ connection_id: string;
1114
+ };
1115
+ headers?: {
1116
+ "X-Target-Org-Id"?: string | null;
1117
+ };
1118
+ body: BatchGetByEmailRequest;
1119
+ };
1120
+ output: ApiResponse_CrmPayload_;
1121
+ };
1122
+ /**
1123
+ * POST /integrations/crm/lists/memberships
1124
+ * Modify Crm List Memberships
1125
+ * tier: external · scope: integrations:run
1126
+ */
1127
+ modify_crm_list_memberships_integrations_crm_lists_memberships_post: {
1128
+ input: {
1129
+ query: {
1130
+ connection_id: string;
1131
+ };
1132
+ headers?: {
1133
+ "X-Target-Org-Id"?: string | null;
1134
+ };
1135
+ body: ModifyListMembershipsRequest;
1136
+ };
1137
+ output: ApiResponse_CrmPayload_;
1138
+ };
1139
+ /**
1140
+ * GET /integrations/crm-sync/leads/push-preview
1141
+ * Preview Lead Push
1142
+ * tier: read · scope: integrations:read
1143
+ */
1144
+ preview_lead_push_integrations_crm_sync_leads_push_preview_get: {
1145
+ input: {
1146
+ query: {
1147
+ /** A Salesforce connection. */
1148
+ connection_id: string;
1149
+ /** Which population to preview. `saved_segment` requires `audience_id`; `segments_union` requires `audience_ids`. */
1150
+ source_mode?: "all_qualified" | "saved_segment" | "segments_union" | "all_contacts";
1151
+ /** Required for `saved_segment`. */
1152
+ audience_id?: number | null;
1153
+ /** Required for `segments_union`. */
1154
+ audience_ids?: Array<number> | null;
1155
+ /** Ceiling on rows inspected. */
1156
+ limit?: number;
1157
+ status_qualified?: string | null;
1158
+ status_unqualified?: string | null;
1159
+ };
1160
+ headers?: {
1161
+ "X-Target-Org-Id"?: string | null;
1162
+ };
1163
+ };
1164
+ output: ApiResponse_LeadPreviewResponse_;
1165
+ };
1166
+ /**
1167
+ * POST /integrations/crm-sync/contacts/pull
1168
+ * Pull All Contacts
1169
+ * tier: external · scope: integrations:run
1170
+ */
1171
+ pull_all_contacts_integrations_crm_sync_contacts_pull_post: {
1172
+ input: {
1173
+ headers?: {
1174
+ "X-Target-Org-Id"?: string | null;
1175
+ };
1176
+ body: PullAllContactsRequest;
1177
+ };
1178
+ output: ApiResponse_SyncJobResponse_;
1179
+ };
1180
+ /**
1181
+ * POST /integrations/crm-sync/deals/pull
1182
+ * Pull All Deals
1183
+ * tier: external · scope: integrations:run
1184
+ */
1185
+ pull_all_deals_integrations_crm_sync_deals_pull_post: {
1186
+ input: {
1187
+ headers?: {
1188
+ "X-Target-Org-Id"?: string | null;
1189
+ };
1190
+ body: PullAllDealsRequest;
1191
+ };
1192
+ output: ApiResponse_SyncJobResponse_;
1193
+ };
1194
+ /**
1195
+ * POST /integrations/crm-sync/leads/pull
1196
+ * Pull All Leads
1197
+ * tier: external · scope: integrations:run
1198
+ */
1199
+ pull_all_leads_integrations_crm_sync_leads_pull_post: {
1200
+ input: {
1201
+ headers?: {
1202
+ "X-Target-Org-Id"?: string | null;
1203
+ };
1204
+ body: PullAllLeadsRequest;
1205
+ };
1206
+ output: ApiResponse_SyncJobResponse_;
1207
+ };
1208
+ /**
1209
+ * POST /integrations/crm-sync/pull
1210
+ * Pull Crm List
1211
+ * tier: external · scope: integrations:run
1212
+ */
1213
+ pull_crm_list_integrations_crm_sync_pull_post: {
1214
+ input: {
1215
+ headers?: {
1216
+ "X-Target-Org-Id"?: string | null;
1217
+ };
1218
+ body: PullCrmListRequest;
1219
+ };
1220
+ output: ApiResponse_SyncJobResponse_;
1221
+ };
1222
+ /**
1223
+ * POST /integrations/crm-sync/contacts/push
1224
+ * Push All Contacts
1225
+ * tier: external · scope: integrations:run
1226
+ */
1227
+ push_all_contacts_integrations_crm_sync_contacts_push_post: {
1228
+ input: {
1229
+ headers?: {
1230
+ "X-Target-Org-Id"?: string | null;
1231
+ };
1232
+ body: PushAllContactsRequest;
1233
+ };
1234
+ output: ApiResponse_SyncJobResponse_;
1235
+ };
1236
+ /**
1237
+ * POST /integrations/crm-sync/deals/push
1238
+ * Push All Deals
1239
+ * tier: external · scope: integrations:run
1240
+ */
1241
+ push_all_deals_integrations_crm_sync_deals_push_post: {
1242
+ input: {
1243
+ headers?: {
1244
+ "X-Target-Org-Id"?: string | null;
1245
+ };
1246
+ body: PushAllDealsRequest;
1247
+ };
1248
+ output: ApiResponse_SyncJobResponse_;
1249
+ };
1250
+ /**
1251
+ * POST /integrations/crm-sync/leads/push
1252
+ * Push All Leads
1253
+ * tier: external · scope: integrations:run
1254
+ */
1255
+ push_all_leads_integrations_crm_sync_leads_push_post: {
1256
+ input: {
1257
+ headers?: {
1258
+ "X-Target-Org-Id"?: string | null;
1259
+ };
1260
+ body: PushAllLeadsRequest;
1261
+ };
1262
+ output: ApiResponse_SyncJobResponse_;
1263
+ };
1264
+ /**
1265
+ * POST /integrations/crm-sync/push
1266
+ * Push Audience
1267
+ * tier: external · scope: integrations:run
1268
+ */
1269
+ push_audience_integrations_crm_sync_push_post: {
1270
+ input: {
1271
+ headers?: {
1272
+ "X-Target-Org-Id"?: string | null;
1273
+ };
1274
+ body: PushAudienceRequest;
1275
+ };
1276
+ output: ApiResponse_SyncJobResponse_;
1277
+ };
1278
+ /**
1279
+ * POST /integrations/sugarcrm/reconnect
1280
+ * Reconnect Sugarcrm
1281
+ * tier: external · scope: integrations:run
1282
+ */
1283
+ reconnect_sugarcrm_integrations_sugarcrm_reconnect_post: {
1284
+ input: {
1285
+ headers?: {
1286
+ "X-Target-Org-Id"?: string | null;
1287
+ };
1288
+ body: SugarCrmConnectRequest;
1289
+ };
1290
+ output: ApiResponse_IntegrationOpPayload_;
1291
+ };
1292
+ /**
1293
+ * POST /audience-syncs/google/video-assets/uploads
1294
+ * Register Uploaded Video Asset
1295
+ * tier: external · scope: integrations:run
1296
+ */
1297
+ register_uploaded_video_asset_audience_syncs_google_video_assets_uploads_post: {
1298
+ input: {
1299
+ headers?: {
1300
+ "X-Target-Org-Id"?: string | null;
1301
+ };
1302
+ body: RegisterVideoAssetRequest;
1303
+ };
1304
+ output: ApiResponse_AdPayload_;
1305
+ };
1306
+ /**
1307
+ * POST /audience-syncs/google/video-assets/library
1308
+ * Register Video Asset From Library
1309
+ * tier: external · scope: integrations:run
1310
+ */
1311
+ register_video_asset_from_library_audience_syncs_google_video_assets_library_post: {
1312
+ input: {
1313
+ headers?: {
1314
+ "X-Target-Org-Id"?: string | null;
1315
+ };
1316
+ body: RegisterLibraryVideoAssetRequest;
1317
+ };
1318
+ output: ApiResponse_AdPayload_;
1319
+ };
1320
+ /**
1321
+ * POST /audience-syncs/google/video-assets/links
1322
+ * Register Video Asset From Link
1323
+ * tier: external · scope: integrations:run
1324
+ */
1325
+ register_video_asset_from_link_audience_syncs_google_video_assets_links_post: {
1326
+ input: {
1327
+ headers?: {
1328
+ "X-Target-Org-Id"?: string | null;
1329
+ };
1330
+ body: CreateVideoAssetFromLinkRequest;
1331
+ };
1332
+ output: ApiResponse_AdPayload_;
1333
+ };
1334
+ /**
1335
+ * POST /integrations/connections
1336
+ * Save Connection
1337
+ * tier: external · scope: integrations:run
1338
+ */
1339
+ save_connection_integrations_connections_post: {
1340
+ input: {
1341
+ headers?: {
1342
+ "X-Target-Org-Id"?: string | null;
1343
+ };
1344
+ body: SaveConnectionRequest;
1345
+ };
1346
+ output: ApiResponse_ConnectionPayload_;
1347
+ };
1348
+ /**
1349
+ * PUT /integrations/crm-sync/pull-enabled
1350
+ * Set Pull Sync Enabled
1351
+ * tier: external · scope: integrations:run
1352
+ */
1353
+ set_pull_sync_enabled_integrations_crm_sync_pull_enabled_put: {
1354
+ input: {
1355
+ headers?: {
1356
+ "X-Target-Org-Id"?: string | null;
1357
+ };
1358
+ body: SyncEnabledRequest;
1359
+ };
1360
+ output: ApiResponse_SyncJobResponse_;
1361
+ };
1362
+ /**
1363
+ * PUT /integrations/crm-sync/push-enabled
1364
+ * Set Push Sync Enabled
1365
+ * tier: external · scope: integrations:run
1366
+ */
1367
+ set_push_sync_enabled_integrations_crm_sync_push_enabled_put: {
1368
+ input: {
1369
+ headers?: {
1370
+ "X-Target-Org-Id"?: string | null;
1371
+ };
1372
+ body: SyncEnabledRequest;
1373
+ };
1374
+ output: ApiResponse_SyncJobResponse_;
1375
+ };
1376
+ /**
1377
+ * POST /integrations/migrations/delta-sync
1378
+ * Start Delta Sync
1379
+ * tier: external · scope: integrations:run
1380
+ */
1381
+ start_delta_sync_integrations_migrations_delta_sync_post: {
1382
+ input: {
1383
+ headers?: {
1384
+ "X-Target-Org-Id"?: string | null;
1385
+ };
1386
+ body: DeltaSyncRequest;
1387
+ };
1388
+ output: ApiResponse_ConnectionPayload_;
1389
+ };
1390
+ /**
1391
+ * POST /integrations/crm-sync/leads/previews
1392
+ * Start Lead Preview
1393
+ * tier: external · scope: integrations:run
1394
+ */
1395
+ start_lead_preview_integrations_crm_sync_leads_previews_post: {
1396
+ input: {
1397
+ headers?: {
1398
+ "X-Target-Org-Id"?: string | null;
1399
+ };
1400
+ body: LeadPreviewRequest;
1401
+ };
1402
+ output: ApiResponse_SyncJobResponse_;
1403
+ };
1404
+ /**
1405
+ * POST /integrations/migrations/discovery
1406
+ * Start Migration Discovery
1407
+ * tier: external · scope: integrations:run
1408
+ */
1409
+ start_migration_discovery_integrations_migrations_discovery_post: {
1410
+ input: {
1411
+ headers?: {
1412
+ "X-Target-Org-Id"?: string | null;
1413
+ };
1414
+ body: StartDiscoveryRequest;
1415
+ };
1416
+ output: ApiResponse_ConnectionPayload_;
1417
+ };
1418
+ /**
1419
+ * PUT /integrations/crm/connections/{connection_id}/companies/{company_id}
1420
+ * Update Crm Company
1421
+ * tier: external · scope: integrations:run
1422
+ */
1423
+ update_crm_company_integrations_crm_connections__connection_id__companies__company_id__put: {
1424
+ input: {
1425
+ path: {
1426
+ /** The CRM connection to act through. */
1427
+ connection_id: string;
1428
+ company_id: string;
1429
+ };
1430
+ headers?: {
1431
+ "X-Target-Org-Id"?: string | null;
1432
+ };
1433
+ body: CrmCompanyUpdateRequest;
1434
+ };
1435
+ output: ApiResponse_CrmPayload_;
1436
+ };
1437
+ /**
1438
+ * PUT /integrations/crm/connections/{connection_id}/contacts/{contact_id}
1439
+ * Update Crm Contact
1440
+ * tier: external · scope: integrations:run
1441
+ */
1442
+ update_crm_contact_integrations_crm_connections__connection_id__contacts__contact_id__put: {
1443
+ input: {
1444
+ path: {
1445
+ /** The CRM connection to act through. */
1446
+ connection_id: string;
1447
+ contact_id: string;
1448
+ };
1449
+ headers?: {
1450
+ "X-Target-Org-Id"?: string | null;
1451
+ };
1452
+ body: CrmContactUpdateRequest;
1453
+ };
1454
+ output: ApiResponse_CrmPayload_;
1455
+ };
1456
+ /**
1457
+ * PUT /integrations/crm/connections/{connection_id}/deals/{deal_id}
1458
+ * Update Crm Deal
1459
+ * tier: external · scope: integrations:run
1460
+ */
1461
+ update_crm_deal_integrations_crm_connections__connection_id__deals__deal_id__put: {
1462
+ input: {
1463
+ path: {
1464
+ /** The CRM connection to act through. */
1465
+ connection_id: string;
1466
+ deal_id: string;
1467
+ };
1468
+ headers?: {
1469
+ "X-Target-Org-Id"?: string | null;
1470
+ };
1471
+ body: CrmDealUpdateRequest;
1472
+ };
1473
+ output: ApiResponse_CrmPayload_;
1474
+ };
1475
+ /**
1476
+ * PUT /integrations/crm/connections/{connection_id}/leads/{lead_id}
1477
+ * Update Crm Lead
1478
+ * tier: external · scope: integrations:run
1479
+ */
1480
+ update_crm_lead_integrations_crm_connections__connection_id__leads__lead_id__put: {
1481
+ input: {
1482
+ path: {
1483
+ /** The CRM connection to act through. */
1484
+ connection_id: string;
1485
+ lead_id: string;
1486
+ };
1487
+ headers?: {
1488
+ "X-Target-Org-Id"?: string | null;
1489
+ };
1490
+ body: LeadUpdateRequest;
1491
+ };
1492
+ output: ApiResponse_CrmPayload_;
1493
+ };
1494
+ /**
1495
+ * PATCH /integrations/crm/meetings/{event_id}
1496
+ * Update Crm Meeting
1497
+ * tier: external · scope: integrations:run
1498
+ */
1499
+ update_crm_meeting_integrations_crm_meetings__event_id__patch: {
1500
+ input: {
1501
+ path: {
1502
+ /** The CRM's event id. */
1503
+ event_id: string;
1504
+ };
1505
+ query: {
1506
+ connection_id: string;
1507
+ };
1508
+ headers?: {
1509
+ "X-Target-Org-Id"?: string | null;
1510
+ };
1511
+ body: UpdateMeetingRequest;
1512
+ };
1513
+ output: ApiResponse_CrmPayload_;
1514
+ };
1515
+ /**
1516
+ * POST /audience-syncs/google/conversions
1517
+ * Upload Google Conversions
1518
+ * tier: external · scope: integrations:run
1519
+ */
1520
+ upload_google_conversions_audience_syncs_google_conversions_post: {
1521
+ input: {
1522
+ query?: {
1523
+ ad_account_id?: string | null;
1524
+ /** TRUE BY DEFAULT, and deliberately. The batch is built and NOTHING is sent to Google. Read the result, then send `false`. */
1525
+ dry_run?: boolean;
1526
+ /** With `dry_run=false`, ask Google to VALIDATE the batch without recording it. The middle step between a local preview and a real upload - it catches what only Google can tell you. */
1527
+ validate_only?: boolean;
1528
+ /** Conversions per call. */
1529
+ limit?: number;
1530
+ };
1531
+ headers?: {
1532
+ "X-Target-Org-Id"?: string | null;
1533
+ };
1534
+ };
1535
+ output: ApiResponse_AdPayload_;
1536
+ };
1537
+ /**
1538
+ * POST /integrations/sugarcrm/validate
1539
+ * Validate Sugarcrm
1540
+ * tier: read · scope: integrations:read
1541
+ */
1542
+ validate_sugarcrm_integrations_sugarcrm_validate_post: {
1543
+ input: {
1544
+ headers?: {
1545
+ "X-Target-Org-Id"?: string | null;
1546
+ };
1547
+ };
1548
+ output: ApiResponse_IntegrationOpPayload_;
1549
+ };
1550
+ }
1551
+
1552
+ // 64 schemas referenced above (the same as G8Contract.<Name>).
1553
+
1554
+ /**
1555
+ * A list of ad-platform objects.
1556
+ *
1557
+ * A bare list from the app is surfaced as `items`; a named collection keeps
1558
+ * its own key AND gains `items`, so a caller can page either shape without
1559
+ * knowing which handler produced it.
1560
+ */
1561
+ export interface AdCollection {
1562
+ items?: Array<unknown>;
1563
+ [key: string]: unknown;
1564
+ }
1565
+
1566
+ /** One ad-platform object, or one handler response. */
1567
+ export type AdPayload = Record<string, unknown>;
1568
+
1569
+ export interface ApiResponse_AdCollection_ {
1570
+ data: AdCollection;
1571
+ pagination?: PaginationMeta | null;
1572
+ }
1573
+
1574
+ export interface ApiResponse_AdPayload_ {
1575
+ data: AdPayload;
1576
+ pagination?: PaginationMeta | null;
1577
+ }
1578
+
1579
+ export interface ApiResponse_ConnectionListPayload_ {
1580
+ data: ConnectionListPayload;
1581
+ pagination?: PaginationMeta | null;
1582
+ }
1583
+
1584
+ export interface ApiResponse_ConnectionPayload_ {
1585
+ data: ConnectionPayload;
1586
+ pagination?: PaginationMeta | null;
1587
+ }
1588
+
1589
+ export interface ApiResponse_CrmAudienceResponse_ {
1590
+ data: CrmAudienceResponse;
1591
+ pagination?: PaginationMeta | null;
1592
+ }
1593
+
1594
+ export interface ApiResponse_CrmCollection_ {
1595
+ data: CrmCollection;
1596
+ pagination?: PaginationMeta | null;
1597
+ }
1598
+
1599
+ export interface ApiResponse_CrmPayload_ {
1600
+ data: CrmPayload;
1601
+ pagination?: PaginationMeta | null;
1602
+ }
1603
+
1604
+ export interface ApiResponse_IntegrationOpPayload_ {
1605
+ data: IntegrationOpPayload;
1606
+ pagination?: PaginationMeta | null;
1607
+ }
1608
+
1609
+ export interface ApiResponse_LeadPreviewResponse_ {
1610
+ data: LeadPreviewResponse;
1611
+ pagination?: PaginationMeta | null;
1612
+ }
1613
+
1614
+ export interface ApiResponse_LeadStatusesResponse_ {
1615
+ data: LeadStatusesResponse;
1616
+ pagination?: PaginationMeta | null;
1617
+ }
1618
+
1619
+ export interface ApiResponse_SyncJobResponse_ {
1620
+ data: SyncJobResponse;
1621
+ pagination?: PaginationMeta | null;
1622
+ }
1623
+
1624
+ /** One contact in a batch. `crm_id` is only read on the UPDATE path. */
1625
+ export interface BatchContactRequest {
1626
+ address?: CrmAddress | null;
1627
+ company_id?: string | null;
1628
+ company_name?: string | null;
1629
+ /** The record's id in the CRM. Required on update, ignored on create. */
1630
+ crm_id?: string | null;
1631
+ custom_fields?: Array<CrmCustomField>;
1632
+ email: string;
1633
+ first_name?: string | null;
1634
+ last_name?: string | null;
1635
+ phone?: string | null;
1636
+ title?: string | null;
1637
+ user_id?: string | null;
1638
+ }
1639
+
1640
+ /** A batch of contacts to create or update in one provider round trip. */
1641
+ export interface BatchContactsRequest {
1642
+ contacts: Array<BatchContactRequest>;
1643
+ }
1644
+
1645
+ /** Look up existing CRM contacts by email. Reads; writes nothing. */
1646
+ export interface BatchGetByEmailRequest {
1647
+ emails: Array<string>;
1648
+ }
1649
+
1650
+ /**
1651
+ * Accept a discovery and START IMPORTING.
1652
+ *
1653
+ * This is the irreversible half: records begin landing in graph8 and a
1654
+ * migration cannot be un-run, only cancelled part-way.
1655
+ *
1656
+ * Both fields are OPTIONAL and omitting them accepts the discovery as
1657
+ * proposed - which is the point of previewing it first. Send
1658
+ * `field_mappings_override` to change where a CRM field lands, or
1659
+ * `selected_list_ids` to import only some lists.
1660
+ */
1661
+ export interface ConfirmMigrationRequest {
1662
+ /** Per entity type, the mappings to use instead of the discovered ones. Omit to accept what discovery proposed. */
1663
+ field_mappings_override?: Record<string, Array<Record<string, unknown>>> | null;
1664
+ /** Import only these CRM lists. Omit to take every discovered list. */
1665
+ selected_list_ids?: Array<string> | null;
1666
+ }
1667
+
1668
+ /** An open envelope for a LIST result, so a bare list keeps its shape. */
1669
+ export interface ConnectionListPayload {
1670
+ items?: Array<unknown>;
1671
+ [key: string]: unknown;
1672
+ }
1673
+
1674
+ /**
1675
+ * An open envelope for a connection, a token or a migration report.
1676
+ *
1677
+ * Open because the migration STATUS payload carries a per-entity progress
1678
+ * map, a discovered-field map and a pipeline list that all grow with the
1679
+ * providers - and because a dropped warning on a migration report reads as
1680
+ * "nothing went wrong".
1681
+ */
1682
+ export type ConnectionPayload = Record<string, unknown>;
1683
+
1684
+ /**
1685
+ * Request body for POST /audience-sync/google/conversion-actions.
1686
+ *
1687
+ * All fields optional — an empty body provisions the default primary
1688
+ * "graph8 Landing Page Conversions" action (category DEFAULT), matching what
1689
+ * Demand Gen / PMax launches auto-provision.
1690
+ */
1691
+ export interface CreateConversionActionRequest {
1692
+ category?: string;
1693
+ name?: string;
1694
+ primary_for_goal?: boolean;
1695
+ }
1696
+
1697
+ /** A meeting/event created on the CRM's calendar object. */
1698
+ export interface CreateMeetingRequest {
1699
+ company_ids?: Array<string> | null;
1700
+ /** CRM contact ids to associate. */
1701
+ contact_ids?: Array<string> | null;
1702
+ deal_ids?: Array<string> | null;
1703
+ description?: string | null;
1704
+ /** ISO 8601. */
1705
+ end_at?: string | null;
1706
+ location?: string | null;
1707
+ /** ISO 8601. */
1708
+ start_at?: string | null;
1709
+ title?: string | null;
1710
+ user_id?: string | null;
1711
+ }
1712
+
1713
+ /** Register a YouTube video by URL (Google Video campaigns). */
1714
+ export interface CreateVideoAssetFromLinkRequest {
1715
+ url: string;
1716
+ }
1717
+
1718
+ /** Ask for a presigned R2 PUT for a browser-direct video upload. */
1719
+ export interface CreateVideoUploadUrlRequest {
1720
+ /** video/mp4 | video/quicktime | video/webm */
1721
+ content_type: string;
1722
+ /** Exact file size — signed into the PUT; a different body length is refused */
1723
+ size_bytes: number;
1724
+ }
1725
+
1726
+ export interface CrmAddress {
1727
+ address_type?: string | null;
1728
+ city?: string | null;
1729
+ country?: string | null;
1730
+ postal_code?: string | null;
1731
+ state?: string | null;
1732
+ street?: string | null;
1733
+ street2?: string | null;
1734
+ }
1735
+
1736
+ /**
1737
+ * Get, or create, the graph8 audience a CRM import lands in.
1738
+ *
1739
+ * Idempotent by TITLE: calling twice with the same `list_name` returns the
1740
+ * same audience with `created: false` rather than making a second one. That is
1741
+ * what makes it safe to call before every import, and it is why this is not
1742
+ * `POST /lists` - that one always creates.
1743
+ */
1744
+ export interface CrmAudienceRequest {
1745
+ /** The CRM connection this audience is for. Its provider is recorded on the audience as the source and as a `crm-import` tag, which is what lets a later sync tell CRM-imported rows from graph8-native ones. */
1746
+ connection_id: string;
1747
+ /** `contacts`, `companies`, `deals` or `leads`. Singular forms are accepted and pluralised by the app; anything unrecognised falls back to `contacts`. Omit for `contacts`. */
1748
+ entity_type?: string | null;
1749
+ /** Audience title. Matched exactly; reused when it exists. */
1750
+ list_name: string;
1751
+ }
1752
+
1753
+ /** The audience, and whether this call is what created it. */
1754
+ export interface CrmAudienceResponse {
1755
+ audience_id?: number | null;
1756
+ /** True only when THIS call created the audience; false when it already existed. */
1757
+ created?: boolean | null;
1758
+ source?: string | null;
1759
+ title?: string | null;
1760
+ [key: string]: unknown;
1761
+ }
1762
+
1763
+ /**
1764
+ * A list of CRM records.
1765
+ *
1766
+ * A bare list from the app is surfaced as `items`; a named collection keeps
1767
+ * its own key AND gains `items`, so a caller can page either shape without
1768
+ * knowing which handler produced it.
1769
+ */
1770
+ export interface CrmCollection {
1771
+ items?: Array<unknown>;
1772
+ [key: string]: unknown;
1773
+ }
1774
+
1775
+ export interface CrmCompanyCreateRequest {
1776
+ address?: CrmAddress | null;
1777
+ annual_revenue?: number | null;
1778
+ custom_fields?: Array<CrmCustomField>;
1779
+ domain?: string | null;
1780
+ employee_count?: number | null;
1781
+ industry?: string | null;
1782
+ name: string;
1783
+ phone?: string | null;
1784
+ website?: string | null;
1785
+ }
1786
+
1787
+ export interface CrmCompanyUpdateRequest {
1788
+ address?: CrmAddress | null;
1789
+ annual_revenue?: number | null;
1790
+ custom_fields?: Array<CrmCustomField> | null;
1791
+ domain?: string | null;
1792
+ employee_count?: number | null;
1793
+ industry?: string | null;
1794
+ name?: string | null;
1795
+ phone?: string | null;
1796
+ website?: string | null;
1797
+ }
1798
+
1799
+ /** A new contact, created in the CUSTOMER'S CRM. */
1800
+ export interface CrmContactCreateRequest {
1801
+ address?: CrmAddress | null;
1802
+ /** The CRM's company id, not graph8's. */
1803
+ company_id?: string | null;
1804
+ company_name?: string | null;
1805
+ custom_fields?: Array<CrmCustomField>;
1806
+ emails?: Array<CrmEmail>;
1807
+ first_name?: string | null;
1808
+ last_name?: string | null;
1809
+ name?: string | null;
1810
+ phones?: Array<CrmPhone>;
1811
+ source?: string | null;
1812
+ tags?: Array<string>;
1813
+ title?: string | null;
1814
+ /** CRM owner. See `GET /integrations/crm/users`. */
1815
+ user_id?: string | null;
1816
+ }
1817
+
1818
+ /**
1819
+ * A partial update. Every field is optional; omitted fields are untouched.
1820
+ *
1821
+ * `emails`, `phones`, `custom_fields` and `tags` are optional LISTS rather
1822
+ * than list-with-default here, which is the difference that matters: on the
1823
+ * create model an omitted list means "none", and on this one it means "leave
1824
+ * what is there". Sending `[]` REPLACES with empty.
1825
+ */
1826
+ export interface CrmContactUpdateRequest {
1827
+ address?: CrmAddress | null;
1828
+ company_id?: string | null;
1829
+ company_name?: string | null;
1830
+ custom_fields?: Array<CrmCustomField> | null;
1831
+ emails?: Array<CrmEmail> | null;
1832
+ first_name?: string | null;
1833
+ is_active?: boolean | null;
1834
+ last_name?: string | null;
1835
+ name?: string | null;
1836
+ phones?: Array<CrmPhone> | null;
1837
+ tags?: Array<string> | null;
1838
+ title?: string | null;
1839
+ user_id?: string | null;
1840
+ }
1841
+
1842
+ /**
1843
+ * One provider-side custom field.
1844
+ *
1845
+ * `field_name` is the CRM's API name, not its label. Read the valid names
1846
+ * from `GET /integrations/crm/fields`; a name the provider does not have is
1847
+ * rejected by the provider, not here.
1848
+ */
1849
+ export interface CrmCustomField {
1850
+ field_name: string;
1851
+ field_type?: string | null;
1852
+ /** Required, but may be null - which is how a custom field is cleared. */
1853
+ field_value: unknown;
1854
+ }
1855
+
1856
+ export interface CrmDealCreateRequest {
1857
+ amount?: number | null;
1858
+ /** ISO 8601 date. */
1859
+ close_date?: string | null;
1860
+ company_id?: string | null;
1861
+ contact_id?: string | null;
1862
+ custom_fields?: Array<CrmCustomField>;
1863
+ description?: string | null;
1864
+ name: string;
1865
+ probability?: number | null;
1866
+ /** Provider's pipeline stage. Omit to take the provider's default stage. */
1867
+ stage?: string | null;
1868
+ type?: string | null;
1869
+ user_id?: string | null;
1870
+ }
1871
+
1872
+ export interface CrmDealUpdateRequest {
1873
+ amount?: number | null;
1874
+ close_date?: string | null;
1875
+ company_id?: string | null;
1876
+ contact_id?: string | null;
1877
+ custom_fields?: Array<CrmCustomField> | null;
1878
+ description?: string | null;
1879
+ name?: string | null;
1880
+ probability?: number | null;
1881
+ stage?: string | null;
1882
+ type?: string | null;
1883
+ user_id?: string | null;
1884
+ }
1885
+
1886
+ export interface CrmEmail {
1887
+ email: string;
1888
+ /** Provider's own label, e.g. `work`. Passed through unchanged. */
1889
+ email_type?: string | null;
1890
+ }
1891
+
1892
+ /**
1893
+ * One CRM record, or one provider response.
1894
+ *
1895
+ * Open-shaped ON PURPOSE. These bodies carry whatever the provider returned,
1896
+ * the field set differs between HubSpot, Salesforce, Pipedrive and SugarCRM,
1897
+ * and it grows every time one of them ships something. Pinning it would drop
1898
+ * whatever a provider reported that this contract had not caught up on -
1899
+ * which on a CRM surface means silently hiding the customer's own data from
1900
+ * them.
1901
+ */
1902
+ export type CrmPayload = Record<string, unknown>;
1903
+
1904
+ export interface CrmPhone {
1905
+ phone: string;
1906
+ phone_type?: string | null;
1907
+ }
1908
+
1909
+ /**
1910
+ * Import only what changed since a watermark.
1911
+ *
1912
+ * The response echoes `since` back as ISO 8601, so the caller learns the
1913
+ * watermark the server actually used rather than assuming its own was
1914
+ * accepted.
1915
+ */
1916
+ export interface DeltaSyncRequest {
1917
+ connection_id: string;
1918
+ /** Limit to these entity types. Omit for all. */
1919
+ entity_types?: Array<string> | null;
1920
+ /** Also re-fetch records the previous run should have imported and did not. Slower, and the reason to use it is a suspected gap rather than routine. */
1921
+ recover_missing?: boolean;
1922
+ /** ISO 8601 timestamp. Omit and the app picks the last successful watermark - which is usually what you want, and always safer than guessing one. */
1923
+ since?: string | null;
1924
+ }
1925
+
1926
+ /**
1927
+ * Get, or create, a list in the CUSTOMER'S CRM, matched by name.
1928
+ *
1929
+ * Not a mirror - the app takes these three as QUERY parameters on a POST,
1930
+ * which is not a shape to publish. The field names and meanings are the
1931
+ * handler's.
1932
+ */
1933
+ export interface GetOrCreateCrmListRequest {
1934
+ connection_id: string;
1935
+ /** Which object the list holds. Omit for `contacts`. */
1936
+ entity_type?: ("contacts" | "companies" | "deals" | "leads") | null;
1937
+ /** List name. Matched in the CRM; created when absent. */
1938
+ name: string;
1939
+ }
1940
+
1941
+ /** An open envelope for one result. */
1942
+ export type IntegrationOpPayload = Record<string, unknown>;
1943
+
1944
+ /**
1945
+ * A Salesforce Lead. `last_name` and `company` are REQUIRED by Salesforce
1946
+ * itself, which is why they are required here and not merely validated.
1947
+ */
1948
+ export interface LeadCreateRequest {
1949
+ address?: CrmAddress | null;
1950
+ annual_revenue?: number | null;
1951
+ company: string;
1952
+ custom_fields?: Array<CrmCustomField>;
1953
+ email?: string | null;
1954
+ employee_count?: number | null;
1955
+ first_name?: string | null;
1956
+ industry?: string | null;
1957
+ last_name: string;
1958
+ lead_source?: string | null;
1959
+ phone?: string | null;
1960
+ /** Salesforce `Lead.Status` API name. Read the valid values from `GET /integrations/crm-sync/leads/statuses` - it is an OPEN picklist, so an invented value silently becomes a real status. */
1961
+ status?: string | null;
1962
+ title?: string | null;
1963
+ user_id?: string | null;
1964
+ website?: string | null;
1965
+ }
1966
+
1967
+ /**
1968
+ * Queue a readiness preview of what a lead push WOULD do.
1969
+ *
1970
+ * Nothing is written to the CRM. This is the call to make before
1971
+ * `/integrations/crm-sync/leads/push`, and the only way to learn the record
1972
+ * count that `large_population_confirmed` is acknowledging.
1973
+ */
1974
+ export interface LeadPreviewRequest {
1975
+ audience_id?: number | null;
1976
+ audience_ids?: Array<number> | null;
1977
+ /** Which CRM connection to preview against. */
1978
+ connection_id: string;
1979
+ /** Acknowledge that this job covers a population large enough that the app asks first. Leave unset to keep that refusal in place; set true ONLY when you have read the preview's record count and accept it. This is a safety interlock, not a tuning option - the records land in the customer's Salesforce and cannot be un-pushed. */
1980
+ large_population_confirmed?: boolean | null;
1981
+ /** Rows scanned per page while previewing. Omit for the app's default. */
1982
+ page_size?: number | null;
1983
+ /** Which population to preview. `saved_segment` REQUIRES `audience_id`; `segments_union` REQUIRES `audience_ids`. */
1984
+ source_mode?: ("all_qualified" | "saved_segment" | "segments_union" | "all_contacts") | null;
1985
+ status_qualified?: string | null;
1986
+ status_unqualified?: string | null;
1987
+ }
1988
+
1989
+ /**
1990
+ * What a lead push would do. Open-shaped - the readiness detail is
1991
+ * per-provider and grows with it.
1992
+ */
1993
+ export type LeadPreviewResponse = Record<string, unknown>;
1994
+
1995
+ /**
1996
+ * The org's Salesforce `Lead.Status` picklist.
1997
+ *
1998
+ * Open-shaped: each entry carries whatever Salesforce reports about the
1999
+ * status, and the set of flags grows with their API. Converted statuses are
2000
+ * already filtered out by the app - setting one through the push would
2001
+ * silently convert leads.
2002
+ */
2003
+ export interface LeadStatusesResponse {
2004
+ /** The status Salesforce marks as the org default, when one exists. */
2005
+ default?: string | null;
2006
+ statuses?: Array<Record<string, unknown>>;
2007
+ [key: string]: unknown;
2008
+ }
2009
+
2010
+ export interface LeadUpdateRequest {
2011
+ address?: CrmAddress | null;
2012
+ annual_revenue?: number | null;
2013
+ company?: string | null;
2014
+ custom_fields?: Array<CrmCustomField> | null;
2015
+ email?: string | null;
2016
+ employee_count?: number | null;
2017
+ first_name?: string | null;
2018
+ industry?: string | null;
2019
+ last_name?: string | null;
2020
+ lead_source?: string | null;
2021
+ phone?: string | null;
2022
+ status?: string | null;
2023
+ title?: string | null;
2024
+ user_id?: string | null;
2025
+ website?: string | null;
2026
+ }
2027
+
2028
+ /**
2029
+ * Add and/or remove contacts from one CRM list, in a single call.
2030
+ *
2031
+ * Both lists are applied in the same request, so this is not two calls
2032
+ * pretending to be one - and a retry with the same body is idempotent on the
2033
+ * provider side.
2034
+ */
2035
+ export interface ModifyListMembershipsRequest {
2036
+ add_contact_ids?: Array<string>;
2037
+ /** The CRM's list id. */
2038
+ list_id: string;
2039
+ remove_contact_ids?: Array<string>;
2040
+ }
2041
+
2042
+ export interface PaginationMeta {
2043
+ /** Whether there are more pages */
2044
+ has_next: boolean;
2045
+ /** Items per page */
2046
+ limit: number;
2047
+ /** 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. */
2048
+ next_cursor?: string | null;
2049
+ /** Current page number (1-indexed) */
2050
+ page: number;
2051
+ /** Total number of items */
2052
+ total: number;
2053
+ }
2054
+
2055
+ /** Pull every CRM contact into graph8. */
2056
+ export interface PullAllContactsRequest {
2057
+ /** Records per batch. */
2058
+ chunk_size?: number | null;
2059
+ /** Which CRM connection to run against. */
2060
+ connection_id: string;
2061
+ /** Fill missing fields from the graph8 index as rows arrive. Omit to take the app's default - this SPENDS enrichment credit when on. */
2062
+ enrich_from_graph8?: boolean | null;
2063
+ entity_type?: string | null;
2064
+ /** Ceiling on records processed. OMIT to take the app's own default (5,000 pulling, 10,000 pushing) rather than freezing a copy of it here. */
2065
+ limit?: number | null;
2066
+ /** graph8 audience list to land in. */
2067
+ list_id?: number | null;
2068
+ /** Concurrent batches. */
2069
+ max_parallel?: number | null;
2070
+ }
2071
+
2072
+ export interface PullAllDealsRequest {
2073
+ chunk_size?: number | null;
2074
+ connection_id: string;
2075
+ crm_list_id?: string | null;
2076
+ crm_list_title?: string | null;
2077
+ limit?: number | null;
2078
+ list_id?: number | null;
2079
+ }
2080
+
2081
+ /**
2082
+ * Pull Salesforce Leads into graph8.
2083
+ *
2084
+ * Sending none of the optional fields runs the org's SAVED `pull.leads`
2085
+ * settings; sending any of them overrides those settings for this one run.
2086
+ * That is the app's behaviour and it is worth knowing, because an empty body
2087
+ * here is not "pull everything" - it is "pull what I configured".
2088
+ */
2089
+ export interface PullAllLeadsRequest {
2090
+ /** Salesforce Campaign ids to pull members of. */
2091
+ campaign_ids?: Array<string> | null;
2092
+ /** Records per batch. */
2093
+ chunk_size?: number | null;
2094
+ /** Which CRM connection to pull from. */
2095
+ connection_id: string;
2096
+ /** Fill missing fields from the graph8 index as rows arrive. This SPENDS ENRICHMENT CREDIT when on. Omit to take the app's default rather than turning a spend on by accident. */
2097
+ enrich_from_graph8?: boolean | null;
2098
+ /** Include leads Salesforce has already converted to a Contact. */
2099
+ include_converted?: boolean | null;
2100
+ /** Ceiling on records pulled. */
2101
+ limit?: number | null;
2102
+ /** graph8 audience to land the leads in. */
2103
+ list_id?: number | null;
2104
+ /** Concurrent batches. */
2105
+ max_parallel?: number | null;
2106
+ /** `campaigns` restricts the pull to `campaign_ids`. Omit for the saved setting. */
2107
+ source_mode?: ("all_leads" | "campaigns") | null;
2108
+ /** Skip leads that appear on an opt-out list. */
2109
+ suppress_from_optouts?: boolean | null;
2110
+ }
2111
+
2112
+ /** Pull ONE CRM list, rather than everything. */
2113
+ export interface PullCrmListRequest {
2114
+ /** Create a matching graph8 audience if none is given. */
2115
+ auto_create_audience?: boolean | null;
2116
+ connection_id: string;
2117
+ /** REQUIRED - the CRM list to pull. */
2118
+ crm_list_id: string;
2119
+ /** SPENDS enrichment credit when on. */
2120
+ enrich_from_graph8?: boolean | null;
2121
+ entity_type?: string | null;
2122
+ graph8_list_id?: number | null;
2123
+ limit?: number | null;
2124
+ reconcile?: boolean | null;
2125
+ }
2126
+
2127
+ /** Push every graph8 contact into the CRM. */
2128
+ export interface PushAllContactsRequest {
2129
+ /** Records per batch. */
2130
+ chunk_size?: number | null;
2131
+ /** Which CRM connection to run against. */
2132
+ connection_id: string;
2133
+ /** Target list in the CRM. */
2134
+ crm_list_id?: string | null;
2135
+ entity_type?: string | null;
2136
+ file_import_threshold?: number | null;
2137
+ /** Ceiling on records processed. OMIT to take the app's own default (5,000 pulling, 10,000 pushing) rather than freezing a copy of it here. */
2138
+ limit?: number | null;
2139
+ /** Concurrent batches. */
2140
+ max_parallel?: number | null;
2141
+ sync_list_mode?: string | null;
2142
+ /** Use the provider's bulk file import instead of the API. */
2143
+ use_file_import?: boolean | null;
2144
+ }
2145
+
2146
+ export interface PushAllDealsRequest {
2147
+ chunk_size?: number | null;
2148
+ connection_id: string;
2149
+ crm_list_id?: string | null;
2150
+ limit?: number | null;
2151
+ list_id?: number | null;
2152
+ sync_list_mode?: string | null;
2153
+ }
2154
+
2155
+ /**
2156
+ * Push graph8 people into Salesforce as first-class Leads.
2157
+ *
2158
+ * Salesforce is the CRM that distinguishes a Lead from a Contact; the other
2159
+ * providers do not, which is why this is a separate surface from
2160
+ * `/integrations/crm-sync/contacts/push` rather than an `entity_type` on it.
2161
+ */
2162
+ export interface PushAllLeadsRequest {
2163
+ /** graph8 audience for `saved_segment`. */
2164
+ audience_id?: number | null;
2165
+ /** graph8 audiences for `segments_union`. */
2166
+ audience_ids?: Array<number> | null;
2167
+ /** Run Salesforce's assignment rules on each created lead. */
2168
+ auto_assign_on_create?: boolean | null;
2169
+ /** Records per batch. */
2170
+ chunk_size?: number | null;
2171
+ /** Which CRM connection to push into. */
2172
+ connection_id: string;
2173
+ /** Target list in the CRM. */
2174
+ crm_list_id?: string | null;
2175
+ /** Record count above which the file import is used. */
2176
+ file_import_threshold?: number | null;
2177
+ /** Acknowledge that this job covers a population large enough that the app asks first. Leave unset to keep that refusal in place; set true ONLY when you have read the preview's record count and accept it. This is a safety interlock, not a tuning option - the records land in the customer's Salesforce and cannot be un-pushed. */
2178
+ large_population_confirmed?: boolean | null;
2179
+ /** Push a single graph8 lead row. */
2180
+ lead_id?: number | null;
2181
+ /** Ceiling on records pushed. Omit for the app's default. */
2182
+ limit?: number | null;
2183
+ /** Concurrent batches. */
2184
+ max_parallel?: number | null;
2185
+ /** Add every pushed lead to this Salesforce Campaign as a CampaignMember. */
2186
+ salesforce_campaign_id?: string | null;
2187
+ /** Which population to push. `saved_segment` REQUIRES `audience_id`; `segments_union` REQUIRES `audience_ids`. Omit for the app's default (`all_qualified`). */
2188
+ source_mode?: ("all_qualified" | "saved_segment" | "segments_union" | "all_contacts") | null;
2189
+ /** Salesforce `Lead.Status` API name to set on qualified leads. Read the valid values from `/integrations/crm-sync/leads/statuses` - Lead.Status is an OPEN picklist, so Salesforce stores whatever is sent and an invented value silently becomes a real status. */
2190
+ status_qualified?: string | null;
2191
+ /** Salesforce `Lead.Status` API name for unqualified leads. */
2192
+ status_unqualified?: string | null;
2193
+ /** `no_list` (the app's default), `new_list` or `existing_list`. Sending `crm_list_id` with no mode implies `existing_list`. */
2194
+ sync_list_mode?: ("no_list" | "new_list" | "existing_list") | null;
2195
+ /** Use the provider's bulk file import instead of the API. */
2196
+ use_file_import?: boolean | null;
2197
+ }
2198
+
2199
+ /** Push ONE audience, rather than everything. */
2200
+ export interface PushAudienceRequest {
2201
+ /** graph8 audience to push. */
2202
+ audience_id?: number | null;
2203
+ /** Records per batch. */
2204
+ chunk_size?: number | null;
2205
+ /** Which CRM connection to run against. */
2206
+ connection_id: string;
2207
+ crm_list_id?: string | null;
2208
+ entity_type?: string | null;
2209
+ file_import_threshold?: number | null;
2210
+ /** Ceiling on records processed. OMIT to take the app's own default (5,000 pulling, 10,000 pushing) rather than freezing a copy of it here. */
2211
+ limit?: number | null;
2212
+ /** Concurrent batches. */
2213
+ max_parallel?: number | null;
2214
+ /** Reconcile against what is already in the CRM first. */
2215
+ reconcile?: boolean | null;
2216
+ use_file_import?: boolean | null;
2217
+ }
2218
+
2219
+ /** Pick a Studio library video (``cb_org_videos`` id) for a Video campaign. */
2220
+ export interface RegisterLibraryVideoAssetRequest {
2221
+ org_video_id: string;
2222
+ }
2223
+
2224
+ /** Register an object uploaded through /upload-url (the key it returned). */
2225
+ export interface RegisterVideoAssetRequest {
2226
+ duration_s?: number | null;
2227
+ height?: number | null;
2228
+ key: string;
2229
+ /** upload | studio */
2230
+ source?: string;
2231
+ title?: string | null;
2232
+ width?: number | null;
2233
+ }
2234
+
2235
+ /**
2236
+ * Record a connection the OAuth flow has already established.
2237
+ *
2238
+ * This does NOT perform the OAuth handshake - the hosted flow does that, and
2239
+ * this stores its result. `connection_id` is the id that flow handed back,
2240
+ * not one you choose.
2241
+ */
2242
+ export interface SaveConnectionRequest {
2243
+ /** Provider-specific configuration captured during the flow. */
2244
+ connection_config?: Record<string, string>;
2245
+ /** The id the OAuth flow returned. */
2246
+ connection_id: string;
2247
+ /** Stable graph8 provider name. */
2248
+ provider: string;
2249
+ /** Provider config key. */
2250
+ provider_config_key: string;
2251
+ }
2252
+
2253
+ /**
2254
+ * Mint a short-lived token for the hosted OAuth flow.
2255
+ *
2256
+ * Both fields are optional because the app's model has them optional - it
2257
+ * falls back to its own default provider. They are NOT interchangeable
2258
+ * spellings of one thing: `provider` is the stable graph8 name and
2259
+ * `provider_config_key` is the key in the connection provider's own config,
2260
+ * and the two can differ per environment.
2261
+ */
2262
+ export interface SessionTokenRequest {
2263
+ /** Stable graph8 provider name. */
2264
+ provider?: string | null;
2265
+ /** Provider config key on the connection provider. */
2266
+ provider_config_key?: string | null;
2267
+ }
2268
+
2269
+ /**
2270
+ * Look at what is in the CRM. Reads the CRM, writes nothing to graph8.
2271
+ *
2272
+ * Discovery is the first half of a migration: it counts records, reads the
2273
+ * field and pipeline shape, and proposes mappings. Nothing is imported until
2274
+ * `confirm-and-start`.
2275
+ */
2276
+ export interface StartDiscoveryRequest {
2277
+ connection_id: string;
2278
+ /** Which CRM. The app's default is `hubspot`. */
2279
+ crm_type?: string;
2280
+ }
2281
+
2282
+ /**
2283
+ * SugarCRM credentials for the password-grant connection.
2284
+ *
2285
+ * WRITE-ONLY: the username, password and client secret are stored encrypted
2286
+ * and no operation returns them.
2287
+ */
2288
+ export interface SugarCrmConnectRequest {
2289
+ /** OAuth client id configured in SugarCRM. */
2290
+ client_id?: string;
2291
+ /** OAuth client secret, if your client id has one. */
2292
+ client_secret?: string;
2293
+ /** Your SugarCRM instance, e.g. https://acme.sugarondemand.com. */
2294
+ instance_url: string;
2295
+ password: string;
2296
+ username: string;
2297
+ }
2298
+
2299
+ /** Turn continuous sync on or off for one connection. */
2300
+ export interface SyncEnabledRequest {
2301
+ /** Which CRM connection. */
2302
+ connection_id: string;
2303
+ /** Explicit, not a toggle - a retried request is then idempotent. */
2304
+ enabled: boolean;
2305
+ }
2306
+
2307
+ /**
2308
+ * A bulk job, or its status. Open-shaped - the payload carries per-provider
2309
+ * progress detail that differs between CRMs and grows with them.
2310
+ */
2311
+ export interface SyncJobResponse {
2312
+ job_id?: string | null;
2313
+ status?: string | null;
2314
+ [key: string]: unknown;
2315
+ }
2316
+
2317
+ export interface UpdateMeetingRequest {
2318
+ company_ids?: Array<string> | null;
2319
+ contact_ids?: Array<string> | null;
2320
+ deal_ids?: Array<string> | null;
2321
+ description?: string | null;
2322
+ end_at?: string | null;
2323
+ location?: string | null;
2324
+ start_at?: string | null;
2325
+ title?: string | null;
2326
+ user_id?: string | null;
2327
+ }