Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The Veeva QualityDocs Microsoft 365 Copilot connector enables organizations to index controlled quality documents—such as Standard Operating Procedures (SOPs), work instructions, policies, CAPAs, and batch records—from Veeva Vault QualityDocs into Microsoft Graph. This integration makes them accessible across Microsoft 365 experiences, including Microsoft 365 Copilot and Microsoft Search. The connector respects Vault QualityDocs' granular permission model, ensuring that only authorized users can see or interact with relevant documents. By pairing Microsoft's AI capabilities with QualityDocs' single source of truth, quality, regulatory, manufacturing, and supply-chain teams can collaborate more efficiently while maintaining compliance.
This article describes the steps to deploy and customize the Veeva QualityDocs connector. For general information about Copilot connector deployment, see Set up Copilot connectors in the Microsoft 365 admin center.
Prerequisites
Before you deploy the connector, make sure that you meet the following prerequisites:
- You must be a Microsoft 365 admin.
- Your organization must have a configured Veeva Vault QualityDocs environment.
- Microsoft Entra ID must be set up for OAuth 2.0/OpenID Connect authentication.
- You must have the client ID and client secret from your Microsoft Entra application.
- You must have the Veeva Vault QualityDocs instance URL.
- User identity mapping between Veeva Vault QualityDocs and Microsoft Entra ID must be configured.
Register an application and configure OAuth
Use the following steps to configure Microsoft Entra ID OAuth 2.0/OpenID Connect for the Veeva QualityDocs connector.
Register an application in Microsoft Entra ID.
- Go to Microsoft Entra admin center > App registrations > New registration.
- Name the application and select Accounts in this organizational directory only.
- Add the redirect URI:
- For Microsoft 365 Enterprise:
https://gcs.office.com/v1.0/admin/oauth/callback - For Microsoft 365 Government:
https://gcsgcc.office.com/v1.0/admin/oauth/callback
- For Microsoft 365 Enterprise:
- Generate a client secret under Certificates & Secrets and store it securely.
Configure OAuth in Veeva QualityDocs.
- Go to Admin > Settings > OAuth 2.0/OpenID Connect Profiles.
- Create a new profile, set the Status to active, and select Azure AD as the provider.
- Choose Upload AS metadata > Provide Authorization Server Metadata URL, and paste the following link. Replace {tenant-id} with your tenant ID.
https://login.microsoftonline.com/{tenant-id}/v2.0/.well-known/openid-configuration - Set Identity is in another claim to
upn, and in User ID Type, select Federated ID. The UPN should be the same as the federated ID. - Choose Client Applications > Add, and use the client ID from your Microsoft Entra ID application for both Application Client ID and Authorization Server Client ID. Add an Application Label.
Note
To enable Perform strict Audience Restriction validation, add the client ID to the Audience field.
Create security policies and link users.
- Go to Admin > Settings > Security Policies > Create > Single sign-on. Provide a name and description, and set the status to active.
- For the authentication type, choose Single Sign-on, and choose a profile. For more information, see Configuring Single Sign-on.
- In eSignature Profile, select None, and in OAuth 2.0 / OpenID Connect Profile, select the OAuth 2.0 profile that you created. Keep the default values for the remaining settings.
- Go to Admin > Users & Groups, select the vault owner, and choose Edit.
- In Details > Security Policy, change the values to the new policy, and in Federated ID, change the value to the UPN of the connector admin account.
Deploy the connector
To add the Veeva QualityDocs connector for your organization:
- In the Microsoft 365 admin center, in the left pane, choose Copilot > Connectors.
- Go to the Connectors tab, and in the left pane, choose Gallery.
- From the list of available connectors, choose Veeva QualityDocs.
Set display name
The display name is used to identify references in Copilot responses to help users recognize the associated file or item. The display name also signifies trusted content and is used as a content source filter.
You can accept the default Veeva QualityDocs display name, or customize the value to use a display name that users in your organization recognize.
For more information about connector display names and descriptions, see Enhance Copilot discovery of connector content.
Set instance URL
Enter the URL of your Veeva QualityDocs instance. For example: https://<your-vault-domain>.veevavault.com.
Choose authentication type
To authenticate the Veeva QualityDocs connector, for the Authentication type, choose Microsoft Entra ID OIDC, and provide the following information:
- Vault session ID URL: In Veeva QualityDocs, go to Admin panel > Settings > OAuth 2.0/ OpenID Connect Profiles, and choose the profile you created for this connection. Copy the Vault Session ID URL.
- Client ID: The application ID for the Entra application you registered for Veeva QualityDocs.
- Client secret: The client secret associated with the Entra application.
Select Authorize to sign in with your Entra ID account, and select Consent on behalf of your organization, and the on the permission request screen, choose Accept.
Important
Configure both Microsoft Entra ID and Veeva QualityDocs admin settings to enable Microsoft Entra ID authentication.
Roll out
To roll out to a limited audience, choose the toggle next to Rollout to limited audience and specify the users and groups to roll the connector out to. For more information, see Staged rollout for Copilot connectors.
Choose Create to deploy the connection. The Veeva QualityDocs Copilot connector starts indexing content right away.
The following table lists the default values that are set.
| Category | Default value |
|---|---|
| Users | Respects Veeva QualityDocs permissions; only viewable documents are accessible. |
| Content | Indexes key metadata, such as document name, owner, and lifecycle stage. |
| Sync | Full crawls every day. |
To customize these values, choose Custom setup. For more information, see Customize settings.
After you create your connection, you can review the status in the Connectors section of the Microsoft 365 admin center.
Customize settings (optional)
You can customize the default values for the Veeva QualityDocs connector settings. To customize settings, on the connector page in the admin center, choose Custom setup.
Customize user settings
Access permissions
The connector adheres to the access control lists (ACLs) defined in Veeva QualityDocs. Only users with view permissions in Veeva QualityDocs can see the indexed content in Microsoft 365. Admins can optionally allow all users access to all indexed content, although this approach isn't recommended for regulated repositories.
Mapping identities
The connector relies on mapping Veeva QualityDocs user identities (for example, Federated ID) to Microsoft Entra ID user accounts. Make sure that the Microsoft Entra UPN matches the Federated ID used in QualityDocs, or configure custom identity mapping so security permissions can be enforced correctly.
If you want to enforce the security settings of your Veeva QualityDocs instance, choose Non-ME-ID as the identity type for your content source.
Enter the required information for identity mapping. For example, if you want to map identities based on email addresses:
- For the Microsoft Entra user property, select Mail.
- Under non-Microsoft Entra user property, select Add identity property, and choose Email. Use an expression such as
([^@]+)to capture a sequence of one or more characters that are not the@symbol. Create a formula to complete the mapping, such as{0}@<your-domain>.
Customize content settings
Query string
You can use query-string conditions to include only relevant documents to enable more targeted and efficient indexing.
Manage properties
The following table lists the properties that the Veeva QualityDocs connector indexes by default.
| Property | Veeva field | Semantic Label | Description | Schema Attributes |
|---|---|---|---|---|
| Id | document_number + document version | Unique identifier for the document record | Query, Retrieve | |
| FileName | filename__v | fileName | Name of the uploaded source file | Query, Retrieve, Search |
| Title | title__v | title | Document title | Retrieve, Search |
| Description | description__v | Free-text description of the document | Retrieve, Search | |
| Extension | file extension of filename__v | fileExtension | File type extension such as PDF, DOCX, XLSX | Query, Retrieve, Search |
| Url | https://{vaultDns}/ui/#doc_info/{id}/{major_version_number__v}/{minor_version_number__v} | url | Direct URL to access or preview the document in Veeva Vault | Query, Retrieve |
| Status | status__v | state | Current lifecycle state of the document (for example, Draft, Approved, Effective) | Query, Retrieve |
| DocumentId | id | Unique document identifier (primary key) in the Veeva system | Query, Retrieve | |
| GlobalId | global_id__sys | System-generated globally unique identifier across Vaults | Query, Retrieve | |
| DocumentNumber | document_number__v | System-assigned document number in the Veeva system | Query, Retrieve | |
| Version | {major_version_number__v}_{minor_version_number__v} | Combined version string of the document | Query, Retrieve | |
| UrlRoutingId | concat(id, '/', major_version_number__v, '/', minor_version_number__v) | Composite routing identifier used for URL resolution | Query, Retrieve | |
| MajorVersion | major_version_number__v | Major version number of the document | Query, Retrieve | |
| MinorVersion | minor_version_number__v | Minor version number of the document | Query, Retrieve | |
| Type | type__v | containerName | Top-level document type classification | Query, Retrieve |
| Subtype | subtype__v | Second-level document classification under type | Query, Retrieve | |
| Product | product__v.name__v | Product related to or covered by the document | Query, Retrieve | |
| Tags | tags__v | tags | Tags or keywords associated with the document | Query, Retrieve, Refine |
| Country | country__v.name__v | Country or region associated with the document | Query, Retrieve | |
| Format | format__v | Document format or type information | Query, Retrieve | |
| ItemType | format__v | itemType | Item type derived from the document format | Query, Retrieve, Refine |
| ItemPath | {type__v}/{subtype__v} | itemPath | Hierarchical path combining the document type and subtype | Query, Retrieve |
| Owner | source_owner__v | Document owner in the Veeva system | Query, Retrieve, Search, Refine | |
| DocumentCreationDate | document_creation_date__v | createdDateTime | Date and time when the document was originally created | Query, Retrieve |
| VersionModifiedDate | version_modified_date__v | lastModifiedDateTime | Date and time when this version was last modified | Query, Retrieve |
| CreatedBy | created_by__v (name, email) | createdBy | User who initially created the document | Query, Retrieve, Search |
| CreatedByUserId | created_by__v | Internal user identifier for the document creator | Query, Retrieve | |
| LastModifiedByUserId | last_modified_by__v | Internal user identifier of the last modifier | Query, Retrieve | |
| LastModifiedBy | last_modified_by__v (name, email) | lastModifiedBy | User who last modified the document | Query, Retrieve, Search |
| Lifecycle | lifecycle__v | Lifecycle assigned to the document | Query, Retrieve | |
| OwningDepartment | owning_department__v.name__v | Department responsible for owning the document | Query, Retrieve | |
| OwningFacility | owning_facility__c.name__v | Facility associated with the document ownership | Query, Retrieve | |
| ReferenceModelCategory | reference_model_category__c.name__v | High-level reference model category of the document | Query, Retrieve | |
| ReferenceModelSubcategory | reference_model_subcategory__c.name__v | Subcategory within the reference model classification | Query, Retrieve | |
| PeriodicReviewFrequency | periodic_review_frequency1__c | Frequency at which the document undergoes periodic review | Query, Retrieve | |
| DaysBeforeToStartPeriodicReview | days_before_to_start_periodic_review__c | Number of days before the document's periodic review begins | Query, Retrieve | |
| ObsolescenceApproved | obsolescence_approved__c | Indicates whether obsolescence is approved | Query, Retrieve | |
| Scope | scope__c | Scope or applicability of the document | Query, Retrieve | |
| ImplementationPeriodDays | implementation_period_days__c | Number of days designated for implementation of the document | Query, Retrieve | |
| RequiresDcc | requires_dcc__c | Indicates if Document Change Control is required | Query, Retrieve | |
| ImportedDocument | imported_document__c | Indicates if the document was imported | Query, Retrieve | |
| Size | size__v | File size of the document | ||
| Content | document content | Main text or body content extracted from the document | Search |
Add custom properties
In addition to the default properties, the connector automatically discovers custom and other document properties from your Veeva QualityDocs instance. During setup, the connector retrieves all available document fields that are queryable, not disabled, and not hidden, and presents them as additional properties under Manage properties.
You can select and add these custom properties one by one to the connector schema. Each added custom property has the following default schema attributes:
- Query and Retrieve are enabled by default.
- Search and Refine aren't enabled by default but can be turned on under Manage properties.
For properties that reference Veeva Vault objects (ObjectReference type), the connector also fetches the referenced object's metadata and exposes its fields as nested properties. For example, if a custom property references a VObject of type campaign__v, the connector generates properties like campaign__v.name__v, campaign__v.status__v, and so on.
After adding custom properties, you can customize the schema attributes for any property—both default and custom—under Manage properties. You can enable or disable Query, Retrieve, Search, and Refine for each property based on your organization's requirements.
Customize sync intervals
You can modify the frequency of full crawls to fit your organization's requirements. The default is a full crawl every day. For more information, see Guidelines for sync settings.