Setting up the Openflow Connector for Veeva Vault¶
Note
This connector is subject to the Snowflake Connector Terms.
This topic describes the steps to set up the Openflow Connector for Veeva Vault.
Prerequisites¶
Set up your runtime deployment.
If you are using Openflow - Snowflake Deployments, ensure that you have reviewed configuring required domains and have granted access to the domains required by the connector.
You have access to the Openflow admin role or a similar role you use to manage Openflow.
If you are creating a Snowflake service user to manage the connector, you have created key pair authentication. For more information, see key-pair authentication.
Required endpoints¶
The following endpoint is required for the connector to function:
<your_vault_hostname>:443(for example,myvault.veevavault.com:443)
If you are using Openflow - BYOC Deployments, configure your cloud network egress to allow TLS 443 access to this endpoint. If you are using Openflow - Snowflake Deployments, you must create a network rule and an external access integration (EAI). See Create a network rule (Openflow Snowflake Deployments only) for details.
Set up Veeva Vault¶
The connector uses the Veeva Vault Direct Data API to retrieve data. Before you can use the connector, your Veeva Vault administrator must complete the following tasks.
Enable Direct Data¶
Direct Data must be enabled on your Veeva Vault instance. This is a Vault-level feature that allows external systems to retrieve data exports via the Direct Data API.
To verify that Direct Data is enabled, your Vault administrator can check Admin » Settings » General Settings » Direct Data in the Veeva Vault UI.
For more information, see the Veeva Direct Data documentation (https://developer.veevavault.com/directdata/).
Create a service account¶
Create a dedicated Veeva Vault user account for the connector. This account must have:
API access enabled.
Sufficient permissions to access the Direct Data API endpoints.
A security profile that allows the account to read the data objects you want to replicate.
Record the username and password for this service account. You will need these values when configuring the connector.
Note
Snowflake recommends using a dedicated service account rather than a personal user account. This ensures that the connector continues to function if a personal account is disabled or its password is changed.
Set up your Snowflake account¶
As an Openflow administrator, perform the following tasks to set up your Snowflake account.
Create a Snowflake service user (Openflow BYOC only)¶
Note
This step is only required if you are deploying the connector in Openflow - BYOC Deployments. It is not needed for Openflow - Snowflake Deployments.
Create a service user:
Store the private key for that user in a file to supply to the connector’s configuration. For more information, see key-pair authentication.
Create database, schema, and warehouse¶
Create the destination database:
Create the destination schema:
Create a role for the connector and grant the required privileges:
Create a warehouse (or use an existing one) and grant usage privileges:
If using Openflow - BYOC Deployments, assign the role to the service user:
Create a network rule (Openflow Snowflake Deployments only)¶
Caution
If your runtime executes in Openflow - BYOC Deployments, you do not need to create an External Access Integration (EAI). Instead, configure your cloud network egress to allow TLS 443 access to your Veeva Vault hostname.
To allow the connector to call the Veeva Vault API from a Snowflake-hosted runtime, create a network rule and an external access integration (EAI), and then grant the Snowflake role usage privileges on the EAI.
Create a network rule:
Create an External Access Integration:
Grant your Snowflake role USAGE on the integration:
Install the connector¶
To install the connector, do the following as a data engineer:
Navigate to the Openflow overview page. In the Featured connectors section, select View more connectors.
On the Openflow connectors page, find the connector and select Add to runtime.
In the Select runtime dialog, select your runtime from the Available runtimes drop-down list and click Add.
Note
Before you install the connector, ensure that you have created a database and schema in Snowflake for the connector to store ingested data.
Authenticate to the deployment with your Snowflake account credentials and select Allow when prompted to allow the runtime application to access your Snowflake account. The connector installation process takes a few minutes to complete.
Authenticate to the runtime with your Snowflake account credentials.
The Openflow canvas appears with the connector process group added to it.
Configure the connector¶
To configure the connector, perform the following steps:
Right-click on the added connector process group and select Parameters.
Populate the required parameter values as described in the sections below.
Veeva Vault parameters¶
Parameter |
Description |
|---|---|
Veeva Vault Base URL |
Base URL for the Veeva Vault environment. Must be a valid URL including the protocol. Example: |
Veeva Vault Username |
Service account username for Veeva Vault authentication. |
Veeva Vault Password |
Service account password for Veeva Vault authentication. This value is stored securely as a sensitive parameter. |
Veeva API Version |
Veeva Vault REST API version path segment. The default value matches the version the connector was built against. Default: |
Veeva Ingestion Mode |
Determines how Veeva Direct Data files are consumed. Allowed values:
|
Veeva Incremental Start Time |
Optional starting timestamp for incremental polling. Only applicable when the ingestion mode is Example: |
Veeva Incremental Sync Frequency |
How often the connector polls for new Direct Data archives. Default: |
Veeva Include Audit Logs |
Whether to also ingest Veeva Direct Data audit log archives. Default: |
Snowflake destination parameters¶
Parameter |
Description |
|---|---|
Snowflake Authentication Strategy |
Authentication strategy for the connector to connect to Snowflake.
|
Snowflake Account |
Snowflake account identifier, formatted as Example: |
Snowflake Username |
The Snowflake user for authentication. Required when the authentication strategy is |
Snowflake Private Key |
PEM-encoded private key content for Snowflake key pair authentication. Required when the authentication strategy is You can also upload the private key file by selecting the Reference asset checkbox, uploading the file as an asset, and selecting the asset as the value for the parameter. |
Snowflake Private Key Password |
Password to decrypt the Snowflake private key, if the key is encrypted. Only applicable when the authentication strategy is |
Snowflake Role |
The Snowflake role used for table creation, data ingestion, and access verification. When using |
Snowflake Database |
Name of the destination database in Snowflake. The database must already exist before starting the connector. |
Snowflake Schema |
Name of the destination schema in Snowflake. The schema must already exist before starting the connector. |
Snowflake Warehouse |
The Snowflake warehouse used for table management operations such as |
Snowflake Table Prefix |
Optional prefix applied to all destination table names in Snowflake. Use this to namespace tables when multiple connectors write to the same schema. |
Snowflake Delete Strategy |
How to apply Veeva delete extracts in Snowflake.
|
Schema evolution parameters¶
Parameter |
Description |
|---|---|
Column Removal Strategy |
Defines the strategy when a column should be removed from the destination table based on the latest received schema.
|
Removed Column Name Suffix |
Suffix appended to the column name when the Column Removal Strategy is set to Default: |
Run the flow¶
Right-click on an empty area of the canvas and select Enable all Controller Services.
Right-click on the connector process group and select Start.
The connector starts polling Veeva Vault for Direct Data archives and loading data into Snowflake.
Next steps¶
For information on tasks you can perform after installing the connector, see Use the connector
For information on monitoring the flow, see Monitor the flow