Skip to main content

Importing your own controls

Written by Hyperproof Support
Updated over 3 weeks ago

👥 Roles and permissions

The following roles can import controls:

  • Administrators

  • Compliance managers

  • Users


Many Hyperproof program templates include sample controls to help you get started. However, if your organization has already developed its own set of controls, you can import them into Hyperproof.


📝 Note

The steps below explain how to import controls into the main controls list in Hyperproof. If you want to import your own controls into an existing program within your organization, refer to Importing controls into an existing program.



💡 Tip

Adding additional information does not overwrite existing data. During the import, Hyperproof searches for any exact data identifiers. If it doesn’t find any, it treats the data as new. If it finds a match, it updates the existing data.


Step One: Downloading the example CSV

The easiest way to start importing your own controls is by downloading Hyperproof’s example CSV. The example CSV provides the exact template for successfully importing controls into Hyperproof.

  1. From the left menu, select Controls.

  2. Click Import controls.

    The Import controls window opens.

  3. Click Download the example CSV.

    download-example-csv-link-generic.png

Step Two: Editing the CSV


📝 Note

Currently, it's only possible to edit existing scope assignments via CSV import. Additionally, Hyperproof supports one scope per control in the CSV import. Improvements to the scope assignment import process are ongoing.


Replace the contents of the example CSV with your own controls. Be sure to follow the format of the example file to ensure that your controls are successfully imported.


📝 Note

The CSV must contain ALL headings listed below, even if they are optional. Keep in mind that headings are case-sensitive!


Heading

ID

Should contain a control ID that's unique to your organization. This field is required.

Tip: Control IDs play an important role in the import process and must be unique across your Hyperproof organization. If the control ID is not unique, this row is skipped.

Name

This is the name of the control. This is an optional field.

Description

This is the full definition of the control. It can be a multi-line string. This field is required.

The multi-line text limit for the description field is 65,535 characters. However, if you have a field with over 10,000 characters, it's highly recommended that you save the data in a document and link it as proof.

Domain

Used to group related controls, e.g. Change management, PeopleOps, etc. This is an optional field.

Owner

Must be formatted as FirstName LastName (email address), i.e. Jennifer Cook ([email protected]). This is an optional field.

Tip: If no control owner is provided, the control is assigned to the individual who imports the CSV.

Additional tip: The owner's email address must match the email address they use to sign in to Hyperproof.

Group

The group the control is assigned to. This is an optional field.

Tip: The group must already exist in your organization.

Additional tip: Ensure group names are spelled exactly as they are in Hyperproof.

Notes

A field for any notes related to the control. This is an optional field.

Implementation

A field for tracking the implementation of the control. This is an optional field.

Tip: Hyperproof recognizes the following implementation statuses: Unknown, Not started, In progress, and Completed.

Testing status

Used to track where the control is in terms of testing. This is an optional field.

Tip: Hyperproof recognizes the following testing statuses: Not tested, In progress, Effective, and Ineffective.

Scopes

Used to link a scope assignment to a control.

Scope assignments can be linked to existing controls or to new controls.

This is an optional field.

Tip: Make sure the heading is Scopes and the scope name matches the name in Hyperproof.

To import scope assignment controls with custom fields:

  1. Make sure the column header is correct. For example, if the name of the custom field is Regional, make sure that the column header is Regional.

  2. In the custom field column, enter the custom field value on the same line as the scope assignment control, e.g. South Africa. Make sure the custom field name matches the name in Hyperproof.

Things to keep in mind:

  • Importing scope assignment controls with custom fields should be done via the Controls module, not from within a program.

  • The recommended best practice for importing scope assignment controls with custom fields is two-fold:

    1. Import the parent controls first if they don't already exist in your program.

    2. Import the scope assignment controls.

  • Know which scope assignment behavior is set for your scope assignment controls. When creating a custom field on controls, you have the option to select how the scope assignment control behaves, either dependent on the parent or independent from the parent.

    • Managed by the parent control - Follows the current behavior of custom fields (one value determined by the parent control). The field is read-only to scope assignment members.

      Example: If the custom field value on a parent control is South Africa, and the scope assignment control value is North Africa, Hyperproof disregards North Africa and imports the value as South Africa.

    • Independent - Each scope assignment control has its own editable value independent of the other scope assignment controls. The parent control has its own editable value as well.

      To import different custom field values for scope assignment controls, be sure that 'Independent' is selected from the Scope assignment behavior drop-down menu when creating the custom field.

    • Aggregated - Available for the Number custom field. If selected, each scope assignment control has its own value. The parent control has a calculated value that is based on the scope assignment control values.

      • Aggregated: Average - The parent control displays the average number or percentage of all scope assignment controls.

      • Aggregated: Maximum - The parent control displays the maximum number or percentage out of all scope assignment controls.

      • Aggregated: Minimum - The parent control displays the minimum number or percentage out of all scope assignment controls.

      • Aggregated: Sum - The parent control displays the total of all scope assignment controls.

Custom fields

A space for any custom fields your organization uses to track activity related to a specific object, e.g. a control.

Tip: The custom field(s) must already exist in your organization.

Additional tip: Ensure custom field names are spelled exactly as they are in Hyperproof. For example, if a custom field is called Security (with a capital 'S'), the CSV heading needs also to have a capital 'S'. If a custom field is called Risks, and the CSV heading is Risk, the import fails.

Below is a snippet of a sample import file.


example-csv-controls.png


Step Three: Importing the CSV

After you’ve made the necessary changes to the CSV, it can be imported into Hyperproof.

  1. Drag and drop the CSV file into the Upload CSV File field, or click Select file to upload to upload it manually.

  2. Click Import.

    Hyperproof checks the CSV to ensure that there are no errors. You’ll be alerted if Hyperproof encounters any errors.

  3. If Hyperproof didn’t detect any errors, click Next. If Hyperproof detected errors, do one or both of the following:

    1. First, use the Error viewer to identify the errors. Second, correct the errors directly in the CSV. This ensures that the CSV is up-to-date should you need to re-import in the future.


      💡 Tip

      Use the forward and backward arrows to cycle through the errors. The Error viewer gives specific information on what needs to be corrected.

      🔗 Embedded content: Open link


    2. Remove rows that contain errors by clicking Remove all rows with errors. Note that this doesn't remove any data in the actual CSV.

  4. Click Next.

    The CSV is imported.

Did this answer your question?