**Source URL:** https://qualityone.veevavault.help/en/lr/549897/index.md

# Configuring the QualityOne to Training Connection (Training)

Organizations using both a QualityOne Vault and a Training Vault can utilize the [Spark messaging framework](/en/lr/57405/) to create a standard [connection between Vaults](/en/lr/549896/). This connection transfers information across Vaults and automates the creation, versioning, and updating of [CrossLink documents](/en/lr/23143/) and document fields, and E-Learning content used for various training areas. Streamlining document creation reduces duplicate data and allows documents to have a single source of truth within an organization.

Once you've securely [configured][1] the connection between the QualityOne and Training Vault, see <a class="external-link " href="https://quality.veevavault.help/en/lr/50953" target="_blank" rel="noopener">Veeva Training Overview<i class="fa fa-external-link" aria-hidden="true"></i></a> for more details regarding the training environment in the Training Vault and its features.

 
<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>: This article refers to the configured QualityOne to Training Vault Connection. The QualityOne to Training Vault Connection is only available for organizations with both a QualityOne Vault and a Training Vault. If your organization uses Training Management within QualityOne only, you cannot use this feature. See <a href="/en/lr/549898/">Overview of Training Environments in QualityOne</a> for details on the different training environments and the information applicable to your Vault.</p>
    </div>
  </div>
</div>



## Configuration Overview {#overview}

Configuring a standard QualityOne to Training Vault Connection involves the following steps:

1. [Establish the connection between Vaults][2]
2. Enable [CrossLinks][3] and [E-Learning][11] in both Vaults
3. [Ensure the integration, integration point, and Spark queue records are active][4]
4. [Set up integration rules to map fields between Vaults ][5]
5. [Define document configurations][6]
6. [Set up user exception objects][7]
7. [Configure user permissions][8]

<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>: Depending on your Vault’s creation date and which features are currently enabled and configured, some of the steps described in this article may be unavailable or already complete in your Vault.</p>
    </div>
  </div>
</div>



## Establishing the Connection between Vaults {#v2v-connect}

_Connections_ allow you to connect and create integrations between Vaults. To establish a connection between your source Vault (QualityOne) and target Vault (Training), you must download the connection file from the QualityOne Vault and upload that file to the Training Vault. Ensure you download the source _QualityOne to Training_ (`qualityone_to_training__v`) connection file from the source Vault and upload the connection file to the target Vault in the existing _QualityOne to Training_ (`qualityone_to_training__v`) connection record. See [Creating & Managing Connections](/en/lr/53358/#Establish_Vault_to_Vault) for more details on establishing this connection.

You may need to complete the [approval workflow](/en/lr/53358/#workflow-timeline) in both Vaults to activate the two (2) connection records by reassigning the workflow task to yourself. When the workflow completes, Vault activates the records automatically.

## Enabling CrossLinks in Vaults {#enable}

[CrossLink documents](/en/lr/23143/) document enable content from one Vault to be used in another Vault within the same domain. To allow the connection to create documents across both your QualityOne and Training Vaults, you'll need to enable CrossLinks in both Vaults. You'll also need to enable the **Exclude source document overlays** and **Exclude source document signature pages** settings. See [Configuring CrossLinks](/en/lr/23139/#enable-crosslinks) for more details.

## Enabling E-Learning in Vaults {#elearn}

E-Learning files enable you to use content from one (1) Vault to another Vault within the same domain. To enable E-Learning files in your QualityOne Vault, navigate to **Business Admin > Picklists** and ensure the _E-Learning Standard_ picklist is active with the following picklist values:

* _AICC_ (`aicc__v`)
* _SCORM 1.2_ (`scorm_12__v`)
* _SCORM 2004_ (`scorm_2004__v`)

In your Training Vault, ensure the following document fields are active for the _Training Material_ document type:

* _Source Document Number_ (`source_document_number_elearn__v`)
* _Source Document Version_ (`source_document_version_elearn__v`)
* _Source Link_ (`source_link_elearn__v`)
* _Source Vault Name_ (`source_vault_name_elearn__v`)

These fields help to provide information about the E-Learning source files. You'll also need to enable <a class="external-link " href="https://quality.veevavault.help/en/lr/61957#enabling-e-learning-content" target="_blank" rel="noopener">E-Learning content<i class="fa fa-external-link" aria-hidden="true"></i></a> in your Training Vault to allow the appropriate users to set up _Training Completion Criteria_ for E-Learning courses.

## Reviewing Integration, Integration Point & Spark Queue Records {#review}

_Integrations_ and _Integration Points_ enable Vault to manage the message queues and define what data the connection maps from one (1) Vault to another. These records are read-only and are used by Vault to manage the connection and track any connection errors. Ensure that the following records are set to _Active_:

* **QualityOne Training Documents Integration** (`qualityone_training_docs_integration__v`): This integration record is included as a standard _Integration_ record found in the _QualityOne to Training_ connection record in your Training Vault. CrossLink documents exclusively use this integration record.
  * **Documents Inbound Integration Point** (`documents_inbound_integration_point__v`): This integration point record is included as a standard inbound _Integration Point_ record found in the _QualityOne Training Documents Integration_ integration record in your Training Vault. CrossLink documents exclusively use this integration point record.
* **QualityOne Training E-learning Integration** (`qone_training_elearning_integration__v`): This integration record is included as a standard _Integration_ record found in the _QualityOne to Training_ connection record in your Training Vault. E-Learning documents exclusively use this integration record.
  * **E-learning Inbound Integration Point** (`elearning_inbound_integration_point__v`): This integration point record is included as a standard _Integration Point_ record found in the _QualityOne Training E-learning Integration_ integration record in your Training Vault. E-Learning documents exclusively use this integration point record.

The [_Spark Queue_](/en/lr/53147/) record enables Vault to send messages from a Vault extension, and HTTP callout allows you to callback for any data you need. The inbound queue sends a message to the attached [Spark Message Processor](/en/lr/57405/#spark-message-processors) to handle the message. This an integration where a Spark message can perform operations within the current Vault. The outbound queue sends a message to a target Vault where it is received by an inbound queue. The inbound queue then processes this message with its attached Spark Message Processor. This is a Vault to Vault integration where a message from one Vault can "spark" actions in a completely different Vault. Ensure that the following records are set to _Active_:

* **QualityOne to Training Outbound Queue** (`qualityone_to_training_outbound_queue__v`): This queue record is included as a standard _Spark Queue_ record found in your QualityOne Vault. 
* **QualityOne to Training Inbound Queue** (`qualityone_to_training_inbound_queue__v`): This queue record is included as a standard _Spark Queue_ record found in your Training Vault. 

## Setting Up Integration Rules for Field Mapping {#field-rules}

_Integration Rules_ allows Admins to incorporate configurable rules for mapping document fields between two (2) Vaults. You can use Integration Rules to incorporate configurable rules for mapping document fields between two (2) Vaults. See [Creating & Managing Integration Rules](/en/lr/62154/) for more details on creating additional custom field rules.

This connection includes two (2) standard integration rule records:

* **QualityOne Training Documents** (`qualityone_training_documents__v`)
* **QualityOne E-learning Documents** (`qualityone_elearning_documents__v`)

These integration rule records contain the following standard field rules in your Training Vault:

<table>
  <tr>
    <th><strong>Name</strong></th>
    <th><strong>Target Doc Field</strong></th>
    <th><strong>Query Field</strong></th>
  </tr>
  <tr>
    <td><code>document_link__v</code></td>
    <td><code>link__sys</code></td>
    <td><code>global_id__sys</code></td>
  </tr>
  <tr>
    <td><code>document_name__v</code></td>
    <td><code>name__v</code></td>
    <td><code>name__v</code></td>
  </tr>
</table>

<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>: To configure any additional data mapping outside of the standard connection, work with your Veeva Representative.</p>
    </div>
  </div>
</div>



## Defining Document Configurations {#doc-config}

The following document configurations help to define the connection between QualityOne and Training Vaults.

### Adding Shared Fields {#shared-fields}

On the QualityOne Vault, you must add the _Applicable to Training_ (`applicable_to_training__v`) [shared field](/en/lr/4884/) to any document type you require to sync as training materials to the Training Vault.

### Standard Document State Types {#doc-state}

Vault triggers sync jobs from your QualityOne to Training Vault connection based on document lifecycle state types. When a document enters a lifecycle state associated with a document state type, Vault triggers the [next step in the connection](/en/lr/549896/#how-connect) to create and update the applicable CrossLink documents in the Training Vault. This feature includes the following document state types for all document types for both your QualityOne and Training Vaults:

* _Ready for Training_
* _Steady_
* _Obsolete_

Ensure these [document state types](/en/lr/14560/) are included in the document lifecycle you use for your _Training Material_ (`training_material__v`) document type in your Training Vault and any document type required in your QualityOne Vault.

### Document Lifecycle Action {#doc-action}

The document lifecycle action in QualityOne Vaults allow users to sync updated data between the two (2) Vaults. You can set up the _Sync Documents To Training_ action as either a [user action](/en/lr/12339/#create) or an [entry action](/en/lr/12399/#create) to fit your organization's business processes.

### Enabling E-Learning Preview {#elearn-preview}

Add the **Preview E-Learning Content** [action](/en/lr/12339/) to the appropriate states in the document lifecycle. When a Learner previews a course, the content opens in a new interactive browser window. In QualityOne Vaults, the preview window displays the course response data but does not capture the data in <a class="external-link " href="https://quality.veevavault.help/en/lr/61656#about-training-content-status" target="_blank" rel="noopener">_Training Content Status_<i class="fa fa-external-link" aria-hidden="true"></i></a> records as it would when a Learner runs the course in their Training Vault.

## Setting Up User Exception Objects {#user-exception}

Vault includes the _User Exception Message_ object and its child object, _User Exception Item_, to help you track and resolve any errors that occur with your connection. If either end of your integration can't process an incoming message, Vault creates a _User Exception Message_ record to capture the failure and individual _User Exception Item_ records for each item that failed.

To allow ease of access to view these messages, navigate to **Admin > Configuration > Objects > User Exception Items**. Click **Edit**, select the **Display values in Business Admin menu** checkbox, then click **Save**. You can now navigate to the messages from the _Business Admin_ page. You can also view and manage these messages from **Admin > Connections > User Exception Messages**.

A _User Exception Message_ means you need to work with a Veeva Representative to update your configuration. After you update the connection configuration, you can resubmit the message that originally failed. Navigate to the _User Exception Item_ record, open the **Actions** menu, and select **Resubmit Message**.

### Configuring the User Exception Message Action {#uem-action}

The _User Exception Message_ object contains the _Retry Transfer_ action. This action triggers Vault to attempt to try the sync job again for the source documents that failed to sync. You can add this action as a [user action](/en/lr/59885/#user-actions) on any lifecycle state.

### Troubleshooting User Exception Messages {#troubleshoot}

You may see a _User Exception Message_ when using this feature. You can view any message details by navigating to **Business Admin > Objects > User Exception Messages**. After the issues are resolved, rerun the connection by navigating to **Admin > Connections > User Exception Message** and clicking **Rerun** on the message record.

## Configuring User Permissions {#user-perm}

You must ensure users have a security profile with the appropriate _Read_, _View_, _Edit_, and _Create_ [permissions](/en/lr/22824/) to access the appropriate objects and object fields:

* For the _User Exception Item_ object: _Read_ permission
* For the _User Exception Message_ object: _Read_ permission

## Connection Limitations {#limitation}

See [Creating & Managing Connections](/en/lr/53358/#limitations) for a list of limitations that impact your QualityOne to Training connection.

## Related Permissions {#permission}

You can complete all the steps in this article with the standard _System Administrator_ or _Vault Owner_ security profile. If your Vault uses custom security profiles, your profile must grant the following [permissions](/en/lr/22824/):

<table>
  <tr>
    <th><strong>Type</strong></th>
    <th><strong>Permission</strong></th>
    <th><strong>Controls</strong></th>
  </tr>
  <tr>
    <td>Security Profile</td>
    <td>Admin: Configuration: Object Lifecycles: Edit</td>
    <td>Ability to modify object lifecycles.</td>
  </tr>
  <tr>
    <td>Security Profile</td>
    <td>Admin: Configuration: Objects: Create, Edit</td>
    <td>Ability to create and modify Vault objects.</td>
  </tr>
  <tr>
    <td>Security Profile</td>
    <td>Admin: Configuration: Spark Queues: Create, Edit, Delete, Queue Log</td>
    <td>Ability to create, modify, and delete Spark Queue records, and view the Queue Log.</td>
  </tr>
  <tr>
    <td>Security Profile</td>
    <td>Admin: Security: Permission Sets: Read, Create, Edit, Delete</td>
    <td>Ability to make changes to permission sets for users.</td>
  </tr>
  <tr>
    <td>Security Profile</td>
    <td>Admin: Settings: General Information: Edit</td>
    <td>Ability to modify settings in the Vault <em>General Settings</em> page.</td>
  </tr>
  <tr>
    <td>Security Profile</td>
    <td>Application: Vault Actions: CrossLink: Create CrossLink</td>
    <td>Ability to create CrossLink materials.</td>
  </tr>
  <tr>
    <td>Security Profile</td>
    <td>Application: Vault Actions: Connections: Manage Connections</td>
    <td>Ability to set up the QualityOne to Training standard Vault connection.</td>
  </tr>
  <tr>
    <td>Security Profile</td>
    <td>Application: Vault Actions: Integrations: Manage Integrations</td>
    <td>Ability to set up integration rules.</td>
  </tr>
</table>

[1]: #overview
[2]: #v2v-connect
[3]: #enable
[4]: #review
[5]: #field-rules
[6]: #doc-config
[7]: #user-exception
[8]: #user-perm
[9]: #limitation
[10]: #permission
[11]: #elearn