@hailer/mcp 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/.claude/commands/tool-builder.md +37 -0
  2. package/.claude/commands/ws-pull.md +44 -0
  3. package/.claude/settings.json +8 -0
  4. package/.claude/settings.local.json +49 -0
  5. package/.claude/skills/activity-api/SKILL.md +96 -0
  6. package/.claude/skills/activity-api/references/activity-endpoints.md +845 -0
  7. package/.claude/skills/add-app-member-skill/SKILL.md +977 -0
  8. package/.claude/skills/agent-building/SKILL.md +243 -0
  9. package/.claude/skills/agent-building/references/architecture-patterns.md +446 -0
  10. package/.claude/skills/agent-building/references/code-examples.md +587 -0
  11. package/.claude/skills/agent-building/references/implementation-guide.md +619 -0
  12. package/.claude/skills/app-api/SKILL.md +219 -0
  13. package/.claude/skills/app-api/references/app-endpoints.md +759 -0
  14. package/.claude/skills/building-hailer-apps-skill/SKILL.md +548 -0
  15. package/.claude/skills/create-app-skill/SKILL.md +1101 -0
  16. package/.claude/skills/create-insight-skill/SKILL.md +1317 -0
  17. package/.claude/skills/get-insight-data-skill/SKILL.md +1053 -0
  18. package/.claude/skills/hailer-api/SKILL.md +283 -0
  19. package/.claude/skills/hailer-api/references/activities.md +620 -0
  20. package/.claude/skills/hailer-api/references/authentication.md +216 -0
  21. package/.claude/skills/hailer-api/references/datasets.md +437 -0
  22. package/.claude/skills/hailer-api/references/files.md +301 -0
  23. package/.claude/skills/hailer-api/references/insights.md +469 -0
  24. package/.claude/skills/hailer-api/references/workflows.md +720 -0
  25. package/.claude/skills/hailer-api/references/workspaces-users.md +445 -0
  26. package/.claude/skills/insight-api/SKILL.md +185 -0
  27. package/.claude/skills/insight-api/references/insight-endpoints.md +514 -0
  28. package/.claude/skills/install-workflow-skill/SKILL.md +1056 -0
  29. package/.claude/skills/list-apps-skill/SKILL.md +1010 -0
  30. package/.claude/skills/list-workflows-minimal-skill/SKILL.md +992 -0
  31. package/.claude/skills/local-first-skill/SKILL.md +570 -0
  32. package/.claude/skills/mcp-tools/SKILL.md +419 -0
  33. package/.claude/skills/mcp-tools/references/api-endpoints.md +499 -0
  34. package/.claude/skills/mcp-tools/references/data-structures.md +554 -0
  35. package/.claude/skills/mcp-tools/references/implementation-patterns.md +717 -0
  36. package/.claude/skills/preview-insight-skill/SKILL.md +1290 -0
  37. package/.claude/skills/publish-hailer-app-skill/SKILL.md +453 -0
  38. package/.claude/skills/remove-app-member-skill/SKILL.md +671 -0
  39. package/.claude/skills/remove-app-skill/SKILL.md +985 -0
  40. package/.claude/skills/remove-insight-skill/SKILL.md +1011 -0
  41. package/.claude/skills/remove-workflow-skill/SKILL.md +920 -0
  42. package/.claude/skills/scaffold-hailer-app-skill/SKILL.md +1034 -0
  43. package/.claude/skills/skill-testing/README.md +137 -0
  44. package/.claude/skills/skill-testing/SKILL.md +348 -0
  45. package/.claude/skills/skill-testing/references/test-patterns.md +705 -0
  46. package/.claude/skills/skill-testing/references/testing-guide.md +603 -0
  47. package/.claude/skills/skill-testing/references/validation-checklist.md +537 -0
  48. package/.claude/skills/tool-builder/SKILL.md +328 -0
  49. package/.claude/skills/update-app-skill/SKILL.md +970 -0
  50. package/.claude/skills/update-workflow-field-skill/SKILL.md +1098 -0
  51. package/.env.example +81 -0
  52. package/.mcp.json +13 -0
  53. package/README.md +297 -0
  54. package/dist/app.d.ts +4 -0
  55. package/dist/app.js +74 -0
  56. package/dist/cli.d.ts +3 -0
  57. package/dist/cli.js +5 -0
  58. package/dist/client/adaptive-documentation-bot.d.ts +108 -0
  59. package/dist/client/adaptive-documentation-bot.js +475 -0
  60. package/dist/client/adaptive-documentation-types.d.ts +66 -0
  61. package/dist/client/adaptive-documentation-types.js +9 -0
  62. package/dist/client/agent-activity-bot.d.ts +51 -0
  63. package/dist/client/agent-activity-bot.js +166 -0
  64. package/dist/client/agent-tracker.d.ts +499 -0
  65. package/dist/client/agent-tracker.js +659 -0
  66. package/dist/client/description-updater.d.ts +56 -0
  67. package/dist/client/description-updater.js +259 -0
  68. package/dist/client/log-parser.d.ts +72 -0
  69. package/dist/client/log-parser.js +387 -0
  70. package/dist/client/mcp-client.d.ts +50 -0
  71. package/dist/client/mcp-client.js +532 -0
  72. package/dist/client/message-processor.d.ts +35 -0
  73. package/dist/client/message-processor.js +352 -0
  74. package/dist/client/multi-bot-manager.d.ts +24 -0
  75. package/dist/client/multi-bot-manager.js +74 -0
  76. package/dist/client/providers/anthropic-provider.d.ts +19 -0
  77. package/dist/client/providers/anthropic-provider.js +631 -0
  78. package/dist/client/providers/llm-provider.d.ts +47 -0
  79. package/dist/client/providers/llm-provider.js +367 -0
  80. package/dist/client/providers/openai-provider.d.ts +23 -0
  81. package/dist/client/providers/openai-provider.js +621 -0
  82. package/dist/client/simple-llm-caller.d.ts +19 -0
  83. package/dist/client/simple-llm-caller.js +100 -0
  84. package/dist/client/skill-generator.d.ts +81 -0
  85. package/dist/client/skill-generator.js +386 -0
  86. package/dist/client/test-adaptive-bot.d.ts +9 -0
  87. package/dist/client/test-adaptive-bot.js +82 -0
  88. package/dist/client/token-pricing.d.ts +38 -0
  89. package/dist/client/token-pricing.js +127 -0
  90. package/dist/client/token-tracker.d.ts +232 -0
  91. package/dist/client/token-tracker.js +457 -0
  92. package/dist/client/token-usage-bot.d.ts +53 -0
  93. package/dist/client/token-usage-bot.js +153 -0
  94. package/dist/client/tool-executor.d.ts +69 -0
  95. package/dist/client/tool-executor.js +159 -0
  96. package/dist/client/tool-schema-loader.d.ts +60 -0
  97. package/dist/client/tool-schema-loader.js +178 -0
  98. package/dist/client/types.d.ts +69 -0
  99. package/dist/client/types.js +7 -0
  100. package/dist/config.d.ts +162 -0
  101. package/dist/config.js +296 -0
  102. package/dist/core.d.ts +26 -0
  103. package/dist/core.js +147 -0
  104. package/dist/lib/context-manager.d.ts +111 -0
  105. package/dist/lib/context-manager.js +431 -0
  106. package/dist/lib/logger.d.ts +74 -0
  107. package/dist/lib/logger.js +277 -0
  108. package/dist/lib/materialize.d.ts +3 -0
  109. package/dist/lib/materialize.js +101 -0
  110. package/dist/lib/normalizedName.d.ts +7 -0
  111. package/dist/lib/normalizedName.js +48 -0
  112. package/dist/lib/prompt-length-manager.d.ts +81 -0
  113. package/dist/lib/prompt-length-manager.js +457 -0
  114. package/dist/lib/terminal-prompt.d.ts +9 -0
  115. package/dist/lib/terminal-prompt.js +108 -0
  116. package/dist/mcp/UserContextCache.d.ts +56 -0
  117. package/dist/mcp/UserContextCache.js +163 -0
  118. package/dist/mcp/auth.d.ts +2 -0
  119. package/dist/mcp/auth.js +29 -0
  120. package/dist/mcp/hailer-clients.d.ts +42 -0
  121. package/dist/mcp/hailer-clients.js +246 -0
  122. package/dist/mcp/signal-handler.d.ts +45 -0
  123. package/dist/mcp/signal-handler.js +317 -0
  124. package/dist/mcp/tool-registry.d.ts +100 -0
  125. package/dist/mcp/tool-registry.js +306 -0
  126. package/dist/mcp/tools/activity.d.ts +15 -0
  127. package/dist/mcp/tools/activity.js +955 -0
  128. package/dist/mcp/tools/app.d.ts +20 -0
  129. package/dist/mcp/tools/app.js +1488 -0
  130. package/dist/mcp/tools/discussion.d.ts +19 -0
  131. package/dist/mcp/tools/discussion.js +950 -0
  132. package/dist/mcp/tools/file.d.ts +15 -0
  133. package/dist/mcp/tools/file.js +119 -0
  134. package/dist/mcp/tools/insight.d.ts +17 -0
  135. package/dist/mcp/tools/insight.js +806 -0
  136. package/dist/mcp/tools/skill.d.ts +10 -0
  137. package/dist/mcp/tools/skill.js +279 -0
  138. package/dist/mcp/tools/user.d.ts +10 -0
  139. package/dist/mcp/tools/user.js +108 -0
  140. package/dist/mcp/tools/workflow-template.d.ts +19 -0
  141. package/dist/mcp/tools/workflow-template.js +822 -0
  142. package/dist/mcp/tools/workflow.d.ts +18 -0
  143. package/dist/mcp/tools/workflow.js +1362 -0
  144. package/dist/mcp/utils/api-errors.d.ts +45 -0
  145. package/dist/mcp/utils/api-errors.js +160 -0
  146. package/dist/mcp/utils/data-transformers.d.ts +102 -0
  147. package/dist/mcp/utils/data-transformers.js +194 -0
  148. package/dist/mcp/utils/file-upload.d.ts +33 -0
  149. package/dist/mcp/utils/file-upload.js +148 -0
  150. package/dist/mcp/utils/hailer-api-client.d.ts +120 -0
  151. package/dist/mcp/utils/hailer-api-client.js +323 -0
  152. package/dist/mcp/utils/index.d.ts +13 -0
  153. package/dist/mcp/utils/index.js +39 -0
  154. package/dist/mcp/utils/logger.d.ts +42 -0
  155. package/dist/mcp/utils/logger.js +103 -0
  156. package/dist/mcp/utils/types.d.ts +286 -0
  157. package/dist/mcp/utils/types.js +7 -0
  158. package/dist/mcp/workspace-cache.d.ts +42 -0
  159. package/dist/mcp/workspace-cache.js +97 -0
  160. package/dist/mcp-server.d.ts +42 -0
  161. package/dist/mcp-server.js +280 -0
  162. package/package.json +56 -0
  163. package/tsconfig.json +23 -0
@@ -0,0 +1,845 @@
1
+ # Activity API Endpoints Reference
2
+
3
+ Complete reference for Hailer Activity API endpoints (v2 and v3).
4
+
5
+ ## Table of Contents
6
+
7
+ ### V2 Endpoints
8
+ - [v2.activities.copy](#v2activitiescopy) - Copy activities
9
+ - [v2.activities.expired](#v2activitiesexpired) - Query expired activities
10
+ - [v2.activities.events](#v2activitiesevents) - Activity events
11
+ - [v2.activities.timeline](#v2activitiestimeline) - Timeline view
12
+ - [v2.activities.files](#v2activitiesfiles) - Activity files
13
+ - [v2.activities.list](#v2activitieslist) - List activities
14
+ - [v2.activities.kanban.load](#v2activitieskanbanload) - Load kanban activity
15
+ - [v2.activities.kanban.list](#v2activitieskanbanlist) - Kanban list
16
+ - [v2.activities.count.linked](#v2activitiescountlinked) - Count linked activities
17
+ - [v2.activities.removeFollower](#v2activitiesremovefollower) - Remove follower
18
+ - [v2.activities.updatePriority](#v2activitiesupdatepriority) - Update priority
19
+ - [v2.activities.evaluate](#v2activitiesevaluate) - Evaluate function field
20
+ - [v2.activities.evaluateDependencies](#v2activitiesevaluatedependencies) - Dependency graph
21
+ - [v2.activities.dependentFields](#v2activitiesdependentfields) - Get dependent fields
22
+ - [v2.activities.nameIsUnique](#v2activitiesnameisunique) - Check name uniqueness
23
+
24
+ ### V3 Endpoints
25
+ - [v3.activity.timeline2](#v3activitytimeline2) - Timeline view v2
26
+ - [v3.activity.count](#v3activitycount) - Count activities
27
+ - [v3.activity.create](#v3activitycreate) - Create single activity
28
+ - [v3.activity.createMany](#v3activitycreatemany) - Create multiple activities
29
+ - [v3.activity.updateMany](#v3activityupdatemany) - Update multiple activities
30
+ - [v3.activity.evaluateMany](#v3activityevaluatemany) - Evaluate multiple function fields
31
+ - [v3.activity.permissions](#v3activitypermissions) - Check permissions
32
+ - [v3.activity.template.create](#v3activitytemplatecreate) - Get activity template
33
+ - [v3.activity.linkedFrom.overview](#v3activitylinkedfromoverview) - Linked activities overview
34
+ - [v3.activity.linkedFrom.search](#v3activitylinkedfromsearch) - Search linked activities
35
+ - [v3.activity.linkedFrom.next](#v3activitylinkedfromnext) - Next linked activities
36
+ - [v3.activity.linkedFrom.refresh](#v3activitylinkedfromrefresh) - Refresh linked activities
37
+ - [v3.activity.removed.overview](#v3activityremovedoverview) - List deleted activities
38
+ - [v3.activity.removed.more](#v3activityremovedmore) - More deleted activities
39
+ - [v3.activity.removed.recover](#v3activityremovedrecover) - Recover deleted activities
40
+ - [v3.activity.import](#v3activityimport) - Import activities
41
+ - [v3.activity.list](#v3activitylist) - List activities (v3)
42
+ - [v3.activity.events](#v3activityevents) - Activity events (v3)
43
+ - [v3.activity.timeline](#v3activitytimeline) - Timeline with filtering
44
+ - [v3.activity.kanban.load](#v3activitykanbanload) - Load kanban activity
45
+ - [v3.activity.kanban.list](#v3activitykanbanlist) - Kanban list
46
+
47
+ ---
48
+
49
+ ## V2 Endpoints
50
+
51
+ ### v2.activities.copy
52
+
53
+ Creates copies of activities provided in an array. The resulting activities will all be called 'Copy of ...' unless otherwise specified in the rename object within the second parameter. The values in any given field will be kept for all fields used in the initial phase of the workflow.
54
+
55
+ **Endpoint**: `POST /v2/activities/copy`
56
+
57
+ **Request Body**:
58
+ ```json
59
+ {
60
+ "0": ["activityId1", "activityId2"], // Array of 24-char activityIds
61
+ "1": {
62
+ "workspaceId": "stringstringstringstring", // Optional
63
+ "advanced": false,
64
+ "rename": {
65
+ "activityId1": "New Name" // Optional rename mapping
66
+ }
67
+ }
68
+ }
69
+ ```
70
+
71
+ **Response**:
72
+ ```json
73
+ {
74
+ "code": 0,
75
+ "msg": "string",
76
+ "details": {},
77
+ "debug": null
78
+ }
79
+ ```
80
+
81
+ ---
82
+
83
+ ### v2.activities.expired
84
+
85
+ **Endpoint**: `POST /v2/activities/expired`
86
+
87
+ **Request Body**:
88
+ ```json
89
+ {
90
+ "0": {
91
+ "processes": [],
92
+ "phases": []
93
+ }
94
+ }
95
+ ```
96
+
97
+ ---
98
+
99
+ ### v2.activities.events
100
+
101
+ **Endpoint**: `POST /v2/activities/events`
102
+
103
+ **Request Body**:
104
+ ```json
105
+ {
106
+ "0": {
107
+ "dates": {},
108
+ "filter": {}
109
+ }
110
+ }
111
+ ```
112
+
113
+ ---
114
+
115
+ ### v2.activities.timeline
116
+
117
+ **Endpoint**: `POST /v2/activities/timeline`
118
+
119
+ **Request Body**:
120
+ ```json
121
+ {
122
+ "0": {
123
+ "dateFieldId": "stringstringstringstring",
124
+ "dates": {},
125
+ "groupByFieldId": "stringstringstringstring",
126
+ "phaseIds": [],
127
+ "processId": "stringstringstringstring",
128
+ "resourceIds": [],
129
+ "search": "string",
130
+ "showEmptyResources": true,
131
+ "teamAccount": "stringstringstringstring",
132
+ "user": {}
133
+ }
134
+ }
135
+ ```
136
+
137
+ ---
138
+
139
+ ### v2.activities.files
140
+
141
+ **Endpoint**: `POST /v2/activities/files`
142
+
143
+ **Request Body**:
144
+ ```json
145
+ {
146
+ "0": "stringstringstringstring", // Activity ID
147
+ "1": {
148
+ "limit": 100,
149
+ "skip": 0,
150
+ "search": "string"
151
+ }
152
+ }
153
+ ```
154
+
155
+ ---
156
+
157
+ ### v2.activities.list
158
+
159
+ With this function, you can get the activities of one workflow and phase (or of one dataset and category) listed by calling the function with workflowId (optional) and phaseId (required) in the Phase object.
160
+
161
+ **Endpoint**: `POST /v2/activities/list`
162
+
163
+ **Request Body**:
164
+ ```json
165
+ {
166
+ "0": {
167
+ "process": "stringstringstringstring", // Workflow ID
168
+ "phase": "stringstringstringstring" // Phase ID
169
+ },
170
+ "1": {
171
+ "sortBy": "updated",
172
+ "sortOrder": "asc",
173
+ "filter": {},
174
+ "search": "string",
175
+ "limit": 20,
176
+ "skip": 0,
177
+ "includeUsers": true,
178
+ "includeTeams": true,
179
+ "includeHistory": false
180
+ }
181
+ }
182
+ ```
183
+
184
+ **Response**: Activities array with metadata object (up to 20 activities by default, sorted by latest update time).
185
+
186
+ ---
187
+
188
+ ### v2.activities.kanban.load
189
+
190
+ **Endpoint**: `POST /v2/activities/kanban/load`
191
+
192
+ **Request Body**:
193
+ ```json
194
+ {
195
+ "0": "stringstringstringstring" // Activity ID
196
+ }
197
+ ```
198
+
199
+ ---
200
+
201
+ ### v2.activities.kanban.list
202
+
203
+ **Endpoint**: `POST /v2/activities/kanban/list`
204
+
205
+ **Request Body**:
206
+ ```json
207
+ {
208
+ "0": "stringstringstringstring", // Workflow ID
209
+ "1": {
210
+ "filter": {},
211
+ "search": "string",
212
+ "limit": 20,
213
+ "skip": 0,
214
+ "phase": "stringstringstringstring",
215
+ "includeUsers": true,
216
+ "includeTeams": true
217
+ }
218
+ }
219
+ ```
220
+
221
+ ---
222
+
223
+ ### v2.activities.count.linked
224
+
225
+ **Endpoint**: `POST /v2/activities/count/linked`
226
+
227
+ **Request Body**:
228
+ ```json
229
+ {
230
+ "0": ["activityId1", "activityId2"] // Array of activity IDs
231
+ }
232
+ ```
233
+
234
+ ---
235
+
236
+ ### v2.activities.removeFollower
237
+
238
+ **Endpoint**: `POST /v2/activities/removeFollower`
239
+
240
+ **Request Body**:
241
+ ```json
242
+ {
243
+ "0": {
244
+ "activityId": "stringstringstringstring",
245
+ "userId": "stringstringstringstring"
246
+ }
247
+ }
248
+ ```
249
+
250
+ ---
251
+
252
+ ### v2.activities.updatePriority
253
+
254
+ Update one or many priority fields in a phase. Ex: change position for activity in Kanban view. Function only used when change position for an activity in same phase.
255
+
256
+ **Endpoint**: `POST /v2/activities/updatePriority`
257
+
258
+ **Request Body**:
259
+ ```json
260
+ {
261
+ "0": {
262
+ "activityId": "stringstringstringstring",
263
+ "priority": 0
264
+ }
265
+ }
266
+ ```
267
+
268
+ ---
269
+
270
+ ### v2.activities.evaluate
271
+
272
+ Dryrun Function Field function. Evaluation of Function Field function on a given activity and field without saving the result, only returning it.
273
+
274
+ **Endpoint**: `POST /v2/activities/evaluate`
275
+
276
+ **Request Body**:
277
+ ```json
278
+ {
279
+ "0": "stringstringstringstring", // activityId
280
+ "1": "stringstringstringstring", // fieldId
281
+ "2": "string", // code
282
+ "3": {} // FunctionDependency
283
+ }
284
+ ```
285
+
286
+ ---
287
+
288
+ ### v2.activities.evaluateDependencies
289
+
290
+ Get dependency graph to the field.
291
+
292
+ **Endpoint**: `POST /v2/activities/evaluateDependencies`
293
+
294
+ **Request Body**:
295
+ ```json
296
+ {
297
+ "0": ["activityId1", "activityId2"], // activityIds
298
+ "1": ["fieldId1", "fieldId2"] // fieldIds
299
+ }
300
+ ```
301
+
302
+ ---
303
+
304
+ ### v2.activities.dependentFields
305
+
306
+ Get dependent fields of the given fieldId.
307
+
308
+ **Endpoint**: `POST /v2/activities/dependentFields`
309
+
310
+ **Request Body**:
311
+ ```json
312
+ {
313
+ "0": "stringstringstringstring", // processId
314
+ "1": "stringstringstringstring" // fieldId
315
+ }
316
+ ```
317
+
318
+ ---
319
+
320
+ ### v2.activities.nameIsUnique
321
+
322
+ **Endpoint**: `POST /v2/activities/nameIsUnique`
323
+
324
+ **Request Body**:
325
+ ```json
326
+ {
327
+ "0": "stringstringstringstring", // Process ID
328
+ "1": "string" // Activity name to check
329
+ }
330
+ ```
331
+
332
+ ---
333
+
334
+ ## V3 Endpoints
335
+
336
+ ### v3.activity.timeline2
337
+
338
+ **Endpoint**: `POST /v3/activity/timeline2`
339
+
340
+ **Request Body**:
341
+ ```json
342
+ {
343
+ "0": {
344
+ "dateFieldId": "stringstringstringstring",
345
+ "dates": {},
346
+ "groupByFieldId": "stringstringstringstring",
347
+ "phaseIds": [],
348
+ "processId": "stringstringstringstring",
349
+ "resourceIds": [],
350
+ "search": "string",
351
+ "showEmptyResources": true,
352
+ "teamAccount": "stringstringstringstring",
353
+ "user": {}
354
+ }
355
+ }
356
+ ```
357
+
358
+ ---
359
+
360
+ ### v3.activity.count
361
+
362
+ **Endpoint**: `POST /v3/activity/count`
363
+
364
+ **Request Body**:
365
+ ```json
366
+ {
367
+ "0": "stringstringstringstring" // processId (Workflow ID)
368
+ }
369
+ ```
370
+
371
+ ---
372
+
373
+ ### v3.activity.create
374
+
375
+ Creates one single activity. For creating multiple activities at a time use v3.activity.createMany.
376
+
377
+ **Endpoint**: `POST /v3/activity/create`
378
+
379
+ **Request Body**:
380
+ ```json
381
+ {
382
+ "0": "stringstringstringstring", // workflowId
383
+ "1": {
384
+ "name": "string",
385
+ "fields": {},
386
+ "fileIds": [],
387
+ "followerIds": [],
388
+ "location": {},
389
+ "teamId": "stringstringstringstring",
390
+ "phaseId": "stringstringstringstring"
391
+ },
392
+ "2": {
393
+ "teamId": "stringstringstringstring",
394
+ "fileIds": [],
395
+ "followerIds": [],
396
+ "location": {},
397
+ "discussionId": "stringstringstringstring",
398
+ "phaseId": "stringstringstringstring",
399
+ "ignoreRequired": false
400
+ }
401
+ }
402
+ ```
403
+
404
+ ---
405
+
406
+ ### v3.activity.createMany
407
+
408
+ This function is used to create one or more activities at the same time, all in the same workflow.
409
+
410
+ **Important Notes**:
411
+ - workflowId and at least one Activity object is required
412
+ - Options object applies to all activities unless overridden in Activity object
413
+ - Recommend using v3.activity.template.create first to get field structure
414
+ - If no predefined Owner Team, must set teamId in Activity or Options object
415
+
416
+ **Endpoint**: `POST /v3/activity/createMany`
417
+
418
+ **Request Body**:
419
+ ```json
420
+ {
421
+ "0": "stringstringstringstring", // workflowId
422
+ "1": [
423
+ {
424
+ "name": "Activity 1",
425
+ "fields": {
426
+ "fieldId1": "value1"
427
+ },
428
+ "phaseId": "stringstringstringstring"
429
+ }
430
+ ],
431
+ "2": {
432
+ "teamId": "stringstringstringstring",
433
+ "fileIds": [],
434
+ "followerIds": [],
435
+ "location": {},
436
+ "discussionId": "stringstringstringstring",
437
+ "phaseId": "stringstringstringstring",
438
+ "returnDocument": true,
439
+ "ignoreRequired": false
440
+ }
441
+ }
442
+ ```
443
+
444
+ ---
445
+
446
+ ### v3.activity.updateMany
447
+
448
+ Update one or more activities.
449
+
450
+ **Important Notes**:
451
+ - Provide array of objects with at least `_id` of activity to update
452
+ - Options object applies to all unless overridden in Activity object
453
+ - Fields/files/followers left unchanged unless specified
454
+ - Adding `fieldId: null` removes old value
455
+ - Adding `"*": null` to files/followers removes all old values
456
+ - Adding `fileId: true` or `userId: true` sets new value
457
+
458
+ **Endpoint**: `POST /v3/activity/updateMany`
459
+
460
+ **Request Body**:
461
+ ```json
462
+ {
463
+ "0": [
464
+ {
465
+ "_id": "stringstringstringstring",
466
+ "name": "New Name",
467
+ "fields": {
468
+ "fieldId1": "newValue",
469
+ "fieldId2": null // Removes value
470
+ }
471
+ }
472
+ ],
473
+ "1": {
474
+ "fields": {},
475
+ "files": {
476
+ "*": null, // Remove all files
477
+ "fileId1": true // Add this file
478
+ },
479
+ "followers": {},
480
+ "location": {},
481
+ "discussionId": "stringstringstringstring",
482
+ "teamId": "stringstringstringstring",
483
+ "phaseId": "stringstringstringstring",
484
+ "returnDocument": true,
485
+ "ignoreRequired": false
486
+ }
487
+ }
488
+ ```
489
+
490
+ ---
491
+
492
+ ### v3.activity.evaluateMany
493
+
494
+ Dryrun on multiple function fields. Evaluation of Function Field functions on a given activity and field without saving the result, only returning it.
495
+
496
+ **Endpoint**: `POST /v3/activity/evaluateMany`
497
+
498
+ **Request Body**:
499
+ ```json
500
+ {
501
+ "0": {
502
+ "processId": "stringstringstringstring",
503
+ "phaseId": "stringstringstringstring",
504
+ "_id": "stringstringstringstring",
505
+ "name": "string",
506
+ "fields": {}
507
+ }
508
+ }
509
+ ```
510
+
511
+ ---
512
+
513
+ ### v3.activity.permissions
514
+
515
+ Will return the permissions of the user in the specified workspace. As an admin you can check the permissions of other users in your workspace.
516
+
517
+ **Endpoint**: `POST /v3/activity/permissions`
518
+
519
+ **Request Body**:
520
+ ```json
521
+ {
522
+ "0": "stringstringstringstring", // userId
523
+ "1": "stringstringstringstring", // workspaceId
524
+ "2": {
525
+ "details": true,
526
+ "items": {}
527
+ }
528
+ }
529
+ ```
530
+
531
+ ---
532
+
533
+ ### v3.activity.template.create
534
+
535
+ The successful response from calling this endpoint will give you a template with information for making other API calls related to activities. For example, if you want to create activities, you would want to know the fieldIds for the fields you want to add data to.
536
+
537
+ **Activity Field Subtypes**:
538
+ - `text` - String (max 2048 chars)
539
+ - `textpredefinedoptions` - Drop-down with options in field's data array
540
+ - `textarea` - String (max 32768 chars)
541
+ - `numeric` - Numeric value
542
+ - `numericunit` - Numeric value with unit string
543
+ - `date`, `time`, `datetime` - Timestamp (integer) in milliseconds since 1970-01-01 UTC
544
+ - `daterange`, `timerange`, `datetimerange` - Object with "start" and "end" timestamps
545
+ - `country` - Two-letter (alpha-2) ISO 3166 country code
546
+ - `activitylink` - Allowed links listed as workflowId(s) in field's data array
547
+ - `users` - One 24-character userId as string
548
+ - `teams` - One 24-character teamId as string
549
+
550
+ **Endpoint**: `POST /v3/activity/template/create`
551
+
552
+ **Request Body**:
553
+ ```json
554
+ {
555
+ "0": "stringstringstringstring", // workflowId
556
+ "1": "stringstringstringstring" // phaseId
557
+ }
558
+ ```
559
+
560
+ **Response**: Template object with field definitions, types, and IDs.
561
+
562
+ ---
563
+
564
+ ### v3.activity.linkedFrom.overview
565
+
566
+ Loads given amount of linked activities.
567
+
568
+ **Endpoint**: `POST /v3/activity/linkedFrom/overview`
569
+
570
+ **Request Body**:
571
+ ```json
572
+ {
573
+ "0": "stringstringstringstring", // Fetch activities linked to this activityId
574
+ "1": {
575
+ "activityLimit": 5000,
576
+ "includeEmptyWorkflows": false,
577
+ "phaseIds": []
578
+ }
579
+ }
580
+ ```
581
+
582
+ ---
583
+
584
+ ### v3.activity.linkedFrom.search
585
+
586
+ Searches linked activities.
587
+
588
+ **Endpoint**: `POST /v3/activity/linkedFrom/search`
589
+
590
+ **Request Body**:
591
+ ```json
592
+ {
593
+ "0": "stringstringstringstring", // Activity ID to search links for
594
+ "1": "string", // Search string (matches activity name)
595
+ "2": {
596
+ "activityLimit": 250
597
+ }
598
+ }
599
+ ```
600
+
601
+ ---
602
+
603
+ ### v3.activity.linkedFrom.next
604
+
605
+ Loads linked activities after specified activityId.
606
+
607
+ **Endpoint**: `POST /v3/activity/linkedFrom/next`
608
+
609
+ **Request Body**:
610
+ ```json
611
+ {
612
+ "0": "stringstringstringstring", // Fetch activities linked to this activityId
613
+ "1": "stringstringstringstring", // Load activities after this activityId
614
+ "2": {
615
+ "activityLimit": 250
616
+ }
617
+ }
618
+ ```
619
+
620
+ ---
621
+
622
+ ### v3.activity.linkedFrom.refresh
623
+
624
+ Loads specified linked activities in a specified phase.
625
+
626
+ **Endpoint**: `POST /v3/activity/linkedFrom/refresh`
627
+
628
+ **Request Body**:
629
+ ```json
630
+ {
631
+ "0": "stringstringstringstring", // Fetch activities linked to this activityId
632
+ "1": "stringstringstringstring", // Linked phaseId to load from
633
+ "2": {
634
+ "activityIds": [],
635
+ "searchString": "string"
636
+ }
637
+ }
638
+ ```
639
+
640
+ ---
641
+
642
+ ### v3.activity.removed.overview
643
+
644
+ Lists activities from activityRemoved collection.
645
+
646
+ **Endpoint**: `POST /v3/activity/removed/overview`
647
+
648
+ **Request Body**:
649
+ ```json
650
+ {
651
+ "0": ["processId1", "processId2"], // Array of workflow IDs
652
+ "1": {
653
+ "limit": 0,
654
+ "search": "string"
655
+ }
656
+ }
657
+ ```
658
+
659
+ ---
660
+
661
+ ### v3.activity.removed.more
662
+
663
+ Lists activities from activityRemoved collection.
664
+
665
+ **Endpoint**: `POST /v3/activity/removed/more`
666
+
667
+ **Request Body**:
668
+ ```json
669
+ {
670
+ "0": "stringstringstringstring", // phaseId
671
+ "1": {
672
+ "limit": 0,
673
+ "skip": 0,
674
+ "search": "string"
675
+ }
676
+ }
677
+ ```
678
+
679
+ ---
680
+
681
+ ### v3.activity.removed.recover
682
+
683
+ Recover activities from activityRemoved collection.
684
+
685
+ **Endpoint**: `POST /v3/activity/removed/recover`
686
+
687
+ **Request Body**:
688
+ ```json
689
+ {
690
+ "0": ["activityId1", "activityId2"] // Array of activity IDs to recover
691
+ }
692
+ ```
693
+
694
+ ---
695
+
696
+ ### v3.activity.import
697
+
698
+ **Endpoint**: `POST /v3/activity/import`
699
+
700
+ **Request Body**:
701
+ ```json
702
+ {
703
+ "0": "stringstringstringstring", // fileId
704
+ "1": {
705
+ "deleteFile": true
706
+ }
707
+ }
708
+ ```
709
+
710
+ ---
711
+
712
+ ### v3.activity.list
713
+
714
+ **Endpoint**: `POST /v3/activity/list`
715
+
716
+ **Request Body**:
717
+ ```json
718
+ {
719
+ "0": {
720
+ "processId": "stringstringstringstring",
721
+ "phaseId": "stringstringstringstring"
722
+ },
723
+ "1": {
724
+ "sortBy": "updated",
725
+ "sortOrder": "asc",
726
+ "limit": 20,
727
+ "page": 0,
728
+ "skip": 0,
729
+ "includeUsers": true,
730
+ "includeTeams": true,
731
+ "includeDates": false,
732
+ "includeStats": false,
733
+ "includeActivityLinks": true,
734
+ "includeHistory": false,
735
+ "filters": null,
736
+ "filter": null,
737
+ "search": "string",
738
+ "returnFlat": false,
739
+ "readPreference": "primary",
740
+ "useIndexedData": true
741
+ }
742
+ }
743
+ ```
744
+
745
+ ---
746
+
747
+ ### v3.activity.events
748
+
749
+ **Endpoint**: `POST /v3/activity/events`
750
+
751
+ **Request Body**:
752
+ ```json
753
+ {
754
+ "0": 0, // Start Date as iso date string or timestamp
755
+ "1": 0, // End Date as iso date string or timestamp
756
+ "2": {
757
+ "filter": {},
758
+ "fieldIds": [],
759
+ "workflowIds": [],
760
+ "workspaceIds": [],
761
+ "activityIds": [],
762
+ "unassigned": true
763
+ }
764
+ }
765
+ ```
766
+
767
+ ---
768
+
769
+ ### v3.activity.timeline
770
+
771
+ Returns activity events for full-calendar timeline from specified time period and grouped by a field. Allows activity filtering.
772
+
773
+ **Endpoint**: `POST /v3/activity/timeline`
774
+
775
+ **Request Body**:
776
+ ```json
777
+ {
778
+ "0": 0, // Start Date as iso date string or timestamp
779
+ "1": 0, // End Date as iso date string or timestamp
780
+ "2": {
781
+ "filter": {},
782
+ "groupBy": {},
783
+ "resourceIds": [],
784
+ "showEmptyResources": true,
785
+ "fieldIds": [],
786
+ "activityIds": []
787
+ }
788
+ }
789
+ ```
790
+
791
+ ---
792
+
793
+ ### v3.activity.kanban.load
794
+
795
+ **Endpoint**: `POST /v3/activity/kanban/load`
796
+
797
+ **Request Body**:
798
+ ```json
799
+ {
800
+ "0": "stringstringstringstring" // Activity ID
801
+ }
802
+ ```
803
+
804
+ ---
805
+
806
+ ### v3.activity.kanban.list
807
+
808
+ **Endpoint**: `POST /v3/activity/kanban/list`
809
+
810
+ **Request Body**:
811
+ ```json
812
+ {
813
+ "0": "stringstringstringstring", // workflowId
814
+ "1": {
815
+ "filter": {},
816
+ "search": "string",
817
+ "limit": 20,
818
+ "page": 1,
819
+ "skip": 1,
820
+ "phase": "stringstringstringstring",
821
+ "includeUsers": true,
822
+ "includeTeams": true
823
+ }
824
+ }
825
+ ```
826
+
827
+ ---
828
+
829
+ ## Common Response Format
830
+
831
+ Most endpoints return responses in this format:
832
+
833
+ ```json
834
+ {
835
+ "code": 0,
836
+ "msg": "string",
837
+ "details": {},
838
+ "debug": null
839
+ }
840
+ ```
841
+
842
+ - `code: 0` indicates success
843
+ - `code: 403` indicates error/permission denied
844
+ - `details` contains the actual response data
845
+ - `debug` may contain debugging information