Edits history of script submission #22126 for ' Update scoring rules (zoho)'

  • bun
    One script reply has been approved by the moderators
    Ap­pro­ved
    //native
    type Zoho = {
      token: string;
    };
    /**
     * Update scoring rules
     *
     */
    export async function main(
      auth: Zoho,
      body: {
        scoring_rules: {
          name: string;
          description: string;
          id: string;
          layout: { id?: string; api_name?: string };
          created_time: string;
          modified_time: string;
          module: {
            has_more_profiles?: false | true;
            sub_menu_available?: false | true;
            "common.search_supported": false | true;
            deletable: false | true;
            description: string;
            creatable: false | true;
            recycle_bin_on_delete: false | true;
            inventory_template_supported: false | true;
            modified_time: string;
            plural_label: string;
            presence_sub_menu: false | true;
            triggers_supported: false | true;
            id: string;
            chart_view: false | true;
            isBlueprintSupported: false | true;
            visibility: number;
            visible: false | true;
            convertable: false | true;
            editable: false | true;
            emailTemplate_support: false | true;
            email_parser_supported: false | true;
            filter_supported: false | true;
            show_as_tab: false | true;
            web_link: string;
            sequence_number: number;
            singular_label: string;
            viewable: false | true;
            api_supported: false | true;
            api_name: string;
            quick_create: false | true;
            generated_type: "default" | "web" | "linking" | "custom";
            feeds_required: false | true;
            scoring_supported: false | true;
            webform_supported: false | true;
            territory?: { name?: string; id?: string; subordinates?: false | true };
            arguments: { name?: string; value?: string }[];
            module_name: string;
            chart_view_supported: false | true;
            profile_count: number;
            business_card_field_limit: number;
            track_current_data: false | true;
            modified_by: { name: string; id: string; email?: string };
            profiles: { id: string; name: string; _delete?: false | true }[];
            parent_module: {};
            activity_badge: "Enabled" | "Disabled";
            $field_states: string[];
            business_card_fields: string[];
            per_page: number;
            $properties: string[];
            $on_demand_properties: string[];
            search_layout_fields: string[];
            kanban_view_supported: false | true;
            lookup_field_properties: {
              fields: { sequence_number: number; api_name: string; id: string }[];
            };
            kanban_view: false | true;
            related_lists: {
              id: string;
              sequence_number: string;
              display_label: string;
              api_name: string;
              module: { api_name: string; id: string };
              name: string;
              action: string;
              href: string;
              type: string;
              connectedmodule?: string;
              linkingmodule?: string;
              visible: false | true;
              customize_sort: false | true;
              customize_fields: false | true;
              customize_display_label: false | true;
              sort_by: { api_name: string; id: string };
              sort_order: string;
              fields: { api_name: string; id: string }[];
              status: "visible" | "scheduled_for_deletion" | "user_hidden";
            }[];
            filter_status: false | true;
            related_list_properties: {
              sort_by: { api_name: string; id: string };
              fields: string[];
              sort_order: string;
            };
            display_field: {};
            layouts: {}[];
            fields: {
              blueprint_supported: false | true;
              json_type: string;
              length: number;
              decimal_place: number;
              multi_module_lookup: {};
              sharing_properties: {
                scheduler_status?: string;
                share_preference_enabled?: false | true;
                share_permission?: "read-write" | "read-only" | "full-access";
              };
              currency: {};
              file_upolad_optionlist: {
                actual_value: string;
                display_value: string;
              }[];
              lookup: {};
              subform: {};
              formula: {};
              multiselectlookup: {};
              multiuserlookup: {
                display_label: string;
                linking_module: {
                  api_name: string;
                  id: string;
                  module_name?: string;
                  module?: string;
                };
                connected_module: {
                  api_name: string;
                  id: string;
                  module_name?: string;
                  module?: string;
                };
                lookup_apiname: string;
                api_name: string;
                connectedfield_apiname: string;
                connectedlookup_apiname: string;
                id: string;
                record_access: false | true;
              };
              pick_list_values: {
                colour_code: string;
                actual_value: string;
                type: "unused" | "used";
                id: string;
                sequence_number: number;
                display_value: string;
                reference_value?: string;
                deal_category?: string;
                probability?: number;
                forecast_category?: { id?: string; name?: string };
                expected_data_type?: string;
                sys_ref_name?: string;
                forecast_type?: string;
                maps?: { api_name?: string; pick_list_values?: {}[] }[];
                _delete?: false | true;
                show_value?: false | true;
              }[];
              allowed_modules: {
                api_name: string;
                id: string;
                module_name?: string;
                module?: string;
              }[];
              hipaa_compliance_enabled: false | true;
              hipaa_compliance: {
                restricted_in_export: false | true;
                restricted: false | true;
              };
              associated_module: {
                api_name: string;
                id: string;
                module_name?: string;
                module?: string;
              };
              data_type: string;
              operation_type: {
                web_update: false | true;
                api_create: false | true;
                web_create: false | true;
                api_update: false | true;
              };
              system_mandatory: false | true;
              webhook: false | true;
              sequence_number?: number;
              default_value?: string;
              virtual_field: false | true;
              field_read_only: false | true;
              customizable_properties: string[];
              read_only: false | true;
              custom_field: false | true;
              businesscard_supported: false | true;
              filterable: false | true;
              visible: false | true;
              available_in_user_layout: false | true;
              display_field: false | true;
              pick_list_values_sorted_lexically: false | true;
              sortable: false | true;
              layout_associations: { api_name: string; name: string; id: string }[];
              separator: false | true;
              searchable: false | true;
              enable_colour_code: false | true;
              mass_update: false | true;
              created_source: string;
              type: string;
              display_label: string;
              column_name: string;
              api_name: string;
              display_type: number;
              ui_type: number;
              colour_code_enabled_by_system: false | true;
              quick_sequence_number: string;
              email_parser: {
                fields_update_supported: false | true;
                record_operations_supported: false | true;
              };
              rollup_summary: {};
              refer_from_field: { id: string; api_name: string };
              created_time: string;
              modified_time: string;
              show_type: number;
              category: number;
              id: string;
              profiles: { name: string; id: string; permission_type: string }[];
              view_type: {
                view: false | true;
                edit: false | true;
                quick_create: false | true;
                create: false | true;
              };
              unique: {};
              sub_module: {
                api_name: string;
                id: string;
                module_name?: string;
                module?: string;
              };
              external: {
                show: false | true;
                type: string;
                allow_multiple_config?: false | true;
              };
              private?: {
                restricted: false | true;
                type: string;
                export: false | true;
              };
              convert_mapping: {
                Contacts?: string;
                Deals?: string;
                Accounts?: string;
              };
              autonumber: {
                starting_number_length: number;
                prefix: string;
                suffix: string;
                start_number: number;
              };
              auto_number: {};
              crypt: {
                mode: string;
                status: number;
                column?: string;
                table?: string;
                encFldIds?: string[];
                notify?: string;
              };
              tooltip: { name: string; value: string };
              history_tracking: {
                module: {
                  layout?: {
                    display_type?: number;
                    api_name?: string;
                    has_more_profiles: false | true;
                    created_time: string;
                    modified_time: string;
                    visible: false | true;
                    source: string;
                    id: string;
                    name: string;
                    display_label: string;
                    mode: string;
                    subform_properties: { pinned_column: false | true };
                    status: string;
                    show_business_card: false | true;
                    generated_type: string;
                    created_for: { name: string; id: string; email?: string };
                    convert_mapping: {
                      Contacts: { name: string; id: string };
                      Deals: {
                        fields: {
                          api_name?: string;
                          field_label?: string;
                          id?: string;
                          required?: false | true;
                        }[];
                        name: string;
                        id: string;
                      };
                      Accounts: { name: string; id: string };
                      Invoices: { name: string; id: string };
                      SalesOrders: { name: string; id: string };
                    };
                    modified_by: { name: string; id: string; email?: string };
                    profiles: {
                      default: false | true;
                      name: string;
                      id: string;
                      _default_view: { name: string; id: string; type: string };
                      _default_assignment_view?: {
                        name?: string;
                        id?: string;
                        type?: string;
                      };
                    }[];
                    created_by: { name: string; id: string; email?: string };
                    sections: {
                      display_label: string;
                      sequence_number: number;
                      isSubformSection: false | true;
                      tab_traversal: string;
                      api_name: string;
                      column_count: number;
                      name: string;
                      generated_type: string;
                      id: string;
                      type: string;
                      fields: {
                        required: false | true;
                        validation_rule: {};
                        default_value: {};
                        sequence_number: number;
                        section_id: number;
                        blueprint_supported: false | true;
                        json_type: string;
                        length: number;
                        decimal_place: number;
                        multi_module_lookup: {};
                        sharing_properties: {
                          scheduler_status?: string;
                          share_preference_enabled?: false | true;
                          share_permission?:
                            | "read-write"
                            | "read-only"
                            | "full-access";
                        };
                        currency: {};
                        file_upolad_optionlist: {
                          actual_value: string;
                          display_value: string;
                        }[];
                        lookup: {};
                        subform: {};
                        formula: {};
                        multiselectlookup: {};
                        multiuserlookup: {
                          display_label: string;
                          linking_module: {
                            api_name: string;
                            id: string;
                            module_name?: string;
                            module?: string;
                          };
                          connected_module: {
                            api_name: string;
                            id: string;
                            module_name?: string;
                            module?: string;
                          };
                          lookup_apiname: string;
                          api_name: string;
                          connectedfield_apiname: string;
                          connectedlookup_apiname: string;
                          id: string;
                          record_access: false | true;
                        };
                        pick_list_values: {
                          colour_code: string;
                          actual_value: string;
                          type: "unused" | "used";
                          id: string;
                          sequence_number: number;
                          display_value: string;
                          reference_value?: string;
                          deal_category?: string;
                          probability?: number;
                          forecast_category?: { id?: string; name?: string };
                          expected_data_type?: string;
                          sys_ref_name?: string;
                          forecast_type?: string;
                          maps?: { api_name?: string; pick_list_values?: {}[] }[];
                          _delete?: false | true;
                          show_value?: false | true;
                        }[];
                        allowed_modules: {
                          api_name: string;
                          id: string;
                          module_name?: string;
                          module?: string;
                        }[];
                        hipaa_compliance_enabled: false | true;
                        hipaa_compliance: {
                          restricted_in_export: false | true;
                          restricted: false | true;
                        };
                        static_values: {
                          sequence_number: number;
                          id: string;
                          value: string;
                        }[];
                        static_field: false | true;
                        layout_associations: {
                          api_name: string;
                          name: string;
                          id: string;
                        }[];
                        _delete: { permanent: false | true };
                        associated_module: {
                          api_name: string;
                          id: string;
                          module_name?: string;
                          module?: string;
                        };
                        data_type: string;
                        operation_type: {
                          web_update: false | true;
                          api_create: false | true;
                          web_create: false | true;
                          api_update: false | true;
                        };
                        system_mandatory: false | true;
                        webhook: false | true;
                        virtual_field: false | true;
                        field_read_only: false | true;
                        customizable_properties: string[];
                        read_only: false | true;
                        custom_field: false | true;
                        businesscard_supported: false | true;
                        filterable: false | true;
                        visible: false | true;
                        available_in_user_layout: false | true;
                        display_field: false | true;
                        pick_list_values_sorted_lexically: false | true;
                        sortable: false | true;
                        separator: false | true;
                        searchable: false | true;
                        enable_colour_code: false | true;
                        mass_update: false | true;
                        created_source: string;
                        type: string;
                        display_label: string;
                        column_name: string;
                        api_name: string;
                        display_type: number;
                        ui_type: number;
                        colour_code_enabled_by_system: false | true;
                        quick_sequence_number: string;
                        email_parser: {
                          fields_update_supported: false | true;
                          record_operations_supported: false | true;
                        };
                        rollup_summary: {};
                        refer_from_field: { id: string; api_name: string };
                        created_time: string;
                        modified_time: string;
                        show_type: number;
                        category: number;
                        id: string;
                        profiles: {
                          name: string;
                          id: string;
                          permission_type: string;
                        }[];
                        view_type: {
                          view: false | true;
                          edit: false | true;
                          quick_create: false | true;
                          create: false | true;
                        };
                        unique: {};
                        sub_module: {
                          api_name: string;
                          id: string;
                          module_name?: string;
                          module?: string;
                        };
                        external: {
                          show: false | true;
                          type: string;
                          allow_multiple_config?: false | true;
                        };
                        private?: {
                          restricted: false | true;
                          type: string;
                          export: false | true;
                        };
                        convert_mapping: {
                          Contacts?: string;
                          Deals?: string;
                          Accounts?: string;
                        };
                        autonumber: {
                          starting_number_length: number;
                          prefix: string;
                          suffix: string;
                          start_number: number;
                        };
                        auto_number: {};
                        crypt: {
                          mode: string;
                          status: number;
                          column?: string;
                          table?: string;
                          encFldIds?: string[];
                          notify?: string;
                        };
                        tooltip: { name: string; value: string };
                        history_tracking: {};
                        association_details: {
                          related_field: {
                            api_name: string;
                            id: string;
                            module_name?: string;
                            module?: string;
                          };
                          lookup_field: {
                            api_name: string;
                            id: string;
                            module_name?: string;
                            module?: string;
                          };
                        };
                        additional_column: string;
                        field_label: string;
                        "common.picklist": {};
                        _update_existing_records: false | true;
                        number_separator: false | true;
                        textarea: { type?: string };
                      }[];
                      properties: {
                        reorder_rows: false | true;
                        maximum_rows: number;
                        tooltip: { name?: "Info Icon"; value?: string };
                      };
                      _delete: { permanent: false | true };
                    }[];
                    actions_allowed: {
                      edit: false | true;
                      rename: false | true;
                      clone: false | true;
                      downgrade: false | true;
                      delete: false | true;
                      deactivate: false | true;
                      set_layout_permissions: false | true;
                    };
                  };
                  display_label?: string;
                  api_name?: string;
                  module?: {};
                  id?: string;
                  module_name?: string;
                };
                duration_configured_field: {
                  api_name: string;
                  id: string;
                  module_name?: string;
                  module?: string;
                };
              };
              association_details: {
                related_field: {
                  api_name: string;
                  id: string;
                  module_name?: string;
                  module?: string;
                };
                lookup_field: {
                  api_name: string;
                  id: string;
                  module_name?: string;
                  module?: string;
                };
              };
              additional_column: string;
              field_label: string;
              "common.picklist": {};
              _update_existing_records: false | true;
              number_separator: false | true;
              textarea: { type?: string };
              static_field: false | true;
            }[];
            custom_view: {
              display_value: string;
              system_name: string;
              category: string;
              created_time: string;
              modified_time: string;
              last_accessed_time: string;
              name: string;
              created_by: { name: string; id: string; email?: string };
              modified_by: { name: string; id: string; email?: string };
              module: { name: string; id: string; email?: string };
              criteria: {
                comparator: string;
                field: { api_name: string; id: string };
                value: {};
                group_operator: string;
                group: {}[];
              };
              default: false | true;
              system_defined: false | true;
              locked: false | true;
              favorite: number;
              offline: false | true;
              access_type: "shared" | "public" | "only_to_me";
              shared_to: {
                type: "territories" | "roles" | "groups" | "users";
                name: string;
                id: string;
                subordinates: false | true;
              }[];
              fields: { id: string; api_name: string; _pin: false | true }[];
              sort_by: { id: string; api_name: string };
              sort_order: "asc" | "desc";
              id: string;
            };
            zia_view: false | true;
            default_mapping_fields: { api_name: string; id: string }[];
            status?: string;
            static_subform_properties?: {
              fields: { api_name: string; id: string }[];
            };
            layout_associations: { api_name: string; name: string; id: string }[];
          };
          modified_by: { name: string; id: string; email?: string };
          active: false | true;
          created_by: { name: string; id: string; email?: string };
          field_rules: {
            score: number;
            criteria: {
              comparator: string;
              field: { api_name?: string; id?: string };
              value: {};
              group_operator: string;
              group: {}[];
            };
            id: string;
          }[];
          signal_rules: {
            score: number;
            signal: { namespace: string; id: string };
            id: string;
          }[];
        }[];
      },
    ) {
      const url = new URL(
        `https://zohoapis.com/crm/v8/settings/automation/scoring_rules`,
      );
    
      const response = await fetch(url, {
        method: "PUT",
        headers: {
          "Content-Type": "application/json",
          Authorization: "Zoho-oauthtoken " + auth.token,
        },
        body: JSON.stringify(body),
      });
      if (!response.ok) {
        const text = await response.text();
        throw new Error(`${response.status} ${text}`);
      }
      return await response.json();
    }
    

    Submitted by hugo697 235 days ago