@workbuddy/n8n-nodes-workbuddy-vnext 1.0.8 → 1.0.10

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.
@@ -238,8 +238,8 @@ class WorkBuddy {
238
238
  {
239
239
  name: 'Get job by ID or job number',
240
240
  value: 'PublicApiJobController_get',
241
- action: 'Retrieve a single job by its ID or human-readable job number.',
242
- description: 'Retrieve a single job by its ID or human-readable job number.',
241
+ action: 'Retrieve a single job by its ID, human-readable job number, or external integration ID.',
242
+ description: 'Retrieve a single job by its ID, human-readable job number, or external integration ID.',
243
243
  routing: {
244
244
  request: {
245
245
  method: 'GET',
@@ -704,6 +704,26 @@ class WorkBuddy {
704
704
  },
705
705
  },
706
706
  },
707
+ {
708
+ displayName: 'Integration Id',
709
+ name: 'integrationId',
710
+ type: 'string',
711
+ default: '',
712
+ description: 'integration ID',
713
+ required: false,
714
+ displayOptions: {
715
+ show: {
716
+ resource: ['jobs'],
717
+ operation: ['PublicApiJobController_search'],
718
+ },
719
+ },
720
+ routing: {
721
+ send: {
722
+ type: 'body',
723
+ property: 'integrationId',
724
+ },
725
+ },
726
+ },
707
727
  {
708
728
  displayName: 'Resource',
709
729
  name: 'resource',
@@ -2999,7 +3019,7 @@ class WorkBuddy {
2999
3019
  name: 'identifier',
3000
3020
  type: 'string',
3001
3021
  default: '',
3002
- description: 'Job ID (MongoDB ObjectId) or job number (e.g., JOB-12345)',
3022
+ description: 'Job ID (MongoDB ObjectId), job number (e.g., JOB-12345), or external integration ID',
3003
3023
  required: true,
3004
3024
  displayOptions: {
3005
3025
  show: {
@@ -3085,6 +3105,26 @@ class WorkBuddy {
3085
3105
  },
3086
3106
  },
3087
3107
  },
3108
+ {
3109
+ displayName: 'Integration Id',
3110
+ name: 'integrationId',
3111
+ type: 'string',
3112
+ default: '',
3113
+ description: 'integration ID',
3114
+ required: false,
3115
+ displayOptions: {
3116
+ show: {
3117
+ resource: ['jobs'],
3118
+ operation: ['PublicApiJobController_create'],
3119
+ },
3120
+ },
3121
+ routing: {
3122
+ send: {
3123
+ type: 'body',
3124
+ property: 'integrationId',
3125
+ },
3126
+ },
3127
+ },
3088
3128
  {
3089
3129
  displayName: 'Description',
3090
3130
  name: 'description',
@@ -3581,6 +3621,26 @@ class WorkBuddy {
3581
3621
  },
3582
3622
  },
3583
3623
  },
3624
+ {
3625
+ displayName: 'Integration Id',
3626
+ name: 'integrationId',
3627
+ type: 'string',
3628
+ default: '',
3629
+ description: 'integration ID',
3630
+ required: false,
3631
+ displayOptions: {
3632
+ show: {
3633
+ resource: ['jobs'],
3634
+ operation: ['PublicApiJobController_update'],
3635
+ },
3636
+ },
3637
+ routing: {
3638
+ send: {
3639
+ type: 'body',
3640
+ property: 'integrationId',
3641
+ },
3642
+ },
3643
+ },
3584
3644
  {
3585
3645
  displayName: 'Description',
3586
3646
  name: 'description',
@@ -10651,6 +10711,18 @@ class WorkBuddy {
10651
10711
  },
10652
10712
  },
10653
10713
  },
10714
+ {
10715
+ name: 'Create customer',
10716
+ value: 'PublicCrmCustomerController_create',
10717
+ action: '',
10718
+ description: '',
10719
+ routing: {
10720
+ request: {
10721
+ method: 'POST',
10722
+ url: '/api/v2/public/customers',
10723
+ },
10724
+ },
10725
+ },
10654
10726
  {
10655
10727
  name: 'Get customer by ID',
10656
10728
  value: 'PublicCrmCustomerController_getById',
@@ -10663,6 +10735,18 @@ class WorkBuddy {
10663
10735
  },
10664
10736
  },
10665
10737
  },
10738
+ {
10739
+ name: 'Update customer',
10740
+ value: 'PublicCrmCustomerController_update',
10741
+ action: '',
10742
+ description: '',
10743
+ routing: {
10744
+ request: {
10745
+ method: 'PATCH',
10746
+ url: '/api/v2/public/customers/={{ $parameter["id"] }}',
10747
+ },
10748
+ },
10749
+ },
10666
10750
  {
10667
10751
  name: 'List contacts for customer',
10668
10752
  value: 'PublicCrmCustomerController_listContacts',
@@ -10751,403 +10835,2762 @@ class WorkBuddy {
10751
10835
  },
10752
10836
  },
10753
10837
  {
10754
- displayName: 'Id',
10755
- name: 'id',
10838
+ displayName: 'Name',
10839
+ name: 'name',
10756
10840
  type: 'string',
10757
10841
  default: '',
10758
- description: 'Customer ID',
10842
+ description: 'Display name',
10759
10843
  required: true,
10760
10844
  displayOptions: {
10761
10845
  show: {
10762
10846
  resource: ['crm-customers'],
10763
- operation: ['PublicCrmCustomerController_getById'],
10847
+ operation: ['PublicCrmCustomerController_create'],
10848
+ },
10849
+ },
10850
+ routing: {
10851
+ send: {
10852
+ type: 'body',
10853
+ property: 'name',
10764
10854
  },
10765
10855
  },
10766
10856
  },
10767
10857
  {
10768
- displayName: 'Customer Id',
10769
- name: 'customerId',
10770
- type: 'string',
10771
- default: '',
10772
- description: 'Customer ID',
10858
+ displayName: 'Address',
10859
+ name: 'address',
10860
+ type: 'collection',
10861
+ default: {},
10862
+ placeholder: 'Add Address',
10863
+ description: '',
10773
10864
  required: true,
10774
10865
  displayOptions: {
10775
10866
  show: {
10776
10867
  resource: ['crm-customers'],
10777
- operation: ['PublicCrmCustomerController_listContacts'],
10868
+ operation: ['PublicCrmCustomerController_create'],
10869
+ },
10870
+ },
10871
+ options: [
10872
+ {
10873
+ displayName: 'Name',
10874
+ name: 'name',
10875
+ type: 'string',
10876
+ default: '',
10877
+ description: 'Display name',
10878
+ },
10879
+ {
10880
+ displayName: 'Street1',
10881
+ name: 'street1',
10882
+ type: 'string',
10883
+ default: '',
10884
+ description: '',
10885
+ },
10886
+ {
10887
+ displayName: 'Street2',
10888
+ name: 'street2',
10889
+ type: 'string',
10890
+ default: '',
10891
+ description: '',
10892
+ },
10893
+ {
10894
+ displayName: 'Suburb',
10895
+ name: 'suburb',
10896
+ type: 'string',
10897
+ default: '',
10898
+ description: '',
10899
+ },
10900
+ {
10901
+ displayName: 'State',
10902
+ name: 'state',
10903
+ type: 'string',
10904
+ default: '',
10905
+ description: '',
10906
+ },
10907
+ {
10908
+ displayName: 'Postal Code',
10909
+ name: 'postalCode',
10910
+ type: 'string',
10911
+ default: '',
10912
+ description: '',
10913
+ },
10914
+ {
10915
+ displayName: 'Postcode',
10916
+ name: 'postcode',
10917
+ type: 'string',
10918
+ default: '',
10919
+ description: '',
10920
+ },
10921
+ {
10922
+ displayName: 'Country',
10923
+ name: 'country',
10924
+ type: 'string',
10925
+ default: '',
10926
+ description: '',
10927
+ },
10928
+ {
10929
+ displayName: 'Lat',
10930
+ name: 'lat',
10931
+ type: 'number',
10932
+ default: 0,
10933
+ description: '',
10934
+ },
10935
+ {
10936
+ displayName: 'Lgn',
10937
+ name: 'lgn',
10938
+ type: 'number',
10939
+ default: 0,
10940
+ description: '',
10941
+ },
10942
+ {
10943
+ displayName: 'Timezone',
10944
+ name: 'timezone',
10945
+ type: 'string',
10946
+ default: '',
10947
+ description: '',
10948
+ },
10949
+ ],
10950
+ routing: {
10951
+ send: {
10952
+ type: 'body',
10953
+ property: 'address',
10778
10954
  },
10779
10955
  },
10780
10956
  },
10781
10957
  {
10782
- displayName: 'Cursor',
10783
- name: 'cursor',
10784
- type: 'string',
10785
- default: '',
10786
- description: '',
10787
- required: false,
10958
+ displayName: 'Contact',
10959
+ name: 'contact',
10960
+ type: 'collection',
10961
+ default: {},
10962
+ placeholder: 'Add Contact',
10963
+ description: 'Inline contact object — alternative to contactId',
10964
+ required: true,
10788
10965
  displayOptions: {
10789
10966
  show: {
10790
10967
  resource: ['crm-customers'],
10791
- operation: ['PublicCrmCustomerController_listContacts'],
10968
+ operation: ['PublicCrmCustomerController_create'],
10792
10969
  },
10793
10970
  },
10971
+ options: [
10972
+ {
10973
+ displayName: 'First Name',
10974
+ name: 'firstName',
10975
+ type: 'string',
10976
+ default: '',
10977
+ description: '',
10978
+ },
10979
+ {
10980
+ displayName: 'Last Name',
10981
+ name: 'lastName',
10982
+ type: 'string',
10983
+ default: '',
10984
+ description: '',
10985
+ },
10986
+ {
10987
+ displayName: 'Mobile',
10988
+ name: 'mobile',
10989
+ type: 'string',
10990
+ default: '',
10991
+ description: 'Mobile phone number',
10992
+ },
10993
+ {
10994
+ displayName: 'Email',
10995
+ name: 'email',
10996
+ type: 'string',
10997
+ default: '',
10998
+ description: 'Email address',
10999
+ },
11000
+ {
11001
+ displayName: 'Title',
11002
+ name: 'title',
11003
+ type: 'string',
11004
+ default: '',
11005
+ description: '',
11006
+ },
11007
+ {
11008
+ displayName: 'Note',
11009
+ name: 'note',
11010
+ type: 'string',
11011
+ default: '',
11012
+ description: '',
11013
+ },
11014
+ ],
10794
11015
  routing: {
10795
11016
  send: {
10796
11017
  type: 'body',
10797
- property: 'cursor',
11018
+ property: 'contact',
10798
11019
  },
10799
11020
  },
10800
11021
  },
10801
11022
  {
10802
- displayName: 'Limit',
10803
- name: 'limit',
10804
- type: 'number',
11023
+ displayName: 'Type',
11024
+ name: 'type',
11025
+ type: 'options',
10805
11026
  default: '',
10806
11027
  description: '',
10807
- required: false,
11028
+ required: true,
10808
11029
  displayOptions: {
10809
11030
  show: {
10810
11031
  resource: ['crm-customers'],
10811
- operation: ['PublicCrmCustomerController_listContacts'],
11032
+ operation: ['PublicCrmCustomerController_create'],
10812
11033
  },
10813
11034
  },
11035
+ options: [
11036
+ {
11037
+ name: 'Service Provider',
11038
+ value: 'Service Provider',
11039
+ },
11040
+ {
11041
+ name: 'Business',
11042
+ value: 'Business',
11043
+ },
11044
+ {
11045
+ name: 'Residential',
11046
+ value: 'Residential',
11047
+ },
11048
+ ],
10814
11049
  routing: {
10815
11050
  send: {
10816
11051
  type: 'body',
10817
- property: 'limit',
11052
+ property: 'type',
10818
11053
  },
10819
11054
  },
10820
11055
  },
10821
11056
  {
10822
- displayName: 'Customer Id',
10823
- name: 'customerId',
11057
+ displayName: 'Legal Name',
11058
+ name: 'legalName',
10824
11059
  type: 'string',
10825
11060
  default: '',
10826
- description: 'Customer ID',
10827
- required: true,
11061
+ description: '',
11062
+ required: false,
10828
11063
  displayOptions: {
10829
11064
  show: {
10830
11065
  resource: ['crm-customers'],
10831
- operation: ['PublicCrmCustomerController_listSites'],
11066
+ operation: ['PublicCrmCustomerController_create'],
11067
+ },
11068
+ },
11069
+ routing: {
11070
+ send: {
11071
+ type: 'body',
11072
+ property: 'legalName',
10832
11073
  },
10833
11074
  },
10834
11075
  },
10835
11076
  {
10836
- displayName: 'Cursor',
10837
- name: 'cursor',
11077
+ displayName: 'Phone',
11078
+ name: 'phone',
10838
11079
  type: 'string',
10839
11080
  default: '',
10840
- description: '',
11081
+ description: 'Phone number',
10841
11082
  required: false,
10842
11083
  displayOptions: {
10843
11084
  show: {
10844
11085
  resource: ['crm-customers'],
10845
- operation: ['PublicCrmCustomerController_listSites'],
11086
+ operation: ['PublicCrmCustomerController_create'],
10846
11087
  },
10847
11088
  },
10848
11089
  routing: {
10849
11090
  send: {
10850
11091
  type: 'body',
10851
- property: 'cursor',
11092
+ property: 'phone',
10852
11093
  },
10853
11094
  },
10854
11095
  },
10855
11096
  {
10856
- displayName: 'Limit',
10857
- name: 'limit',
10858
- type: 'number',
11097
+ displayName: 'Email',
11098
+ name: 'email',
11099
+ type: 'string',
10859
11100
  default: '',
10860
- description: '',
11101
+ description: 'Email address',
10861
11102
  required: false,
10862
11103
  displayOptions: {
10863
11104
  show: {
10864
11105
  resource: ['crm-customers'],
10865
- operation: ['PublicCrmCustomerController_listSites'],
11106
+ operation: ['PublicCrmCustomerController_create'],
10866
11107
  },
10867
11108
  },
10868
11109
  routing: {
10869
11110
  send: {
10870
11111
  type: 'body',
10871
- property: 'limit',
11112
+ property: 'email',
10872
11113
  },
10873
11114
  },
10874
11115
  },
10875
- // Crm Employees Operations
10876
11116
  {
10877
- displayName: 'Operation',
10878
- name: 'operation',
10879
- type: 'options',
10880
- noDataExpression: true,
10881
- displayOptions: {
11117
+ displayName: 'Website',
11118
+ name: 'website',
11119
+ type: 'string',
11120
+ default: '',
11121
+ description: '',
11122
+ required: false,
11123
+ displayOptions: {
11124
+ show: {
11125
+ resource: ['crm-customers'],
11126
+ operation: ['PublicCrmCustomerController_create'],
11127
+ },
11128
+ },
11129
+ routing: {
11130
+ send: {
11131
+ type: 'body',
11132
+ property: 'website',
11133
+ },
11134
+ },
11135
+ },
11136
+ {
11137
+ displayName: 'Integration Id',
11138
+ name: 'integrationId',
11139
+ type: 'string',
11140
+ default: '',
11141
+ description: 'integration ID',
11142
+ required: false,
11143
+ displayOptions: {
11144
+ show: {
11145
+ resource: ['crm-customers'],
11146
+ operation: ['PublicCrmCustomerController_create'],
11147
+ },
11148
+ },
11149
+ routing: {
11150
+ send: {
11151
+ type: 'body',
11152
+ property: 'integrationId',
11153
+ },
11154
+ },
11155
+ },
11156
+ {
11157
+ displayName: 'Custom Fields',
11158
+ name: 'customFields',
11159
+ type: 'json',
11160
+ default: {},
11161
+ description: 'Custom fields as key-value pairs — validated against tenant field definitions',
11162
+ required: false,
11163
+ displayOptions: {
11164
+ show: {
11165
+ resource: ['crm-customers'],
11166
+ operation: ['PublicCrmCustomerController_create'],
11167
+ },
11168
+ },
11169
+ routing: {
11170
+ send: {
11171
+ type: 'body',
11172
+ property: 'customFields',
11173
+ },
11174
+ },
11175
+ },
11176
+ {
11177
+ displayName: 'Social Network',
11178
+ name: 'socialNetwork',
11179
+ type: 'json',
11180
+ default: {},
11181
+ description: '',
11182
+ required: false,
11183
+ displayOptions: {
11184
+ show: {
11185
+ resource: ['crm-customers'],
11186
+ operation: ['PublicCrmCustomerController_create'],
11187
+ },
11188
+ },
11189
+ routing: {
11190
+ send: {
11191
+ type: 'body',
11192
+ property: 'socialNetwork',
11193
+ },
11194
+ },
11195
+ },
11196
+ {
11197
+ displayName: 'Id',
11198
+ name: 'id',
11199
+ type: 'string',
11200
+ default: '',
11201
+ description: 'Customer ID or integration ID',
11202
+ required: true,
11203
+ displayOptions: {
11204
+ show: {
11205
+ resource: ['crm-customers'],
11206
+ operation: ['PublicCrmCustomerController_getById'],
11207
+ },
11208
+ },
11209
+ },
11210
+ {
11211
+ displayName: 'Id',
11212
+ name: 'id',
11213
+ type: 'string',
11214
+ default: '',
11215
+ description: 'Customer ID or integration ID',
11216
+ required: true,
11217
+ displayOptions: {
11218
+ show: {
11219
+ resource: ['crm-customers'],
11220
+ operation: ['PublicCrmCustomerController_update'],
11221
+ },
11222
+ },
11223
+ },
11224
+ {
11225
+ displayName: 'Name',
11226
+ name: 'name',
11227
+ type: 'string',
11228
+ default: '',
11229
+ description: 'Display name',
11230
+ required: false,
11231
+ displayOptions: {
11232
+ show: {
11233
+ resource: ['crm-customers'],
11234
+ operation: ['PublicCrmCustomerController_update'],
11235
+ },
11236
+ },
11237
+ routing: {
11238
+ send: {
11239
+ type: 'body',
11240
+ property: 'name',
11241
+ },
11242
+ },
11243
+ },
11244
+ {
11245
+ displayName: 'Legal Name',
11246
+ name: 'legalName',
11247
+ type: 'string',
11248
+ default: '',
11249
+ description: '',
11250
+ required: false,
11251
+ displayOptions: {
11252
+ show: {
11253
+ resource: ['crm-customers'],
11254
+ operation: ['PublicCrmCustomerController_update'],
11255
+ },
11256
+ },
11257
+ routing: {
11258
+ send: {
11259
+ type: 'body',
11260
+ property: 'legalName',
11261
+ },
11262
+ },
11263
+ },
11264
+ {
11265
+ displayName: 'Phone',
11266
+ name: 'phone',
11267
+ type: 'string',
11268
+ default: '',
11269
+ description: 'Phone number',
11270
+ required: false,
11271
+ displayOptions: {
11272
+ show: {
11273
+ resource: ['crm-customers'],
11274
+ operation: ['PublicCrmCustomerController_update'],
11275
+ },
11276
+ },
11277
+ routing: {
11278
+ send: {
11279
+ type: 'body',
11280
+ property: 'phone',
11281
+ },
11282
+ },
11283
+ },
11284
+ {
11285
+ displayName: 'Email',
11286
+ name: 'email',
11287
+ type: 'string',
11288
+ default: '',
11289
+ description: 'Email address',
11290
+ required: false,
11291
+ displayOptions: {
11292
+ show: {
11293
+ resource: ['crm-customers'],
11294
+ operation: ['PublicCrmCustomerController_update'],
11295
+ },
11296
+ },
11297
+ routing: {
11298
+ send: {
11299
+ type: 'body',
11300
+ property: 'email',
11301
+ },
11302
+ },
11303
+ },
11304
+ {
11305
+ displayName: 'Website',
11306
+ name: 'website',
11307
+ type: 'string',
11308
+ default: '',
11309
+ description: '',
11310
+ required: false,
11311
+ displayOptions: {
11312
+ show: {
11313
+ resource: ['crm-customers'],
11314
+ operation: ['PublicCrmCustomerController_update'],
11315
+ },
11316
+ },
11317
+ routing: {
11318
+ send: {
11319
+ type: 'body',
11320
+ property: 'website',
11321
+ },
11322
+ },
11323
+ },
11324
+ {
11325
+ displayName: 'Integration Id',
11326
+ name: 'integrationId',
11327
+ type: 'string',
11328
+ default: '',
11329
+ description: 'integration ID',
11330
+ required: false,
11331
+ displayOptions: {
11332
+ show: {
11333
+ resource: ['crm-customers'],
11334
+ operation: ['PublicCrmCustomerController_update'],
11335
+ },
11336
+ },
11337
+ routing: {
11338
+ send: {
11339
+ type: 'body',
11340
+ property: 'integrationId',
11341
+ },
11342
+ },
11343
+ },
11344
+ {
11345
+ displayName: 'Address',
11346
+ name: 'address',
11347
+ type: 'collection',
11348
+ default: {},
11349
+ placeholder: 'Add Address',
11350
+ description: '',
11351
+ required: false,
11352
+ displayOptions: {
11353
+ show: {
11354
+ resource: ['crm-customers'],
11355
+ operation: ['PublicCrmCustomerController_update'],
11356
+ },
11357
+ },
11358
+ options: [
11359
+ {
11360
+ displayName: 'Name',
11361
+ name: 'name',
11362
+ type: 'string',
11363
+ default: '',
11364
+ description: 'Display name',
11365
+ },
11366
+ {
11367
+ displayName: 'Street1',
11368
+ name: 'street1',
11369
+ type: 'string',
11370
+ default: '',
11371
+ description: '',
11372
+ },
11373
+ {
11374
+ displayName: 'Street2',
11375
+ name: 'street2',
11376
+ type: 'string',
11377
+ default: '',
11378
+ description: '',
11379
+ },
11380
+ {
11381
+ displayName: 'Suburb',
11382
+ name: 'suburb',
11383
+ type: 'string',
11384
+ default: '',
11385
+ description: '',
11386
+ },
11387
+ {
11388
+ displayName: 'State',
11389
+ name: 'state',
11390
+ type: 'string',
11391
+ default: '',
11392
+ description: '',
11393
+ },
11394
+ {
11395
+ displayName: 'Postal Code',
11396
+ name: 'postalCode',
11397
+ type: 'string',
11398
+ default: '',
11399
+ description: '',
11400
+ },
11401
+ {
11402
+ displayName: 'Postcode',
11403
+ name: 'postcode',
11404
+ type: 'string',
11405
+ default: '',
11406
+ description: '',
11407
+ },
11408
+ {
11409
+ displayName: 'Country',
11410
+ name: 'country',
11411
+ type: 'string',
11412
+ default: '',
11413
+ description: '',
11414
+ },
11415
+ {
11416
+ displayName: 'Lat',
11417
+ name: 'lat',
11418
+ type: 'number',
11419
+ default: 0,
11420
+ description: '',
11421
+ },
11422
+ {
11423
+ displayName: 'Lgn',
11424
+ name: 'lgn',
11425
+ type: 'number',
11426
+ default: 0,
11427
+ description: '',
11428
+ },
11429
+ {
11430
+ displayName: 'Timezone',
11431
+ name: 'timezone',
11432
+ type: 'string',
11433
+ default: '',
11434
+ description: '',
11435
+ },
11436
+ ],
11437
+ routing: {
11438
+ send: {
11439
+ type: 'body',
11440
+ property: 'address',
11441
+ },
11442
+ },
11443
+ },
11444
+ {
11445
+ displayName: 'Owner',
11446
+ name: 'owner',
11447
+ type: 'json',
11448
+ default: {},
11449
+ description: '',
11450
+ required: false,
11451
+ displayOptions: {
11452
+ show: {
11453
+ resource: ['crm-customers'],
11454
+ operation: ['PublicCrmCustomerController_update'],
11455
+ },
11456
+ },
11457
+ routing: {
11458
+ send: {
11459
+ type: 'body',
11460
+ property: 'owner',
11461
+ },
11462
+ },
11463
+ },
11464
+ {
11465
+ displayName: 'Labels',
11466
+ name: 'labels',
11467
+ type: 'json',
11468
+ default: {},
11469
+ description: '',
11470
+ required: false,
11471
+ displayOptions: {
11472
+ show: {
11473
+ resource: ['crm-customers'],
11474
+ operation: ['PublicCrmCustomerController_update'],
11475
+ },
11476
+ },
11477
+ routing: {
11478
+ send: {
11479
+ type: 'body',
11480
+ property: 'labels',
11481
+ },
11482
+ },
11483
+ },
11484
+ {
11485
+ displayName: 'Description',
11486
+ name: 'description',
11487
+ type: 'string',
11488
+ default: '',
11489
+ description: 'Detailed description',
11490
+ required: false,
11491
+ displayOptions: {
11492
+ show: {
11493
+ resource: ['crm-customers'],
11494
+ operation: ['PublicCrmCustomerController_update'],
11495
+ },
11496
+ },
11497
+ routing: {
11498
+ send: {
11499
+ type: 'body',
11500
+ property: 'description',
11501
+ },
11502
+ },
11503
+ },
11504
+ {
11505
+ displayName: 'Custom Fields',
11506
+ name: 'customFields',
11507
+ type: 'json',
11508
+ default: {},
11509
+ description: 'Custom fields as key-value pairs — validated against tenant field definitions',
11510
+ required: false,
11511
+ displayOptions: {
11512
+ show: {
11513
+ resource: ['crm-customers'],
11514
+ operation: ['PublicCrmCustomerController_update'],
11515
+ },
11516
+ },
11517
+ routing: {
11518
+ send: {
11519
+ type: 'body',
11520
+ property: 'customFields',
11521
+ },
11522
+ },
11523
+ },
11524
+ {
11525
+ displayName: 'Social Network',
11526
+ name: 'socialNetwork',
11527
+ type: 'json',
11528
+ default: {},
11529
+ description: '',
11530
+ required: false,
11531
+ displayOptions: {
11532
+ show: {
11533
+ resource: ['crm-customers'],
11534
+ operation: ['PublicCrmCustomerController_update'],
11535
+ },
11536
+ },
11537
+ routing: {
11538
+ send: {
11539
+ type: 'body',
11540
+ property: 'socialNetwork',
11541
+ },
11542
+ },
11543
+ },
11544
+ {
11545
+ displayName: 'Customer Id',
11546
+ name: 'customerId',
11547
+ type: 'string',
11548
+ default: '',
11549
+ description: 'Customer ID',
11550
+ required: true,
11551
+ displayOptions: {
11552
+ show: {
11553
+ resource: ['crm-customers'],
11554
+ operation: ['PublicCrmCustomerController_listContacts'],
11555
+ },
11556
+ },
11557
+ },
11558
+ {
11559
+ displayName: 'Cursor',
11560
+ name: 'cursor',
11561
+ type: 'string',
11562
+ default: '',
11563
+ description: '',
11564
+ required: false,
11565
+ displayOptions: {
11566
+ show: {
11567
+ resource: ['crm-customers'],
11568
+ operation: ['PublicCrmCustomerController_listContacts'],
11569
+ },
11570
+ },
11571
+ routing: {
11572
+ send: {
11573
+ type: 'body',
11574
+ property: 'cursor',
11575
+ },
11576
+ },
11577
+ },
11578
+ {
11579
+ displayName: 'Limit',
11580
+ name: 'limit',
11581
+ type: 'number',
11582
+ default: '',
11583
+ description: '',
11584
+ required: false,
11585
+ displayOptions: {
11586
+ show: {
11587
+ resource: ['crm-customers'],
11588
+ operation: ['PublicCrmCustomerController_listContacts'],
11589
+ },
11590
+ },
11591
+ routing: {
11592
+ send: {
11593
+ type: 'body',
11594
+ property: 'limit',
11595
+ },
11596
+ },
11597
+ },
11598
+ {
11599
+ displayName: 'Customer Id',
11600
+ name: 'customerId',
11601
+ type: 'string',
11602
+ default: '',
11603
+ description: 'Customer ID',
11604
+ required: true,
11605
+ displayOptions: {
11606
+ show: {
11607
+ resource: ['crm-customers'],
11608
+ operation: ['PublicCrmCustomerController_listSites'],
11609
+ },
11610
+ },
11611
+ },
11612
+ {
11613
+ displayName: 'Cursor',
11614
+ name: 'cursor',
11615
+ type: 'string',
11616
+ default: '',
11617
+ description: '',
11618
+ required: false,
11619
+ displayOptions: {
11620
+ show: {
11621
+ resource: ['crm-customers'],
11622
+ operation: ['PublicCrmCustomerController_listSites'],
11623
+ },
11624
+ },
11625
+ routing: {
11626
+ send: {
11627
+ type: 'body',
11628
+ property: 'cursor',
11629
+ },
11630
+ },
11631
+ },
11632
+ {
11633
+ displayName: 'Limit',
11634
+ name: 'limit',
11635
+ type: 'number',
11636
+ default: '',
11637
+ description: '',
11638
+ required: false,
11639
+ displayOptions: {
11640
+ show: {
11641
+ resource: ['crm-customers'],
11642
+ operation: ['PublicCrmCustomerController_listSites'],
11643
+ },
11644
+ },
11645
+ routing: {
11646
+ send: {
11647
+ type: 'body',
11648
+ property: 'limit',
11649
+ },
11650
+ },
11651
+ },
11652
+ // Crm Employees Operations
11653
+ {
11654
+ displayName: 'Operation',
11655
+ name: 'operation',
11656
+ type: 'options',
11657
+ noDataExpression: true,
11658
+ displayOptions: {
11659
+ show: {
11660
+ resource: ['crm-employees'],
11661
+ },
11662
+ },
11663
+ options: [
11664
+ {
11665
+ name: 'List employees',
11666
+ value: 'PublicCrmEmployeeController_list',
11667
+ action: '',
11668
+ description: '',
11669
+ routing: {
11670
+ request: {
11671
+ method: 'GET',
11672
+ url: '/api/v2/public/employees',
11673
+ },
11674
+ },
11675
+ },
11676
+ {
11677
+ name: 'Get employee by ID',
11678
+ value: 'PublicCrmEmployeeController_getById',
11679
+ action: '',
11680
+ description: '',
11681
+ routing: {
11682
+ request: {
11683
+ method: 'GET',
11684
+ url: '/api/v2/public/employees/={{ $parameter["id"] }}',
11685
+ },
11686
+ },
11687
+ },
11688
+ ],
11689
+ default: 'PublicCrmEmployeeController_list',
11690
+ },
11691
+ {
11692
+ displayName: 'Cursor',
11693
+ name: 'cursor',
11694
+ type: 'string',
11695
+ default: '',
11696
+ description: '',
11697
+ required: false,
11698
+ displayOptions: {
11699
+ show: {
11700
+ resource: ['crm-employees'],
11701
+ operation: ['PublicCrmEmployeeController_list'],
11702
+ },
11703
+ },
11704
+ routing: {
11705
+ send: {
11706
+ type: 'body',
11707
+ property: 'cursor',
11708
+ },
11709
+ },
11710
+ },
11711
+ {
11712
+ displayName: 'Limit',
11713
+ name: 'limit',
11714
+ type: 'number',
11715
+ default: '',
11716
+ description: '',
11717
+ required: false,
11718
+ displayOptions: {
11719
+ show: {
11720
+ resource: ['crm-employees'],
11721
+ operation: ['PublicCrmEmployeeController_list'],
11722
+ },
11723
+ },
11724
+ routing: {
11725
+ send: {
11726
+ type: 'body',
11727
+ property: 'limit',
11728
+ },
11729
+ },
11730
+ },
11731
+ {
11732
+ displayName: 'Id',
11733
+ name: 'id',
11734
+ type: 'string',
11735
+ default: '',
11736
+ description: 'Employee ID',
11737
+ required: true,
11738
+ displayOptions: {
11739
+ show: {
11740
+ resource: ['crm-employees'],
11741
+ operation: ['PublicCrmEmployeeController_getById'],
11742
+ },
11743
+ },
11744
+ },
11745
+ // Crm Contractors Operations
11746
+ {
11747
+ displayName: 'Operation',
11748
+ name: 'operation',
11749
+ type: 'options',
11750
+ noDataExpression: true,
11751
+ displayOptions: {
11752
+ show: {
11753
+ resource: ['crm-contractors'],
11754
+ },
11755
+ },
11756
+ options: [
11757
+ {
11758
+ name: 'List contractors',
11759
+ value: 'PublicCrmContractorController_list',
11760
+ action: '',
11761
+ description: '',
11762
+ routing: {
11763
+ request: {
11764
+ method: 'GET',
11765
+ url: '/api/v2/public/contractors',
11766
+ },
11767
+ },
11768
+ },
11769
+ {
11770
+ name: 'Create contractor',
11771
+ value: 'PublicCrmContractorController_create',
11772
+ action: '',
11773
+ description: '',
11774
+ routing: {
11775
+ request: {
11776
+ method: 'POST',
11777
+ url: '/api/v2/public/contractors',
11778
+ },
11779
+ },
11780
+ },
11781
+ {
11782
+ name: 'Get contractor by ID',
11783
+ value: 'PublicCrmContractorController_getById',
11784
+ action: '',
11785
+ description: '',
11786
+ routing: {
11787
+ request: {
11788
+ method: 'GET',
11789
+ url: '/api/v2/public/contractors/={{ $parameter["id"] }}',
11790
+ },
11791
+ },
11792
+ },
11793
+ {
11794
+ name: 'Update contractor',
11795
+ value: 'PublicCrmContractorController_update',
11796
+ action: '',
11797
+ description: '',
11798
+ routing: {
11799
+ request: {
11800
+ method: 'PATCH',
11801
+ url: '/api/v2/public/contractors/={{ $parameter["id"] }}',
11802
+ },
11803
+ },
11804
+ },
11805
+ ],
11806
+ default: 'PublicCrmContractorController_list',
11807
+ },
11808
+ {
11809
+ displayName: 'Cursor',
11810
+ name: 'cursor',
11811
+ type: 'string',
11812
+ default: '',
11813
+ description: '',
11814
+ required: false,
11815
+ displayOptions: {
11816
+ show: {
11817
+ resource: ['crm-contractors'],
11818
+ operation: ['PublicCrmContractorController_list'],
11819
+ },
11820
+ },
11821
+ routing: {
11822
+ send: {
11823
+ type: 'body',
11824
+ property: 'cursor',
11825
+ },
11826
+ },
11827
+ },
11828
+ {
11829
+ displayName: 'Limit',
11830
+ name: 'limit',
11831
+ type: 'number',
11832
+ default: '',
11833
+ description: '',
11834
+ required: false,
11835
+ displayOptions: {
11836
+ show: {
11837
+ resource: ['crm-contractors'],
11838
+ operation: ['PublicCrmContractorController_list'],
11839
+ },
11840
+ },
11841
+ routing: {
11842
+ send: {
11843
+ type: 'body',
11844
+ property: 'limit',
11845
+ },
11846
+ },
11847
+ },
11848
+ {
11849
+ displayName: 'Name',
11850
+ name: 'name',
11851
+ type: 'string',
11852
+ default: '',
11853
+ description: 'Display name',
11854
+ required: true,
11855
+ displayOptions: {
11856
+ show: {
11857
+ resource: ['crm-contractors'],
11858
+ operation: ['PublicCrmContractorController_create'],
11859
+ },
11860
+ },
11861
+ routing: {
11862
+ send: {
11863
+ type: 'body',
11864
+ property: 'name',
11865
+ },
11866
+ },
11867
+ },
11868
+ {
11869
+ displayName: 'Address',
11870
+ name: 'address',
11871
+ type: 'collection',
11872
+ default: {},
11873
+ placeholder: 'Add Address',
11874
+ description: '',
11875
+ required: true,
11876
+ displayOptions: {
11877
+ show: {
11878
+ resource: ['crm-contractors'],
11879
+ operation: ['PublicCrmContractorController_create'],
11880
+ },
11881
+ },
11882
+ options: [
11883
+ {
11884
+ displayName: 'Name',
11885
+ name: 'name',
11886
+ type: 'string',
11887
+ default: '',
11888
+ description: 'Display name',
11889
+ },
11890
+ {
11891
+ displayName: 'Street1',
11892
+ name: 'street1',
11893
+ type: 'string',
11894
+ default: '',
11895
+ description: '',
11896
+ },
11897
+ {
11898
+ displayName: 'Street2',
11899
+ name: 'street2',
11900
+ type: 'string',
11901
+ default: '',
11902
+ description: '',
11903
+ },
11904
+ {
11905
+ displayName: 'Suburb',
11906
+ name: 'suburb',
11907
+ type: 'string',
11908
+ default: '',
11909
+ description: '',
11910
+ },
11911
+ {
11912
+ displayName: 'State',
11913
+ name: 'state',
11914
+ type: 'string',
11915
+ default: '',
11916
+ description: '',
11917
+ },
11918
+ {
11919
+ displayName: 'Postal Code',
11920
+ name: 'postalCode',
11921
+ type: 'string',
11922
+ default: '',
11923
+ description: '',
11924
+ },
11925
+ {
11926
+ displayName: 'Postcode',
11927
+ name: 'postcode',
11928
+ type: 'string',
11929
+ default: '',
11930
+ description: '',
11931
+ },
11932
+ {
11933
+ displayName: 'Country',
11934
+ name: 'country',
11935
+ type: 'string',
11936
+ default: '',
11937
+ description: '',
11938
+ },
11939
+ {
11940
+ displayName: 'Lat',
11941
+ name: 'lat',
11942
+ type: 'number',
11943
+ default: 0,
11944
+ description: '',
11945
+ },
11946
+ {
11947
+ displayName: 'Lgn',
11948
+ name: 'lgn',
11949
+ type: 'number',
11950
+ default: 0,
11951
+ description: '',
11952
+ },
11953
+ {
11954
+ displayName: 'Timezone',
11955
+ name: 'timezone',
11956
+ type: 'string',
11957
+ default: '',
11958
+ description: '',
11959
+ },
11960
+ ],
11961
+ routing: {
11962
+ send: {
11963
+ type: 'body',
11964
+ property: 'address',
11965
+ },
11966
+ },
11967
+ },
11968
+ {
11969
+ displayName: 'Contact',
11970
+ name: 'contact',
11971
+ type: 'collection',
11972
+ default: {},
11973
+ placeholder: 'Add Contact',
11974
+ description: 'Inline contact object — alternative to contactId',
11975
+ required: true,
11976
+ displayOptions: {
11977
+ show: {
11978
+ resource: ['crm-contractors'],
11979
+ operation: ['PublicCrmContractorController_create'],
11980
+ },
11981
+ },
11982
+ options: [
11983
+ {
11984
+ displayName: 'First Name',
11985
+ name: 'firstName',
11986
+ type: 'string',
11987
+ default: '',
11988
+ description: '',
11989
+ },
11990
+ {
11991
+ displayName: 'Last Name',
11992
+ name: 'lastName',
11993
+ type: 'string',
11994
+ default: '',
11995
+ description: '',
11996
+ },
11997
+ {
11998
+ displayName: 'Mobile',
11999
+ name: 'mobile',
12000
+ type: 'string',
12001
+ default: '',
12002
+ description: 'Mobile phone number',
12003
+ },
12004
+ {
12005
+ displayName: 'Email',
12006
+ name: 'email',
12007
+ type: 'string',
12008
+ default: '',
12009
+ description: 'Email address',
12010
+ },
12011
+ {
12012
+ displayName: 'Title',
12013
+ name: 'title',
12014
+ type: 'string',
12015
+ default: '',
12016
+ description: '',
12017
+ },
12018
+ {
12019
+ displayName: 'Note',
12020
+ name: 'note',
12021
+ type: 'string',
12022
+ default: '',
12023
+ description: '',
12024
+ },
12025
+ ],
12026
+ routing: {
12027
+ send: {
12028
+ type: 'body',
12029
+ property: 'contact',
12030
+ },
12031
+ },
12032
+ },
12033
+ {
12034
+ displayName: 'Legal Name',
12035
+ name: 'legalName',
12036
+ type: 'string',
12037
+ default: '',
12038
+ description: '',
12039
+ required: false,
12040
+ displayOptions: {
12041
+ show: {
12042
+ resource: ['crm-contractors'],
12043
+ operation: ['PublicCrmContractorController_create'],
12044
+ },
12045
+ },
12046
+ routing: {
12047
+ send: {
12048
+ type: 'body',
12049
+ property: 'legalName',
12050
+ },
12051
+ },
12052
+ },
12053
+ {
12054
+ displayName: 'Phone',
12055
+ name: 'phone',
12056
+ type: 'string',
12057
+ default: '',
12058
+ description: 'Phone number',
12059
+ required: false,
12060
+ displayOptions: {
12061
+ show: {
12062
+ resource: ['crm-contractors'],
12063
+ operation: ['PublicCrmContractorController_create'],
12064
+ },
12065
+ },
12066
+ routing: {
12067
+ send: {
12068
+ type: 'body',
12069
+ property: 'phone',
12070
+ },
12071
+ },
12072
+ },
12073
+ {
12074
+ displayName: 'Email',
12075
+ name: 'email',
12076
+ type: 'string',
12077
+ default: '',
12078
+ description: 'Email address',
12079
+ required: false,
12080
+ displayOptions: {
12081
+ show: {
12082
+ resource: ['crm-contractors'],
12083
+ operation: ['PublicCrmContractorController_create'],
12084
+ },
12085
+ },
12086
+ routing: {
12087
+ send: {
12088
+ type: 'body',
12089
+ property: 'email',
12090
+ },
12091
+ },
12092
+ },
12093
+ {
12094
+ displayName: 'Website',
12095
+ name: 'website',
12096
+ type: 'string',
12097
+ default: '',
12098
+ description: '',
12099
+ required: false,
12100
+ displayOptions: {
12101
+ show: {
12102
+ resource: ['crm-contractors'],
12103
+ operation: ['PublicCrmContractorController_create'],
12104
+ },
12105
+ },
12106
+ routing: {
12107
+ send: {
12108
+ type: 'body',
12109
+ property: 'website',
12110
+ },
12111
+ },
12112
+ },
12113
+ {
12114
+ displayName: 'Integration Id',
12115
+ name: 'integrationId',
12116
+ type: 'string',
12117
+ default: '',
12118
+ description: 'integration ID',
12119
+ required: false,
12120
+ displayOptions: {
12121
+ show: {
12122
+ resource: ['crm-contractors'],
12123
+ operation: ['PublicCrmContractorController_create'],
12124
+ },
12125
+ },
12126
+ routing: {
12127
+ send: {
12128
+ type: 'body',
12129
+ property: 'integrationId',
12130
+ },
12131
+ },
12132
+ },
12133
+ {
12134
+ displayName: 'Custom Fields',
12135
+ name: 'customFields',
12136
+ type: 'json',
12137
+ default: {},
12138
+ description: 'Custom fields as key-value pairs — validated against tenant field definitions',
12139
+ required: false,
12140
+ displayOptions: {
12141
+ show: {
12142
+ resource: ['crm-contractors'],
12143
+ operation: ['PublicCrmContractorController_create'],
12144
+ },
12145
+ },
12146
+ routing: {
12147
+ send: {
12148
+ type: 'body',
12149
+ property: 'customFields',
12150
+ },
12151
+ },
12152
+ },
12153
+ {
12154
+ displayName: 'Hide Prices',
12155
+ name: 'hidePrices',
12156
+ type: 'boolean',
12157
+ default: false,
12158
+ description: '',
12159
+ required: false,
12160
+ displayOptions: {
12161
+ show: {
12162
+ resource: ['crm-contractors'],
12163
+ operation: ['PublicCrmContractorController_create'],
12164
+ },
12165
+ },
12166
+ routing: {
12167
+ send: {
12168
+ type: 'body',
12169
+ property: 'hidePrices',
12170
+ },
12171
+ },
12172
+ },
12173
+ {
12174
+ displayName: 'Id',
12175
+ name: 'id',
12176
+ type: 'string',
12177
+ default: '',
12178
+ description: 'Contractor ID or integration ID',
12179
+ required: true,
12180
+ displayOptions: {
12181
+ show: {
12182
+ resource: ['crm-contractors'],
12183
+ operation: ['PublicCrmContractorController_getById'],
12184
+ },
12185
+ },
12186
+ },
12187
+ {
12188
+ displayName: 'Id',
12189
+ name: 'id',
12190
+ type: 'string',
12191
+ default: '',
12192
+ description: 'Contractor ID or integration ID',
12193
+ required: true,
12194
+ displayOptions: {
12195
+ show: {
12196
+ resource: ['crm-contractors'],
12197
+ operation: ['PublicCrmContractorController_update'],
12198
+ },
12199
+ },
12200
+ },
12201
+ {
12202
+ displayName: 'Name',
12203
+ name: 'name',
12204
+ type: 'string',
12205
+ default: '',
12206
+ description: 'Display name',
12207
+ required: false,
12208
+ displayOptions: {
12209
+ show: {
12210
+ resource: ['crm-contractors'],
12211
+ operation: ['PublicCrmContractorController_update'],
12212
+ },
12213
+ },
12214
+ routing: {
12215
+ send: {
12216
+ type: 'body',
12217
+ property: 'name',
12218
+ },
12219
+ },
12220
+ },
12221
+ {
12222
+ displayName: 'Legal Name',
12223
+ name: 'legalName',
12224
+ type: 'string',
12225
+ default: '',
12226
+ description: '',
12227
+ required: false,
12228
+ displayOptions: {
12229
+ show: {
12230
+ resource: ['crm-contractors'],
12231
+ operation: ['PublicCrmContractorController_update'],
12232
+ },
12233
+ },
12234
+ routing: {
12235
+ send: {
12236
+ type: 'body',
12237
+ property: 'legalName',
12238
+ },
12239
+ },
12240
+ },
12241
+ {
12242
+ displayName: 'Phone',
12243
+ name: 'phone',
12244
+ type: 'string',
12245
+ default: '',
12246
+ description: 'Phone number',
12247
+ required: false,
12248
+ displayOptions: {
12249
+ show: {
12250
+ resource: ['crm-contractors'],
12251
+ operation: ['PublicCrmContractorController_update'],
12252
+ },
12253
+ },
12254
+ routing: {
12255
+ send: {
12256
+ type: 'body',
12257
+ property: 'phone',
12258
+ },
12259
+ },
12260
+ },
12261
+ {
12262
+ displayName: 'Email',
12263
+ name: 'email',
12264
+ type: 'string',
12265
+ default: '',
12266
+ description: 'Email address',
12267
+ required: false,
12268
+ displayOptions: {
12269
+ show: {
12270
+ resource: ['crm-contractors'],
12271
+ operation: ['PublicCrmContractorController_update'],
12272
+ },
12273
+ },
12274
+ routing: {
12275
+ send: {
12276
+ type: 'body',
12277
+ property: 'email',
12278
+ },
12279
+ },
12280
+ },
12281
+ {
12282
+ displayName: 'Website',
12283
+ name: 'website',
12284
+ type: 'string',
12285
+ default: '',
12286
+ description: '',
12287
+ required: false,
12288
+ displayOptions: {
12289
+ show: {
12290
+ resource: ['crm-contractors'],
12291
+ operation: ['PublicCrmContractorController_update'],
12292
+ },
12293
+ },
12294
+ routing: {
12295
+ send: {
12296
+ type: 'body',
12297
+ property: 'website',
12298
+ },
12299
+ },
12300
+ },
12301
+ {
12302
+ displayName: 'Integration Id',
12303
+ name: 'integrationId',
12304
+ type: 'string',
12305
+ default: '',
12306
+ description: 'integration ID',
12307
+ required: false,
12308
+ displayOptions: {
12309
+ show: {
12310
+ resource: ['crm-contractors'],
12311
+ operation: ['PublicCrmContractorController_update'],
12312
+ },
12313
+ },
12314
+ routing: {
12315
+ send: {
12316
+ type: 'body',
12317
+ property: 'integrationId',
12318
+ },
12319
+ },
12320
+ },
12321
+ {
12322
+ displayName: 'Address',
12323
+ name: 'address',
12324
+ type: 'collection',
12325
+ default: {},
12326
+ placeholder: 'Add Address',
12327
+ description: '',
12328
+ required: false,
12329
+ displayOptions: {
12330
+ show: {
12331
+ resource: ['crm-contractors'],
12332
+ operation: ['PublicCrmContractorController_update'],
12333
+ },
12334
+ },
12335
+ options: [
12336
+ {
12337
+ displayName: 'Name',
12338
+ name: 'name',
12339
+ type: 'string',
12340
+ default: '',
12341
+ description: 'Display name',
12342
+ },
12343
+ {
12344
+ displayName: 'Street1',
12345
+ name: 'street1',
12346
+ type: 'string',
12347
+ default: '',
12348
+ description: '',
12349
+ },
12350
+ {
12351
+ displayName: 'Street2',
12352
+ name: 'street2',
12353
+ type: 'string',
12354
+ default: '',
12355
+ description: '',
12356
+ },
12357
+ {
12358
+ displayName: 'Suburb',
12359
+ name: 'suburb',
12360
+ type: 'string',
12361
+ default: '',
12362
+ description: '',
12363
+ },
12364
+ {
12365
+ displayName: 'State',
12366
+ name: 'state',
12367
+ type: 'string',
12368
+ default: '',
12369
+ description: '',
12370
+ },
12371
+ {
12372
+ displayName: 'Postal Code',
12373
+ name: 'postalCode',
12374
+ type: 'string',
12375
+ default: '',
12376
+ description: '',
12377
+ },
12378
+ {
12379
+ displayName: 'Postcode',
12380
+ name: 'postcode',
12381
+ type: 'string',
12382
+ default: '',
12383
+ description: '',
12384
+ },
12385
+ {
12386
+ displayName: 'Country',
12387
+ name: 'country',
12388
+ type: 'string',
12389
+ default: '',
12390
+ description: '',
12391
+ },
12392
+ {
12393
+ displayName: 'Lat',
12394
+ name: 'lat',
12395
+ type: 'number',
12396
+ default: 0,
12397
+ description: '',
12398
+ },
12399
+ {
12400
+ displayName: 'Lgn',
12401
+ name: 'lgn',
12402
+ type: 'number',
12403
+ default: 0,
12404
+ description: '',
12405
+ },
12406
+ {
12407
+ displayName: 'Timezone',
12408
+ name: 'timezone',
12409
+ type: 'string',
12410
+ default: '',
12411
+ description: '',
12412
+ },
12413
+ ],
12414
+ routing: {
12415
+ send: {
12416
+ type: 'body',
12417
+ property: 'address',
12418
+ },
12419
+ },
12420
+ },
12421
+ {
12422
+ displayName: 'Owner',
12423
+ name: 'owner',
12424
+ type: 'json',
12425
+ default: {},
12426
+ description: '',
12427
+ required: false,
12428
+ displayOptions: {
12429
+ show: {
12430
+ resource: ['crm-contractors'],
12431
+ operation: ['PublicCrmContractorController_update'],
12432
+ },
12433
+ },
12434
+ routing: {
12435
+ send: {
12436
+ type: 'body',
12437
+ property: 'owner',
12438
+ },
12439
+ },
12440
+ },
12441
+ {
12442
+ displayName: 'Labels',
12443
+ name: 'labels',
12444
+ type: 'json',
12445
+ default: {},
12446
+ description: '',
12447
+ required: false,
12448
+ displayOptions: {
12449
+ show: {
12450
+ resource: ['crm-contractors'],
12451
+ operation: ['PublicCrmContractorController_update'],
12452
+ },
12453
+ },
12454
+ routing: {
12455
+ send: {
12456
+ type: 'body',
12457
+ property: 'labels',
12458
+ },
12459
+ },
12460
+ },
12461
+ {
12462
+ displayName: 'Description',
12463
+ name: 'description',
12464
+ type: 'string',
12465
+ default: '',
12466
+ description: 'Detailed description',
12467
+ required: false,
12468
+ displayOptions: {
12469
+ show: {
12470
+ resource: ['crm-contractors'],
12471
+ operation: ['PublicCrmContractorController_update'],
12472
+ },
12473
+ },
12474
+ routing: {
12475
+ send: {
12476
+ type: 'body',
12477
+ property: 'description',
12478
+ },
12479
+ },
12480
+ },
12481
+ {
12482
+ displayName: 'Custom Fields',
12483
+ name: 'customFields',
12484
+ type: 'json',
12485
+ default: {},
12486
+ description: 'Custom fields as key-value pairs — validated against tenant field definitions',
12487
+ required: false,
12488
+ displayOptions: {
12489
+ show: {
12490
+ resource: ['crm-contractors'],
12491
+ operation: ['PublicCrmContractorController_update'],
12492
+ },
12493
+ },
12494
+ routing: {
12495
+ send: {
12496
+ type: 'body',
12497
+ property: 'customFields',
12498
+ },
12499
+ },
12500
+ },
12501
+ {
12502
+ displayName: 'Zones',
12503
+ name: 'zones',
12504
+ type: 'json',
12505
+ default: {},
12506
+ description: '',
12507
+ required: false,
12508
+ displayOptions: {
12509
+ show: {
12510
+ resource: ['crm-contractors'],
12511
+ operation: ['PublicCrmContractorController_update'],
12512
+ },
12513
+ },
12514
+ routing: {
12515
+ send: {
12516
+ type: 'body',
12517
+ property: 'zones',
12518
+ },
12519
+ },
12520
+ },
12521
+ {
12522
+ displayName: 'Companies',
12523
+ name: 'companies',
12524
+ type: 'json',
12525
+ default: {},
12526
+ description: '',
12527
+ required: false,
12528
+ displayOptions: {
12529
+ show: {
12530
+ resource: ['crm-contractors'],
12531
+ operation: ['PublicCrmContractorController_update'],
12532
+ },
12533
+ },
12534
+ routing: {
12535
+ send: {
12536
+ type: 'body',
12537
+ property: 'companies',
12538
+ },
12539
+ },
12540
+ },
12541
+ {
12542
+ displayName: 'Work Categories',
12543
+ name: 'workCategories',
12544
+ type: 'json',
12545
+ default: {},
12546
+ description: '',
12547
+ required: false,
12548
+ displayOptions: {
12549
+ show: {
12550
+ resource: ['crm-contractors'],
12551
+ operation: ['PublicCrmContractorController_update'],
12552
+ },
12553
+ },
12554
+ routing: {
12555
+ send: {
12556
+ type: 'body',
12557
+ property: 'workCategories',
12558
+ },
12559
+ },
12560
+ },
12561
+ {
12562
+ displayName: 'Scheduling',
12563
+ name: 'scheduling',
12564
+ type: 'json',
12565
+ default: {},
12566
+ description: '',
12567
+ required: false,
12568
+ displayOptions: {
12569
+ show: {
12570
+ resource: ['crm-contractors'],
12571
+ operation: ['PublicCrmContractorController_update'],
12572
+ },
12573
+ },
12574
+ routing: {
12575
+ send: {
12576
+ type: 'body',
12577
+ property: 'scheduling',
12578
+ },
12579
+ },
12580
+ },
12581
+ {
12582
+ displayName: 'Dispatching',
12583
+ name: 'dispatching',
12584
+ type: 'json',
12585
+ default: {},
12586
+ description: '',
12587
+ required: false,
12588
+ displayOptions: {
12589
+ show: {
12590
+ resource: ['crm-contractors'],
12591
+ operation: ['PublicCrmContractorController_update'],
12592
+ },
12593
+ },
12594
+ routing: {
12595
+ send: {
12596
+ type: 'body',
12597
+ property: 'dispatching',
12598
+ },
12599
+ },
12600
+ },
12601
+ {
12602
+ displayName: 'Timesheet',
12603
+ name: 'timesheet',
12604
+ type: 'json',
12605
+ default: {},
12606
+ description: '',
12607
+ required: false,
12608
+ displayOptions: {
12609
+ show: {
12610
+ resource: ['crm-contractors'],
12611
+ operation: ['PublicCrmContractorController_update'],
12612
+ },
12613
+ },
12614
+ routing: {
12615
+ send: {
12616
+ type: 'body',
12617
+ property: 'timesheet',
12618
+ },
12619
+ },
12620
+ },
12621
+ {
12622
+ displayName: 'Hide Prices',
12623
+ name: 'hidePrices',
12624
+ type: 'boolean',
12625
+ default: false,
12626
+ description: '',
12627
+ required: false,
12628
+ displayOptions: {
12629
+ show: {
12630
+ resource: ['crm-contractors'],
12631
+ operation: ['PublicCrmContractorController_update'],
12632
+ },
12633
+ },
12634
+ routing: {
12635
+ send: {
12636
+ type: 'body',
12637
+ property: 'hidePrices',
12638
+ },
12639
+ },
12640
+ },
12641
+ {
12642
+ displayName: 'Pricebook',
12643
+ name: 'pricebook',
12644
+ type: 'json',
12645
+ default: {},
12646
+ description: '',
12647
+ required: false,
12648
+ displayOptions: {
12649
+ show: {
12650
+ resource: ['crm-contractors'],
12651
+ operation: ['PublicCrmContractorController_update'],
12652
+ },
12653
+ },
12654
+ routing: {
12655
+ send: {
12656
+ type: 'body',
12657
+ property: 'pricebook',
12658
+ },
12659
+ },
12660
+ },
12661
+ // Crm Suppliers Operations
12662
+ {
12663
+ displayName: 'Operation',
12664
+ name: 'operation',
12665
+ type: 'options',
12666
+ noDataExpression: true,
12667
+ displayOptions: {
12668
+ show: {
12669
+ resource: ['crm-suppliers'],
12670
+ },
12671
+ },
12672
+ options: [
12673
+ {
12674
+ name: 'List suppliers',
12675
+ value: 'PublicCrmSupplierController_list',
12676
+ action: '',
12677
+ description: '',
12678
+ routing: {
12679
+ request: {
12680
+ method: 'GET',
12681
+ url: '/api/v2/public/suppliers',
12682
+ },
12683
+ },
12684
+ },
12685
+ {
12686
+ name: 'Create supplier',
12687
+ value: 'PublicCrmSupplierController_create',
12688
+ action: '',
12689
+ description: '',
12690
+ routing: {
12691
+ request: {
12692
+ method: 'POST',
12693
+ url: '/api/v2/public/suppliers',
12694
+ },
12695
+ },
12696
+ },
12697
+ {
12698
+ name: 'Get supplier by ID',
12699
+ value: 'PublicCrmSupplierController_getById',
12700
+ action: '',
12701
+ description: '',
12702
+ routing: {
12703
+ request: {
12704
+ method: 'GET',
12705
+ url: '/api/v2/public/suppliers/={{ $parameter["id"] }}',
12706
+ },
12707
+ },
12708
+ },
12709
+ {
12710
+ name: 'Update supplier',
12711
+ value: 'PublicCrmSupplierController_update',
12712
+ action: '',
12713
+ description: '',
12714
+ routing: {
12715
+ request: {
12716
+ method: 'PATCH',
12717
+ url: '/api/v2/public/suppliers/={{ $parameter["id"] }}',
12718
+ },
12719
+ },
12720
+ },
12721
+ ],
12722
+ default: 'PublicCrmSupplierController_list',
12723
+ },
12724
+ {
12725
+ displayName: 'Cursor',
12726
+ name: 'cursor',
12727
+ type: 'string',
12728
+ default: '',
12729
+ description: '',
12730
+ required: false,
12731
+ displayOptions: {
12732
+ show: {
12733
+ resource: ['crm-suppliers'],
12734
+ operation: ['PublicCrmSupplierController_list'],
12735
+ },
12736
+ },
12737
+ routing: {
12738
+ send: {
12739
+ type: 'body',
12740
+ property: 'cursor',
12741
+ },
12742
+ },
12743
+ },
12744
+ {
12745
+ displayName: 'Limit',
12746
+ name: 'limit',
12747
+ type: 'number',
12748
+ default: '',
12749
+ description: '',
12750
+ required: false,
12751
+ displayOptions: {
12752
+ show: {
12753
+ resource: ['crm-suppliers'],
12754
+ operation: ['PublicCrmSupplierController_list'],
12755
+ },
12756
+ },
12757
+ routing: {
12758
+ send: {
12759
+ type: 'body',
12760
+ property: 'limit',
12761
+ },
12762
+ },
12763
+ },
12764
+ {
12765
+ displayName: 'Name',
12766
+ name: 'name',
12767
+ type: 'string',
12768
+ default: '',
12769
+ description: 'Display name',
12770
+ required: true,
12771
+ displayOptions: {
12772
+ show: {
12773
+ resource: ['crm-suppliers'],
12774
+ operation: ['PublicCrmSupplierController_create'],
12775
+ },
12776
+ },
12777
+ routing: {
12778
+ send: {
12779
+ type: 'body',
12780
+ property: 'name',
12781
+ },
12782
+ },
12783
+ },
12784
+ {
12785
+ displayName: 'Address',
12786
+ name: 'address',
12787
+ type: 'collection',
12788
+ default: {},
12789
+ placeholder: 'Add Address',
12790
+ description: '',
12791
+ required: true,
12792
+ displayOptions: {
12793
+ show: {
12794
+ resource: ['crm-suppliers'],
12795
+ operation: ['PublicCrmSupplierController_create'],
12796
+ },
12797
+ },
12798
+ options: [
12799
+ {
12800
+ displayName: 'Name',
12801
+ name: 'name',
12802
+ type: 'string',
12803
+ default: '',
12804
+ description: 'Display name',
12805
+ },
12806
+ {
12807
+ displayName: 'Street1',
12808
+ name: 'street1',
12809
+ type: 'string',
12810
+ default: '',
12811
+ description: '',
12812
+ },
12813
+ {
12814
+ displayName: 'Street2',
12815
+ name: 'street2',
12816
+ type: 'string',
12817
+ default: '',
12818
+ description: '',
12819
+ },
12820
+ {
12821
+ displayName: 'Suburb',
12822
+ name: 'suburb',
12823
+ type: 'string',
12824
+ default: '',
12825
+ description: '',
12826
+ },
12827
+ {
12828
+ displayName: 'State',
12829
+ name: 'state',
12830
+ type: 'string',
12831
+ default: '',
12832
+ description: '',
12833
+ },
12834
+ {
12835
+ displayName: 'Postal Code',
12836
+ name: 'postalCode',
12837
+ type: 'string',
12838
+ default: '',
12839
+ description: '',
12840
+ },
12841
+ {
12842
+ displayName: 'Postcode',
12843
+ name: 'postcode',
12844
+ type: 'string',
12845
+ default: '',
12846
+ description: '',
12847
+ },
12848
+ {
12849
+ displayName: 'Country',
12850
+ name: 'country',
12851
+ type: 'string',
12852
+ default: '',
12853
+ description: '',
12854
+ },
12855
+ {
12856
+ displayName: 'Lat',
12857
+ name: 'lat',
12858
+ type: 'number',
12859
+ default: 0,
12860
+ description: '',
12861
+ },
12862
+ {
12863
+ displayName: 'Lgn',
12864
+ name: 'lgn',
12865
+ type: 'number',
12866
+ default: 0,
12867
+ description: '',
12868
+ },
12869
+ {
12870
+ displayName: 'Timezone',
12871
+ name: 'timezone',
12872
+ type: 'string',
12873
+ default: '',
12874
+ description: '',
12875
+ },
12876
+ ],
12877
+ routing: {
12878
+ send: {
12879
+ type: 'body',
12880
+ property: 'address',
12881
+ },
12882
+ },
12883
+ },
12884
+ {
12885
+ displayName: 'Contact',
12886
+ name: 'contact',
12887
+ type: 'collection',
12888
+ default: {},
12889
+ placeholder: 'Add Contact',
12890
+ description: 'Inline contact object — alternative to contactId',
12891
+ required: true,
12892
+ displayOptions: {
12893
+ show: {
12894
+ resource: ['crm-suppliers'],
12895
+ operation: ['PublicCrmSupplierController_create'],
12896
+ },
12897
+ },
12898
+ options: [
12899
+ {
12900
+ displayName: 'First Name',
12901
+ name: 'firstName',
12902
+ type: 'string',
12903
+ default: '',
12904
+ description: '',
12905
+ },
12906
+ {
12907
+ displayName: 'Last Name',
12908
+ name: 'lastName',
12909
+ type: 'string',
12910
+ default: '',
12911
+ description: '',
12912
+ },
12913
+ {
12914
+ displayName: 'Mobile',
12915
+ name: 'mobile',
12916
+ type: 'string',
12917
+ default: '',
12918
+ description: 'Mobile phone number',
12919
+ },
12920
+ {
12921
+ displayName: 'Email',
12922
+ name: 'email',
12923
+ type: 'string',
12924
+ default: '',
12925
+ description: 'Email address',
12926
+ },
12927
+ {
12928
+ displayName: 'Title',
12929
+ name: 'title',
12930
+ type: 'string',
12931
+ default: '',
12932
+ description: '',
12933
+ },
12934
+ {
12935
+ displayName: 'Note',
12936
+ name: 'note',
12937
+ type: 'string',
12938
+ default: '',
12939
+ description: '',
12940
+ },
12941
+ ],
12942
+ routing: {
12943
+ send: {
12944
+ type: 'body',
12945
+ property: 'contact',
12946
+ },
12947
+ },
12948
+ },
12949
+ {
12950
+ displayName: 'Legal Name',
12951
+ name: 'legalName',
12952
+ type: 'string',
12953
+ default: '',
12954
+ description: '',
12955
+ required: false,
12956
+ displayOptions: {
12957
+ show: {
12958
+ resource: ['crm-suppliers'],
12959
+ operation: ['PublicCrmSupplierController_create'],
12960
+ },
12961
+ },
12962
+ routing: {
12963
+ send: {
12964
+ type: 'body',
12965
+ property: 'legalName',
12966
+ },
12967
+ },
12968
+ },
12969
+ {
12970
+ displayName: 'Phone',
12971
+ name: 'phone',
12972
+ type: 'string',
12973
+ default: '',
12974
+ description: 'Phone number',
12975
+ required: false,
12976
+ displayOptions: {
12977
+ show: {
12978
+ resource: ['crm-suppliers'],
12979
+ operation: ['PublicCrmSupplierController_create'],
12980
+ },
12981
+ },
12982
+ routing: {
12983
+ send: {
12984
+ type: 'body',
12985
+ property: 'phone',
12986
+ },
12987
+ },
12988
+ },
12989
+ {
12990
+ displayName: 'Email',
12991
+ name: 'email',
12992
+ type: 'string',
12993
+ default: '',
12994
+ description: 'Email address',
12995
+ required: false,
12996
+ displayOptions: {
10882
12997
  show: {
10883
- resource: ['crm-employees'],
12998
+ resource: ['crm-suppliers'],
12999
+ operation: ['PublicCrmSupplierController_create'],
13000
+ },
13001
+ },
13002
+ routing: {
13003
+ send: {
13004
+ type: 'body',
13005
+ property: 'email',
13006
+ },
13007
+ },
13008
+ },
13009
+ {
13010
+ displayName: 'Website',
13011
+ name: 'website',
13012
+ type: 'string',
13013
+ default: '',
13014
+ description: '',
13015
+ required: false,
13016
+ displayOptions: {
13017
+ show: {
13018
+ resource: ['crm-suppliers'],
13019
+ operation: ['PublicCrmSupplierController_create'],
13020
+ },
13021
+ },
13022
+ routing: {
13023
+ send: {
13024
+ type: 'body',
13025
+ property: 'website',
13026
+ },
13027
+ },
13028
+ },
13029
+ {
13030
+ displayName: 'Integration Id',
13031
+ name: 'integrationId',
13032
+ type: 'string',
13033
+ default: '',
13034
+ description: 'integration ID',
13035
+ required: false,
13036
+ displayOptions: {
13037
+ show: {
13038
+ resource: ['crm-suppliers'],
13039
+ operation: ['PublicCrmSupplierController_create'],
13040
+ },
13041
+ },
13042
+ routing: {
13043
+ send: {
13044
+ type: 'body',
13045
+ property: 'integrationId',
13046
+ },
13047
+ },
13048
+ },
13049
+ {
13050
+ displayName: 'Custom Fields',
13051
+ name: 'customFields',
13052
+ type: 'json',
13053
+ default: {},
13054
+ description: 'Custom fields as key-value pairs — validated against tenant field definitions',
13055
+ required: false,
13056
+ displayOptions: {
13057
+ show: {
13058
+ resource: ['crm-suppliers'],
13059
+ operation: ['PublicCrmSupplierController_create'],
13060
+ },
13061
+ },
13062
+ routing: {
13063
+ send: {
13064
+ type: 'body',
13065
+ property: 'customFields',
13066
+ },
13067
+ },
13068
+ },
13069
+ {
13070
+ displayName: 'Tax Id',
13071
+ name: 'taxId',
13072
+ type: 'string',
13073
+ default: '',
13074
+ description: 'tax ID',
13075
+ required: false,
13076
+ displayOptions: {
13077
+ show: {
13078
+ resource: ['crm-suppliers'],
13079
+ operation: ['PublicCrmSupplierController_create'],
13080
+ },
13081
+ },
13082
+ routing: {
13083
+ send: {
13084
+ type: 'body',
13085
+ property: 'taxId',
13086
+ },
13087
+ },
13088
+ },
13089
+ {
13090
+ displayName: 'Id',
13091
+ name: 'id',
13092
+ type: 'string',
13093
+ default: '',
13094
+ description: 'Supplier ID or integration ID',
13095
+ required: true,
13096
+ displayOptions: {
13097
+ show: {
13098
+ resource: ['crm-suppliers'],
13099
+ operation: ['PublicCrmSupplierController_getById'],
13100
+ },
13101
+ },
13102
+ },
13103
+ {
13104
+ displayName: 'Id',
13105
+ name: 'id',
13106
+ type: 'string',
13107
+ default: '',
13108
+ description: 'Supplier ID or integration ID',
13109
+ required: true,
13110
+ displayOptions: {
13111
+ show: {
13112
+ resource: ['crm-suppliers'],
13113
+ operation: ['PublicCrmSupplierController_update'],
13114
+ },
13115
+ },
13116
+ },
13117
+ {
13118
+ displayName: 'Name',
13119
+ name: 'name',
13120
+ type: 'string',
13121
+ default: '',
13122
+ description: 'Display name',
13123
+ required: false,
13124
+ displayOptions: {
13125
+ show: {
13126
+ resource: ['crm-suppliers'],
13127
+ operation: ['PublicCrmSupplierController_update'],
13128
+ },
13129
+ },
13130
+ routing: {
13131
+ send: {
13132
+ type: 'body',
13133
+ property: 'name',
13134
+ },
13135
+ },
13136
+ },
13137
+ {
13138
+ displayName: 'Legal Name',
13139
+ name: 'legalName',
13140
+ type: 'string',
13141
+ default: '',
13142
+ description: '',
13143
+ required: false,
13144
+ displayOptions: {
13145
+ show: {
13146
+ resource: ['crm-suppliers'],
13147
+ operation: ['PublicCrmSupplierController_update'],
13148
+ },
13149
+ },
13150
+ routing: {
13151
+ send: {
13152
+ type: 'body',
13153
+ property: 'legalName',
13154
+ },
13155
+ },
13156
+ },
13157
+ {
13158
+ displayName: 'Phone',
13159
+ name: 'phone',
13160
+ type: 'string',
13161
+ default: '',
13162
+ description: 'Phone number',
13163
+ required: false,
13164
+ displayOptions: {
13165
+ show: {
13166
+ resource: ['crm-suppliers'],
13167
+ operation: ['PublicCrmSupplierController_update'],
13168
+ },
13169
+ },
13170
+ routing: {
13171
+ send: {
13172
+ type: 'body',
13173
+ property: 'phone',
13174
+ },
13175
+ },
13176
+ },
13177
+ {
13178
+ displayName: 'Email',
13179
+ name: 'email',
13180
+ type: 'string',
13181
+ default: '',
13182
+ description: 'Email address',
13183
+ required: false,
13184
+ displayOptions: {
13185
+ show: {
13186
+ resource: ['crm-suppliers'],
13187
+ operation: ['PublicCrmSupplierController_update'],
13188
+ },
13189
+ },
13190
+ routing: {
13191
+ send: {
13192
+ type: 'body',
13193
+ property: 'email',
13194
+ },
13195
+ },
13196
+ },
13197
+ {
13198
+ displayName: 'Website',
13199
+ name: 'website',
13200
+ type: 'string',
13201
+ default: '',
13202
+ description: '',
13203
+ required: false,
13204
+ displayOptions: {
13205
+ show: {
13206
+ resource: ['crm-suppliers'],
13207
+ operation: ['PublicCrmSupplierController_update'],
13208
+ },
13209
+ },
13210
+ routing: {
13211
+ send: {
13212
+ type: 'body',
13213
+ property: 'website',
13214
+ },
13215
+ },
13216
+ },
13217
+ {
13218
+ displayName: 'Integration Id',
13219
+ name: 'integrationId',
13220
+ type: 'string',
13221
+ default: '',
13222
+ description: 'integration ID',
13223
+ required: false,
13224
+ displayOptions: {
13225
+ show: {
13226
+ resource: ['crm-suppliers'],
13227
+ operation: ['PublicCrmSupplierController_update'],
13228
+ },
13229
+ },
13230
+ routing: {
13231
+ send: {
13232
+ type: 'body',
13233
+ property: 'integrationId',
13234
+ },
13235
+ },
13236
+ },
13237
+ {
13238
+ displayName: 'Address',
13239
+ name: 'address',
13240
+ type: 'collection',
13241
+ default: {},
13242
+ placeholder: 'Add Address',
13243
+ description: '',
13244
+ required: false,
13245
+ displayOptions: {
13246
+ show: {
13247
+ resource: ['crm-suppliers'],
13248
+ operation: ['PublicCrmSupplierController_update'],
13249
+ },
13250
+ },
13251
+ options: [
13252
+ {
13253
+ displayName: 'Name',
13254
+ name: 'name',
13255
+ type: 'string',
13256
+ default: '',
13257
+ description: 'Display name',
13258
+ },
13259
+ {
13260
+ displayName: 'Street1',
13261
+ name: 'street1',
13262
+ type: 'string',
13263
+ default: '',
13264
+ description: '',
13265
+ },
13266
+ {
13267
+ displayName: 'Street2',
13268
+ name: 'street2',
13269
+ type: 'string',
13270
+ default: '',
13271
+ description: '',
13272
+ },
13273
+ {
13274
+ displayName: 'Suburb',
13275
+ name: 'suburb',
13276
+ type: 'string',
13277
+ default: '',
13278
+ description: '',
13279
+ },
13280
+ {
13281
+ displayName: 'State',
13282
+ name: 'state',
13283
+ type: 'string',
13284
+ default: '',
13285
+ description: '',
13286
+ },
13287
+ {
13288
+ displayName: 'Postal Code',
13289
+ name: 'postalCode',
13290
+ type: 'string',
13291
+ default: '',
13292
+ description: '',
13293
+ },
13294
+ {
13295
+ displayName: 'Postcode',
13296
+ name: 'postcode',
13297
+ type: 'string',
13298
+ default: '',
13299
+ description: '',
13300
+ },
13301
+ {
13302
+ displayName: 'Country',
13303
+ name: 'country',
13304
+ type: 'string',
13305
+ default: '',
13306
+ description: '',
10884
13307
  },
10885
- },
10886
- options: [
10887
13308
  {
10888
- name: 'List employees',
10889
- value: 'PublicCrmEmployeeController_list',
10890
- action: '',
13309
+ displayName: 'Lat',
13310
+ name: 'lat',
13311
+ type: 'number',
13312
+ default: 0,
10891
13313
  description: '',
10892
- routing: {
10893
- request: {
10894
- method: 'GET',
10895
- url: '/api/v2/public/employees',
10896
- },
10897
- },
10898
13314
  },
10899
13315
  {
10900
- name: 'Get employee by ID',
10901
- value: 'PublicCrmEmployeeController_getById',
10902
- action: '',
13316
+ displayName: 'Lgn',
13317
+ name: 'lgn',
13318
+ type: 'number',
13319
+ default: 0,
13320
+ description: '',
13321
+ },
13322
+ {
13323
+ displayName: 'Timezone',
13324
+ name: 'timezone',
13325
+ type: 'string',
13326
+ default: '',
10903
13327
  description: '',
10904
- routing: {
10905
- request: {
10906
- method: 'GET',
10907
- url: '/api/v2/public/employees/={{ $parameter["id"] }}',
10908
- },
10909
- },
10910
13328
  },
10911
13329
  ],
10912
- default: 'PublicCrmEmployeeController_list',
13330
+ routing: {
13331
+ send: {
13332
+ type: 'body',
13333
+ property: 'address',
13334
+ },
13335
+ },
10913
13336
  },
10914
13337
  {
10915
- displayName: 'Cursor',
10916
- name: 'cursor',
10917
- type: 'string',
10918
- default: '',
13338
+ displayName: 'Owner',
13339
+ name: 'owner',
13340
+ type: 'json',
13341
+ default: {},
10919
13342
  description: '',
10920
13343
  required: false,
10921
13344
  displayOptions: {
10922
13345
  show: {
10923
- resource: ['crm-employees'],
10924
- operation: ['PublicCrmEmployeeController_list'],
13346
+ resource: ['crm-suppliers'],
13347
+ operation: ['PublicCrmSupplierController_update'],
10925
13348
  },
10926
13349
  },
10927
13350
  routing: {
10928
13351
  send: {
10929
13352
  type: 'body',
10930
- property: 'cursor',
13353
+ property: 'owner',
10931
13354
  },
10932
13355
  },
10933
13356
  },
10934
13357
  {
10935
- displayName: 'Limit',
10936
- name: 'limit',
10937
- type: 'number',
10938
- default: '',
13358
+ displayName: 'Labels',
13359
+ name: 'labels',
13360
+ type: 'json',
13361
+ default: {},
10939
13362
  description: '',
10940
13363
  required: false,
10941
13364
  displayOptions: {
10942
13365
  show: {
10943
- resource: ['crm-employees'],
10944
- operation: ['PublicCrmEmployeeController_list'],
13366
+ resource: ['crm-suppliers'],
13367
+ operation: ['PublicCrmSupplierController_update'],
10945
13368
  },
10946
13369
  },
10947
13370
  routing: {
10948
13371
  send: {
10949
13372
  type: 'body',
10950
- property: 'limit',
13373
+ property: 'labels',
10951
13374
  },
10952
13375
  },
10953
13376
  },
10954
13377
  {
10955
- displayName: 'Id',
10956
- name: 'id',
13378
+ displayName: 'Description',
13379
+ name: 'description',
10957
13380
  type: 'string',
10958
13381
  default: '',
10959
- description: 'Employee ID',
10960
- required: true,
13382
+ description: 'Detailed description',
13383
+ required: false,
10961
13384
  displayOptions: {
10962
13385
  show: {
10963
- resource: ['crm-employees'],
10964
- operation: ['PublicCrmEmployeeController_getById'],
13386
+ resource: ['crm-suppliers'],
13387
+ operation: ['PublicCrmSupplierController_update'],
13388
+ },
13389
+ },
13390
+ routing: {
13391
+ send: {
13392
+ type: 'body',
13393
+ property: 'description',
10965
13394
  },
10966
13395
  },
10967
13396
  },
10968
- // Crm Contractors Operations
10969
13397
  {
10970
- displayName: 'Operation',
10971
- name: 'operation',
10972
- type: 'options',
10973
- noDataExpression: true,
13398
+ displayName: 'Custom Fields',
13399
+ name: 'customFields',
13400
+ type: 'json',
13401
+ default: {},
13402
+ description: 'Custom fields as key-value pairs — validated against tenant field definitions',
13403
+ required: false,
10974
13404
  displayOptions: {
10975
13405
  show: {
10976
- resource: ['crm-contractors'],
13406
+ resource: ['crm-suppliers'],
13407
+ operation: ['PublicCrmSupplierController_update'],
10977
13408
  },
10978
13409
  },
10979
- options: [
10980
- {
10981
- name: 'List contractors',
10982
- value: 'PublicCrmContractorController_list',
10983
- action: '',
10984
- description: '',
10985
- routing: {
10986
- request: {
10987
- method: 'GET',
10988
- url: '/api/v2/public/contractors',
10989
- },
10990
- },
10991
- },
10992
- {
10993
- name: 'Get contractor by ID',
10994
- value: 'PublicCrmContractorController_getById',
10995
- action: '',
10996
- description: '',
10997
- routing: {
10998
- request: {
10999
- method: 'GET',
11000
- url: '/api/v2/public/contractors/={{ $parameter["id"] }}',
11001
- },
11002
- },
13410
+ routing: {
13411
+ send: {
13412
+ type: 'body',
13413
+ property: 'customFields',
11003
13414
  },
11004
- ],
11005
- default: 'PublicCrmContractorController_list',
13415
+ },
11006
13416
  },
11007
13417
  {
11008
- displayName: 'Cursor',
11009
- name: 'cursor',
11010
- type: 'string',
11011
- default: '',
13418
+ displayName: 'Zones',
13419
+ name: 'zones',
13420
+ type: 'json',
13421
+ default: {},
11012
13422
  description: '',
11013
13423
  required: false,
11014
13424
  displayOptions: {
11015
13425
  show: {
11016
- resource: ['crm-contractors'],
11017
- operation: ['PublicCrmContractorController_list'],
13426
+ resource: ['crm-suppliers'],
13427
+ operation: ['PublicCrmSupplierController_update'],
11018
13428
  },
11019
13429
  },
11020
13430
  routing: {
11021
13431
  send: {
11022
13432
  type: 'body',
11023
- property: 'cursor',
13433
+ property: 'zones',
11024
13434
  },
11025
13435
  },
11026
13436
  },
11027
13437
  {
11028
- displayName: 'Limit',
11029
- name: 'limit',
11030
- type: 'number',
11031
- default: '',
13438
+ displayName: 'Work Categories',
13439
+ name: 'workCategories',
13440
+ type: 'json',
13441
+ default: {},
11032
13442
  description: '',
11033
13443
  required: false,
11034
13444
  displayOptions: {
11035
13445
  show: {
11036
- resource: ['crm-contractors'],
11037
- operation: ['PublicCrmContractorController_list'],
13446
+ resource: ['crm-suppliers'],
13447
+ operation: ['PublicCrmSupplierController_update'],
11038
13448
  },
11039
13449
  },
11040
13450
  routing: {
11041
13451
  send: {
11042
13452
  type: 'body',
11043
- property: 'limit',
13453
+ property: 'workCategories',
11044
13454
  },
11045
13455
  },
11046
13456
  },
11047
13457
  {
11048
- displayName: 'Id',
11049
- name: 'id',
13458
+ displayName: 'Tax Id',
13459
+ name: 'taxId',
11050
13460
  type: 'string',
11051
13461
  default: '',
11052
- description: 'Contractor ID',
11053
- required: true,
13462
+ description: 'tax ID',
13463
+ required: false,
11054
13464
  displayOptions: {
11055
13465
  show: {
11056
- resource: ['crm-contractors'],
11057
- operation: ['PublicCrmContractorController_getById'],
13466
+ resource: ['crm-suppliers'],
13467
+ operation: ['PublicCrmSupplierController_update'],
13468
+ },
13469
+ },
13470
+ routing: {
13471
+ send: {
13472
+ type: 'body',
13473
+ property: 'taxId',
11058
13474
  },
11059
13475
  },
11060
13476
  },
11061
- // Crm Suppliers Operations
11062
13477
  {
11063
- displayName: 'Operation',
11064
- name: 'operation',
11065
- type: 'options',
11066
- noDataExpression: true,
13478
+ displayName: 'Accounting',
13479
+ name: 'accounting',
13480
+ type: 'json',
13481
+ default: {},
13482
+ description: '',
13483
+ required: false,
11067
13484
  displayOptions: {
11068
13485
  show: {
11069
13486
  resource: ['crm-suppliers'],
13487
+ operation: ['PublicCrmSupplierController_update'],
11070
13488
  },
11071
13489
  },
11072
- options: [
11073
- {
11074
- name: 'List suppliers',
11075
- value: 'PublicCrmSupplierController_list',
11076
- action: '',
11077
- description: '',
11078
- routing: {
11079
- request: {
11080
- method: 'GET',
11081
- url: '/api/v2/public/suppliers',
11082
- },
11083
- },
13490
+ routing: {
13491
+ send: {
13492
+ type: 'body',
13493
+ property: 'accounting',
11084
13494
  },
11085
- {
11086
- name: 'Get supplier by ID',
11087
- value: 'PublicCrmSupplierController_getById',
11088
- action: '',
11089
- description: '',
11090
- routing: {
11091
- request: {
11092
- method: 'GET',
11093
- url: '/api/v2/public/suppliers/={{ $parameter["id"] }}',
11094
- },
11095
- },
13495
+ },
13496
+ },
13497
+ {
13498
+ displayName: 'Finance Tags',
13499
+ name: 'financeTags',
13500
+ type: 'json',
13501
+ default: {},
13502
+ description: '',
13503
+ required: false,
13504
+ displayOptions: {
13505
+ show: {
13506
+ resource: ['crm-suppliers'],
13507
+ operation: ['PublicCrmSupplierController_update'],
11096
13508
  },
11097
- ],
11098
- default: 'PublicCrmSupplierController_list',
13509
+ },
13510
+ routing: {
13511
+ send: {
13512
+ type: 'body',
13513
+ property: 'financeTags',
13514
+ },
13515
+ },
11099
13516
  },
11100
13517
  {
11101
- displayName: 'Cursor',
11102
- name: 'cursor',
11103
- type: 'string',
11104
- default: '',
13518
+ displayName: 'Invoices',
13519
+ name: 'invoices',
13520
+ type: 'json',
13521
+ default: {},
11105
13522
  description: '',
11106
13523
  required: false,
11107
13524
  displayOptions: {
11108
13525
  show: {
11109
13526
  resource: ['crm-suppliers'],
11110
- operation: ['PublicCrmSupplierController_list'],
13527
+ operation: ['PublicCrmSupplierController_update'],
11111
13528
  },
11112
13529
  },
11113
13530
  routing: {
11114
13531
  send: {
11115
13532
  type: 'body',
11116
- property: 'cursor',
13533
+ property: 'invoices',
11117
13534
  },
11118
13535
  },
11119
13536
  },
11120
13537
  {
11121
- displayName: 'Limit',
11122
- name: 'limit',
11123
- type: 'number',
11124
- default: '',
13538
+ displayName: 'Bill To',
13539
+ name: 'billTo',
13540
+ type: 'json',
13541
+ default: {},
11125
13542
  description: '',
11126
13543
  required: false,
11127
13544
  displayOptions: {
11128
13545
  show: {
11129
13546
  resource: ['crm-suppliers'],
11130
- operation: ['PublicCrmSupplierController_list'],
13547
+ operation: ['PublicCrmSupplierController_update'],
11131
13548
  },
11132
13549
  },
11133
13550
  routing: {
11134
13551
  send: {
11135
13552
  type: 'body',
11136
- property: 'limit',
13553
+ property: 'billTo',
11137
13554
  },
11138
13555
  },
11139
13556
  },
11140
13557
  {
11141
- displayName: 'Id',
11142
- name: 'id',
11143
- type: 'string',
11144
- default: '',
11145
- description: 'Supplier ID',
11146
- required: true,
13558
+ displayName: 'Credit',
13559
+ name: 'credit',
13560
+ type: 'json',
13561
+ default: {},
13562
+ description: '',
13563
+ required: false,
11147
13564
  displayOptions: {
11148
13565
  show: {
11149
13566
  resource: ['crm-suppliers'],
11150
- operation: ['PublicCrmSupplierController_getById'],
13567
+ operation: ['PublicCrmSupplierController_update'],
13568
+ },
13569
+ },
13570
+ routing: {
13571
+ send: {
13572
+ type: 'body',
13573
+ property: 'credit',
13574
+ },
13575
+ },
13576
+ },
13577
+ {
13578
+ displayName: 'Bill Theme',
13579
+ name: 'billTheme',
13580
+ type: 'json',
13581
+ default: {},
13582
+ description: '',
13583
+ required: false,
13584
+ displayOptions: {
13585
+ show: {
13586
+ resource: ['crm-suppliers'],
13587
+ operation: ['PublicCrmSupplierController_update'],
13588
+ },
13589
+ },
13590
+ routing: {
13591
+ send: {
13592
+ type: 'body',
13593
+ property: 'billTheme',
11151
13594
  },
11152
13595
  },
11153
13596
  },