@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,323 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.task_deleted_trigger = exports.task_status_changed_trigger = exports.task_updated_trigger = exports.task_created_trigger = 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.task_created_trigger = (0, pieces_framework_1.createTrigger)({
8
+ name: 'TaskCreated',
9
+ auth: auth_1.workbuddyAuth,
10
+ displayName: 'Task Created',
11
+ description: 'Triggered when a new task is created',
12
+ props: {
13
+ filters: pieces_framework_1.Property.Json({
14
+ displayName: 'Filters',
15
+ description: 'Optional webhook filters object. Discover allowed fields with GET /webhooks/entities/:entity/filters.',
16
+ required: false,
17
+ defaultValue: {},
18
+ }),
19
+ },
20
+ sampleData: {
21
+ task: {
22
+ id: '507f1f77bcf86cd799439011',
23
+ name: 'Complete inspection',
24
+ status: 'Open',
25
+ dueDate: '2026-03-10T17:00:00.000Z',
26
+ createdAt: '2026-03-05T10:00:00.000Z',
27
+ assignee: { id: '507f1f77bcf86cd799439011', name: 'John Smith' },
28
+ job: { id: '507f1f77bcf86cd799439011', name: 'J10001' },
29
+ stage: { id: '507f1f77bcf86cd799439011', name: 'Foundation Work' },
30
+ },
31
+ },
32
+ type: pieces_framework_1.TriggerStrategy.WEBHOOK,
33
+ async onEnable(context) {
34
+ const token = await (0, auth_1.getAccessToken)(context.auth);
35
+ const baseUrl = context.auth.props.baseUrl;
36
+ // Register webhook with WorkBuddy v2 API (server handles upsert - reactivates if exists)
37
+ const response = await pieces_common_1.httpClient.sendRequest({
38
+ method: pieces_common_1.HttpMethod.POST,
39
+ url: `${baseUrl}/api/v2/public/webhooks`,
40
+ headers: {
41
+ Authorization: `Bearer ${token}`,
42
+ 'Content-Type': 'application/json',
43
+ 'X-WorkBuddy-Version': '2026-01',
44
+ },
45
+ body: {
46
+ name: `Activepieces: Task Created`,
47
+ url: context.webhookUrl,
48
+ entity: 'task',
49
+ events: ['Task Created'],
50
+ ...(context.propsValue.filters && Object.keys(context.propsValue.filters).length > 0
51
+ ? { filters: context.propsValue.filters }
52
+ : {}),
53
+ workflow: {
54
+ platform: 'activepieces',
55
+ integrationId: context.webhookUrl,
56
+ },
57
+ },
58
+ });
59
+ // Store webhook ID for cleanup
60
+ await context.store.put('webhookId', response.body.data.id);
61
+ },
62
+ async onDisable(context) {
63
+ const token = await (0, auth_1.getAccessToken)(context.auth);
64
+ const baseUrl = context.auth.props.baseUrl;
65
+ const webhookId = await context.store.get('webhookId');
66
+ if (webhookId) {
67
+ // Pause webhook (server keeps it for potential reactivation)
68
+ await pieces_common_1.httpClient.sendRequest({
69
+ method: pieces_common_1.HttpMethod.PATCH,
70
+ url: `${baseUrl}/api/v2/public/webhooks/${webhookId}`,
71
+ headers: {
72
+ Authorization: `Bearer ${token}`,
73
+ 'Content-Type': 'application/json',
74
+ 'X-WorkBuddy-Version': '2026-01',
75
+ },
76
+ body: {
77
+ status: 'paused',
78
+ },
79
+ });
80
+ }
81
+ },
82
+ async run(context) {
83
+ return [context.payload.body];
84
+ },
85
+ });
86
+ exports.task_updated_trigger = (0, pieces_framework_1.createTrigger)({
87
+ name: 'TaskUpdated',
88
+ auth: auth_1.workbuddyAuth,
89
+ displayName: 'Task Updated',
90
+ description: 'Triggered when a task is updated',
91
+ props: {
92
+ filters: pieces_framework_1.Property.Json({
93
+ displayName: 'Filters',
94
+ description: 'Optional webhook filters object. Discover allowed fields with GET /webhooks/entities/:entity/filters.',
95
+ required: false,
96
+ defaultValue: {},
97
+ }),
98
+ },
99
+ sampleData: {
100
+ task: {
101
+ id: '507f1f77bcf86cd799439011',
102
+ name: 'Complete inspection',
103
+ status: 'Open',
104
+ dueDate: '2026-03-10T17:00:00.000Z',
105
+ createdAt: '2026-03-05T10:00:00.000Z',
106
+ assignee: { id: '507f1f77bcf86cd799439011', name: 'John Smith' },
107
+ job: { id: '507f1f77bcf86cd799439011', name: 'J10001' },
108
+ stage: { id: '507f1f77bcf86cd799439011', name: 'Foundation Work' },
109
+ },
110
+ },
111
+ type: pieces_framework_1.TriggerStrategy.WEBHOOK,
112
+ async onEnable(context) {
113
+ const token = await (0, auth_1.getAccessToken)(context.auth);
114
+ const baseUrl = context.auth.props.baseUrl;
115
+ // Register webhook with WorkBuddy v2 API (server handles upsert - reactivates if exists)
116
+ const response = await pieces_common_1.httpClient.sendRequest({
117
+ method: pieces_common_1.HttpMethod.POST,
118
+ url: `${baseUrl}/api/v2/public/webhooks`,
119
+ headers: {
120
+ Authorization: `Bearer ${token}`,
121
+ 'Content-Type': 'application/json',
122
+ 'X-WorkBuddy-Version': '2026-01',
123
+ },
124
+ body: {
125
+ name: `Activepieces: Task Updated`,
126
+ url: context.webhookUrl,
127
+ entity: 'task',
128
+ events: ['Task Updated'],
129
+ ...(context.propsValue.filters && Object.keys(context.propsValue.filters).length > 0
130
+ ? { filters: context.propsValue.filters }
131
+ : {}),
132
+ workflow: {
133
+ platform: 'activepieces',
134
+ integrationId: context.webhookUrl,
135
+ },
136
+ },
137
+ });
138
+ // Store webhook ID for cleanup
139
+ await context.store.put('webhookId', response.body.data.id);
140
+ },
141
+ async onDisable(context) {
142
+ const token = await (0, auth_1.getAccessToken)(context.auth);
143
+ const baseUrl = context.auth.props.baseUrl;
144
+ const webhookId = await context.store.get('webhookId');
145
+ if (webhookId) {
146
+ // Pause webhook (server keeps it for potential reactivation)
147
+ await pieces_common_1.httpClient.sendRequest({
148
+ method: pieces_common_1.HttpMethod.PATCH,
149
+ url: `${baseUrl}/api/v2/public/webhooks/${webhookId}`,
150
+ headers: {
151
+ Authorization: `Bearer ${token}`,
152
+ 'Content-Type': 'application/json',
153
+ 'X-WorkBuddy-Version': '2026-01',
154
+ },
155
+ body: {
156
+ status: 'paused',
157
+ },
158
+ });
159
+ }
160
+ },
161
+ async run(context) {
162
+ return [context.payload.body];
163
+ },
164
+ });
165
+ exports.task_status_changed_trigger = (0, pieces_framework_1.createTrigger)({
166
+ name: 'TaskStatusChanged',
167
+ auth: auth_1.workbuddyAuth,
168
+ displayName: 'Task Status Changed',
169
+ description: 'Triggered when a task status changes',
170
+ props: {
171
+ filters: pieces_framework_1.Property.Json({
172
+ displayName: 'Filters',
173
+ description: 'Optional webhook filters object. Discover allowed fields with GET /webhooks/entities/:entity/filters.',
174
+ required: false,
175
+ defaultValue: {},
176
+ }),
177
+ },
178
+ sampleData: {
179
+ task: {
180
+ id: '507f1f77bcf86cd799439011',
181
+ name: 'Complete inspection',
182
+ status: 'Open',
183
+ dueDate: '2026-03-10T17:00:00.000Z',
184
+ createdAt: '2026-03-05T10:00:00.000Z',
185
+ assignee: { id: '507f1f77bcf86cd799439011', name: 'John Smith' },
186
+ job: { id: '507f1f77bcf86cd799439011', name: 'J10001' },
187
+ stage: { id: '507f1f77bcf86cd799439011', name: 'Foundation Work' },
188
+ },
189
+ },
190
+ type: pieces_framework_1.TriggerStrategy.WEBHOOK,
191
+ async onEnable(context) {
192
+ const token = await (0, auth_1.getAccessToken)(context.auth);
193
+ const baseUrl = context.auth.props.baseUrl;
194
+ // Register webhook with WorkBuddy v2 API (server handles upsert - reactivates if exists)
195
+ const response = await pieces_common_1.httpClient.sendRequest({
196
+ method: pieces_common_1.HttpMethod.POST,
197
+ url: `${baseUrl}/api/v2/public/webhooks`,
198
+ headers: {
199
+ Authorization: `Bearer ${token}`,
200
+ 'Content-Type': 'application/json',
201
+ 'X-WorkBuddy-Version': '2026-01',
202
+ },
203
+ body: {
204
+ name: `Activepieces: Task Status Changed`,
205
+ url: context.webhookUrl,
206
+ entity: 'task',
207
+ events: ['Task Status Changed'],
208
+ ...(context.propsValue.filters && Object.keys(context.propsValue.filters).length > 0
209
+ ? { filters: context.propsValue.filters }
210
+ : {}),
211
+ workflow: {
212
+ platform: 'activepieces',
213
+ integrationId: context.webhookUrl,
214
+ },
215
+ },
216
+ });
217
+ // Store webhook ID for cleanup
218
+ await context.store.put('webhookId', response.body.data.id);
219
+ },
220
+ async onDisable(context) {
221
+ const token = await (0, auth_1.getAccessToken)(context.auth);
222
+ const baseUrl = context.auth.props.baseUrl;
223
+ const webhookId = await context.store.get('webhookId');
224
+ if (webhookId) {
225
+ // Pause webhook (server keeps it for potential reactivation)
226
+ await pieces_common_1.httpClient.sendRequest({
227
+ method: pieces_common_1.HttpMethod.PATCH,
228
+ url: `${baseUrl}/api/v2/public/webhooks/${webhookId}`,
229
+ headers: {
230
+ Authorization: `Bearer ${token}`,
231
+ 'Content-Type': 'application/json',
232
+ 'X-WorkBuddy-Version': '2026-01',
233
+ },
234
+ body: {
235
+ status: 'paused',
236
+ },
237
+ });
238
+ }
239
+ },
240
+ async run(context) {
241
+ return [context.payload.body];
242
+ },
243
+ });
244
+ exports.task_deleted_trigger = (0, pieces_framework_1.createTrigger)({
245
+ name: 'TaskDeleted',
246
+ auth: auth_1.workbuddyAuth,
247
+ displayName: 'Task Deleted',
248
+ description: 'Triggered when a task is deleted',
249
+ props: {
250
+ filters: pieces_framework_1.Property.Json({
251
+ displayName: 'Filters',
252
+ description: 'Optional webhook filters object. Discover allowed fields with GET /webhooks/entities/:entity/filters.',
253
+ required: false,
254
+ defaultValue: {},
255
+ }),
256
+ },
257
+ sampleData: {
258
+ task: {
259
+ id: '507f1f77bcf86cd799439011',
260
+ name: 'Complete inspection',
261
+ status: 'Open',
262
+ dueDate: '2026-03-10T17:00:00.000Z',
263
+ createdAt: '2026-03-05T10:00:00.000Z',
264
+ assignee: { id: '507f1f77bcf86cd799439011', name: 'John Smith' },
265
+ job: { id: '507f1f77bcf86cd799439011', name: 'J10001' },
266
+ stage: { id: '507f1f77bcf86cd799439011', name: 'Foundation Work' },
267
+ },
268
+ },
269
+ type: pieces_framework_1.TriggerStrategy.WEBHOOK,
270
+ async onEnable(context) {
271
+ const token = await (0, auth_1.getAccessToken)(context.auth);
272
+ const baseUrl = context.auth.props.baseUrl;
273
+ // Register webhook with WorkBuddy v2 API (server handles upsert - reactivates if exists)
274
+ const response = await pieces_common_1.httpClient.sendRequest({
275
+ method: pieces_common_1.HttpMethod.POST,
276
+ url: `${baseUrl}/api/v2/public/webhooks`,
277
+ headers: {
278
+ Authorization: `Bearer ${token}`,
279
+ 'Content-Type': 'application/json',
280
+ 'X-WorkBuddy-Version': '2026-01',
281
+ },
282
+ body: {
283
+ name: `Activepieces: Task Deleted`,
284
+ url: context.webhookUrl,
285
+ entity: 'task',
286
+ events: ['Task Deleted'],
287
+ ...(context.propsValue.filters && Object.keys(context.propsValue.filters).length > 0
288
+ ? { filters: context.propsValue.filters }
289
+ : {}),
290
+ workflow: {
291
+ platform: 'activepieces',
292
+ integrationId: context.webhookUrl,
293
+ },
294
+ },
295
+ });
296
+ // Store webhook ID for cleanup
297
+ await context.store.put('webhookId', response.body.data.id);
298
+ },
299
+ async onDisable(context) {
300
+ const token = await (0, auth_1.getAccessToken)(context.auth);
301
+ const baseUrl = context.auth.props.baseUrl;
302
+ const webhookId = await context.store.get('webhookId');
303
+ if (webhookId) {
304
+ // Pause webhook (server keeps it for potential reactivation)
305
+ await pieces_common_1.httpClient.sendRequest({
306
+ method: pieces_common_1.HttpMethod.PATCH,
307
+ url: `${baseUrl}/api/v2/public/webhooks/${webhookId}`,
308
+ headers: {
309
+ Authorization: `Bearer ${token}`,
310
+ 'Content-Type': 'application/json',
311
+ 'X-WorkBuddy-Version': '2026-01',
312
+ },
313
+ body: {
314
+ status: 'paused',
315
+ },
316
+ });
317
+ }
318
+ },
319
+ async run(context) {
320
+ return [context.payload.body];
321
+ },
322
+ });
323
+ //# sourceMappingURL=task.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.js","sourceRoot":"","sources":["task.ts"],"names":[],"mappings":";;;AAAA,qEAA0F;AAC1F,+DAAqE;AACrE,kCAAwD;AAE3C,QAAA,oBAAoB,GAAG,IAAA,gCAAa,EAAC;IAChD,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,oBAAa;IACnB,WAAW,EAAE,cAAc;IAC3B,WAAW,EAAE,sCAAsC;IACnD,KAAK,EAAE;QACL,OAAO,EAAE,2BAAQ,CAAC,IAAI,CAAC;YACrB,WAAW,EAAE,SAAS;YACtB,WAAW,EACT,uGAAuG;YACzG,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,EAAE;SACjB,CAAC;KACH;IACD,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,EAAE,EAAE,0BAA0B;YAC9B,IAAI,EAAE,qBAAqB;YAC3B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,0BAA0B;YACnC,SAAS,EAAE,0BAA0B;YACrC,QAAQ,EAAE,EAAE,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,YAAY,EAAE;YAChE,GAAG,EAAE,EAAE,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,QAAQ,EAAE;YACvD,KAAK,EAAE,EAAE,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,iBAAiB,EAAE;SACnE;KACF;IACD,IAAI,EAAE,kCAAe,CAAC,OAAO;IAE7B,KAAK,CAAC,QAAQ,CAAC,OAAO;QACpB,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,yFAAyF;QACzF,MAAM,QAAQ,GAAG,MAAM,0BAAU,CAAC,WAAW,CAA2B;YACtE,MAAM,EAAE,0BAAU,CAAC,IAAI;YACvB,GAAG,EAAE,GAAG,OAAO,yBAAyB;YACxC,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,KAAK,EAAE;gBAChC,cAAc,EAAE,kBAAkB;gBAClC,qBAAqB,EAAE,SAAS;aACjC;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,4BAA4B;gBAClC,GAAG,EAAE,OAAO,CAAC,UAAU;gBACvB,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,CAAC,cAAc,CAAC;gBACxB,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC;oBAClF,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE;oBACzC,CAAC,CAAC,EAAE,CAAC;gBACP,QAAQ,EAAE;oBACR,QAAQ,EAAE,cAAc;oBACxB,aAAa,EAAE,OAAO,CAAC,UAAU;iBAClC;aACF;SACF,CAAC,CAAC;QAEH,+BAA+B;QAC/B,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAO;QACrB,MAAM,KAAK,GAAG,MAAM,IAAA,qBAAc,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QAC3C,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAS,WAAW,CAAC,CAAC;QAE/D,IAAI,SAAS,EAAE,CAAC;YACd,6DAA6D;YAC7D,MAAM,0BAAU,CAAC,WAAW,CAAC;gBAC3B,MAAM,EAAE,0BAAU,CAAC,KAAK;gBACxB,GAAG,EAAE,GAAG,OAAO,2BAA2B,SAAS,EAAE;gBACrD,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,KAAK,EAAE;oBAChC,cAAc,EAAE,kBAAkB;oBAClC,qBAAqB,EAAE,SAAS;iBACjC;gBACD,IAAI,EAAE;oBACJ,MAAM,EAAE,QAAQ;iBACjB;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,OAAO;QACf,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;CACF,CAAC,CAAC;AAEU,QAAA,oBAAoB,GAAG,IAAA,gCAAa,EAAC;IAChD,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,oBAAa;IACnB,WAAW,EAAE,cAAc;IAC3B,WAAW,EAAE,kCAAkC;IAC/C,KAAK,EAAE;QACL,OAAO,EAAE,2BAAQ,CAAC,IAAI,CAAC;YACrB,WAAW,EAAE,SAAS;YACtB,WAAW,EACT,uGAAuG;YACzG,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,EAAE;SACjB,CAAC;KACH;IACD,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,EAAE,EAAE,0BAA0B;YAC9B,IAAI,EAAE,qBAAqB;YAC3B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,0BAA0B;YACnC,SAAS,EAAE,0BAA0B;YACrC,QAAQ,EAAE,EAAE,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,YAAY,EAAE;YAChE,GAAG,EAAE,EAAE,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,QAAQ,EAAE;YACvD,KAAK,EAAE,EAAE,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,iBAAiB,EAAE;SACnE;KACF;IACD,IAAI,EAAE,kCAAe,CAAC,OAAO;IAE7B,KAAK,CAAC,QAAQ,CAAC,OAAO;QACpB,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,yFAAyF;QACzF,MAAM,QAAQ,GAAG,MAAM,0BAAU,CAAC,WAAW,CAA2B;YACtE,MAAM,EAAE,0BAAU,CAAC,IAAI;YACvB,GAAG,EAAE,GAAG,OAAO,yBAAyB;YACxC,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,KAAK,EAAE;gBAChC,cAAc,EAAE,kBAAkB;gBAClC,qBAAqB,EAAE,SAAS;aACjC;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,4BAA4B;gBAClC,GAAG,EAAE,OAAO,CAAC,UAAU;gBACvB,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,CAAC,cAAc,CAAC;gBACxB,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC;oBAClF,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE;oBACzC,CAAC,CAAC,EAAE,CAAC;gBACP,QAAQ,EAAE;oBACR,QAAQ,EAAE,cAAc;oBACxB,aAAa,EAAE,OAAO,CAAC,UAAU;iBAClC;aACF;SACF,CAAC,CAAC;QAEH,+BAA+B;QAC/B,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAO;QACrB,MAAM,KAAK,GAAG,MAAM,IAAA,qBAAc,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QAC3C,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAS,WAAW,CAAC,CAAC;QAE/D,IAAI,SAAS,EAAE,CAAC;YACd,6DAA6D;YAC7D,MAAM,0BAAU,CAAC,WAAW,CAAC;gBAC3B,MAAM,EAAE,0BAAU,CAAC,KAAK;gBACxB,GAAG,EAAE,GAAG,OAAO,2BAA2B,SAAS,EAAE;gBACrD,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,KAAK,EAAE;oBAChC,cAAc,EAAE,kBAAkB;oBAClC,qBAAqB,EAAE,SAAS;iBACjC;gBACD,IAAI,EAAE;oBACJ,MAAM,EAAE,QAAQ;iBACjB;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,OAAO;QACf,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;CACF,CAAC,CAAC;AAEU,QAAA,2BAA2B,GAAG,IAAA,gCAAa,EAAC;IACvD,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,oBAAa;IACnB,WAAW,EAAE,qBAAqB;IAClC,WAAW,EAAE,sCAAsC;IACnD,KAAK,EAAE;QACL,OAAO,EAAE,2BAAQ,CAAC,IAAI,CAAC;YACrB,WAAW,EAAE,SAAS;YACtB,WAAW,EACT,uGAAuG;YACzG,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,EAAE;SACjB,CAAC;KACH;IACD,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,EAAE,EAAE,0BAA0B;YAC9B,IAAI,EAAE,qBAAqB;YAC3B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,0BAA0B;YACnC,SAAS,EAAE,0BAA0B;YACrC,QAAQ,EAAE,EAAE,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,YAAY,EAAE;YAChE,GAAG,EAAE,EAAE,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,QAAQ,EAAE;YACvD,KAAK,EAAE,EAAE,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,iBAAiB,EAAE;SACnE;KACF;IACD,IAAI,EAAE,kCAAe,CAAC,OAAO;IAE7B,KAAK,CAAC,QAAQ,CAAC,OAAO;QACpB,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,yFAAyF;QACzF,MAAM,QAAQ,GAAG,MAAM,0BAAU,CAAC,WAAW,CAA2B;YACtE,MAAM,EAAE,0BAAU,CAAC,IAAI;YACvB,GAAG,EAAE,GAAG,OAAO,yBAAyB;YACxC,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,KAAK,EAAE;gBAChC,cAAc,EAAE,kBAAkB;gBAClC,qBAAqB,EAAE,SAAS;aACjC;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,mCAAmC;gBACzC,GAAG,EAAE,OAAO,CAAC,UAAU;gBACvB,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,CAAC,qBAAqB,CAAC;gBAC/B,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC;oBAClF,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE;oBACzC,CAAC,CAAC,EAAE,CAAC;gBACP,QAAQ,EAAE;oBACR,QAAQ,EAAE,cAAc;oBACxB,aAAa,EAAE,OAAO,CAAC,UAAU;iBAClC;aACF;SACF,CAAC,CAAC;QAEH,+BAA+B;QAC/B,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAO;QACrB,MAAM,KAAK,GAAG,MAAM,IAAA,qBAAc,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QAC3C,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAS,WAAW,CAAC,CAAC;QAE/D,IAAI,SAAS,EAAE,CAAC;YACd,6DAA6D;YAC7D,MAAM,0BAAU,CAAC,WAAW,CAAC;gBAC3B,MAAM,EAAE,0BAAU,CAAC,KAAK;gBACxB,GAAG,EAAE,GAAG,OAAO,2BAA2B,SAAS,EAAE;gBACrD,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,KAAK,EAAE;oBAChC,cAAc,EAAE,kBAAkB;oBAClC,qBAAqB,EAAE,SAAS;iBACjC;gBACD,IAAI,EAAE;oBACJ,MAAM,EAAE,QAAQ;iBACjB;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,OAAO;QACf,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;CACF,CAAC,CAAC;AAEU,QAAA,oBAAoB,GAAG,IAAA,gCAAa,EAAC;IAChD,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,oBAAa;IACnB,WAAW,EAAE,cAAc;IAC3B,WAAW,EAAE,kCAAkC;IAC/C,KAAK,EAAE;QACL,OAAO,EAAE,2BAAQ,CAAC,IAAI,CAAC;YACrB,WAAW,EAAE,SAAS;YACtB,WAAW,EACT,uGAAuG;YACzG,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,EAAE;SACjB,CAAC;KACH;IACD,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,EAAE,EAAE,0BAA0B;YAC9B,IAAI,EAAE,qBAAqB;YAC3B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,0BAA0B;YACnC,SAAS,EAAE,0BAA0B;YACrC,QAAQ,EAAE,EAAE,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,YAAY,EAAE;YAChE,GAAG,EAAE,EAAE,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,QAAQ,EAAE;YACvD,KAAK,EAAE,EAAE,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,iBAAiB,EAAE;SACnE;KACF;IACD,IAAI,EAAE,kCAAe,CAAC,OAAO;IAE7B,KAAK,CAAC,QAAQ,CAAC,OAAO;QACpB,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,yFAAyF;QACzF,MAAM,QAAQ,GAAG,MAAM,0BAAU,CAAC,WAAW,CAA2B;YACtE,MAAM,EAAE,0BAAU,CAAC,IAAI;YACvB,GAAG,EAAE,GAAG,OAAO,yBAAyB;YACxC,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,KAAK,EAAE;gBAChC,cAAc,EAAE,kBAAkB;gBAClC,qBAAqB,EAAE,SAAS;aACjC;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,4BAA4B;gBAClC,GAAG,EAAE,OAAO,CAAC,UAAU;gBACvB,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,CAAC,cAAc,CAAC;gBACxB,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC;oBAClF,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE;oBACzC,CAAC,CAAC,EAAE,CAAC;gBACP,QAAQ,EAAE;oBACR,QAAQ,EAAE,cAAc;oBACxB,aAAa,EAAE,OAAO,CAAC,UAAU;iBAClC;aACF;SACF,CAAC,CAAC;QAEH,+BAA+B;QAC/B,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAO;QACrB,MAAM,KAAK,GAAG,MAAM,IAAA,qBAAc,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QAC3C,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAS,WAAW,CAAC,CAAC;QAE/D,IAAI,SAAS,EAAE,CAAC;YACd,6DAA6D;YAC7D,MAAM,0BAAU,CAAC,WAAW,CAAC;gBAC3B,MAAM,EAAE,0BAAU,CAAC,KAAK;gBACxB,GAAG,EAAE,GAAG,OAAO,2BAA2B,SAAS,EAAE;gBACrD,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,KAAK,EAAE;oBAChC,cAAc,EAAE,kBAAkB;oBAClC,qBAAqB,EAAE,SAAS;iBACjC;gBACD,IAAI,EAAE;oBACJ,MAAM,EAAE,QAAQ;iBACjB;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,OAAO;QACf,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,351 @@
1
+ import { createTrigger, TriggerStrategy, Property } from '@activepieces/pieces-framework';
2
+ import { HttpMethod, httpClient } from '@activepieces/pieces-common';
3
+ import { workbuddyAuth, getAccessToken } from '../auth';
4
+
5
+ export const task_created_trigger = createTrigger({
6
+ name: 'TaskCreated',
7
+ auth: workbuddyAuth,
8
+ displayName: 'Task Created',
9
+ description: 'Triggered when a new task is created',
10
+ props: {
11
+ filters: Property.Json({
12
+ displayName: 'Filters',
13
+ description:
14
+ 'Optional webhook filters object. Discover allowed fields with GET /webhooks/entities/:entity/filters.',
15
+ required: false,
16
+ defaultValue: {},
17
+ }),
18
+ },
19
+ sampleData: {
20
+ task: {
21
+ id: '507f1f77bcf86cd799439011',
22
+ name: 'Complete inspection',
23
+ status: 'Open',
24
+ dueDate: '2026-03-10T17:00:00.000Z',
25
+ createdAt: '2026-03-05T10:00:00.000Z',
26
+ assignee: { id: '507f1f77bcf86cd799439011', name: 'John Smith' },
27
+ job: { id: '507f1f77bcf86cd799439011', name: 'J10001' },
28
+ stage: { id: '507f1f77bcf86cd799439011', name: 'Foundation Work' },
29
+ },
30
+ },
31
+ type: TriggerStrategy.WEBHOOK,
32
+
33
+ async onEnable(context) {
34
+ const token = await getAccessToken(context.auth);
35
+ const baseUrl = context.auth.props.baseUrl;
36
+
37
+ // Register webhook with WorkBuddy v2 API (server handles upsert - reactivates if exists)
38
+ const response = await httpClient.sendRequest<{ data: { id: string } }>({
39
+ method: HttpMethod.POST,
40
+ url: `${baseUrl}/api/v2/public/webhooks`,
41
+ headers: {
42
+ Authorization: `Bearer ${token}`,
43
+ 'Content-Type': 'application/json',
44
+ 'X-WorkBuddy-Version': '2026-01',
45
+ },
46
+ body: {
47
+ name: `Activepieces: Task Created`,
48
+ url: context.webhookUrl,
49
+ entity: 'task',
50
+ events: ['Task Created'],
51
+ ...(context.propsValue.filters && Object.keys(context.propsValue.filters).length > 0
52
+ ? { filters: context.propsValue.filters }
53
+ : {}),
54
+ workflow: {
55
+ platform: 'activepieces',
56
+ integrationId: context.webhookUrl,
57
+ },
58
+ },
59
+ });
60
+
61
+ // Store webhook ID for cleanup
62
+ await context.store.put('webhookId', response.body.data.id);
63
+ },
64
+
65
+ async onDisable(context) {
66
+ const token = await getAccessToken(context.auth);
67
+ const baseUrl = context.auth.props.baseUrl;
68
+ const webhookId = await context.store.get<string>('webhookId');
69
+
70
+ if (webhookId) {
71
+ // Pause webhook (server keeps it for potential reactivation)
72
+ await httpClient.sendRequest({
73
+ method: HttpMethod.PATCH,
74
+ url: `${baseUrl}/api/v2/public/webhooks/${webhookId}`,
75
+ headers: {
76
+ Authorization: `Bearer ${token}`,
77
+ 'Content-Type': 'application/json',
78
+ 'X-WorkBuddy-Version': '2026-01',
79
+ },
80
+ body: {
81
+ status: 'paused',
82
+ },
83
+ });
84
+ }
85
+ },
86
+
87
+ async run(context) {
88
+ return [context.payload.body];
89
+ },
90
+ });
91
+
92
+ export const task_updated_trigger = createTrigger({
93
+ name: 'TaskUpdated',
94
+ auth: workbuddyAuth,
95
+ displayName: 'Task Updated',
96
+ description: 'Triggered when a task is updated',
97
+ props: {
98
+ filters: Property.Json({
99
+ displayName: 'Filters',
100
+ description:
101
+ 'Optional webhook filters object. Discover allowed fields with GET /webhooks/entities/:entity/filters.',
102
+ required: false,
103
+ defaultValue: {},
104
+ }),
105
+ },
106
+ sampleData: {
107
+ task: {
108
+ id: '507f1f77bcf86cd799439011',
109
+ name: 'Complete inspection',
110
+ status: 'Open',
111
+ dueDate: '2026-03-10T17:00:00.000Z',
112
+ createdAt: '2026-03-05T10:00:00.000Z',
113
+ assignee: { id: '507f1f77bcf86cd799439011', name: 'John Smith' },
114
+ job: { id: '507f1f77bcf86cd799439011', name: 'J10001' },
115
+ stage: { id: '507f1f77bcf86cd799439011', name: 'Foundation Work' },
116
+ },
117
+ },
118
+ type: TriggerStrategy.WEBHOOK,
119
+
120
+ async onEnable(context) {
121
+ const token = await getAccessToken(context.auth);
122
+ const baseUrl = context.auth.props.baseUrl;
123
+
124
+ // Register webhook with WorkBuddy v2 API (server handles upsert - reactivates if exists)
125
+ const response = await httpClient.sendRequest<{ data: { id: string } }>({
126
+ method: HttpMethod.POST,
127
+ url: `${baseUrl}/api/v2/public/webhooks`,
128
+ headers: {
129
+ Authorization: `Bearer ${token}`,
130
+ 'Content-Type': 'application/json',
131
+ 'X-WorkBuddy-Version': '2026-01',
132
+ },
133
+ body: {
134
+ name: `Activepieces: Task Updated`,
135
+ url: context.webhookUrl,
136
+ entity: 'task',
137
+ events: ['Task Updated'],
138
+ ...(context.propsValue.filters && Object.keys(context.propsValue.filters).length > 0
139
+ ? { filters: context.propsValue.filters }
140
+ : {}),
141
+ workflow: {
142
+ platform: 'activepieces',
143
+ integrationId: context.webhookUrl,
144
+ },
145
+ },
146
+ });
147
+
148
+ // Store webhook ID for cleanup
149
+ await context.store.put('webhookId', response.body.data.id);
150
+ },
151
+
152
+ async onDisable(context) {
153
+ const token = await getAccessToken(context.auth);
154
+ const baseUrl = context.auth.props.baseUrl;
155
+ const webhookId = await context.store.get<string>('webhookId');
156
+
157
+ if (webhookId) {
158
+ // Pause webhook (server keeps it for potential reactivation)
159
+ await httpClient.sendRequest({
160
+ method: HttpMethod.PATCH,
161
+ url: `${baseUrl}/api/v2/public/webhooks/${webhookId}`,
162
+ headers: {
163
+ Authorization: `Bearer ${token}`,
164
+ 'Content-Type': 'application/json',
165
+ 'X-WorkBuddy-Version': '2026-01',
166
+ },
167
+ body: {
168
+ status: 'paused',
169
+ },
170
+ });
171
+ }
172
+ },
173
+
174
+ async run(context) {
175
+ return [context.payload.body];
176
+ },
177
+ });
178
+
179
+ export const task_status_changed_trigger = createTrigger({
180
+ name: 'TaskStatusChanged',
181
+ auth: workbuddyAuth,
182
+ displayName: 'Task Status Changed',
183
+ description: 'Triggered when a task status changes',
184
+ props: {
185
+ filters: Property.Json({
186
+ displayName: 'Filters',
187
+ description:
188
+ 'Optional webhook filters object. Discover allowed fields with GET /webhooks/entities/:entity/filters.',
189
+ required: false,
190
+ defaultValue: {},
191
+ }),
192
+ },
193
+ sampleData: {
194
+ task: {
195
+ id: '507f1f77bcf86cd799439011',
196
+ name: 'Complete inspection',
197
+ status: 'Open',
198
+ dueDate: '2026-03-10T17:00:00.000Z',
199
+ createdAt: '2026-03-05T10:00:00.000Z',
200
+ assignee: { id: '507f1f77bcf86cd799439011', name: 'John Smith' },
201
+ job: { id: '507f1f77bcf86cd799439011', name: 'J10001' },
202
+ stage: { id: '507f1f77bcf86cd799439011', name: 'Foundation Work' },
203
+ },
204
+ },
205
+ type: TriggerStrategy.WEBHOOK,
206
+
207
+ async onEnable(context) {
208
+ const token = await getAccessToken(context.auth);
209
+ const baseUrl = context.auth.props.baseUrl;
210
+
211
+ // Register webhook with WorkBuddy v2 API (server handles upsert - reactivates if exists)
212
+ const response = await httpClient.sendRequest<{ data: { id: string } }>({
213
+ method: HttpMethod.POST,
214
+ url: `${baseUrl}/api/v2/public/webhooks`,
215
+ headers: {
216
+ Authorization: `Bearer ${token}`,
217
+ 'Content-Type': 'application/json',
218
+ 'X-WorkBuddy-Version': '2026-01',
219
+ },
220
+ body: {
221
+ name: `Activepieces: Task Status Changed`,
222
+ url: context.webhookUrl,
223
+ entity: 'task',
224
+ events: ['Task Status Changed'],
225
+ ...(context.propsValue.filters && Object.keys(context.propsValue.filters).length > 0
226
+ ? { filters: context.propsValue.filters }
227
+ : {}),
228
+ workflow: {
229
+ platform: 'activepieces',
230
+ integrationId: context.webhookUrl,
231
+ },
232
+ },
233
+ });
234
+
235
+ // Store webhook ID for cleanup
236
+ await context.store.put('webhookId', response.body.data.id);
237
+ },
238
+
239
+ async onDisable(context) {
240
+ const token = await getAccessToken(context.auth);
241
+ const baseUrl = context.auth.props.baseUrl;
242
+ const webhookId = await context.store.get<string>('webhookId');
243
+
244
+ if (webhookId) {
245
+ // Pause webhook (server keeps it for potential reactivation)
246
+ await httpClient.sendRequest({
247
+ method: HttpMethod.PATCH,
248
+ url: `${baseUrl}/api/v2/public/webhooks/${webhookId}`,
249
+ headers: {
250
+ Authorization: `Bearer ${token}`,
251
+ 'Content-Type': 'application/json',
252
+ 'X-WorkBuddy-Version': '2026-01',
253
+ },
254
+ body: {
255
+ status: 'paused',
256
+ },
257
+ });
258
+ }
259
+ },
260
+
261
+ async run(context) {
262
+ return [context.payload.body];
263
+ },
264
+ });
265
+
266
+ export const task_deleted_trigger = createTrigger({
267
+ name: 'TaskDeleted',
268
+ auth: workbuddyAuth,
269
+ displayName: 'Task Deleted',
270
+ description: 'Triggered when a task is deleted',
271
+ props: {
272
+ filters: Property.Json({
273
+ displayName: 'Filters',
274
+ description:
275
+ 'Optional webhook filters object. Discover allowed fields with GET /webhooks/entities/:entity/filters.',
276
+ required: false,
277
+ defaultValue: {},
278
+ }),
279
+ },
280
+ sampleData: {
281
+ task: {
282
+ id: '507f1f77bcf86cd799439011',
283
+ name: 'Complete inspection',
284
+ status: 'Open',
285
+ dueDate: '2026-03-10T17:00:00.000Z',
286
+ createdAt: '2026-03-05T10:00:00.000Z',
287
+ assignee: { id: '507f1f77bcf86cd799439011', name: 'John Smith' },
288
+ job: { id: '507f1f77bcf86cd799439011', name: 'J10001' },
289
+ stage: { id: '507f1f77bcf86cd799439011', name: 'Foundation Work' },
290
+ },
291
+ },
292
+ type: TriggerStrategy.WEBHOOK,
293
+
294
+ async onEnable(context) {
295
+ const token = await getAccessToken(context.auth);
296
+ const baseUrl = context.auth.props.baseUrl;
297
+
298
+ // Register webhook with WorkBuddy v2 API (server handles upsert - reactivates if exists)
299
+ const response = await httpClient.sendRequest<{ data: { id: string } }>({
300
+ method: HttpMethod.POST,
301
+ url: `${baseUrl}/api/v2/public/webhooks`,
302
+ headers: {
303
+ Authorization: `Bearer ${token}`,
304
+ 'Content-Type': 'application/json',
305
+ 'X-WorkBuddy-Version': '2026-01',
306
+ },
307
+ body: {
308
+ name: `Activepieces: Task Deleted`,
309
+ url: context.webhookUrl,
310
+ entity: 'task',
311
+ events: ['Task Deleted'],
312
+ ...(context.propsValue.filters && Object.keys(context.propsValue.filters).length > 0
313
+ ? { filters: context.propsValue.filters }
314
+ : {}),
315
+ workflow: {
316
+ platform: 'activepieces',
317
+ integrationId: context.webhookUrl,
318
+ },
319
+ },
320
+ });
321
+
322
+ // Store webhook ID for cleanup
323
+ await context.store.put('webhookId', response.body.data.id);
324
+ },
325
+
326
+ async onDisable(context) {
327
+ const token = await getAccessToken(context.auth);
328
+ const baseUrl = context.auth.props.baseUrl;
329
+ const webhookId = await context.store.get<string>('webhookId');
330
+
331
+ if (webhookId) {
332
+ // Pause webhook (server keeps it for potential reactivation)
333
+ await httpClient.sendRequest({
334
+ method: HttpMethod.PATCH,
335
+ url: `${baseUrl}/api/v2/public/webhooks/${webhookId}`,
336
+ headers: {
337
+ Authorization: `Bearer ${token}`,
338
+ 'Content-Type': 'application/json',
339
+ 'X-WorkBuddy-Version': '2026-01',
340
+ },
341
+ body: {
342
+ status: 'paused',
343
+ },
344
+ });
345
+ }
346
+ },
347
+
348
+ async run(context) {
349
+ return [context.payload.body];
350
+ },
351
+ });