# Using the Checklist Design Loader

The Checklist Design Loader allows Admins to upload a complete design, including all related object records (_Section Design_, _Available Answer Design_, etc.) as a single CSV file.

## How to Enable Checklist Design Loader

In order to use Checklist Design Loader, you must configure the _Upload Design Configuration_ user action on one or more states of the _Checklist Design Lifecycle_. This action allows a user to upload a Checklist Design CSV. For _Checklist Designs_ with **Aggregate Checklists** set to **Yes**, this action is not available.

## Exporting Checklist Designs {#exporting-checklist-designs}

You can export your checklist designs and share them with other Vaults. Vault exports your designs in CSV format, allowing you to upload them to any Vault. Add the **Export Checklist Design** <a href="/en/gr/30683/#user-actions">user action</a>
 to any lifecycle state on a _Checklist_ design object lifecycle to set this up. For _Checklist Designs_ with _Aggregate Checklists_ set to _Yes_, this action is not available.

This action exports all related design records including sections, questions, answers, and question dependencies. Vault sends a notification when your checklist design is ready to download along with a link to download the file. You can upload your design with the [Checklist Design Loader][2].

<div class="note-border alert-info">
  <div class="alert alert-info" role="alert">
    <div><i class="far fa-info-circle"></i></div>
    <div class="alert-text">
      <p><strong>Note</strong>: Vault will not include the following characters in the file name of an export: <strong>&lt;</strong>,<strong>&gt;</strong>,<strong>:</strong>,<strong>”“</strong>,<strong>/</strong>,<strong>|</strong>,<strong>\?</strong>,<strong>*</strong>.</p>
    </div>
  </div>
</div>



## How to Use Checklist Design Loader {#how-to-use-loader}

To create a checklist design using Checklist Design Loader:

  1. Navigate to the _Checklist Design_ record list page.
  2. Create a new _Checklist Design_ record.
  3. From the **All Actions** menu on the _Checklist Design_ record, select **Upload Design Configuration**. Note that the label may be different based on your configuration and the record must be in a state where the user action is configured.
  4. In the _Upload Design Configuration_ dialog, click **Choose** and select the CSV file.
  5. Vault <a href="/en/gr/47738/#validation">validates that the CSV file</a>
 is in the proper format, includes all required columns, and does not exceed Vault limits for number of records or file size. If the file is invalid, you'll see an error. Note that the loader does not support custom fields.
  6. Click **Submit** to upload the file. The **Submit** button will not be active for invalid files.
  7. The loader will process the CSV, create records, and send a notification when the process is complete. If the loader encounters any errors while processing the file, Vault will not create any records, and you will receive a notification. From the notification, you can download a CSV file with detailed error messages.

## Template CSV File

Download:

  * <a class="download-link " href="https://platform.veevavault.help/assets/downloads/CDL_Template-4.csv" target="_blank" rel="noopener">Empty CSV template<i class="fa fa-download" aria-hidden="true"></i></a>
  * <a class="download-link " href="https://platform.veevavault.help/assets/downloads/CDL_Example_Checklist-4.csv" target="_blank" rel="noopener">Example CSV template with values<i class="fa fa-download" aria-hidden="true"></i></a> 

## CSV File Validation

Vault checks the CSV file to ensure that:

  * Number of unique section names in `section_design__sys.name__v` does not exceed 20.
  * Number of `question_design__sys` records for a single section does not exceed 50.
  * Number of answers in `available_answer_design__sys` does not exceed 10.
  * The column `question_design__sys.object_type__v` includes only valid options:
      * `text_question__sys`
      * `date_question__sys`
      * `number_question__sys`
      * `multiple_choice_question__sys`
  * The values for `question_design__sys.question_help_text__v` do not exceed 300 characters.
  * The values for `question_design__sys.XXX_required__sys` (for example, `doc_attachments_required__sys`) can only be "true" if `question_design__sys.XXX_allowed__sys` (for example, `doc_attachments_allowed__sys`) is "true."
  * The values for `question_design__sys.documents_allowed__sys` and `available_answer_design__sys.documents_allowed__sys` include only valid options:
      * `true`
      * `false`
      * `Null`
  * The values for `question_design__sys.documents_allowed__sys` and `available_answer_design__sys.documents_allowed__sys` do not both contain a value of true for the same row.
  * The values for `question_design__sys.documents_required__sys` and `available_answer_design__sys.documents_required__sys` include only valid options:
      * `single_document__sys`
      * `multiple_documents__sys`
      * `not_required__sys`
      * `Null` 
  * Values in `question_design_sys.name__v` are unique within a particular section. Note that values that appear in the CSV in this column are not uploaded to Vault. The values in this column in the CSV only define dependent questions.  Since this is a system-managed field, when uploaded to Vault, the system assigns the next appropriate values for the `question_design_sys.name__v` field.  If you export an existing checklist design and you specify existing `question_design_sys.name__v` field values, the next time you upload the _Checklist Design_ using the Checklist Design Loader, Vault deletes all existing records in the checklist design and related records (sections, questions, answers, and dependencies) and replaces them with the new values from the CSV.
  * The value for `question_design__sys.maximum_answer_value__sys` is greater than the value for `question_design__sys.minimum_answer_value__sys`.
  * Values for `available_answer_design__sys` are unique for a specific question.
  * Values for text fields do not exceed the configured maximum number of characters.
  * Values for Yes/No (boolean) fields are either "true" or "false".
  * Values for number fields are within the configured range.
  * Values for `question_design_sys.decimal_places__sys`, if present, are integers from 0 to 9.
  * Only multiple choice questions can be referenced under `dependency_design__sys.controlling_question__sys`.
  * For a given record, `dependency_design__sys.controlling_question__sys` is different from `dependency_design__sys.dependent_question__sys`.
  * Introduction-type section designs do not include any questions.
  * Introduction-type section designs do not include a weight (`section_design_sys.weight__sys`).
  * The delimiter used to separate values for values related to answer options throughout the CSV is the "`;`" semicolon.
  * The value for `comment_type__sys` includes only valid options:
    * `text__sys`
    * `long_text__sys`
    * `rich_text__sys`
    * `Null`

 [2]: #how-to-use-loader
