@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,888 @@
1
+ <!-- Generated by sdk/js/scripts/generate-agent-docs.ts from developer-contract/openapi.json. Regenerated on every build. -->
2
+
3
+ # `g8.api.notes`: Notes
4
+
5
+ 19 operations (6 read, 9 write, 4 destructive).
6
+
7
+ 8 of these also have a hand-written method (`g8.notes`), marked **★** below. Prefer the hand-written method when one exists: it unwraps the `data` envelope and takes friendlier arguments. See [../sdk-clients.md](../sdk-clients.md).
8
+
9
+ Every example below assumes this setup (server-side, API key):
10
+
11
+ ```ts
12
+ import { g8 } from "@graph8/sdk";
13
+
14
+ g8.init({ apiKey: process.env.G8_API_KEY! });
15
+ ```
16
+
17
+ Example values are placeholders that match each field's type. Only required fields are shown. Every example is type-checked against the SDK in CI.
18
+
19
+ Exact TypeScript types for every operation on this page, and every schema they use: [notes.d.ts](notes.d.ts).
20
+
21
+ ## Operations
22
+
23
+ | Call | HTTP | Tier | Scope | Summary |
24
+ |---|---|---|---|---|
25
+ | [`createCompanyNote`](#op-createcompanynote) ★ | `POST /api/v1/companies/{company_id}/notes` | write | `notes:write` | Create Company Note |
26
+ | [`createDealNote`](#op-createdealnote) ★ | `POST /api/v1/deals/{deal_id}/notes` | write | `notes:write` | Create Deal Note |
27
+ | [`createNote`](#op-createnote) ★ | `POST /api/v1/contacts/{contact_id}/notes` | write | `notes:write` | Create Note |
28
+ | [`createNoteReply`](#op-createnotereply) | `POST /api/v1/notes/{note_id}/replies` | write | `notes:write` | Create Note Reply |
29
+ | [`createRecordNote`](#op-createrecordnote) | `POST /api/v1/notes` | write | `notes:write` | Create Record Note |
30
+ | [`deleteNote`](#op-deletenote) ★ | `DELETE /api/v1/notes/{note_id}` | destructive | `notes:delete` | Delete Note |
31
+ | [`deleteNoteReply`](#op-deletenotereply) | `DELETE /api/v1/notes/replies/{reply_id}` | destructive | `notes:delete` | Delete Note Reply |
32
+ | [`linkNoteRecord`](#op-linknoterecord) | `POST /api/v1/notes/{note_id}/records` | write | `notes:write` | Link Note Record |
33
+ | [`listCompanyNotes`](#op-listcompanynotes) ★ | `GET /api/v1/companies/{company_id}/notes` | read | `notes:read` | List Company Notes |
34
+ | [`listDealNotes`](#op-listdealnotes) ★ | `GET /api/v1/deals/{deal_id}/notes` | read | `notes:read` | List Deal Notes |
35
+ | [`listNoteReplies`](#op-listnotereplies) | `GET /api/v1/notes/{note_id}/replies` | read | `notes:read` | List Note Replies |
36
+ | [`listNotes`](#op-listnotes) ★ | `GET /api/v1/contacts/{contact_id}/notes` | read | `notes:read` | List Notes |
37
+ | [`listNotesForContacts`](#op-listnotesforcontacts) | `POST /api/v1/notes/batch` | read | `notes:read` | List Notes For Contacts |
38
+ | [`listNotesForRecord`](#op-listnotesforrecord) | `GET /api/v1/notes` | read | `notes:read` | List Notes For Record |
39
+ | [`reopenNoteThread`](#op-reopennotethread) | `DELETE /api/v1/notes/{note_id}/resolve` | destructive | `notes:delete` | Reopen Note Thread |
40
+ | [`resolveNoteThread`](#op-resolvenotethread) | `POST /api/v1/notes/{note_id}/resolve` | write | `notes:write` | Resolve Note Thread |
41
+ | [`unlinkNoteRecord`](#op-unlinknoterecord) | `DELETE /api/v1/notes/{note_id}/records` | destructive | `notes:delete` | Unlink Note Record |
42
+ | [`updateNote`](#op-updatenote) ★ | `PATCH /api/v1/notes/{note_id}` | write | `notes:write` | Update Note |
43
+ | [`updateNoteReply`](#op-updatenotereply) | `PUT /api/v1/notes/replies/{reply_id}` | write | `notes:write` | Update Note Reply |
44
+
45
+ ---
46
+
47
+ <a id="op-createcompanynote"></a>
48
+
49
+ ### `g8.api.notes.createCompanyNote(input)`
50
+
51
+ **Create Company Note**
52
+
53
+ - HTTP: `POST /api/v1/companies/{company_id}/notes`
54
+ - operationId: `create_company_note_companies__company_id__notes_post` (also callable as `g8.api.call("create_company_note_companies__company_id__notes_post", input)`)
55
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
56
+ - API-key scope: `notes:write`
57
+ - ★ Hand-written: [`g8.notes.createForCompany()`](../sdk-clients.md#g8-notes-createforcompany)
58
+
59
+ Create a note on a company.
60
+
61
+ **Input**
62
+
63
+ | Field | Type | Required | Description |
64
+ |---|---|---|---|
65
+ | `path.company_id` | `integer` | yes | Company ID (mashup_companies.id) |
66
+ | `body` | `NoteCreateRequest` | yes | Request body; fields below. |
67
+
68
+ Body fields (`NoteCreateRequest`):
69
+
70
+ | Field | Type | Required | Description |
71
+ |---|---|---|---|
72
+ | `body.content` | `string` | yes | Note content (plain text or markdown) |
73
+
74
+ **Returns** `ApiResponse_NoteResponse_`: the envelope `{ data: NoteResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
75
+
76
+ Other envelope fields: `pagination` (PaginationMeta).
77
+
78
+ `NoteResponse` fields:
79
+
80
+ | Field | Type | Required | Description |
81
+ |---|---|---|---|
82
+ | `content` | `string` | yes | |
83
+ | `entity_id` | `string` | yes | |
84
+ | `entity_type` | `string` | yes | |
85
+ | `id` | `string` | yes | |
86
+ | `created_at` | `string \| null` | no | |
87
+ | `created_by` | `string \| null` | no | |
88
+ | `created_by_name` | `string \| null` | no | |
89
+ | `read_only` | `boolean` | no | default `false` |
90
+ | `updated_at` | `string \| null` | no | |
91
+
92
+ **Example**
93
+
94
+ ```ts
95
+ const result = await g8.api.notes.createCompanyNote({ path: { company_id: 123 }, body: { content: "example" } });
96
+ ```
97
+
98
+ ---
99
+
100
+ <a id="op-createdealnote"></a>
101
+
102
+ ### `g8.api.notes.createDealNote(input)`
103
+
104
+ **Create Deal Note**
105
+
106
+ - HTTP: `POST /api/v1/deals/{deal_id}/notes`
107
+ - operationId: `create_deal_note_deals__deal_id__notes_post` (also callable as `g8.api.call("create_deal_note_deals__deal_id__notes_post", input)`)
108
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
109
+ - API-key scope: `notes:write`
110
+ - ★ Hand-written: [`g8.notes.createForDeal()`](../sdk-clients.md#g8-notes-createfordeal)
111
+
112
+ Create a note on a deal.
113
+
114
+ **Input**
115
+
116
+ | Field | Type | Required | Description |
117
+ |---|---|---|---|
118
+ | `path.deal_id` | `string` | yes | Deal ID (UUID) |
119
+ | `body` | `NoteCreateRequest` | yes | Request body; fields below. |
120
+
121
+ Body fields (`NoteCreateRequest`):
122
+
123
+ | Field | Type | Required | Description |
124
+ |---|---|---|---|
125
+ | `body.content` | `string` | yes | Note content (plain text or markdown) |
126
+
127
+ **Returns** `ApiResponse_NoteResponse_`: the envelope `{ data: NoteResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
128
+
129
+ Other envelope fields: `pagination` (PaginationMeta).
130
+
131
+ `NoteResponse` fields:
132
+
133
+ | Field | Type | Required | Description |
134
+ |---|---|---|---|
135
+ | `content` | `string` | yes | |
136
+ | `entity_id` | `string` | yes | |
137
+ | `entity_type` | `string` | yes | |
138
+ | `id` | `string` | yes | |
139
+ | `created_at` | `string \| null` | no | |
140
+ | `created_by` | `string \| null` | no | |
141
+ | `created_by_name` | `string \| null` | no | |
142
+ | `read_only` | `boolean` | no | default `false` |
143
+ | `updated_at` | `string \| null` | no | |
144
+
145
+ **Example**
146
+
147
+ ```ts
148
+ const result = await g8.api.notes.createDealNote({ path: { deal_id: "id" }, body: { content: "example" } });
149
+ ```
150
+
151
+ ---
152
+
153
+ <a id="op-createnote"></a>
154
+
155
+ ### `g8.api.notes.createNote(input)`
156
+
157
+ **Create Note**
158
+
159
+ - HTTP: `POST /api/v1/contacts/{contact_id}/notes`
160
+ - operationId: `create_note_contacts__contact_id__notes_post` (also callable as `g8.api.call("create_note_contacts__contact_id__notes_post", input)`)
161
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
162
+ - API-key scope: `notes:write`
163
+ - ★ Hand-written: [`g8.notes.create()`](../sdk-clients.md#g8-notes-create)
164
+
165
+ Create a note on a contact.
166
+
167
+ **Input**
168
+
169
+ | Field | Type | Required | Description |
170
+ |---|---|---|---|
171
+ | `path.contact_id` | `integer` | yes | Contact ID |
172
+ | `body` | `NoteCreateRequest` | yes | Request body; fields below. |
173
+
174
+ Body fields (`NoteCreateRequest`):
175
+
176
+ | Field | Type | Required | Description |
177
+ |---|---|---|---|
178
+ | `body.content` | `string` | yes | Note content (plain text or markdown) |
179
+
180
+ **Returns** `ApiResponse_NoteResponse_`: the envelope `{ data: NoteResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
181
+
182
+ Other envelope fields: `pagination` (PaginationMeta).
183
+
184
+ `NoteResponse` fields:
185
+
186
+ | Field | Type | Required | Description |
187
+ |---|---|---|---|
188
+ | `content` | `string` | yes | |
189
+ | `entity_id` | `string` | yes | |
190
+ | `entity_type` | `string` | yes | |
191
+ | `id` | `string` | yes | |
192
+ | `created_at` | `string \| null` | no | |
193
+ | `created_by` | `string \| null` | no | |
194
+ | `created_by_name` | `string \| null` | no | |
195
+ | `read_only` | `boolean` | no | default `false` |
196
+ | `updated_at` | `string \| null` | no | |
197
+
198
+ **Example**
199
+
200
+ ```ts
201
+ const result = await g8.api.notes.createNote({ path: { contact_id: 123 }, body: { content: "example" } });
202
+ ```
203
+
204
+ ---
205
+
206
+ <a id="op-createnotereply"></a>
207
+
208
+ ### `g8.api.notes.createNoteReply(input)`
209
+
210
+ **Create Note Reply**
211
+
212
+ - HTTP: `POST /api/v1/notes/{note_id}/replies`
213
+ - operationId: `create_note_reply_notes__note_id__replies_post` (also callable as `g8.api.call("create_note_reply_notes__note_id__replies_post", input)`)
214
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
215
+ - API-key scope: `notes:write`
216
+
217
+ Post a reply on this note's thread. INTERNAL to your organisation.
218
+
219
+ Nothing here reaches the contact the note is about. `mentioned_user_ids`
220
+ notifies those people inside graph8.
221
+
222
+ Write access is checked against the RECORD the note hangs off, not the
223
+ note: replying is a write to that record's collaboration surface.
224
+
225
+ **Input**
226
+
227
+ | Field | Type | Required | Description |
228
+ |---|---|---|---|
229
+ | `path.note_id` | `string` | yes | Note id (UUID). |
230
+ | `body` | `NoteReplyCreateRequest` | yes | Request body; fields below. |
231
+
232
+ Body fields (`NoteReplyCreateRequest`):
233
+
234
+ | Field | Type | Required | Description |
235
+ |---|---|---|---|
236
+ | `body.body` | `string` | yes | Reply text. |
237
+ | `body.author_avatar_url` | `string \| null` | no | Avatar to show beside the reply. |
238
+ | `body.mentioned_user_ids` | `Array<string>` | no | Users to notify. |
239
+
240
+ **Returns** `ApiResponse_CrmRecordPayload_`: the envelope `{ data: CrmRecordPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
241
+
242
+ Other envelope fields: `pagination` (PaginationMeta).
243
+
244
+ **Example**
245
+
246
+ ```ts
247
+ const result = await g8.api.notes.createNoteReply({ path: { note_id: "id" }, body: { body: "example" } });
248
+ ```
249
+
250
+ ---
251
+
252
+ <a id="op-createrecordnote"></a>
253
+
254
+ ### `g8.api.notes.createRecordNote(input)`
255
+
256
+ **Create Record Note**
257
+
258
+ - HTTP: `POST /api/v1/notes`
259
+ - operationId: `create_record_note_notes_post` (also callable as `g8.api.call("create_record_note_notes_post", input)`)
260
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
261
+ - API-key scope: `notes:write`
262
+
263
+ Create a note attached to one or MORE records.
264
+
265
+ With `records`, the first entry is the primary record and every entry is
266
+ linked; without it, `entity_type`/`entity_id` name the single record.
267
+ Every record is authorised for write before anything is stored.
268
+
269
+ **Input**
270
+
271
+ | Field | Type | Required | Description |
272
+ |---|---|---|---|
273
+ | `body` | `RecordNoteCreateRequest` | yes | Request body; fields below. |
274
+
275
+ Body fields (`RecordNoteCreateRequest`):
276
+
277
+ | Field | Type | Required | Description |
278
+ |---|---|---|---|
279
+ | `body.content` | `string` | yes | Note body. |
280
+ | `body.entity_id` | `string` | no | Id of that record. default `""` |
281
+ | `body.entity_type` | `string` | no | Record type the note is attached to. default `""` |
282
+ | `body.mentioned_users` | `Array<NoteMentionedUser>` | no | Teammates mentioned in the note. |
283
+ | `body.records` | `Array<Record<string, unknown>> \| null` | no | Further records to attach, each `{entity_type, entity_id}`. |
284
+ | `body.source_url` | `string \| null` | no | Where the note was taken. |
285
+
286
+ **Returns** `ApiResponse_CrmRecordPayload_`: the envelope `{ data: CrmRecordPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
287
+
288
+ Other envelope fields: `pagination` (PaginationMeta).
289
+
290
+ **Example**
291
+
292
+ ```ts
293
+ const result = await g8.api.notes.createRecordNote({ body: { content: "example" } });
294
+ ```
295
+
296
+ ---
297
+
298
+ <a id="op-deletenote"></a>
299
+
300
+ ### `g8.api.notes.deleteNote(input)`
301
+
302
+ **Delete Note**
303
+
304
+ - HTTP: `DELETE /api/v1/notes/{note_id}`
305
+ - operationId: `delete_note_notes__note_id__delete` (also callable as `g8.api.call("delete_note_notes__note_id__delete", input)`)
306
+ - Tier: `destructive`: deletes or archives data; confirm with a human before calling
307
+ - API-key scope: `notes:delete`
308
+ - ★ Hand-written: [`g8.notes.delete()`](../sdk-clients.md#g8-notes-delete)
309
+
310
+ Delete a note. Works on a contact, company or deal note.
311
+
312
+ **Input**
313
+
314
+ | Field | Type | Required | Description |
315
+ |---|---|---|---|
316
+ | `path.note_id` | `string` | yes | Note ID |
317
+
318
+ **Returns** `ApiResponse_dict_`: the envelope `{ data: Record<string, unknown>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
319
+
320
+ Other envelope fields: `pagination` (PaginationMeta).
321
+
322
+ **Example**
323
+
324
+ ```ts
325
+ // destructive: deletes or archives data; confirm with a human before calling.
326
+ const result = await g8.api.notes.deleteNote({ path: { note_id: "id" } });
327
+ ```
328
+
329
+ ---
330
+
331
+ <a id="op-deletenotereply"></a>
332
+
333
+ ### `g8.api.notes.deleteNoteReply(input)`
334
+
335
+ **Delete Note Reply**
336
+
337
+ - HTTP: `DELETE /api/v1/notes/replies/{reply_id}`
338
+ - operationId: `delete_note_reply_notes_replies__reply_id__delete` (also callable as `g8.api.call("delete_note_reply_notes_replies__reply_id__delete", input)`)
339
+ - Tier: `destructive`: deletes or archives data; confirm with a human before calling
340
+ - API-key scope: `notes:delete`
341
+
342
+ Delete a reply. AUTHOR ONLY. The rest of the thread stays.
343
+
344
+ **Input**
345
+
346
+ | Field | Type | Required | Description |
347
+ |---|---|---|---|
348
+ | `path.reply_id` | `string` | yes | Reply id (UUID). |
349
+
350
+ **Returns** `ApiResponse_CrmRecordPayload_`: the envelope `{ data: CrmRecordPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
351
+
352
+ Other envelope fields: `pagination` (PaginationMeta).
353
+
354
+ **Example**
355
+
356
+ ```ts
357
+ // destructive: deletes or archives data; confirm with a human before calling.
358
+ const result = await g8.api.notes.deleteNoteReply({ path: { reply_id: "id" } });
359
+ ```
360
+
361
+ ---
362
+
363
+ <a id="op-linknoterecord"></a>
364
+
365
+ ### `g8.api.notes.linkNoteRecord(input)`
366
+
367
+ **Link Note Record**
368
+
369
+ - HTTP: `POST /api/v1/notes/{note_id}/records`
370
+ - operationId: `link_note_record_notes__note_id__records_post` (also callable as `g8.api.call("link_note_record_notes__note_id__records_post", input)`)
371
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
372
+ - API-key scope: `notes:write`
373
+
374
+ Also file this note under another record. Idempotent.
375
+
376
+ **Input**
377
+
378
+ | Field | Type | Required | Description |
379
+ |---|---|---|---|
380
+ | `path.note_id` | `string` | yes | Note id (UUID). |
381
+ | `body` | `NoteRecordLinkRequest` | yes | Request body; fields below. |
382
+
383
+ Body fields (`NoteRecordLinkRequest`):
384
+
385
+ | Field | Type | Required | Description |
386
+ |---|---|---|---|
387
+ | `body.entity_id` | `string` | yes | Record id. |
388
+ | `body.entity_type` | `string` | yes | Record type. |
389
+
390
+ **Returns** `ApiResponse_CrmRecordPayload_`: the envelope `{ data: CrmRecordPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
391
+
392
+ Other envelope fields: `pagination` (PaginationMeta).
393
+
394
+ **Example**
395
+
396
+ ```ts
397
+ const result = await g8.api.notes.linkNoteRecord({
398
+ path: { note_id: "id" },
399
+ body: { entity_id: "id", entity_type: "example" },
400
+ });
401
+ ```
402
+
403
+ ---
404
+
405
+ <a id="op-listcompanynotes"></a>
406
+
407
+ ### `g8.api.notes.listCompanyNotes(input)`
408
+
409
+ **List Company Notes**
410
+
411
+ - HTTP: `GET /api/v1/companies/{company_id}/notes`
412
+ - operationId: `list_company_notes_companies__company_id__notes_get` (also callable as `g8.api.call("list_company_notes_companies__company_id__notes_get", input)`)
413
+ - Tier: `read`: reads data; safe to call and to retry
414
+ - API-key scope: `notes:read`
415
+ - ★ Hand-written: [`g8.notes.listForCompany()`](../sdk-clients.md#g8-notes-listforcompany)
416
+
417
+ List all notes on a company.
418
+
419
+ **Input**
420
+
421
+ | Field | Type | Required | Description |
422
+ |---|---|---|---|
423
+ | `path.company_id` | `integer` | yes | Company ID (mashup_companies.id) |
424
+
425
+ **Returns** `ApiResponse_list_NoteResponse__`: the envelope `{ data: Array<NoteResponse>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
426
+
427
+ Other envelope fields: `pagination` (PaginationMeta).
428
+
429
+ `NoteResponse` fields:
430
+
431
+ | Field | Type | Required | Description |
432
+ |---|---|---|---|
433
+ | `content` | `string` | yes | |
434
+ | `entity_id` | `string` | yes | |
435
+ | `entity_type` | `string` | yes | |
436
+ | `id` | `string` | yes | |
437
+ | `created_at` | `string \| null` | no | |
438
+ | `created_by` | `string \| null` | no | |
439
+ | `created_by_name` | `string \| null` | no | |
440
+ | `read_only` | `boolean` | no | default `false` |
441
+ | `updated_at` | `string \| null` | no | |
442
+
443
+ **Example**
444
+
445
+ ```ts
446
+ const result = await g8.api.notes.listCompanyNotes({ path: { company_id: 123 } });
447
+ ```
448
+
449
+ ---
450
+
451
+ <a id="op-listdealnotes"></a>
452
+
453
+ ### `g8.api.notes.listDealNotes(input)`
454
+
455
+ **List Deal Notes**
456
+
457
+ - HTTP: `GET /api/v1/deals/{deal_id}/notes`
458
+ - operationId: `list_deal_notes_deals__deal_id__notes_get` (also callable as `g8.api.call("list_deal_notes_deals__deal_id__notes_get", input)`)
459
+ - Tier: `read`: reads data; safe to call and to retry
460
+ - API-key scope: `notes:read`
461
+ - ★ Hand-written: [`g8.notes.listForDeal()`](../sdk-clients.md#g8-notes-listfordeal)
462
+
463
+ List all notes on a deal.
464
+
465
+ **Input**
466
+
467
+ | Field | Type | Required | Description |
468
+ |---|---|---|---|
469
+ | `path.deal_id` | `string` | yes | Deal ID (UUID) |
470
+
471
+ **Returns** `ApiResponse_list_NoteResponse__`: the envelope `{ data: Array<NoteResponse>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
472
+
473
+ Other envelope fields: `pagination` (PaginationMeta).
474
+
475
+ `NoteResponse` fields:
476
+
477
+ | Field | Type | Required | Description |
478
+ |---|---|---|---|
479
+ | `content` | `string` | yes | |
480
+ | `entity_id` | `string` | yes | |
481
+ | `entity_type` | `string` | yes | |
482
+ | `id` | `string` | yes | |
483
+ | `created_at` | `string \| null` | no | |
484
+ | `created_by` | `string \| null` | no | |
485
+ | `created_by_name` | `string \| null` | no | |
486
+ | `read_only` | `boolean` | no | default `false` |
487
+ | `updated_at` | `string \| null` | no | |
488
+
489
+ **Example**
490
+
491
+ ```ts
492
+ const result = await g8.api.notes.listDealNotes({ path: { deal_id: "id" } });
493
+ ```
494
+
495
+ ---
496
+
497
+ <a id="op-listnotereplies"></a>
498
+
499
+ ### `g8.api.notes.listNoteReplies(input)`
500
+
501
+ **List Note Replies**
502
+
503
+ - HTTP: `GET /api/v1/notes/{note_id}/replies`
504
+ - operationId: `list_note_replies_notes__note_id__replies_get` (also callable as `g8.api.call("list_note_replies_notes__note_id__replies_get", input)`)
505
+ - Tier: `read`: reads data; safe to call and to retry
506
+ - API-key scope: `notes:read`
507
+
508
+ The thread under a note, plus its resolution row if it has one.
509
+
510
+ **Input**
511
+
512
+ | Field | Type | Required | Description |
513
+ |---|---|---|---|
514
+ | `path.note_id` | `string` | yes | Note id (UUID). |
515
+
516
+ **Returns** `ApiResponse_CrmCollectionPayload_`: the envelope `{ data: CrmCollectionPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
517
+
518
+ Other envelope fields: `pagination` (PaginationMeta).
519
+
520
+ `CrmCollectionPayload` fields:
521
+
522
+ | Field | Type | Required | Description |
523
+ |---|---|---|---|
524
+ | `items` | `Array<unknown>` | no | |
525
+
526
+ **Example**
527
+
528
+ ```ts
529
+ const result = await g8.api.notes.listNoteReplies({ path: { note_id: "id" } });
530
+ ```
531
+
532
+ ---
533
+
534
+ <a id="op-listnotes"></a>
535
+
536
+ ### `g8.api.notes.listNotes(input)`
537
+
538
+ **List Notes**
539
+
540
+ - HTTP: `GET /api/v1/contacts/{contact_id}/notes`
541
+ - operationId: `list_notes_contacts__contact_id__notes_get` (also callable as `g8.api.call("list_notes_contacts__contact_id__notes_get", input)`)
542
+ - Tier: `read`: reads data; safe to call and to retry
543
+ - API-key scope: `notes:read`
544
+ - ★ Hand-written: [`g8.notes.list()`](../sdk-clients.md#g8-notes-list)
545
+
546
+ List all notes on a contact.
547
+
548
+ **Input**
549
+
550
+ | Field | Type | Required | Description |
551
+ |---|---|---|---|
552
+ | `path.contact_id` | `integer` | yes | Contact ID |
553
+
554
+ **Returns** `ApiResponse_list_NoteResponse__`: the envelope `{ data: Array<NoteResponse>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
555
+
556
+ Other envelope fields: `pagination` (PaginationMeta).
557
+
558
+ `NoteResponse` fields:
559
+
560
+ | Field | Type | Required | Description |
561
+ |---|---|---|---|
562
+ | `content` | `string` | yes | |
563
+ | `entity_id` | `string` | yes | |
564
+ | `entity_type` | `string` | yes | |
565
+ | `id` | `string` | yes | |
566
+ | `created_at` | `string \| null` | no | |
567
+ | `created_by` | `string \| null` | no | |
568
+ | `created_by_name` | `string \| null` | no | |
569
+ | `read_only` | `boolean` | no | default `false` |
570
+ | `updated_at` | `string \| null` | no | |
571
+
572
+ **Example**
573
+
574
+ ```ts
575
+ const result = await g8.api.notes.listNotes({ path: { contact_id: 123 } });
576
+ ```
577
+
578
+ ---
579
+
580
+ <a id="op-listnotesforcontacts"></a>
581
+
582
+ ### `g8.api.notes.listNotesForContacts(input)`
583
+
584
+ **List Notes For Contacts**
585
+
586
+ - HTTP: `POST /api/v1/notes/batch`
587
+ - operationId: `list_notes_for_contacts_notes_batch_post` (also callable as `g8.api.call("list_notes_for_contacts_notes_batch_post", input)`)
588
+ - Tier: `read`: reads data; safe to call and to retry
589
+ - API-key scope: `notes:read`
590
+
591
+ The notes of many contacts in one read, grouped by contact. Writes nothing.
592
+
593
+ POST only because the id list is a body. Every contact is authorised first.
594
+
595
+ **Input**
596
+
597
+ | Field | Type | Required | Description |
598
+ |---|---|---|---|
599
+ | `body` | `NoteBatchRequest` | yes | Request body; fields below. |
600
+
601
+ Body fields (`NoteBatchRequest`):
602
+
603
+ | Field | Type | Required | Description |
604
+ |---|---|---|---|
605
+ | `body.contact_ids` | `Array<string>` | yes | Contacts whose notes to read in one call. |
606
+
607
+ **Returns** `ApiResponse_CrmRecordPayload_`: the envelope `{ data: CrmRecordPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
608
+
609
+ Other envelope fields: `pagination` (PaginationMeta).
610
+
611
+ **Example**
612
+
613
+ ```ts
614
+ const result = await g8.api.notes.listNotesForContacts({ body: { contact_ids: ["id"] } });
615
+ ```
616
+
617
+ ---
618
+
619
+ <a id="op-listnotesforrecord"></a>
620
+
621
+ ### `g8.api.notes.listNotesForRecord(input)`
622
+
623
+ **List Notes For Record**
624
+
625
+ - HTTP: `GET /api/v1/notes`
626
+ - operationId: `list_notes_for_record_notes_get` (also callable as `g8.api.call("list_notes_for_record_notes_get", input)`)
627
+ - Tier: `read`: reads data; safe to call and to retry
628
+ - API-key scope: `notes:read`
629
+
630
+ Every note on one record, including notes that only MENTION it.
631
+
632
+ The per-record reads (`GET /contacts/{id}/notes` and friends) return the
633
+ notes attached to the record; this one also follows secondary links, so a
634
+ note filed on a deal that names this contact appears here too.
635
+
636
+ **Input**
637
+
638
+ | Field | Type | Required | Description |
639
+ |---|---|---|---|
640
+ | `query.entity_type` | `string` | yes | Record type, e.g. `contact`, `company`, `deal`. |
641
+ | `query.entity_id` | `string` | yes | Id of that record. |
642
+
643
+ **Returns** `ApiResponse_CrmCollectionPayload_`: the envelope `{ data: CrmCollectionPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
644
+
645
+ Other envelope fields: `pagination` (PaginationMeta).
646
+
647
+ `CrmCollectionPayload` fields:
648
+
649
+ | Field | Type | Required | Description |
650
+ |---|---|---|---|
651
+ | `items` | `Array<unknown>` | no | |
652
+
653
+ **Example**
654
+
655
+ ```ts
656
+ const result = await g8.api.notes.listNotesForRecord({ query: { entity_type: "example", entity_id: "id" } });
657
+ ```
658
+
659
+ ---
660
+
661
+ <a id="op-reopennotethread"></a>
662
+
663
+ ### `g8.api.notes.reopenNoteThread(input)`
664
+
665
+ **Reopen Note Thread**
666
+
667
+ - HTTP: `DELETE /api/v1/notes/{note_id}/resolve`
668
+ - operationId: `reopen_note_thread_notes__note_id__resolve_delete` (also callable as `g8.api.call("reopen_note_thread_notes__note_id__resolve_delete", input)`)
669
+ - Tier: `destructive`: deletes or archives data; confirm with a human before calling
670
+ - API-key scope: `notes:delete`
671
+
672
+ Reopen this note's discussion. Nothing is deleted.
673
+
674
+ Spelled as a DELETE because what it removes is the RESOLUTION, not the
675
+ thread - the app's own spelling, and the inverse of the POST above. It is
676
+ a WRITE on the underlying record despite the verb, and the gate says so
677
+ explicitly rather than inferring it from the method.
678
+
679
+ **Input**
680
+
681
+ | Field | Type | Required | Description |
682
+ |---|---|---|---|
683
+ | `path.note_id` | `string` | yes | Note id (UUID). |
684
+
685
+ **Returns** `ApiResponse_CrmRecordPayload_`: the envelope `{ data: CrmRecordPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
686
+
687
+ Other envelope fields: `pagination` (PaginationMeta).
688
+
689
+ **Example**
690
+
691
+ ```ts
692
+ // destructive: deletes or archives data; confirm with a human before calling.
693
+ const result = await g8.api.notes.reopenNoteThread({ path: { note_id: "id" } });
694
+ ```
695
+
696
+ ---
697
+
698
+ <a id="op-resolvenotethread"></a>
699
+
700
+ ### `g8.api.notes.resolveNoteThread(input)`
701
+
702
+ **Resolve Note Thread**
703
+
704
+ - HTTP: `POST /api/v1/notes/{note_id}/resolve`
705
+ - operationId: `resolve_note_thread_notes__note_id__resolve_post` (also callable as `g8.api.call("resolve_note_thread_notes__note_id__resolve_post", input)`)
706
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
707
+ - API-key scope: `notes:write`
708
+
709
+ Mark this note's discussion resolved.
710
+
711
+ Idempotent - re-resolving returns the existing row rather than creating a
712
+ second one. The replies are untouched.
713
+
714
+ **Input**
715
+
716
+ | Field | Type | Required | Description |
717
+ |---|---|---|---|
718
+ | `path.note_id` | `string` | yes | Note id (UUID). |
719
+ | `body` | `ResolveThreadRequest` | no | Request body; fields below. |
720
+
721
+ Body fields (`ResolveThreadRequest`):
722
+
723
+ | Field | Type | Required | Description |
724
+ |---|---|---|---|
725
+ | `body.resolution_note` | `string \| null` | no | Why it was resolved. |
726
+
727
+ **Returns** `ApiResponse_CrmRecordPayload_`: the envelope `{ data: CrmRecordPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
728
+
729
+ Other envelope fields: `pagination` (PaginationMeta).
730
+
731
+ **Example**
732
+
733
+ ```ts
734
+ const result = await g8.api.notes.resolveNoteThread({ path: { note_id: "id" } });
735
+ ```
736
+
737
+ ---
738
+
739
+ <a id="op-unlinknoterecord"></a>
740
+
741
+ ### `g8.api.notes.unlinkNoteRecord(input)`
742
+
743
+ **Unlink Note Record**
744
+
745
+ - HTTP: `DELETE /api/v1/notes/{note_id}/records`
746
+ - operationId: `unlink_note_record_notes__note_id__records_delete` (also callable as `g8.api.call("unlink_note_record_notes__note_id__records_delete", input)`)
747
+ - Tier: `destructive`: deletes or archives data; confirm with a human before calling
748
+ - API-key scope: `notes:delete`
749
+
750
+ Stop filing this note under a record. The note itself is kept.
751
+
752
+ The app takes the record in a DELETE body; it is a query string here,
753
+ because a body on DELETE is dropped by many HTTP clients and proxies.
754
+ The app refuses to remove a note's LAST record, so a note never orphans.
755
+
756
+ **Input**
757
+
758
+ | Field | Type | Required | Description |
759
+ |---|---|---|---|
760
+ | `path.note_id` | `string` | yes | Note id (UUID). |
761
+ | `query.entity_type` | `string` | yes | Record type to unlink. |
762
+ | `query.entity_id` | `string` | yes | Record id to unlink. |
763
+
764
+ **Returns** `ApiResponse_CrmRecordPayload_`: the envelope `{ data: CrmRecordPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
765
+
766
+ Other envelope fields: `pagination` (PaginationMeta).
767
+
768
+ **Example**
769
+
770
+ ```ts
771
+ // destructive: deletes or archives data; confirm with a human before calling.
772
+ const result = await g8.api.notes.unlinkNoteRecord({
773
+ path: { note_id: "id" },
774
+ query: { entity_type: "example", entity_id: "id" },
775
+ });
776
+ ```
777
+
778
+ ---
779
+
780
+ <a id="op-updatenote"></a>
781
+
782
+ ### `g8.api.notes.updateNote(input)`
783
+
784
+ **Update Note**
785
+
786
+ - HTTP: `PATCH /api/v1/notes/{note_id}`
787
+ - operationId: `update_note_notes__note_id__patch` (also callable as `g8.api.call("update_note_notes__note_id__patch", input)`)
788
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
789
+ - API-key scope: `notes:write`
790
+ - ★ Hand-written: [`g8.notes.update()`](../sdk-clients.md#g8-notes-update)
791
+
792
+ Update a note's content. Works on a contact, company or deal note.
793
+
794
+ **Input**
795
+
796
+ | Field | Type | Required | Description |
797
+ |---|---|---|---|
798
+ | `path.note_id` | `string` | yes | Note ID |
799
+ | `body` | `NoteUpdateRequest` | yes | Request body; fields below. |
800
+
801
+ Body fields (`NoteUpdateRequest`):
802
+
803
+ | Field | Type | Required | Description |
804
+ |---|---|---|---|
805
+ | `body.content` | `string` | yes | Updated note content |
806
+
807
+ **Returns** `ApiResponse_NoteResponse_`: the envelope `{ data: NoteResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
808
+
809
+ Other envelope fields: `pagination` (PaginationMeta).
810
+
811
+ `NoteResponse` fields:
812
+
813
+ | Field | Type | Required | Description |
814
+ |---|---|---|---|
815
+ | `content` | `string` | yes | |
816
+ | `entity_id` | `string` | yes | |
817
+ | `entity_type` | `string` | yes | |
818
+ | `id` | `string` | yes | |
819
+ | `created_at` | `string \| null` | no | |
820
+ | `created_by` | `string \| null` | no | |
821
+ | `created_by_name` | `string \| null` | no | |
822
+ | `read_only` | `boolean` | no | default `false` |
823
+ | `updated_at` | `string \| null` | no | |
824
+
825
+ **Example**
826
+
827
+ ```ts
828
+ const result = await g8.api.notes.updateNote({ path: { note_id: "id" }, body: { content: "example" } });
829
+ ```
830
+
831
+ ---
832
+
833
+ <a id="op-updatenotereply"></a>
834
+
835
+ ### `g8.api.notes.updateNoteReply(input)`
836
+
837
+ **Update Note Reply**
838
+
839
+ - HTTP: `PUT /api/v1/notes/replies/{reply_id}`
840
+ - operationId: `update_note_reply_notes_replies__reply_id__put` (also callable as `g8.api.call("update_note_reply_notes_replies__reply_id__put", input)`)
841
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
842
+ - API-key scope: `notes:write`
843
+
844
+ Edit a reply. AUTHOR ONLY.
845
+
846
+ An organisation key has no member identity, so it is not the author of
847
+ anything a human wrote - it can edit the replies it posted itself.
848
+
849
+ **Input**
850
+
851
+ | Field | Type | Required | Description |
852
+ |---|---|---|---|
853
+ | `path.reply_id` | `string` | yes | Reply id (UUID). |
854
+ | `body` | `NoteReplyUpdateRequest` | yes | Request body; fields below. |
855
+
856
+ Body fields (`NoteReplyUpdateRequest`):
857
+
858
+ | Field | Type | Required | Description |
859
+ |---|---|---|---|
860
+ | `body.body` | `string` | yes | Replacement text. |
861
+
862
+ **Returns** `ApiResponse_CrmRecordPayload_`: the envelope `{ data: CrmRecordPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
863
+
864
+ Other envelope fields: `pagination` (PaginationMeta).
865
+
866
+ **Example**
867
+
868
+ ```ts
869
+ const result = await g8.api.notes.updateNoteReply({ path: { reply_id: "id" }, body: { body: "example" } });
870
+ ```
871
+
872
+ ---
873
+
874
+ ## Referenced types
875
+
876
+ Named types that appear in the tables above. Full TypeScript definitions: `G8Contract.<Name>` (`import type { G8Contract } from "@graph8/sdk"`).
877
+
878
+ <a id="type-notementioneduser"></a>
879
+
880
+ ### `NoteMentionedUser`
881
+
882
+ Mirrors `contacts.usecases.notes.cmd.MentionedUser`.
883
+
884
+ | Field | Type | Required | Description |
885
+ |---|---|---|---|
886
+ | `id` | `string` | yes | User id. |
887
+ | `name` | `string` | yes | Display name. |
888
+ | `email` | `string \| null` | no | Email address. |