@workbuddy/piece-workbuddy-edge 1.0.10 → 1.0.11
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.
- package/package.json +1 -1
- package/src/lib/triggers/activity.d.ts.map +1 -1
- package/src/lib/triggers/activity.js +54 -42
- package/src/lib/triggers/activity.js.map +1 -1
- package/src/lib/triggers/activity.ts +54 -42
- package/src/lib/triggers/bill.d.ts.map +1 -1
- package/src/lib/triggers/bill.js +80 -64
- package/src/lib/triggers/bill.js.map +1 -1
- package/src/lib/triggers/bill.ts +80 -64
- package/src/lib/triggers/invoice.d.ts.map +1 -1
- package/src/lib/triggers/invoice.js +80 -64
- package/src/lib/triggers/invoice.js.map +1 -1
- package/src/lib/triggers/invoice.ts +80 -64
- package/src/lib/triggers/job.d.ts.map +1 -1
- package/src/lib/triggers/job.js +160 -144
- package/src/lib/triggers/job.js.map +1 -1
- package/src/lib/triggers/job.ts +160 -144
- package/src/lib/triggers/lead.d.ts.map +1 -1
- package/src/lib/triggers/lead.js +72 -56
- package/src/lib/triggers/lead.js.map +1 -1
- package/src/lib/triggers/lead.ts +72 -56
- package/src/lib/triggers/opportunity.d.ts.map +1 -1
- package/src/lib/triggers/opportunity.js +72 -56
- package/src/lib/triggers/opportunity.js.map +1 -1
- package/src/lib/triggers/opportunity.ts +72 -56
- package/src/lib/triggers/quote.d.ts.map +1 -1
- package/src/lib/triggers/quote.js +80 -64
- package/src/lib/triggers/quote.js.map +1 -1
- package/src/lib/triggers/quote.ts +80 -64
- package/src/lib/triggers/stage.d.ts.map +1 -1
- package/src/lib/triggers/stage.js +188 -172
- package/src/lib/triggers/stage.js.map +1 -1
- package/src/lib/triggers/stage.ts +188 -172
- package/src/lib/triggers/task.d.ts.map +1 -1
- package/src/lib/triggers/task.js +76 -60
- package/src/lib/triggers/task.js.map +1 -1
- package/src/lib/triggers/task.ts +76 -60
|
@@ -188,26 +188,51 @@ exports.stage_created_trigger = (0, pieces_framework_1.createTrigger)({
|
|
|
188
188
|
}),
|
|
189
189
|
},
|
|
190
190
|
sampleData: {
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
191
|
+
id: 'whd_019ceacb-232b-764f-8dfd-748e1a226de2',
|
|
192
|
+
event: 'Stage Created',
|
|
193
|
+
action: 'create',
|
|
194
|
+
createdAt: '2026-03-14T05:21:47.307Z',
|
|
195
|
+
webhookTimestamp: 1773465707307,
|
|
196
|
+
data: {
|
|
197
|
+
workOrder: {
|
|
198
|
+
id: '507f1f77bcf86cd799439011',
|
|
199
|
+
name: 'Foundation Work',
|
|
200
|
+
workOrderNumber: 'J10001-5039',
|
|
201
|
+
jobNumber: 'J10001',
|
|
202
|
+
description: 'Sample stage description',
|
|
203
|
+
status: 'In Progress',
|
|
204
|
+
previousStatus: 'Open',
|
|
205
|
+
createdAt: '2026-03-05T10:00:00.000Z',
|
|
206
|
+
updatedAt: '2026-03-05T10:00:00.000Z',
|
|
207
|
+
startDate: '2026-03-05T08:00:00.000Z',
|
|
208
|
+
dueDate: '2026-03-10T17:00:00.000Z',
|
|
209
|
+
completedDate: null,
|
|
210
|
+
finalisedDate: null,
|
|
211
|
+
customer: { id: '507f1f77bcf86cd799439011', name: 'Acme Corp' },
|
|
212
|
+
owner: { id: '507f1f77bcf86cd799439011', name: 'John Smith' },
|
|
213
|
+
stageOwner: { id: '507f1f77bcf86cd799439011', name: 'Jane Doe' },
|
|
214
|
+
technician: { id: '507f1f77bcf86cd799439011', name: 'Mike Tech' },
|
|
215
|
+
subcontractor: null,
|
|
216
|
+
priority: { id: '507f1f77bcf86cd799439011', name: 'High' },
|
|
217
|
+
site: {
|
|
218
|
+
id: '507f1f77bcf86cd799439011',
|
|
219
|
+
name: 'Main Office',
|
|
220
|
+
address: {
|
|
221
|
+
street: '123 Main St',
|
|
222
|
+
suburb: 'Sydney',
|
|
223
|
+
state: 'NSW',
|
|
224
|
+
postcode: '2000',
|
|
225
|
+
country: 'Australia',
|
|
226
|
+
formatted: '123 Main St, Sydney NSW 2000',
|
|
227
|
+
},
|
|
228
|
+
},
|
|
229
|
+
workCategory: { id: '507f1f77bcf86cd799439011', name: 'Electrical' },
|
|
230
|
+
labels: [{ id: '507f1f77bcf86cd799439011', name: 'Urgent' }],
|
|
231
|
+
zones: [{ id: '507f1f77bcf86cd799439011', name: 'North' }],
|
|
232
|
+
billingCompany: { id: '507f1f77bcf86cd799439011', name: 'Acme Corp' },
|
|
233
|
+
},
|
|
208
234
|
technician: { id: '507f1f77bcf86cd799439011', name: 'Mike Tech' },
|
|
209
|
-
|
|
210
|
-
priority: { id: '507f1f77bcf86cd799439011', name: 'High' },
|
|
235
|
+
billingCompany: { id: '507f1f77bcf86cd799439011', name: 'Acme Corp' },
|
|
211
236
|
site: {
|
|
212
237
|
id: '507f1f77bcf86cd799439011',
|
|
213
238
|
name: 'Main Office',
|
|
@@ -220,24 +245,6 @@ exports.stage_created_trigger = (0, pieces_framework_1.createTrigger)({
|
|
|
220
245
|
formatted: '123 Main St, Sydney NSW 2000',
|
|
221
246
|
},
|
|
222
247
|
},
|
|
223
|
-
workCategory: { id: '507f1f77bcf86cd799439011', name: 'Electrical' },
|
|
224
|
-
labels: [{ id: '507f1f77bcf86cd799439011', name: 'Urgent' }],
|
|
225
|
-
zones: [{ id: '507f1f77bcf86cd799439011', name: 'North' }],
|
|
226
|
-
billingCompany: { id: '507f1f77bcf86cd799439011', name: 'Acme Corp' },
|
|
227
|
-
},
|
|
228
|
-
technician: { id: '507f1f77bcf86cd799439011', name: 'Mike Tech' },
|
|
229
|
-
billingCompany: { id: '507f1f77bcf86cd799439011', name: 'Acme Corp' },
|
|
230
|
-
site: {
|
|
231
|
-
id: '507f1f77bcf86cd799439011',
|
|
232
|
-
name: 'Main Office',
|
|
233
|
-
address: {
|
|
234
|
-
street: '123 Main St',
|
|
235
|
-
suburb: 'Sydney',
|
|
236
|
-
state: 'NSW',
|
|
237
|
-
postcode: '2000',
|
|
238
|
-
country: 'Australia',
|
|
239
|
-
formatted: '123 Main St, Sydney NSW 2000',
|
|
240
|
-
},
|
|
241
248
|
},
|
|
242
249
|
},
|
|
243
250
|
type: pieces_framework_1.TriggerStrategy.WEBHOOK,
|
|
@@ -260,7 +267,7 @@ exports.stage_created_trigger = (0, pieces_framework_1.createTrigger)({
|
|
|
260
267
|
filters.stageStatus = context.propsValue.stageStatus.map((v) => JSON.parse(v));
|
|
261
268
|
if (context.propsValue.schedulingTag?.length)
|
|
262
269
|
filters.schedulingTag = context.propsValue.schedulingTag;
|
|
263
|
-
// Register webhook with WorkBuddy v2 API
|
|
270
|
+
// Register webhook with WorkBuddy v2 API
|
|
264
271
|
const response = await pieces_common_1.httpClient.sendRequest({
|
|
265
272
|
method: pieces_common_1.HttpMethod.POST,
|
|
266
273
|
url: `${baseUrl}/api/v2/public/webhooks`,
|
|
@@ -289,18 +296,15 @@ exports.stage_created_trigger = (0, pieces_framework_1.createTrigger)({
|
|
|
289
296
|
const baseUrl = context.auth.props.baseUrl;
|
|
290
297
|
const webhookId = await context.store.get('webhookId');
|
|
291
298
|
if (webhookId) {
|
|
292
|
-
//
|
|
299
|
+
// Delete webhook to avoid stale subscriptions causing duplicate trigger deliveries
|
|
293
300
|
await pieces_common_1.httpClient.sendRequest({
|
|
294
|
-
method: pieces_common_1.HttpMethod.
|
|
301
|
+
method: pieces_common_1.HttpMethod.DELETE,
|
|
295
302
|
url: `${baseUrl}/api/v2/public/webhooks/${webhookId}`,
|
|
296
303
|
headers: {
|
|
297
304
|
Authorization: `Bearer ${token}`,
|
|
298
305
|
'Content-Type': 'application/json',
|
|
299
306
|
'X-WorkBuddy-Version': '2026-01',
|
|
300
307
|
},
|
|
301
|
-
body: {
|
|
302
|
-
status: 'paused',
|
|
303
|
-
},
|
|
304
308
|
});
|
|
305
309
|
}
|
|
306
310
|
},
|
|
@@ -492,26 +496,51 @@ exports.stage_updated_trigger = (0, pieces_framework_1.createTrigger)({
|
|
|
492
496
|
}),
|
|
493
497
|
},
|
|
494
498
|
sampleData: {
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
499
|
+
id: 'whd_019ceacb-232b-764f-8dfd-748e1a226de2',
|
|
500
|
+
event: 'Stage Updated',
|
|
501
|
+
action: 'update',
|
|
502
|
+
createdAt: '2026-03-14T05:21:47.307Z',
|
|
503
|
+
webhookTimestamp: 1773465707307,
|
|
504
|
+
data: {
|
|
505
|
+
workOrder: {
|
|
506
|
+
id: '507f1f77bcf86cd799439011',
|
|
507
|
+
name: 'Foundation Work',
|
|
508
|
+
workOrderNumber: 'J10001-5039',
|
|
509
|
+
jobNumber: 'J10001',
|
|
510
|
+
description: 'Sample stage description',
|
|
511
|
+
status: 'In Progress',
|
|
512
|
+
previousStatus: 'Open',
|
|
513
|
+
createdAt: '2026-03-05T10:00:00.000Z',
|
|
514
|
+
updatedAt: '2026-03-05T10:00:00.000Z',
|
|
515
|
+
startDate: '2026-03-05T08:00:00.000Z',
|
|
516
|
+
dueDate: '2026-03-10T17:00:00.000Z',
|
|
517
|
+
completedDate: null,
|
|
518
|
+
finalisedDate: null,
|
|
519
|
+
customer: { id: '507f1f77bcf86cd799439011', name: 'Acme Corp' },
|
|
520
|
+
owner: { id: '507f1f77bcf86cd799439011', name: 'John Smith' },
|
|
521
|
+
stageOwner: { id: '507f1f77bcf86cd799439011', name: 'Jane Doe' },
|
|
522
|
+
technician: { id: '507f1f77bcf86cd799439011', name: 'Mike Tech' },
|
|
523
|
+
subcontractor: null,
|
|
524
|
+
priority: { id: '507f1f77bcf86cd799439011', name: 'High' },
|
|
525
|
+
site: {
|
|
526
|
+
id: '507f1f77bcf86cd799439011',
|
|
527
|
+
name: 'Main Office',
|
|
528
|
+
address: {
|
|
529
|
+
street: '123 Main St',
|
|
530
|
+
suburb: 'Sydney',
|
|
531
|
+
state: 'NSW',
|
|
532
|
+
postcode: '2000',
|
|
533
|
+
country: 'Australia',
|
|
534
|
+
formatted: '123 Main St, Sydney NSW 2000',
|
|
535
|
+
},
|
|
536
|
+
},
|
|
537
|
+
workCategory: { id: '507f1f77bcf86cd799439011', name: 'Electrical' },
|
|
538
|
+
labels: [{ id: '507f1f77bcf86cd799439011', name: 'Urgent' }],
|
|
539
|
+
zones: [{ id: '507f1f77bcf86cd799439011', name: 'North' }],
|
|
540
|
+
billingCompany: { id: '507f1f77bcf86cd799439011', name: 'Acme Corp' },
|
|
541
|
+
},
|
|
512
542
|
technician: { id: '507f1f77bcf86cd799439011', name: 'Mike Tech' },
|
|
513
|
-
|
|
514
|
-
priority: { id: '507f1f77bcf86cd799439011', name: 'High' },
|
|
543
|
+
billingCompany: { id: '507f1f77bcf86cd799439011', name: 'Acme Corp' },
|
|
515
544
|
site: {
|
|
516
545
|
id: '507f1f77bcf86cd799439011',
|
|
517
546
|
name: 'Main Office',
|
|
@@ -524,24 +553,6 @@ exports.stage_updated_trigger = (0, pieces_framework_1.createTrigger)({
|
|
|
524
553
|
formatted: '123 Main St, Sydney NSW 2000',
|
|
525
554
|
},
|
|
526
555
|
},
|
|
527
|
-
workCategory: { id: '507f1f77bcf86cd799439011', name: 'Electrical' },
|
|
528
|
-
labels: [{ id: '507f1f77bcf86cd799439011', name: 'Urgent' }],
|
|
529
|
-
zones: [{ id: '507f1f77bcf86cd799439011', name: 'North' }],
|
|
530
|
-
billingCompany: { id: '507f1f77bcf86cd799439011', name: 'Acme Corp' },
|
|
531
|
-
},
|
|
532
|
-
technician: { id: '507f1f77bcf86cd799439011', name: 'Mike Tech' },
|
|
533
|
-
billingCompany: { id: '507f1f77bcf86cd799439011', name: 'Acme Corp' },
|
|
534
|
-
site: {
|
|
535
|
-
id: '507f1f77bcf86cd799439011',
|
|
536
|
-
name: 'Main Office',
|
|
537
|
-
address: {
|
|
538
|
-
street: '123 Main St',
|
|
539
|
-
suburb: 'Sydney',
|
|
540
|
-
state: 'NSW',
|
|
541
|
-
postcode: '2000',
|
|
542
|
-
country: 'Australia',
|
|
543
|
-
formatted: '123 Main St, Sydney NSW 2000',
|
|
544
|
-
},
|
|
545
556
|
},
|
|
546
557
|
},
|
|
547
558
|
type: pieces_framework_1.TriggerStrategy.WEBHOOK,
|
|
@@ -564,7 +575,7 @@ exports.stage_updated_trigger = (0, pieces_framework_1.createTrigger)({
|
|
|
564
575
|
filters.stageStatus = context.propsValue.stageStatus.map((v) => JSON.parse(v));
|
|
565
576
|
if (context.propsValue.schedulingTag?.length)
|
|
566
577
|
filters.schedulingTag = context.propsValue.schedulingTag;
|
|
567
|
-
// Register webhook with WorkBuddy v2 API
|
|
578
|
+
// Register webhook with WorkBuddy v2 API
|
|
568
579
|
const response = await pieces_common_1.httpClient.sendRequest({
|
|
569
580
|
method: pieces_common_1.HttpMethod.POST,
|
|
570
581
|
url: `${baseUrl}/api/v2/public/webhooks`,
|
|
@@ -593,18 +604,15 @@ exports.stage_updated_trigger = (0, pieces_framework_1.createTrigger)({
|
|
|
593
604
|
const baseUrl = context.auth.props.baseUrl;
|
|
594
605
|
const webhookId = await context.store.get('webhookId');
|
|
595
606
|
if (webhookId) {
|
|
596
|
-
//
|
|
607
|
+
// Delete webhook to avoid stale subscriptions causing duplicate trigger deliveries
|
|
597
608
|
await pieces_common_1.httpClient.sendRequest({
|
|
598
|
-
method: pieces_common_1.HttpMethod.
|
|
609
|
+
method: pieces_common_1.HttpMethod.DELETE,
|
|
599
610
|
url: `${baseUrl}/api/v2/public/webhooks/${webhookId}`,
|
|
600
611
|
headers: {
|
|
601
612
|
Authorization: `Bearer ${token}`,
|
|
602
613
|
'Content-Type': 'application/json',
|
|
603
614
|
'X-WorkBuddy-Version': '2026-01',
|
|
604
615
|
},
|
|
605
|
-
body: {
|
|
606
|
-
status: 'paused',
|
|
607
|
-
},
|
|
608
616
|
});
|
|
609
617
|
}
|
|
610
618
|
},
|
|
@@ -796,26 +804,51 @@ exports.stage_status_changed_trigger = (0, pieces_framework_1.createTrigger)({
|
|
|
796
804
|
}),
|
|
797
805
|
},
|
|
798
806
|
sampleData: {
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
807
|
+
id: 'whd_019ceacb-232b-764f-8dfd-748e1a226de2',
|
|
808
|
+
event: 'Stage Status Changed',
|
|
809
|
+
action: 'update',
|
|
810
|
+
createdAt: '2026-03-14T05:21:47.307Z',
|
|
811
|
+
webhookTimestamp: 1773465707307,
|
|
812
|
+
data: {
|
|
813
|
+
workOrder: {
|
|
814
|
+
id: '507f1f77bcf86cd799439011',
|
|
815
|
+
name: 'Foundation Work',
|
|
816
|
+
workOrderNumber: 'J10001-5039',
|
|
817
|
+
jobNumber: 'J10001',
|
|
818
|
+
description: 'Sample stage description',
|
|
819
|
+
status: 'In Progress',
|
|
820
|
+
previousStatus: 'Open',
|
|
821
|
+
createdAt: '2026-03-05T10:00:00.000Z',
|
|
822
|
+
updatedAt: '2026-03-05T10:00:00.000Z',
|
|
823
|
+
startDate: '2026-03-05T08:00:00.000Z',
|
|
824
|
+
dueDate: '2026-03-10T17:00:00.000Z',
|
|
825
|
+
completedDate: null,
|
|
826
|
+
finalisedDate: null,
|
|
827
|
+
customer: { id: '507f1f77bcf86cd799439011', name: 'Acme Corp' },
|
|
828
|
+
owner: { id: '507f1f77bcf86cd799439011', name: 'John Smith' },
|
|
829
|
+
stageOwner: { id: '507f1f77bcf86cd799439011', name: 'Jane Doe' },
|
|
830
|
+
technician: { id: '507f1f77bcf86cd799439011', name: 'Mike Tech' },
|
|
831
|
+
subcontractor: null,
|
|
832
|
+
priority: { id: '507f1f77bcf86cd799439011', name: 'High' },
|
|
833
|
+
site: {
|
|
834
|
+
id: '507f1f77bcf86cd799439011',
|
|
835
|
+
name: 'Main Office',
|
|
836
|
+
address: {
|
|
837
|
+
street: '123 Main St',
|
|
838
|
+
suburb: 'Sydney',
|
|
839
|
+
state: 'NSW',
|
|
840
|
+
postcode: '2000',
|
|
841
|
+
country: 'Australia',
|
|
842
|
+
formatted: '123 Main St, Sydney NSW 2000',
|
|
843
|
+
},
|
|
844
|
+
},
|
|
845
|
+
workCategory: { id: '507f1f77bcf86cd799439011', name: 'Electrical' },
|
|
846
|
+
labels: [{ id: '507f1f77bcf86cd799439011', name: 'Urgent' }],
|
|
847
|
+
zones: [{ id: '507f1f77bcf86cd799439011', name: 'North' }],
|
|
848
|
+
billingCompany: { id: '507f1f77bcf86cd799439011', name: 'Acme Corp' },
|
|
849
|
+
},
|
|
816
850
|
technician: { id: '507f1f77bcf86cd799439011', name: 'Mike Tech' },
|
|
817
|
-
|
|
818
|
-
priority: { id: '507f1f77bcf86cd799439011', name: 'High' },
|
|
851
|
+
billingCompany: { id: '507f1f77bcf86cd799439011', name: 'Acme Corp' },
|
|
819
852
|
site: {
|
|
820
853
|
id: '507f1f77bcf86cd799439011',
|
|
821
854
|
name: 'Main Office',
|
|
@@ -828,24 +861,6 @@ exports.stage_status_changed_trigger = (0, pieces_framework_1.createTrigger)({
|
|
|
828
861
|
formatted: '123 Main St, Sydney NSW 2000',
|
|
829
862
|
},
|
|
830
863
|
},
|
|
831
|
-
workCategory: { id: '507f1f77bcf86cd799439011', name: 'Electrical' },
|
|
832
|
-
labels: [{ id: '507f1f77bcf86cd799439011', name: 'Urgent' }],
|
|
833
|
-
zones: [{ id: '507f1f77bcf86cd799439011', name: 'North' }],
|
|
834
|
-
billingCompany: { id: '507f1f77bcf86cd799439011', name: 'Acme Corp' },
|
|
835
|
-
},
|
|
836
|
-
technician: { id: '507f1f77bcf86cd799439011', name: 'Mike Tech' },
|
|
837
|
-
billingCompany: { id: '507f1f77bcf86cd799439011', name: 'Acme Corp' },
|
|
838
|
-
site: {
|
|
839
|
-
id: '507f1f77bcf86cd799439011',
|
|
840
|
-
name: 'Main Office',
|
|
841
|
-
address: {
|
|
842
|
-
street: '123 Main St',
|
|
843
|
-
suburb: 'Sydney',
|
|
844
|
-
state: 'NSW',
|
|
845
|
-
postcode: '2000',
|
|
846
|
-
country: 'Australia',
|
|
847
|
-
formatted: '123 Main St, Sydney NSW 2000',
|
|
848
|
-
},
|
|
849
864
|
},
|
|
850
865
|
},
|
|
851
866
|
type: pieces_framework_1.TriggerStrategy.WEBHOOK,
|
|
@@ -868,7 +883,7 @@ exports.stage_status_changed_trigger = (0, pieces_framework_1.createTrigger)({
|
|
|
868
883
|
filters.stageStatus = context.propsValue.stageStatus.map((v) => JSON.parse(v));
|
|
869
884
|
if (context.propsValue.schedulingTag?.length)
|
|
870
885
|
filters.schedulingTag = context.propsValue.schedulingTag;
|
|
871
|
-
// Register webhook with WorkBuddy v2 API
|
|
886
|
+
// Register webhook with WorkBuddy v2 API
|
|
872
887
|
const response = await pieces_common_1.httpClient.sendRequest({
|
|
873
888
|
method: pieces_common_1.HttpMethod.POST,
|
|
874
889
|
url: `${baseUrl}/api/v2/public/webhooks`,
|
|
@@ -897,18 +912,15 @@ exports.stage_status_changed_trigger = (0, pieces_framework_1.createTrigger)({
|
|
|
897
912
|
const baseUrl = context.auth.props.baseUrl;
|
|
898
913
|
const webhookId = await context.store.get('webhookId');
|
|
899
914
|
if (webhookId) {
|
|
900
|
-
//
|
|
915
|
+
// Delete webhook to avoid stale subscriptions causing duplicate trigger deliveries
|
|
901
916
|
await pieces_common_1.httpClient.sendRequest({
|
|
902
|
-
method: pieces_common_1.HttpMethod.
|
|
917
|
+
method: pieces_common_1.HttpMethod.DELETE,
|
|
903
918
|
url: `${baseUrl}/api/v2/public/webhooks/${webhookId}`,
|
|
904
919
|
headers: {
|
|
905
920
|
Authorization: `Bearer ${token}`,
|
|
906
921
|
'Content-Type': 'application/json',
|
|
907
922
|
'X-WorkBuddy-Version': '2026-01',
|
|
908
923
|
},
|
|
909
|
-
body: {
|
|
910
|
-
status: 'paused',
|
|
911
|
-
},
|
|
912
924
|
});
|
|
913
925
|
}
|
|
914
926
|
},
|
|
@@ -1100,26 +1112,51 @@ exports.stage_deleted_trigger = (0, pieces_framework_1.createTrigger)({
|
|
|
1100
1112
|
}),
|
|
1101
1113
|
},
|
|
1102
1114
|
sampleData: {
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1115
|
+
id: 'whd_019ceacb-232b-764f-8dfd-748e1a226de2',
|
|
1116
|
+
event: 'Stage Deleted',
|
|
1117
|
+
action: 'remove',
|
|
1118
|
+
createdAt: '2026-03-14T05:21:47.307Z',
|
|
1119
|
+
webhookTimestamp: 1773465707307,
|
|
1120
|
+
data: {
|
|
1121
|
+
workOrder: {
|
|
1122
|
+
id: '507f1f77bcf86cd799439011',
|
|
1123
|
+
name: 'Foundation Work',
|
|
1124
|
+
workOrderNumber: 'J10001-5039',
|
|
1125
|
+
jobNumber: 'J10001',
|
|
1126
|
+
description: 'Sample stage description',
|
|
1127
|
+
status: 'In Progress',
|
|
1128
|
+
previousStatus: 'Open',
|
|
1129
|
+
createdAt: '2026-03-05T10:00:00.000Z',
|
|
1130
|
+
updatedAt: '2026-03-05T10:00:00.000Z',
|
|
1131
|
+
startDate: '2026-03-05T08:00:00.000Z',
|
|
1132
|
+
dueDate: '2026-03-10T17:00:00.000Z',
|
|
1133
|
+
completedDate: null,
|
|
1134
|
+
finalisedDate: null,
|
|
1135
|
+
customer: { id: '507f1f77bcf86cd799439011', name: 'Acme Corp' },
|
|
1136
|
+
owner: { id: '507f1f77bcf86cd799439011', name: 'John Smith' },
|
|
1137
|
+
stageOwner: { id: '507f1f77bcf86cd799439011', name: 'Jane Doe' },
|
|
1138
|
+
technician: { id: '507f1f77bcf86cd799439011', name: 'Mike Tech' },
|
|
1139
|
+
subcontractor: null,
|
|
1140
|
+
priority: { id: '507f1f77bcf86cd799439011', name: 'High' },
|
|
1141
|
+
site: {
|
|
1142
|
+
id: '507f1f77bcf86cd799439011',
|
|
1143
|
+
name: 'Main Office',
|
|
1144
|
+
address: {
|
|
1145
|
+
street: '123 Main St',
|
|
1146
|
+
suburb: 'Sydney',
|
|
1147
|
+
state: 'NSW',
|
|
1148
|
+
postcode: '2000',
|
|
1149
|
+
country: 'Australia',
|
|
1150
|
+
formatted: '123 Main St, Sydney NSW 2000',
|
|
1151
|
+
},
|
|
1152
|
+
},
|
|
1153
|
+
workCategory: { id: '507f1f77bcf86cd799439011', name: 'Electrical' },
|
|
1154
|
+
labels: [{ id: '507f1f77bcf86cd799439011', name: 'Urgent' }],
|
|
1155
|
+
zones: [{ id: '507f1f77bcf86cd799439011', name: 'North' }],
|
|
1156
|
+
billingCompany: { id: '507f1f77bcf86cd799439011', name: 'Acme Corp' },
|
|
1157
|
+
},
|
|
1120
1158
|
technician: { id: '507f1f77bcf86cd799439011', name: 'Mike Tech' },
|
|
1121
|
-
|
|
1122
|
-
priority: { id: '507f1f77bcf86cd799439011', name: 'High' },
|
|
1159
|
+
billingCompany: { id: '507f1f77bcf86cd799439011', name: 'Acme Corp' },
|
|
1123
1160
|
site: {
|
|
1124
1161
|
id: '507f1f77bcf86cd799439011',
|
|
1125
1162
|
name: 'Main Office',
|
|
@@ -1132,24 +1169,6 @@ exports.stage_deleted_trigger = (0, pieces_framework_1.createTrigger)({
|
|
|
1132
1169
|
formatted: '123 Main St, Sydney NSW 2000',
|
|
1133
1170
|
},
|
|
1134
1171
|
},
|
|
1135
|
-
workCategory: { id: '507f1f77bcf86cd799439011', name: 'Electrical' },
|
|
1136
|
-
labels: [{ id: '507f1f77bcf86cd799439011', name: 'Urgent' }],
|
|
1137
|
-
zones: [{ id: '507f1f77bcf86cd799439011', name: 'North' }],
|
|
1138
|
-
billingCompany: { id: '507f1f77bcf86cd799439011', name: 'Acme Corp' },
|
|
1139
|
-
},
|
|
1140
|
-
technician: { id: '507f1f77bcf86cd799439011', name: 'Mike Tech' },
|
|
1141
|
-
billingCompany: { id: '507f1f77bcf86cd799439011', name: 'Acme Corp' },
|
|
1142
|
-
site: {
|
|
1143
|
-
id: '507f1f77bcf86cd799439011',
|
|
1144
|
-
name: 'Main Office',
|
|
1145
|
-
address: {
|
|
1146
|
-
street: '123 Main St',
|
|
1147
|
-
suburb: 'Sydney',
|
|
1148
|
-
state: 'NSW',
|
|
1149
|
-
postcode: '2000',
|
|
1150
|
-
country: 'Australia',
|
|
1151
|
-
formatted: '123 Main St, Sydney NSW 2000',
|
|
1152
|
-
},
|
|
1153
1172
|
},
|
|
1154
1173
|
},
|
|
1155
1174
|
type: pieces_framework_1.TriggerStrategy.WEBHOOK,
|
|
@@ -1172,7 +1191,7 @@ exports.stage_deleted_trigger = (0, pieces_framework_1.createTrigger)({
|
|
|
1172
1191
|
filters.stageStatus = context.propsValue.stageStatus.map((v) => JSON.parse(v));
|
|
1173
1192
|
if (context.propsValue.schedulingTag?.length)
|
|
1174
1193
|
filters.schedulingTag = context.propsValue.schedulingTag;
|
|
1175
|
-
// Register webhook with WorkBuddy v2 API
|
|
1194
|
+
// Register webhook with WorkBuddy v2 API
|
|
1176
1195
|
const response = await pieces_common_1.httpClient.sendRequest({
|
|
1177
1196
|
method: pieces_common_1.HttpMethod.POST,
|
|
1178
1197
|
url: `${baseUrl}/api/v2/public/webhooks`,
|
|
@@ -1201,18 +1220,15 @@ exports.stage_deleted_trigger = (0, pieces_framework_1.createTrigger)({
|
|
|
1201
1220
|
const baseUrl = context.auth.props.baseUrl;
|
|
1202
1221
|
const webhookId = await context.store.get('webhookId');
|
|
1203
1222
|
if (webhookId) {
|
|
1204
|
-
//
|
|
1223
|
+
// Delete webhook to avoid stale subscriptions causing duplicate trigger deliveries
|
|
1205
1224
|
await pieces_common_1.httpClient.sendRequest({
|
|
1206
|
-
method: pieces_common_1.HttpMethod.
|
|
1225
|
+
method: pieces_common_1.HttpMethod.DELETE,
|
|
1207
1226
|
url: `${baseUrl}/api/v2/public/webhooks/${webhookId}`,
|
|
1208
1227
|
headers: {
|
|
1209
1228
|
Authorization: `Bearer ${token}`,
|
|
1210
1229
|
'Content-Type': 'application/json',
|
|
1211
1230
|
'X-WorkBuddy-Version': '2026-01',
|
|
1212
1231
|
},
|
|
1213
|
-
body: {
|
|
1214
|
-
status: 'paused',
|
|
1215
|
-
},
|
|
1216
1232
|
});
|
|
1217
1233
|
}
|
|
1218
1234
|
},
|