@workbuddy/piece-workbuddy-edge 1.0.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 (222) hide show
  1. package/package.json +24 -0
  2. package/src/index.d.ts +8 -0
  3. package/src/index.d.ts.map +1 -0
  4. package/src/index.js +199 -0
  5. package/src/index.js.map +1 -0
  6. package/src/index.ts +354 -0
  7. package/src/lib/actions/attachments.d.ts +17 -0
  8. package/src/lib/actions/attachments.d.ts.map +1 -0
  9. package/src/lib/actions/attachments.js +79 -0
  10. package/src/lib/actions/attachments.js.map +1 -0
  11. package/src/lib/actions/attachments.ts +85 -0
  12. package/src/lib/actions/crm->-companies.d.ts +16 -0
  13. package/src/lib/actions/crm->-companies.d.ts.map +1 -0
  14. package/src/lib/actions/crm->-companies.js +77 -0
  15. package/src/lib/actions/crm->-companies.js.map +1 -0
  16. package/src/lib/actions/crm->-companies.ts +84 -0
  17. package/src/lib/actions/crm->-contacts.d.ts +16 -0
  18. package/src/lib/actions/crm->-contacts.d.ts.map +1 -0
  19. package/src/lib/actions/crm->-contacts.js +77 -0
  20. package/src/lib/actions/crm->-contacts.js.map +1 -0
  21. package/src/lib/actions/crm->-contacts.ts +84 -0
  22. package/src/lib/actions/crm->-contractors.d.ts +16 -0
  23. package/src/lib/actions/crm->-contractors.d.ts.map +1 -0
  24. package/src/lib/actions/crm->-contractors.js +77 -0
  25. package/src/lib/actions/crm->-contractors.js.map +1 -0
  26. package/src/lib/actions/crm->-contractors.ts +84 -0
  27. package/src/lib/actions/crm->-customers.d.ts +35 -0
  28. package/src/lib/actions/crm->-customers.d.ts.map +1 -0
  29. package/src/lib/actions/crm->-customers.js +180 -0
  30. package/src/lib/actions/crm->-customers.js.map +1 -0
  31. package/src/lib/actions/crm->-customers.ts +203 -0
  32. package/src/lib/actions/crm->-employees.d.ts +16 -0
  33. package/src/lib/actions/crm->-employees.d.ts.map +1 -0
  34. package/src/lib/actions/crm->-employees.js +77 -0
  35. package/src/lib/actions/crm->-employees.js.map +1 -0
  36. package/src/lib/actions/crm->-employees.ts +84 -0
  37. package/src/lib/actions/crm->-external-users.d.ts +16 -0
  38. package/src/lib/actions/crm->-external-users.d.ts.map +1 -0
  39. package/src/lib/actions/crm->-external-users.js +77 -0
  40. package/src/lib/actions/crm->-external-users.js.map +1 -0
  41. package/src/lib/actions/crm->-external-users.ts +84 -0
  42. package/src/lib/actions/crm->-invites.d.ts +16 -0
  43. package/src/lib/actions/crm->-invites.d.ts.map +1 -0
  44. package/src/lib/actions/crm->-invites.js +77 -0
  45. package/src/lib/actions/crm->-invites.js.map +1 -0
  46. package/src/lib/actions/crm->-invites.ts +84 -0
  47. package/src/lib/actions/crm->-sites.d.ts +17 -0
  48. package/src/lib/actions/crm->-sites.d.ts.map +1 -0
  49. package/src/lib/actions/crm->-sites.js +86 -0
  50. package/src/lib/actions/crm->-sites.js.map +1 -0
  51. package/src/lib/actions/crm->-sites.ts +95 -0
  52. package/src/lib/actions/crm->-suppliers.d.ts +16 -0
  53. package/src/lib/actions/crm->-suppliers.d.ts.map +1 -0
  54. package/src/lib/actions/crm->-suppliers.js +77 -0
  55. package/src/lib/actions/crm->-suppliers.js.map +1 -0
  56. package/src/lib/actions/crm->-suppliers.ts +84 -0
  57. package/src/lib/actions/data-export.d.ts +11 -0
  58. package/src/lib/actions/data-export.d.ts.map +1 -0
  59. package/src/lib/actions/data-export.js +78 -0
  60. package/src/lib/actions/data-export.js.map +1 -0
  61. package/src/lib/actions/data-export.ts +82 -0
  62. package/src/lib/actions/index.d.ts +25 -0
  63. package/src/lib/actions/index.d.ts.map +1 -0
  64. package/src/lib/actions/index.js +41 -0
  65. package/src/lib/actions/index.js.map +1 -0
  66. package/src/lib/actions/index.ts +24 -0
  67. package/src/lib/actions/jobs->-activities.d.ts +87 -0
  68. package/src/lib/actions/jobs->-activities.d.ts.map +1 -0
  69. package/src/lib/actions/jobs->-activities.js +445 -0
  70. package/src/lib/actions/jobs->-activities.js.map +1 -0
  71. package/src/lib/actions/jobs->-activities.ts +473 -0
  72. package/src/lib/actions/jobs->-contacts.d.ts +31 -0
  73. package/src/lib/actions/jobs->-contacts.d.ts.map +1 -0
  74. package/src/lib/actions/jobs->-contacts.js +129 -0
  75. package/src/lib/actions/jobs->-contacts.js.map +1 -0
  76. package/src/lib/actions/jobs->-contacts.ts +141 -0
  77. package/src/lib/actions/jobs->-files.d.ts +31 -0
  78. package/src/lib/actions/jobs->-files.d.ts.map +1 -0
  79. package/src/lib/actions/jobs->-files.js +129 -0
  80. package/src/lib/actions/jobs->-files.js.map +1 -0
  81. package/src/lib/actions/jobs->-files.ts +141 -0
  82. package/src/lib/actions/jobs->-tasks.d.ts +75 -0
  83. package/src/lib/actions/jobs->-tasks.d.ts.map +1 -0
  84. package/src/lib/actions/jobs->-tasks.js +395 -0
  85. package/src/lib/actions/jobs->-tasks.js.map +1 -0
  86. package/src/lib/actions/jobs->-tasks.ts +417 -0
  87. package/src/lib/actions/jobs.d.ts +148 -0
  88. package/src/lib/actions/jobs.d.ts.map +1 -0
  89. package/src/lib/actions/jobs.js +800 -0
  90. package/src/lib/actions/jobs.js.map +1 -0
  91. package/src/lib/actions/jobs.ts +846 -0
  92. package/src/lib/actions/mcp-context.d.ts +16 -0
  93. package/src/lib/actions/mcp-context.d.ts.map +1 -0
  94. package/src/lib/actions/mcp-context.js +82 -0
  95. package/src/lib/actions/mcp-context.js.map +1 -0
  96. package/src/lib/actions/mcp-context.ts +86 -0
  97. package/src/lib/actions/mcp.d.ts +21 -0
  98. package/src/lib/actions/mcp.d.ts.map +1 -0
  99. package/src/lib/actions/mcp.js +104 -0
  100. package/src/lib/actions/mcp.js.map +1 -0
  101. package/src/lib/actions/mcp.ts +112 -0
  102. package/src/lib/actions/settings.d.ts +57 -0
  103. package/src/lib/actions/settings.d.ts.map +1 -0
  104. package/src/lib/actions/settings.js +257 -0
  105. package/src/lib/actions/settings.js.map +1 -0
  106. package/src/lib/actions/settings.ts +301 -0
  107. package/src/lib/actions/stages->-activities.d.ts +87 -0
  108. package/src/lib/actions/stages->-activities.d.ts.map +1 -0
  109. package/src/lib/actions/stages->-activities.js +445 -0
  110. package/src/lib/actions/stages->-activities.js.map +1 -0
  111. package/src/lib/actions/stages->-activities.ts +473 -0
  112. package/src/lib/actions/stages->-files.d.ts +31 -0
  113. package/src/lib/actions/stages->-files.d.ts.map +1 -0
  114. package/src/lib/actions/stages->-files.js +129 -0
  115. package/src/lib/actions/stages->-files.js.map +1 -0
  116. package/src/lib/actions/stages->-files.ts +141 -0
  117. package/src/lib/actions/stages->-resources.d.ts +58 -0
  118. package/src/lib/actions/stages->-resources.d.ts.map +1 -0
  119. package/src/lib/actions/stages->-resources.js +279 -0
  120. package/src/lib/actions/stages->-resources.js.map +1 -0
  121. package/src/lib/actions/stages->-resources.ts +302 -0
  122. package/src/lib/actions/stages->-tasks.d.ts +77 -0
  123. package/src/lib/actions/stages->-tasks.d.ts.map +1 -0
  124. package/src/lib/actions/stages->-tasks.js +405 -0
  125. package/src/lib/actions/stages->-tasks.js.map +1 -0
  126. package/src/lib/actions/stages->-tasks.ts +427 -0
  127. package/src/lib/actions/stages.d.ts +85 -0
  128. package/src/lib/actions/stages.d.ts.map +1 -0
  129. package/src/lib/actions/stages.js +417 -0
  130. package/src/lib/actions/stages.js.map +1 -0
  131. package/src/lib/actions/stages.ts +452 -0
  132. package/src/lib/actions/webhooks-v2.d.ts +72 -0
  133. package/src/lib/actions/webhooks-v2.d.ts.map +1 -0
  134. package/src/lib/actions/webhooks-v2.js +297 -0
  135. package/src/lib/actions/webhooks-v2.js.map +1 -0
  136. package/src/lib/actions/webhooks-v2.ts +337 -0
  137. package/src/lib/actions/webhooks.d.ts +48 -0
  138. package/src/lib/actions/webhooks.d.ts.map +1 -0
  139. package/src/lib/actions/webhooks.js +292 -0
  140. package/src/lib/actions/webhooks.js.map +1 -0
  141. package/src/lib/actions/webhooks.ts +318 -0
  142. package/src/lib/auth.d.ts +18 -0
  143. package/src/lib/auth.d.ts.map +1 -0
  144. package/src/lib/auth.js +77 -0
  145. package/src/lib/auth.js.map +1 -0
  146. package/src/lib/auth.ts +84 -0
  147. package/src/lib/common/index.d.ts +11 -0
  148. package/src/lib/common/index.d.ts.map +1 -0
  149. package/src/lib/common/index.js +8 -0
  150. package/src/lib/common/index.js.map +1 -0
  151. package/src/lib/common/index.ts +12 -0
  152. package/src/lib/triggers/activity.d.ts +77 -0
  153. package/src/lib/triggers/activity.d.ts.map +1 -0
  154. package/src/lib/triggers/activity.js +241 -0
  155. package/src/lib/triggers/activity.js.map +1 -0
  156. package/src/lib/triggers/activity.ts +261 -0
  157. package/src/lib/triggers/allocation.d.ts +53 -0
  158. package/src/lib/triggers/allocation.d.ts.map +1 -0
  159. package/src/lib/triggers/allocation.js +181 -0
  160. package/src/lib/triggers/allocation.js.map +1 -0
  161. package/src/lib/triggers/allocation.ts +198 -0
  162. package/src/lib/triggers/bill.d.ts +102 -0
  163. package/src/lib/triggers/bill.d.ts.map +1 -0
  164. package/src/lib/triggers/bill.js +327 -0
  165. package/src/lib/triggers/bill.js.map +1 -0
  166. package/src/lib/triggers/bill.ts +355 -0
  167. package/src/lib/triggers/form.d.ts +19 -0
  168. package/src/lib/triggers/form.d.ts.map +1 -0
  169. package/src/lib/triggers/form.js +65 -0
  170. package/src/lib/triggers/form.js.map +1 -0
  171. package/src/lib/triggers/form.ts +68 -0
  172. package/src/lib/triggers/index.d.ts +10 -0
  173. package/src/lib/triggers/index.d.ts.map +1 -0
  174. package/src/lib/triggers/index.js +26 -0
  175. package/src/lib/triggers/index.js.map +1 -0
  176. package/src/lib/triggers/index.ts +9 -0
  177. package/src/lib/triggers/invoice.d.ts +102 -0
  178. package/src/lib/triggers/invoice.d.ts.map +1 -0
  179. package/src/lib/triggers/invoice.js +327 -0
  180. package/src/lib/triggers/invoice.js.map +1 -0
  181. package/src/lib/triggers/invoice.ts +355 -0
  182. package/src/lib/triggers/item.d.ts +53 -0
  183. package/src/lib/triggers/item.d.ts.map +1 -0
  184. package/src/lib/triggers/item.js +181 -0
  185. package/src/lib/triggers/item.js.map +1 -0
  186. package/src/lib/triggers/item.ts +198 -0
  187. package/src/lib/triggers/job.d.ts +102 -0
  188. package/src/lib/triggers/job.d.ts.map +1 -0
  189. package/src/lib/triggers/job.js +419 -0
  190. package/src/lib/triggers/job.js.map +1 -0
  191. package/src/lib/triggers/job.ts +447 -0
  192. package/src/lib/triggers/lead.d.ts +102 -0
  193. package/src/lib/triggers/lead.d.ts.map +1 -0
  194. package/src/lib/triggers/lead.js +319 -0
  195. package/src/lib/triggers/lead.js.map +1 -0
  196. package/src/lib/triggers/lead.ts +347 -0
  197. package/src/lib/triggers/opportunity.d.ts +102 -0
  198. package/src/lib/triggers/opportunity.d.ts.map +1 -0
  199. package/src/lib/triggers/opportunity.js +319 -0
  200. package/src/lib/triggers/opportunity.js.map +1 -0
  201. package/src/lib/triggers/opportunity.ts +347 -0
  202. package/src/lib/triggers/quote.d.ts +102 -0
  203. package/src/lib/triggers/quote.d.ts.map +1 -0
  204. package/src/lib/triggers/quote.js +327 -0
  205. package/src/lib/triggers/quote.js.map +1 -0
  206. package/src/lib/triggers/quote.ts +355 -0
  207. package/src/lib/triggers/site.d.ts +19 -0
  208. package/src/lib/triggers/site.d.ts.map +1 -0
  209. package/src/lib/triggers/site.js +65 -0
  210. package/src/lib/triggers/site.js.map +1 -0
  211. package/src/lib/triggers/site.ts +68 -0
  212. package/src/lib/triggers/stage.d.ts +102 -0
  213. package/src/lib/triggers/stage.d.ts.map +1 -0
  214. package/src/lib/triggers/stage.js +487 -0
  215. package/src/lib/triggers/stage.js.map +1 -0
  216. package/src/lib/triggers/stage.ts +515 -0
  217. package/src/lib/triggers/task.d.ts +102 -0
  218. package/src/lib/triggers/task.d.ts.map +1 -0
  219. package/src/lib/triggers/task.js +323 -0
  220. package/src/lib/triggers/task.js.map +1 -0
  221. package/src/lib/triggers/task.ts +351 -0
  222. package/src/lib/workbuddy.svg +5 -0
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PublicAttachmentController_download = exports.PublicAttachmentController_createUploadSession = void 0;
4
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
5
+ const pieces_common_1 = require("@activepieces/pieces-common");
6
+ const auth_1 = require("../auth");
7
+ exports.PublicAttachmentController_createUploadSession = (0, pieces_framework_1.createAction)({
8
+ name: 'PublicAttachmentController_createUploadSession',
9
+ auth: auth_1.workbuddyAuth,
10
+ displayName: 'Create upload session',
11
+ description: 'Creates an upload session and returns a SAS URL for direct upload to Azure Blob Storage.\n\n**Upload Flow:**\n1. POST to this endpoint with file metadata\n2. Use the returned `uploadUrl` to PUT your file directly to blob storage\n3. Include the required headers from the response in your PUT request\n4. Store the `attachment.id` for later reference\n\n**Constraints:**\n- Maximum file size: 50MB\n- Allowed content types: application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/pdf, text/plain, application/vnd.ms-excel.sheet.macroEnabled.12...\n- Allowed extensions: .doc, .docx, .pdf, .txt, .xlsx, .xls, .xlsm, .csv, .json, .xml...\n- Upload URL expires in 20 minutes',
12
+ props: {
13
+ fileName: pieces_framework_1.Property.ShortText({
14
+ displayName: 'File Name',
15
+ description: '',
16
+ required: true,
17
+ }),
18
+ contentType: pieces_framework_1.Property.ShortText({
19
+ displayName: 'Content Type',
20
+ description: '',
21
+ required: true,
22
+ }),
23
+ size: pieces_framework_1.Property.Number({
24
+ displayName: 'Size',
25
+ description: '',
26
+ required: true,
27
+ }),
28
+ },
29
+ async run(context) {
30
+ const token = await (0, auth_1.getAccessToken)(context.auth);
31
+ const baseUrl = context.auth.props.baseUrl;
32
+ const url = `${baseUrl}/api/v2/public/attachments`;
33
+ const body = {
34
+ fileName: context.propsValue.fileName,
35
+ contentType: context.propsValue.contentType,
36
+ size: context.propsValue.size,
37
+ };
38
+ const response = await pieces_common_1.httpClient.sendRequest({
39
+ method: pieces_common_1.HttpMethod.POST,
40
+ url: `${baseUrl}/api/v2/public/attachments`,
41
+ headers: {
42
+ Authorization: `Bearer ${token}`,
43
+ 'Content-Type': 'application/json',
44
+ 'X-WorkBuddy-Version': '2026-01',
45
+ },
46
+ body: body,
47
+ });
48
+ return response.body;
49
+ },
50
+ });
51
+ exports.PublicAttachmentController_download = (0, pieces_framework_1.createAction)({
52
+ name: 'PublicAttachmentController_download',
53
+ auth: auth_1.workbuddyAuth,
54
+ displayName: 'Download attachment',
55
+ description: 'Downloads an attachment by redirecting to a time-limited SAS URL.\n\n**Response:**\n- 302 redirect to Azure Blob Storage with SAS token\n- Content-Disposition header set for proper filename\n\n**Note:** The SAS URL expires after 20 minutes. If expired, request a new download.',
56
+ props: {
57
+ encodedId: pieces_framework_1.Property.ShortText({
58
+ displayName: 'Encoded Id',
59
+ description: 'Encoded attachment ID from upload response',
60
+ required: true,
61
+ }),
62
+ },
63
+ async run(context) {
64
+ const token = await (0, auth_1.getAccessToken)(context.auth);
65
+ const baseUrl = context.auth.props.baseUrl;
66
+ const url = `${baseUrl}/api/v2/public/attachments/${context.propsValue.encodedId}`;
67
+ const response = await pieces_common_1.httpClient.sendRequest({
68
+ method: pieces_common_1.HttpMethod.GET,
69
+ url: `${baseUrl}/api/v2/public/attachments/${context.propsValue.encodedId}`,
70
+ headers: {
71
+ Authorization: `Bearer ${token}`,
72
+ 'Content-Type': 'application/json',
73
+ 'X-WorkBuddy-Version': '2026-01',
74
+ },
75
+ });
76
+ return response.body;
77
+ },
78
+ });
79
+ //# sourceMappingURL=attachments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attachments.js","sourceRoot":"","sources":["attachments.ts"],"names":[],"mappings":";;;AAAA,qEAAwE;AACxE,+DAAqE;AACrE,kCAAwD;AAE3C,QAAA,8CAA8C,GAAG,IAAA,+BAAY,EAAC;IACzE,IAAI,EAAE,gDAAgD;IACtD,IAAI,EAAE,oBAAa;IACnB,WAAW,EAAE,uBAAuB;IACpC,WAAW,EACT,itBAAitB;IACntB,KAAK,EAAE;QACL,QAAQ,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC3B,WAAW,EAAE,WAAW;YACxB,WAAW,EAAE,EAAE;YACf,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,WAAW,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC9B,WAAW,EAAE,cAAc;YAC3B,WAAW,EAAE,EAAE;YACf,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,IAAI,EAAE,2BAAQ,CAAC,MAAM,CAAC;YACpB,WAAW,EAAE,MAAM;YACnB,WAAW,EAAE,EAAE;YACf,QAAQ,EAAE,IAAI;SACf,CAAC;KACH;IACD,KAAK,CAAC,GAAG,CAAC,OAAO;QACf,MAAM,KAAK,GAAG,MAAM,IAAA,qBAAc,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QAE3C,MAAM,GAAG,GAAG,GAAG,OAAO,4BAA4B,CAAC;QAEnD,MAAM,IAAI,GAAG;YACX,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,QAAQ;YACrC,WAAW,EAAE,OAAO,CAAC,UAAU,CAAC,WAAW;YAC3C,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI;SAC9B,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,0BAAU,CAAC,WAAW,CAAC;YAC5C,MAAM,EAAE,0BAAU,CAAC,IAAI;YACvB,GAAG,EAAE,GAAG,OAAO,4BAA4B;YAC3C,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,KAAK,EAAE;gBAChC,cAAc,EAAE,kBAAkB;gBAClC,qBAAqB,EAAE,SAAS;aACjC;YACD,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;CACF,CAAC,CAAC;AAEU,QAAA,mCAAmC,GAAG,IAAA,+BAAY,EAAC;IAC9D,IAAI,EAAE,qCAAqC;IAC3C,IAAI,EAAE,oBAAa;IACnB,WAAW,EAAE,qBAAqB;IAClC,WAAW,EACT,sRAAsR;IACxR,KAAK,EAAE;QACL,SAAS,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC5B,WAAW,EAAE,YAAY;YACzB,WAAW,EAAE,4CAA4C;YACzD,QAAQ,EAAE,IAAI;SACf,CAAC;KACH;IACD,KAAK,CAAC,GAAG,CAAC,OAAO;QACf,MAAM,KAAK,GAAG,MAAM,IAAA,qBAAc,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QAE3C,MAAM,GAAG,GAAG,GAAG,OAAO,8BAA8B,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QAEnF,MAAM,QAAQ,GAAG,MAAM,0BAAU,CAAC,WAAW,CAAC;YAC5C,MAAM,EAAE,0BAAU,CAAC,GAAG;YACtB,GAAG,EAAE,GAAG,OAAO,8BAA8B,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE;YAC3E,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,KAAK,EAAE;gBAChC,cAAc,EAAE,kBAAkB;gBAClC,qBAAqB,EAAE,SAAS;aACjC;SACF,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,85 @@
1
+ import { createAction, Property } from '@activepieces/pieces-framework';
2
+ import { HttpMethod, httpClient } from '@activepieces/pieces-common';
3
+ import { workbuddyAuth, getAccessToken } from '../auth';
4
+
5
+ export const PublicAttachmentController_createUploadSession = createAction({
6
+ name: 'PublicAttachmentController_createUploadSession',
7
+ auth: workbuddyAuth,
8
+ displayName: 'Create upload session',
9
+ description:
10
+ 'Creates an upload session and returns a SAS URL for direct upload to Azure Blob Storage.\n\n**Upload Flow:**\n1. POST to this endpoint with file metadata\n2. Use the returned `uploadUrl` to PUT your file directly to blob storage\n3. Include the required headers from the response in your PUT request\n4. Store the `attachment.id` for later reference\n\n**Constraints:**\n- Maximum file size: 50MB\n- Allowed content types: application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/pdf, text/plain, application/vnd.ms-excel.sheet.macroEnabled.12...\n- Allowed extensions: .doc, .docx, .pdf, .txt, .xlsx, .xls, .xlsm, .csv, .json, .xml...\n- Upload URL expires in 20 minutes',
11
+ props: {
12
+ fileName: Property.ShortText({
13
+ displayName: 'File Name',
14
+ description: '',
15
+ required: true,
16
+ }),
17
+ contentType: Property.ShortText({
18
+ displayName: 'Content Type',
19
+ description: '',
20
+ required: true,
21
+ }),
22
+ size: Property.Number({
23
+ displayName: 'Size',
24
+ description: '',
25
+ required: true,
26
+ }),
27
+ },
28
+ async run(context) {
29
+ const token = await getAccessToken(context.auth);
30
+ const baseUrl = context.auth.props.baseUrl;
31
+
32
+ const url = `${baseUrl}/api/v2/public/attachments`;
33
+
34
+ const body = {
35
+ fileName: context.propsValue.fileName,
36
+ contentType: context.propsValue.contentType,
37
+ size: context.propsValue.size,
38
+ };
39
+ const response = await httpClient.sendRequest({
40
+ method: HttpMethod.POST,
41
+ url: `${baseUrl}/api/v2/public/attachments`,
42
+ headers: {
43
+ Authorization: `Bearer ${token}`,
44
+ 'Content-Type': 'application/json',
45
+ 'X-WorkBuddy-Version': '2026-01',
46
+ },
47
+ body: body,
48
+ });
49
+
50
+ return response.body;
51
+ },
52
+ });
53
+
54
+ export const PublicAttachmentController_download = createAction({
55
+ name: 'PublicAttachmentController_download',
56
+ auth: workbuddyAuth,
57
+ displayName: 'Download attachment',
58
+ description:
59
+ 'Downloads an attachment by redirecting to a time-limited SAS URL.\n\n**Response:**\n- 302 redirect to Azure Blob Storage with SAS token\n- Content-Disposition header set for proper filename\n\n**Note:** The SAS URL expires after 20 minutes. If expired, request a new download.',
60
+ props: {
61
+ encodedId: Property.ShortText({
62
+ displayName: 'Encoded Id',
63
+ description: 'Encoded attachment ID from upload response',
64
+ required: true,
65
+ }),
66
+ },
67
+ async run(context) {
68
+ const token = await getAccessToken(context.auth);
69
+ const baseUrl = context.auth.props.baseUrl;
70
+
71
+ const url = `${baseUrl}/api/v2/public/attachments/${context.propsValue.encodedId}`;
72
+
73
+ const response = await httpClient.sendRequest({
74
+ method: HttpMethod.GET,
75
+ url: `${baseUrl}/api/v2/public/attachments/${context.propsValue.encodedId}`,
76
+ headers: {
77
+ Authorization: `Bearer ${token}`,
78
+ 'Content-Type': 'application/json',
79
+ 'X-WorkBuddy-Version': '2026-01',
80
+ },
81
+ });
82
+
83
+ return response.body;
84
+ },
85
+ });
@@ -0,0 +1,16 @@
1
+ export declare const PublicCrmCompanyController_list: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").CustomAuthProperty<{
2
+ baseUrl: import("@activepieces/pieces-framework").ShortTextProperty<true>;
3
+ clientId: import("@activepieces/pieces-framework").ShortTextProperty<true>;
4
+ clientSecret: import("@activepieces/pieces-framework").SecretTextProperty<true>;
5
+ }>, {
6
+ cursor: import("@activepieces/pieces-framework").ShortTextProperty<false>;
7
+ limit: import("@activepieces/pieces-framework").NumberProperty<false>;
8
+ }>;
9
+ export declare const PublicCrmCompanyController_getById: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").CustomAuthProperty<{
10
+ baseUrl: import("@activepieces/pieces-framework").ShortTextProperty<true>;
11
+ clientId: import("@activepieces/pieces-framework").ShortTextProperty<true>;
12
+ clientSecret: import("@activepieces/pieces-framework").SecretTextProperty<true>;
13
+ }>, {
14
+ id: import("@activepieces/pieces-framework").ShortTextProperty<true>;
15
+ }>;
16
+ //# sourceMappingURL=crm-%3E-companies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crm->-companies.d.ts","sourceRoot":"","sources":["crm->-companies.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,+BAA+B;;;;;;;EA+C1C,CAAC;AAEH,eAAO,MAAM,kCAAkC;;;;;;EA8B7C,CAAC"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PublicCrmCompanyController_getById = exports.PublicCrmCompanyController_list = void 0;
4
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
5
+ const pieces_common_1 = require("@activepieces/pieces-common");
6
+ const auth_1 = require("../auth");
7
+ exports.PublicCrmCompanyController_list = (0, pieces_framework_1.createAction)({
8
+ name: 'PublicCrmCompanyController_list',
9
+ auth: auth_1.workbuddyAuth,
10
+ displayName: 'List companies',
11
+ description: '',
12
+ props: {
13
+ cursor: pieces_framework_1.Property.ShortText({
14
+ displayName: 'Cursor',
15
+ description: '',
16
+ required: false,
17
+ }),
18
+ limit: pieces_framework_1.Property.Number({
19
+ displayName: 'Limit',
20
+ description: '',
21
+ required: false,
22
+ }),
23
+ },
24
+ async run(context) {
25
+ const token = await (0, auth_1.getAccessToken)(context.auth);
26
+ const baseUrl = context.auth.props.baseUrl;
27
+ const url = `${baseUrl}/companies`;
28
+ const queryParams = new URLSearchParams();
29
+ if (context.propsValue.cursor !== undefined &&
30
+ context.propsValue.cursor !== null &&
31
+ context.propsValue.cursor !== '')
32
+ queryParams.append('cursor', String(context.propsValue.cursor));
33
+ if (context.propsValue.limit !== undefined && context.propsValue.limit !== null)
34
+ queryParams.append('limit', String(context.propsValue.limit));
35
+ const queryString = queryParams.toString();
36
+ const urlWithQuery = queryString ? `${url}?${queryString}` : url;
37
+ const response = await pieces_common_1.httpClient.sendRequest({
38
+ method: pieces_common_1.HttpMethod.GET,
39
+ url: urlWithQuery,
40
+ headers: {
41
+ Authorization: `Bearer ${token}`,
42
+ 'Content-Type': 'application/json',
43
+ 'X-WorkBuddy-Version': '2026-01',
44
+ },
45
+ });
46
+ return response.body;
47
+ },
48
+ });
49
+ exports.PublicCrmCompanyController_getById = (0, pieces_framework_1.createAction)({
50
+ name: 'PublicCrmCompanyController_getById',
51
+ auth: auth_1.workbuddyAuth,
52
+ displayName: 'Get company by ID',
53
+ description: '',
54
+ props: {
55
+ id: pieces_framework_1.Property.ShortText({
56
+ displayName: 'Id',
57
+ description: 'Company ID',
58
+ required: true,
59
+ }),
60
+ },
61
+ async run(context) {
62
+ const token = await (0, auth_1.getAccessToken)(context.auth);
63
+ const baseUrl = context.auth.props.baseUrl;
64
+ const url = `${baseUrl}/api/v2/public/companies/${context.propsValue.id}`;
65
+ const response = await pieces_common_1.httpClient.sendRequest({
66
+ method: pieces_common_1.HttpMethod.GET,
67
+ url: `${baseUrl}/api/v2/public/companies/${context.propsValue.id}`,
68
+ headers: {
69
+ Authorization: `Bearer ${token}`,
70
+ 'Content-Type': 'application/json',
71
+ 'X-WorkBuddy-Version': '2026-01',
72
+ },
73
+ });
74
+ return response.body;
75
+ },
76
+ });
77
+ //# sourceMappingURL=crm-%3E-companies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crm->-companies.js","sourceRoot":"","sources":["crm->-companies.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ import { createAction, Property } from '@activepieces/pieces-framework';
2
+ import { HttpMethod, httpClient } from '@activepieces/pieces-common';
3
+ import { workbuddyAuth, getAccessToken } from '../auth';
4
+
5
+ export const PublicCrmCompanyController_list = createAction({
6
+ name: 'PublicCrmCompanyController_list',
7
+ auth: workbuddyAuth,
8
+ displayName: 'List companies',
9
+ description: '',
10
+ props: {
11
+ cursor: Property.ShortText({
12
+ displayName: 'Cursor',
13
+ description: '',
14
+ required: false,
15
+ }),
16
+ limit: Property.Number({
17
+ displayName: 'Limit',
18
+ description: '',
19
+ required: false,
20
+ }),
21
+ },
22
+ async run(context) {
23
+ const token = await getAccessToken(context.auth);
24
+ const baseUrl = context.auth.props.baseUrl;
25
+
26
+ const url = `${baseUrl}/companies`;
27
+
28
+ const queryParams = new URLSearchParams();
29
+ if (
30
+ context.propsValue.cursor !== undefined &&
31
+ context.propsValue.cursor !== null &&
32
+ context.propsValue.cursor !== ''
33
+ )
34
+ queryParams.append('cursor', String(context.propsValue.cursor));
35
+ if (context.propsValue.limit !== undefined && context.propsValue.limit !== null)
36
+ queryParams.append('limit', String(context.propsValue.limit));
37
+ const queryString = queryParams.toString();
38
+ const urlWithQuery = queryString ? `${url}?${queryString}` : url;
39
+
40
+ const response = await httpClient.sendRequest({
41
+ method: HttpMethod.GET,
42
+ url: urlWithQuery,
43
+ headers: {
44
+ Authorization: `Bearer ${token}`,
45
+ 'Content-Type': 'application/json',
46
+ 'X-WorkBuddy-Version': '2026-01',
47
+ },
48
+ });
49
+
50
+ return response.body;
51
+ },
52
+ });
53
+
54
+ export const PublicCrmCompanyController_getById = createAction({
55
+ name: 'PublicCrmCompanyController_getById',
56
+ auth: workbuddyAuth,
57
+ displayName: 'Get company by ID',
58
+ description: '',
59
+ props: {
60
+ id: Property.ShortText({
61
+ displayName: 'Id',
62
+ description: 'Company ID',
63
+ required: true,
64
+ }),
65
+ },
66
+ async run(context) {
67
+ const token = await getAccessToken(context.auth);
68
+ const baseUrl = context.auth.props.baseUrl;
69
+
70
+ const url = `${baseUrl}/api/v2/public/companies/${context.propsValue.id}`;
71
+
72
+ const response = await httpClient.sendRequest({
73
+ method: HttpMethod.GET,
74
+ url: `${baseUrl}/api/v2/public/companies/${context.propsValue.id}`,
75
+ headers: {
76
+ Authorization: `Bearer ${token}`,
77
+ 'Content-Type': 'application/json',
78
+ 'X-WorkBuddy-Version': '2026-01',
79
+ },
80
+ });
81
+
82
+ return response.body;
83
+ },
84
+ });
@@ -0,0 +1,16 @@
1
+ export declare const PublicCrmContactController_list: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").CustomAuthProperty<{
2
+ baseUrl: import("@activepieces/pieces-framework").ShortTextProperty<true>;
3
+ clientId: import("@activepieces/pieces-framework").ShortTextProperty<true>;
4
+ clientSecret: import("@activepieces/pieces-framework").SecretTextProperty<true>;
5
+ }>, {
6
+ cursor: import("@activepieces/pieces-framework").ShortTextProperty<false>;
7
+ limit: import("@activepieces/pieces-framework").NumberProperty<false>;
8
+ }>;
9
+ export declare const PublicCrmContactController_getById: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").CustomAuthProperty<{
10
+ baseUrl: import("@activepieces/pieces-framework").ShortTextProperty<true>;
11
+ clientId: import("@activepieces/pieces-framework").ShortTextProperty<true>;
12
+ clientSecret: import("@activepieces/pieces-framework").SecretTextProperty<true>;
13
+ }>, {
14
+ id: import("@activepieces/pieces-framework").ShortTextProperty<true>;
15
+ }>;
16
+ //# sourceMappingURL=crm-%3E-contacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crm->-contacts.d.ts","sourceRoot":"","sources":["crm->-contacts.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,+BAA+B;;;;;;;EA+C1C,CAAC;AAEH,eAAO,MAAM,kCAAkC;;;;;;EA8B7C,CAAC"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PublicCrmContactController_getById = exports.PublicCrmContactController_list = void 0;
4
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
5
+ const pieces_common_1 = require("@activepieces/pieces-common");
6
+ const auth_1 = require("../auth");
7
+ exports.PublicCrmContactController_list = (0, pieces_framework_1.createAction)({
8
+ name: 'PublicCrmContactController_list',
9
+ auth: auth_1.workbuddyAuth,
10
+ displayName: 'List contacts (Basic and Login contacts)',
11
+ description: '',
12
+ props: {
13
+ cursor: pieces_framework_1.Property.ShortText({
14
+ displayName: 'Cursor',
15
+ description: '',
16
+ required: false,
17
+ }),
18
+ limit: pieces_framework_1.Property.Number({
19
+ displayName: 'Limit',
20
+ description: '',
21
+ required: false,
22
+ }),
23
+ },
24
+ async run(context) {
25
+ const token = await (0, auth_1.getAccessToken)(context.auth);
26
+ const baseUrl = context.auth.props.baseUrl;
27
+ const url = `${baseUrl}/contacts`;
28
+ const queryParams = new URLSearchParams();
29
+ if (context.propsValue.cursor !== undefined &&
30
+ context.propsValue.cursor !== null &&
31
+ context.propsValue.cursor !== '')
32
+ queryParams.append('cursor', String(context.propsValue.cursor));
33
+ if (context.propsValue.limit !== undefined && context.propsValue.limit !== null)
34
+ queryParams.append('limit', String(context.propsValue.limit));
35
+ const queryString = queryParams.toString();
36
+ const urlWithQuery = queryString ? `${url}?${queryString}` : url;
37
+ const response = await pieces_common_1.httpClient.sendRequest({
38
+ method: pieces_common_1.HttpMethod.GET,
39
+ url: urlWithQuery,
40
+ headers: {
41
+ Authorization: `Bearer ${token}`,
42
+ 'Content-Type': 'application/json',
43
+ 'X-WorkBuddy-Version': '2026-01',
44
+ },
45
+ });
46
+ return response.body;
47
+ },
48
+ });
49
+ exports.PublicCrmContactController_getById = (0, pieces_framework_1.createAction)({
50
+ name: 'PublicCrmContactController_getById',
51
+ auth: auth_1.workbuddyAuth,
52
+ displayName: 'Get contact by ID',
53
+ description: '',
54
+ props: {
55
+ id: pieces_framework_1.Property.ShortText({
56
+ displayName: 'Id',
57
+ description: 'Contact ID',
58
+ required: true,
59
+ }),
60
+ },
61
+ async run(context) {
62
+ const token = await (0, auth_1.getAccessToken)(context.auth);
63
+ const baseUrl = context.auth.props.baseUrl;
64
+ const url = `${baseUrl}/api/v2/public/contacts/${context.propsValue.id}`;
65
+ const response = await pieces_common_1.httpClient.sendRequest({
66
+ method: pieces_common_1.HttpMethod.GET,
67
+ url: `${baseUrl}/api/v2/public/contacts/${context.propsValue.id}`,
68
+ headers: {
69
+ Authorization: `Bearer ${token}`,
70
+ 'Content-Type': 'application/json',
71
+ 'X-WorkBuddy-Version': '2026-01',
72
+ },
73
+ });
74
+ return response.body;
75
+ },
76
+ });
77
+ //# sourceMappingURL=crm-%3E-contacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crm->-contacts.js","sourceRoot":"","sources":["crm->-contacts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ import { createAction, Property } from '@activepieces/pieces-framework';
2
+ import { HttpMethod, httpClient } from '@activepieces/pieces-common';
3
+ import { workbuddyAuth, getAccessToken } from '../auth';
4
+
5
+ export const PublicCrmContactController_list = createAction({
6
+ name: 'PublicCrmContactController_list',
7
+ auth: workbuddyAuth,
8
+ displayName: 'List contacts (Basic and Login contacts)',
9
+ description: '',
10
+ props: {
11
+ cursor: Property.ShortText({
12
+ displayName: 'Cursor',
13
+ description: '',
14
+ required: false,
15
+ }),
16
+ limit: Property.Number({
17
+ displayName: 'Limit',
18
+ description: '',
19
+ required: false,
20
+ }),
21
+ },
22
+ async run(context) {
23
+ const token = await getAccessToken(context.auth);
24
+ const baseUrl = context.auth.props.baseUrl;
25
+
26
+ const url = `${baseUrl}/contacts`;
27
+
28
+ const queryParams = new URLSearchParams();
29
+ if (
30
+ context.propsValue.cursor !== undefined &&
31
+ context.propsValue.cursor !== null &&
32
+ context.propsValue.cursor !== ''
33
+ )
34
+ queryParams.append('cursor', String(context.propsValue.cursor));
35
+ if (context.propsValue.limit !== undefined && context.propsValue.limit !== null)
36
+ queryParams.append('limit', String(context.propsValue.limit));
37
+ const queryString = queryParams.toString();
38
+ const urlWithQuery = queryString ? `${url}?${queryString}` : url;
39
+
40
+ const response = await httpClient.sendRequest({
41
+ method: HttpMethod.GET,
42
+ url: urlWithQuery,
43
+ headers: {
44
+ Authorization: `Bearer ${token}`,
45
+ 'Content-Type': 'application/json',
46
+ 'X-WorkBuddy-Version': '2026-01',
47
+ },
48
+ });
49
+
50
+ return response.body;
51
+ },
52
+ });
53
+
54
+ export const PublicCrmContactController_getById = createAction({
55
+ name: 'PublicCrmContactController_getById',
56
+ auth: workbuddyAuth,
57
+ displayName: 'Get contact by ID',
58
+ description: '',
59
+ props: {
60
+ id: Property.ShortText({
61
+ displayName: 'Id',
62
+ description: 'Contact ID',
63
+ required: true,
64
+ }),
65
+ },
66
+ async run(context) {
67
+ const token = await getAccessToken(context.auth);
68
+ const baseUrl = context.auth.props.baseUrl;
69
+
70
+ const url = `${baseUrl}/api/v2/public/contacts/${context.propsValue.id}`;
71
+
72
+ const response = await httpClient.sendRequest({
73
+ method: HttpMethod.GET,
74
+ url: `${baseUrl}/api/v2/public/contacts/${context.propsValue.id}`,
75
+ headers: {
76
+ Authorization: `Bearer ${token}`,
77
+ 'Content-Type': 'application/json',
78
+ 'X-WorkBuddy-Version': '2026-01',
79
+ },
80
+ });
81
+
82
+ return response.body;
83
+ },
84
+ });
@@ -0,0 +1,16 @@
1
+ export declare const PublicCrmContractorController_list: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").CustomAuthProperty<{
2
+ baseUrl: import("@activepieces/pieces-framework").ShortTextProperty<true>;
3
+ clientId: import("@activepieces/pieces-framework").ShortTextProperty<true>;
4
+ clientSecret: import("@activepieces/pieces-framework").SecretTextProperty<true>;
5
+ }>, {
6
+ cursor: import("@activepieces/pieces-framework").ShortTextProperty<false>;
7
+ limit: import("@activepieces/pieces-framework").NumberProperty<false>;
8
+ }>;
9
+ export declare const PublicCrmContractorController_getById: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").CustomAuthProperty<{
10
+ baseUrl: import("@activepieces/pieces-framework").ShortTextProperty<true>;
11
+ clientId: import("@activepieces/pieces-framework").ShortTextProperty<true>;
12
+ clientSecret: import("@activepieces/pieces-framework").SecretTextProperty<true>;
13
+ }>, {
14
+ id: import("@activepieces/pieces-framework").ShortTextProperty<true>;
15
+ }>;
16
+ //# sourceMappingURL=crm-%3E-contractors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crm->-contractors.d.ts","sourceRoot":"","sources":["crm->-contractors.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,kCAAkC;;;;;;;EA+C7C,CAAC;AAEH,eAAO,MAAM,qCAAqC;;;;;;EA8BhD,CAAC"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PublicCrmContractorController_getById = exports.PublicCrmContractorController_list = void 0;
4
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
5
+ const pieces_common_1 = require("@activepieces/pieces-common");
6
+ const auth_1 = require("../auth");
7
+ exports.PublicCrmContractorController_list = (0, pieces_framework_1.createAction)({
8
+ name: 'PublicCrmContractorController_list',
9
+ auth: auth_1.workbuddyAuth,
10
+ displayName: 'List contractors',
11
+ description: '',
12
+ props: {
13
+ cursor: pieces_framework_1.Property.ShortText({
14
+ displayName: 'Cursor',
15
+ description: '',
16
+ required: false,
17
+ }),
18
+ limit: pieces_framework_1.Property.Number({
19
+ displayName: 'Limit',
20
+ description: '',
21
+ required: false,
22
+ }),
23
+ },
24
+ async run(context) {
25
+ const token = await (0, auth_1.getAccessToken)(context.auth);
26
+ const baseUrl = context.auth.props.baseUrl;
27
+ const url = `${baseUrl}/contractors`;
28
+ const queryParams = new URLSearchParams();
29
+ if (context.propsValue.cursor !== undefined &&
30
+ context.propsValue.cursor !== null &&
31
+ context.propsValue.cursor !== '')
32
+ queryParams.append('cursor', String(context.propsValue.cursor));
33
+ if (context.propsValue.limit !== undefined && context.propsValue.limit !== null)
34
+ queryParams.append('limit', String(context.propsValue.limit));
35
+ const queryString = queryParams.toString();
36
+ const urlWithQuery = queryString ? `${url}?${queryString}` : url;
37
+ const response = await pieces_common_1.httpClient.sendRequest({
38
+ method: pieces_common_1.HttpMethod.GET,
39
+ url: urlWithQuery,
40
+ headers: {
41
+ Authorization: `Bearer ${token}`,
42
+ 'Content-Type': 'application/json',
43
+ 'X-WorkBuddy-Version': '2026-01',
44
+ },
45
+ });
46
+ return response.body;
47
+ },
48
+ });
49
+ exports.PublicCrmContractorController_getById = (0, pieces_framework_1.createAction)({
50
+ name: 'PublicCrmContractorController_getById',
51
+ auth: auth_1.workbuddyAuth,
52
+ displayName: 'Get contractor by ID',
53
+ description: '',
54
+ props: {
55
+ id: pieces_framework_1.Property.ShortText({
56
+ displayName: 'Id',
57
+ description: 'Contractor ID',
58
+ required: true,
59
+ }),
60
+ },
61
+ async run(context) {
62
+ const token = await (0, auth_1.getAccessToken)(context.auth);
63
+ const baseUrl = context.auth.props.baseUrl;
64
+ const url = `${baseUrl}/api/v2/public/contractors/${context.propsValue.id}`;
65
+ const response = await pieces_common_1.httpClient.sendRequest({
66
+ method: pieces_common_1.HttpMethod.GET,
67
+ url: `${baseUrl}/api/v2/public/contractors/${context.propsValue.id}`,
68
+ headers: {
69
+ Authorization: `Bearer ${token}`,
70
+ 'Content-Type': 'application/json',
71
+ 'X-WorkBuddy-Version': '2026-01',
72
+ },
73
+ });
74
+ return response.body;
75
+ },
76
+ });
77
+ //# sourceMappingURL=crm-%3E-contractors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crm->-contractors.js","sourceRoot":"","sources":["crm->-contractors.ts"],"names":[],"mappings":"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"}