1 | |
2 | type Zoho = { |
3 | token: string; |
4 | }; |
5 | |
6 | * Update scoring rule |
7 | * |
8 | */ |
9 | export async function main( |
10 | auth: Zoho, |
11 | id: string, |
12 | body: { |
13 | scoring_rules: { |
14 | name: string; |
15 | description: string; |
16 | id: string; |
17 | layout: { id?: string; api_name?: string }; |
18 | created_time: string; |
19 | modified_time: string; |
20 | module: { |
21 | has_more_profiles?: false | true; |
22 | sub_menu_available?: false | true; |
23 | "common.search_supported": false | true; |
24 | deletable: false | true; |
25 | description: string; |
26 | creatable: false | true; |
27 | recycle_bin_on_delete: false | true; |
28 | inventory_template_supported: false | true; |
29 | modified_time: string; |
30 | plural_label: string; |
31 | presence_sub_menu: false | true; |
32 | triggers_supported: false | true; |
33 | id: string; |
34 | chart_view: false | true; |
35 | isBlueprintSupported: false | true; |
36 | visibility: number; |
37 | visible: false | true; |
38 | convertable: false | true; |
39 | editable: false | true; |
40 | emailTemplate_support: false | true; |
41 | email_parser_supported: false | true; |
42 | filter_supported: false | true; |
43 | show_as_tab: false | true; |
44 | web_link: string; |
45 | sequence_number: number; |
46 | singular_label: string; |
47 | viewable: false | true; |
48 | api_supported: false | true; |
49 | api_name: string; |
50 | quick_create: false | true; |
51 | generated_type: "default" | "web" | "linking" | "custom"; |
52 | feeds_required: false | true; |
53 | scoring_supported: false | true; |
54 | webform_supported: false | true; |
55 | territory?: { name?: string; id?: string; subordinates?: false | true }; |
56 | arguments: { name?: string; value?: string }[]; |
57 | module_name: string; |
58 | chart_view_supported: false | true; |
59 | profile_count: number; |
60 | business_card_field_limit: number; |
61 | track_current_data: false | true; |
62 | modified_by: { name: string; id: string; email?: string }; |
63 | profiles: { id: string; name: string; _delete?: false | true }[]; |
64 | parent_module: {}; |
65 | activity_badge: "Enabled" | "Disabled"; |
66 | $field_states: string[]; |
67 | business_card_fields: string[]; |
68 | per_page: number; |
69 | $properties: string[]; |
70 | $on_demand_properties: string[]; |
71 | search_layout_fields: string[]; |
72 | kanban_view_supported: false | true; |
73 | lookup_field_properties: { |
74 | fields: { sequence_number: number; api_name: string; id: string }[]; |
75 | }; |
76 | kanban_view: false | true; |
77 | related_lists: { |
78 | id: string; |
79 | sequence_number: string; |
80 | display_label: string; |
81 | api_name: string; |
82 | module: { api_name: string; id: string }; |
83 | name: string; |
84 | action: string; |
85 | href: string; |
86 | type: string; |
87 | connectedmodule?: string; |
88 | linkingmodule?: string; |
89 | visible: false | true; |
90 | customize_sort: false | true; |
91 | customize_fields: false | true; |
92 | customize_display_label: false | true; |
93 | sort_by: { api_name: string; id: string }; |
94 | sort_order: string; |
95 | fields: { api_name: string; id: string }[]; |
96 | status: "visible" | "scheduled_for_deletion" | "user_hidden"; |
97 | }[]; |
98 | filter_status: false | true; |
99 | related_list_properties: { |
100 | sort_by: { api_name: string; id: string }; |
101 | fields: string[]; |
102 | sort_order: string; |
103 | }; |
104 | display_field: {}; |
105 | layouts: {}[]; |
106 | fields: { |
107 | blueprint_supported: false | true; |
108 | json_type: string; |
109 | length: number; |
110 | decimal_place: number; |
111 | multi_module_lookup: {}; |
112 | sharing_properties: { |
113 | scheduler_status?: string; |
114 | share_preference_enabled?: false | true; |
115 | share_permission?: "read-write" | "read-only" | "full-access"; |
116 | }; |
117 | currency: {}; |
118 | file_upolad_optionlist: { |
119 | actual_value: string; |
120 | display_value: string; |
121 | }[]; |
122 | lookup: {}; |
123 | subform: {}; |
124 | formula: {}; |
125 | multiselectlookup: {}; |
126 | multiuserlookup: { |
127 | display_label: string; |
128 | linking_module: { |
129 | api_name: string; |
130 | id: string; |
131 | module_name?: string; |
132 | module?: string; |
133 | }; |
134 | connected_module: { |
135 | api_name: string; |
136 | id: string; |
137 | module_name?: string; |
138 | module?: string; |
139 | }; |
140 | lookup_apiname: string; |
141 | api_name: string; |
142 | connectedfield_apiname: string; |
143 | connectedlookup_apiname: string; |
144 | id: string; |
145 | record_access: false | true; |
146 | }; |
147 | pick_list_values: { |
148 | colour_code: string; |
149 | actual_value: string; |
150 | type: "unused" | "used"; |
151 | id: string; |
152 | sequence_number: number; |
153 | display_value: string; |
154 | reference_value?: string; |
155 | deal_category?: string; |
156 | probability?: number; |
157 | forecast_category?: { id?: string; name?: string }; |
158 | expected_data_type?: string; |
159 | sys_ref_name?: string; |
160 | forecast_type?: string; |
161 | maps?: { api_name?: string; pick_list_values?: {}[] }[]; |
162 | _delete?: false | true; |
163 | show_value?: false | true; |
164 | }[]; |
165 | allowed_modules: { |
166 | api_name: string; |
167 | id: string; |
168 | module_name?: string; |
169 | module?: string; |
170 | }[]; |
171 | hipaa_compliance_enabled: false | true; |
172 | hipaa_compliance: { |
173 | restricted_in_export: false | true; |
174 | restricted: false | true; |
175 | }; |
176 | associated_module: { |
177 | api_name: string; |
178 | id: string; |
179 | module_name?: string; |
180 | module?: string; |
181 | }; |
182 | data_type: string; |
183 | operation_type: { |
184 | web_update: false | true; |
185 | api_create: false | true; |
186 | web_create: false | true; |
187 | api_update: false | true; |
188 | }; |
189 | system_mandatory: false | true; |
190 | webhook: false | true; |
191 | sequence_number?: number; |
192 | default_value?: string; |
193 | virtual_field: false | true; |
194 | field_read_only: false | true; |
195 | customizable_properties: string[]; |
196 | read_only: false | true; |
197 | custom_field: false | true; |
198 | businesscard_supported: false | true; |
199 | filterable: false | true; |
200 | visible: false | true; |
201 | available_in_user_layout: false | true; |
202 | display_field: false | true; |
203 | pick_list_values_sorted_lexically: false | true; |
204 | sortable: false | true; |
205 | layout_associations: { api_name: string; name: string; id: string }[]; |
206 | separator: false | true; |
207 | searchable: false | true; |
208 | enable_colour_code: false | true; |
209 | mass_update: false | true; |
210 | created_source: string; |
211 | type: string; |
212 | display_label: string; |
213 | column_name: string; |
214 | api_name: string; |
215 | display_type: number; |
216 | ui_type: number; |
217 | colour_code_enabled_by_system: false | true; |
218 | quick_sequence_number: string; |
219 | email_parser: { |
220 | fields_update_supported: false | true; |
221 | record_operations_supported: false | true; |
222 | }; |
223 | rollup_summary: {}; |
224 | refer_from_field: { id: string; api_name: string }; |
225 | created_time: string; |
226 | modified_time: string; |
227 | show_type: number; |
228 | category: number; |
229 | id: string; |
230 | profiles: { name: string; id: string; permission_type: string }[]; |
231 | view_type: { |
232 | view: false | true; |
233 | edit: false | true; |
234 | quick_create: false | true; |
235 | create: false | true; |
236 | }; |
237 | unique: {}; |
238 | sub_module: { |
239 | api_name: string; |
240 | id: string; |
241 | module_name?: string; |
242 | module?: string; |
243 | }; |
244 | external: { |
245 | show: false | true; |
246 | type: string; |
247 | allow_multiple_config?: false | true; |
248 | }; |
249 | private?: { |
250 | restricted: false | true; |
251 | type: string; |
252 | export: false | true; |
253 | }; |
254 | convert_mapping: { |
255 | Contacts?: string; |
256 | Deals?: string; |
257 | Accounts?: string; |
258 | }; |
259 | autonumber: { |
260 | starting_number_length: number; |
261 | prefix: string; |
262 | suffix: string; |
263 | start_number: number; |
264 | }; |
265 | auto_number: {}; |
266 | crypt: { |
267 | mode: string; |
268 | status: number; |
269 | column?: string; |
270 | table?: string; |
271 | encFldIds?: string[]; |
272 | notify?: string; |
273 | }; |
274 | tooltip: { name: string; value: string }; |
275 | history_tracking: { |
276 | module: { |
277 | layout?: { |
278 | display_type?: number; |
279 | api_name?: string; |
280 | has_more_profiles: false | true; |
281 | created_time: string; |
282 | modified_time: string; |
283 | visible: false | true; |
284 | source: string; |
285 | id: string; |
286 | name: string; |
287 | display_label: string; |
288 | mode: string; |
289 | subform_properties: { pinned_column: false | true }; |
290 | status: string; |
291 | show_business_card: false | true; |
292 | generated_type: string; |
293 | created_for: { name: string; id: string; email?: string }; |
294 | convert_mapping: { |
295 | Contacts: { name: string; id: string }; |
296 | Deals: { |
297 | fields: { |
298 | api_name?: string; |
299 | field_label?: string; |
300 | id?: string; |
301 | required?: false | true; |
302 | }[]; |
303 | name: string; |
304 | id: string; |
305 | }; |
306 | Accounts: { name: string; id: string }; |
307 | Invoices: { name: string; id: string }; |
308 | SalesOrders: { name: string; id: string }; |
309 | }; |
310 | modified_by: { name: string; id: string; email?: string }; |
311 | profiles: { |
312 | default: false | true; |
313 | name: string; |
314 | id: string; |
315 | _default_view: { name: string; id: string; type: string }; |
316 | _default_assignment_view?: { |
317 | name?: string; |
318 | id?: string; |
319 | type?: string; |
320 | }; |
321 | }[]; |
322 | created_by: { name: string; id: string; email?: string }; |
323 | sections: { |
324 | display_label: string; |
325 | sequence_number: number; |
326 | isSubformSection: false | true; |
327 | tab_traversal: string; |
328 | api_name: string; |
329 | column_count: number; |
330 | name: string; |
331 | generated_type: string; |
332 | id: string; |
333 | type: string; |
334 | fields: { |
335 | required: false | true; |
336 | validation_rule: {}; |
337 | default_value: {}; |
338 | sequence_number: number; |
339 | section_id: number; |
340 | blueprint_supported: false | true; |
341 | json_type: string; |
342 | length: number; |
343 | decimal_place: number; |
344 | multi_module_lookup: {}; |
345 | sharing_properties: { |
346 | scheduler_status?: string; |
347 | share_preference_enabled?: false | true; |
348 | share_permission?: |
349 | | "read-write" |
350 | | "read-only" |
351 | | "full-access"; |
352 | }; |
353 | currency: {}; |
354 | file_upolad_optionlist: { |
355 | actual_value: string; |
356 | display_value: string; |
357 | }[]; |
358 | lookup: {}; |
359 | subform: {}; |
360 | formula: {}; |
361 | multiselectlookup: {}; |
362 | multiuserlookup: { |
363 | display_label: string; |
364 | linking_module: { |
365 | api_name: string; |
366 | id: string; |
367 | module_name?: string; |
368 | module?: string; |
369 | }; |
370 | connected_module: { |
371 | api_name: string; |
372 | id: string; |
373 | module_name?: string; |
374 | module?: string; |
375 | }; |
376 | lookup_apiname: string; |
377 | api_name: string; |
378 | connectedfield_apiname: string; |
379 | connectedlookup_apiname: string; |
380 | id: string; |
381 | record_access: false | true; |
382 | }; |
383 | pick_list_values: { |
384 | colour_code: string; |
385 | actual_value: string; |
386 | type: "unused" | "used"; |
387 | id: string; |
388 | sequence_number: number; |
389 | display_value: string; |
390 | reference_value?: string; |
391 | deal_category?: string; |
392 | probability?: number; |
393 | forecast_category?: { id?: string; name?: string }; |
394 | expected_data_type?: string; |
395 | sys_ref_name?: string; |
396 | forecast_type?: string; |
397 | maps?: { api_name?: string; pick_list_values?: {}[] }[]; |
398 | _delete?: false | true; |
399 | show_value?: false | true; |
400 | }[]; |
401 | allowed_modules: { |
402 | api_name: string; |
403 | id: string; |
404 | module_name?: string; |
405 | module?: string; |
406 | }[]; |
407 | hipaa_compliance_enabled: false | true; |
408 | hipaa_compliance: { |
409 | restricted_in_export: false | true; |
410 | restricted: false | true; |
411 | }; |
412 | static_values: { |
413 | sequence_number: number; |
414 | id: string; |
415 | value: string; |
416 | }[]; |
417 | static_field: false | true; |
418 | layout_associations: { |
419 | api_name: string; |
420 | name: string; |
421 | id: string; |
422 | }[]; |
423 | _delete: { permanent: false | true }; |
424 | associated_module: { |
425 | api_name: string; |
426 | id: string; |
427 | module_name?: string; |
428 | module?: string; |
429 | }; |
430 | data_type: string; |
431 | operation_type: { |
432 | web_update: false | true; |
433 | api_create: false | true; |
434 | web_create: false | true; |
435 | api_update: false | true; |
436 | }; |
437 | system_mandatory: false | true; |
438 | webhook: false | true; |
439 | virtual_field: false | true; |
440 | field_read_only: false | true; |
441 | customizable_properties: string[]; |
442 | read_only: false | true; |
443 | custom_field: false | true; |
444 | businesscard_supported: false | true; |
445 | filterable: false | true; |
446 | visible: false | true; |
447 | available_in_user_layout: false | true; |
448 | display_field: false | true; |
449 | pick_list_values_sorted_lexically: false | true; |
450 | sortable: false | true; |
451 | separator: false | true; |
452 | searchable: false | true; |
453 | enable_colour_code: false | true; |
454 | mass_update: false | true; |
455 | created_source: string; |
456 | type: string; |
457 | display_label: string; |
458 | column_name: string; |
459 | api_name: string; |
460 | display_type: number; |
461 | ui_type: number; |
462 | colour_code_enabled_by_system: false | true; |
463 | quick_sequence_number: string; |
464 | email_parser: { |
465 | fields_update_supported: false | true; |
466 | record_operations_supported: false | true; |
467 | }; |
468 | rollup_summary: {}; |
469 | refer_from_field: { id: string; api_name: string }; |
470 | created_time: string; |
471 | modified_time: string; |
472 | show_type: number; |
473 | category: number; |
474 | id: string; |
475 | profiles: { |
476 | name: string; |
477 | id: string; |
478 | permission_type: string; |
479 | }[]; |
480 | view_type: { |
481 | view: false | true; |
482 | edit: false | true; |
483 | quick_create: false | true; |
484 | create: false | true; |
485 | }; |
486 | unique: {}; |
487 | sub_module: { |
488 | api_name: string; |
489 | id: string; |
490 | module_name?: string; |
491 | module?: string; |
492 | }; |
493 | external: { |
494 | show: false | true; |
495 | type: string; |
496 | allow_multiple_config?: false | true; |
497 | }; |
498 | private?: { |
499 | restricted: false | true; |
500 | type: string; |
501 | export: false | true; |
502 | }; |
503 | convert_mapping: { |
504 | Contacts?: string; |
505 | Deals?: string; |
506 | Accounts?: string; |
507 | }; |
508 | autonumber: { |
509 | starting_number_length: number; |
510 | prefix: string; |
511 | suffix: string; |
512 | start_number: number; |
513 | }; |
514 | auto_number: {}; |
515 | crypt: { |
516 | mode: string; |
517 | status: number; |
518 | column?: string; |
519 | table?: string; |
520 | encFldIds?: string[]; |
521 | notify?: string; |
522 | }; |
523 | tooltip: { name: string; value: string }; |
524 | history_tracking: {}; |
525 | association_details: { |
526 | related_field: { |
527 | api_name: string; |
528 | id: string; |
529 | module_name?: string; |
530 | module?: string; |
531 | }; |
532 | lookup_field: { |
533 | api_name: string; |
534 | id: string; |
535 | module_name?: string; |
536 | module?: string; |
537 | }; |
538 | }; |
539 | additional_column: string; |
540 | field_label: string; |
541 | "common.picklist": {}; |
542 | _update_existing_records: false | true; |
543 | number_separator: false | true; |
544 | textarea: { type?: string }; |
545 | }[]; |
546 | properties: { |
547 | reorder_rows: false | true; |
548 | maximum_rows: number; |
549 | tooltip: { name?: "Info Icon"; value?: string }; |
550 | }; |
551 | _delete: { permanent: false | true }; |
552 | }[]; |
553 | actions_allowed: { |
554 | edit: false | true; |
555 | rename: false | true; |
556 | clone: false | true; |
557 | downgrade: false | true; |
558 | delete: false | true; |
559 | deactivate: false | true; |
560 | set_layout_permissions: false | true; |
561 | }; |
562 | }; |
563 | display_label?: string; |
564 | api_name?: string; |
565 | module?: {}; |
566 | id?: string; |
567 | module_name?: string; |
568 | }; |
569 | duration_configured_field: { |
570 | api_name: string; |
571 | id: string; |
572 | module_name?: string; |
573 | module?: string; |
574 | }; |
575 | }; |
576 | association_details: { |
577 | related_field: { |
578 | api_name: string; |
579 | id: string; |
580 | module_name?: string; |
581 | module?: string; |
582 | }; |
583 | lookup_field: { |
584 | api_name: string; |
585 | id: string; |
586 | module_name?: string; |
587 | module?: string; |
588 | }; |
589 | }; |
590 | additional_column: string; |
591 | field_label: string; |
592 | "common.picklist": {}; |
593 | _update_existing_records: false | true; |
594 | number_separator: false | true; |
595 | textarea: { type?: string }; |
596 | static_field: false | true; |
597 | }[]; |
598 | custom_view: { |
599 | display_value: string; |
600 | system_name: string; |
601 | category: string; |
602 | created_time: string; |
603 | modified_time: string; |
604 | last_accessed_time: string; |
605 | name: string; |
606 | created_by: { name: string; id: string; email?: string }; |
607 | modified_by: { name: string; id: string; email?: string }; |
608 | module: { name: string; id: string; email?: string }; |
609 | criteria: { |
610 | comparator: string; |
611 | field: { api_name: string; id: string }; |
612 | value: {}; |
613 | group_operator: string; |
614 | group: {}[]; |
615 | }; |
616 | default: false | true; |
617 | system_defined: false | true; |
618 | locked: false | true; |
619 | favorite: number; |
620 | offline: false | true; |
621 | access_type: "shared" | "public" | "only_to_me"; |
622 | shared_to: { |
623 | type: "territories" | "roles" | "groups" | "users"; |
624 | name: string; |
625 | id: string; |
626 | subordinates: false | true; |
627 | }[]; |
628 | fields: { id: string; api_name: string; _pin: false | true }[]; |
629 | sort_by: { id: string; api_name: string }; |
630 | sort_order: "asc" | "desc"; |
631 | id: string; |
632 | }; |
633 | zia_view: false | true; |
634 | default_mapping_fields: { api_name: string; id: string }[]; |
635 | status?: string; |
636 | static_subform_properties?: { |
637 | fields: { api_name: string; id: string }[]; |
638 | }; |
639 | layout_associations: { api_name: string; name: string; id: string }[]; |
640 | }; |
641 | modified_by: { name: string; id: string; email?: string }; |
642 | active: false | true; |
643 | created_by: { name: string; id: string; email?: string }; |
644 | field_rules: { |
645 | score: number; |
646 | criteria: { |
647 | comparator: string; |
648 | field: { api_name?: string; id?: string }; |
649 | value: {}; |
650 | group_operator: string; |
651 | group: {}[]; |
652 | }; |
653 | id: string; |
654 | }[]; |
655 | signal_rules: { |
656 | score: number; |
657 | signal: { namespace: string; id: string }; |
658 | id: string; |
659 | }[]; |
660 | }[]; |
661 | }, |
662 | ) { |
663 | const url = new URL( |
664 | `https://zohoapis.com/crm/v8/settings/automation/scoring_rules/${id}`, |
665 | ); |
666 |
|
667 | const response = await fetch(url, { |
668 | method: "PUT", |
669 | headers: { |
670 | "Content-Type": "application/json", |
671 | Authorization: "Zoho-oauthtoken " + auth.token, |
672 | }, |
673 | body: JSON.stringify(body), |
674 | }); |
675 | if (!response.ok) { |
676 | const text = await response.text(); |
677 | throw new Error(`${response.status} ${text}`); |
678 | } |
679 | return await response.json(); |
680 | } |
681 |
|