Vanta is a security and compliance automation platform - connect it to Serval so workflows can read your compliance data (people, vendors, vulnerabilities, frameworks, trust centers) and upload documents to Vanta.
Vanta is a security and compliance automation platform covering SOC 2, ISO 27001, HIPAA, vendor risk management, and trust centers. Connecting Vanta to Serval lets workflows read your organizational data - people, vendors, vulnerabilities, frameworks, controls, documents, and trust centers - and upload documents to vendors, security reviews, and existing Vanta documents. Serval only ever sends your credentials to Vanta’s own API.Authentication: OAuth 2.0 client credentials from a Vanta developer application. You supply a Client ID and Client Secret, and Serval exchanges them for an access token automatically on each request - you never handle tokens yourself.Data sync: On demand. Workflows call the Vanta API at the moment they run; there is no background sync or polling. Right after you connect, Serval runs the integration’s health checks once automatically. The optional “Vanta Security Training Compliance Check” workflow runs on a daily schedule once installed, but that is a workflow you choose to enable, not a data sync.
Workflows can call any part of Vanta’s API: people, vendors and discovered vendors, vulnerabilities, vulnerable assets and vulnerability remediations, controls, tests, documents, frameworks, groups, integrations, monitored computers, risk scenarios, and trust centers (including access requests, FAQs, subprocessors, and subscribers).
Vendor lookups
List every vendor in your Vanta account (with status, inherent and residual risk levels, category, and review details), or look up a single vendor’s ID by name.
Document uploads
Upload files to a vendor, to a vendor security review, or to an existing Vanta document - either from a Serval attachment or from a file URL. Vendor and security review uploads validate the document type before anything is sent.
Ready-made workflows
Four installable workflows ship with the integration: “List Vanta Vendors”, “Get Vanta Vendor ID by Name”, “Upload Document to Vanta Vendor”, and “Vanta Security Training Compliance Check” - the last one runs on a daily schedule, checks that active employees have completed required security training (contractors are excluded), and sends Slack direct-message reminders after a configurable grace period. It needs a connected Slack integration in addition to Vanta.
Anything defined in the Vanta API can be accessed through Serval.
Serval connects with the Client ID and Client Secret of an OAuth application you create in Vanta’s Developer Console. Vanta documents the full process in its API access setup guide.
1
Log in to Vanta as an admin
You need admin access to your Vanta account to create developer applications.
2
Open the Developer Console
Navigate to Settings, then Developer Console.
3
Create the application
Click Create, then configure it: give it a Name (for example, “Serval Integration”), a Description, and set the App Type to Manage Vanta.
4
Copy the credentials
After the app is created, copy the Client ID and Client Secret. You’ll paste both into Serval.
The App Type must be Manage Vanta. Serval requests Vanta’s full read and write scopes (vanta-api.all:read and vanta-api.all:write), which correspond to that app type - see Vanta’s permission scopes documentation. An app created with a more restrictive type does not grant these scopes, and the connection’s health checks will fail.
“A friendly name for this Vanta integration instance (e.g., “Production Vanta”)”. This is purely a label - Vanta has no per-account instance ID, so pick whatever helps you tell connections apart. Leaving it blank shows “This field is required”.
2
Client ID (required)
“The Client ID from your Vanta OAuth application”. Paste the Client ID you copied from the Developer Console. Leaving it blank shows “This field is required”.
3
Client Secret (required)
“The Client Secret from your Vanta OAuth application”. Paste the Client Secret. After saving, it is stored encrypted and displays masked (bullet characters plus the last 4 characters).
4
Save and verify
Save the connection. Serval automatically runs the integration’s health checks once so you can confirm everything works right away.
Editing the connection later: the saved Client Secret displays masked, with a control to replace it. Leave it untouched - or blank after choosing to replace it - to keep your stored secret; it only changes when you enter a new value. Client ID and Instance Name come back pre-filled with their saved values and must stay filled in when saving an update, even if you’re only rotating the secret.
The Vanta integration ships three health checks. They run automatically right after you connect (and again when you save changes to the connection), and can be re-run any time:Test Vanta Connection - verifies Serval can reach Vanta and list the people in your organization.
Success: “Successfully connected to Vanta. Found people in the organization.”
Failure: “Unable to connect to Vanta. Please verify your API token is valid.”
List Vanta Vendors - confirms the connection can list your vendors, and returns a few sample vendors (name, status, inherent risk level) in the result.
Success: “Successfully listed vendors from Vanta (sample size: [number])”
Failure: “Unable to list vendors from Vanta. Please verify your API token has the required permissions.”
List Vanta Vulnerabilities - confirms the connection can list vulnerabilities, and returns a few samples (severity, status, CVE ID) in the result.
Success: “Successfully listed vulnerabilities from Vanta (sample size: [number])”
Failure: “Unable to list vulnerabilities from Vanta. Please verify your API token has the required permissions.”
A failure message mentioning permissions (“Please verify your API token has the required permissions”) usually means your Vanta OAuth app was created with a more restrictive App Type than Manage Vanta. Recreate the app with the Manage Vanta type and update the connection with the new Client ID and Client Secret.
Serval requests Vanta’s full read and write scopes, which correspond to the Manage Vanta app type. If your OAuth app was created with a more restrictive type, those scopes are not granted and the health checks fail. Recreate the app with the Manage Vanta type per Vanta’s permission scopes documentation, then update the connection with the new Client ID and Client Secret.
Error messages say 'API token' but you never entered a token
All three health-check failure messages reference “your API token”, but this integration authenticates with OAuth client credentials. When a check fails, verify the Client ID and Client Secret from your Vanta OAuth application (and that its App Type is Manage Vanta) - there is no token to check.
Updating the connection: Client ID and Instance Name are always required
When editing a saved connection, Serval rejects the update if Client ID or Instance Name is empty - even if you only want to rotate the secret. Both come pre-filled with their saved values, so just don’t clear them. The Client Secret is the only field you can leave unchanged: leaving it untouched or blank keeps the stored secret intact.
Vendor lookup by name fails on zero or multiple matches
The vendor lookup (used by the “Get Vanta Vendor ID by Name” workflow) tries a case-insensitive exact name match first, then falls back to partial matching. It fails when no vendor matches, and also when more than one vendor partially matches. Use a more specific name, or list all vendors and pick the exact vendor from the results.
Document uploads are rejected before anything is sent
Uploads to a vendor or a vendor security review validate the document type first. Only 16 types are accepted - values such as CONTRACT, SOC2_REPORT, PENETRATION_TEST_REPORT, ANSWERED_QUESTIONNAIRE, BAA_FILE, DPA_FILE, ISO_27001_REPORT, and OTHER. An invalid type fails immediately with a message listing the valid types (“Valid types are: …”), and no upload happens. Uploads to an existing Vanta document don’t take a document type, so this check doesn’t apply there.
Unexpected 'not found' errors on API calls
Serval automatically adds Vanta’s “v1” version prefix to API request paths when it’s missing, so workflow builders should write paths without it. If a request returns an unexpected “not found” error, check the resource path itself - a missing version prefix is not the cause, since Serval adds it for you.
Instance Name is a label, not an account ID
Vanta has no per-account or per-instance identifier, so Serval generates its own internal ID for the connection and uses the Instance Name purely as a display label. Renaming it later is safe and changes nothing about the connection.
Attachment uploads need the workflow's team context
The upload steps that take a Serval attachment (upload to a vendor, to a security review, or to an existing document) first resolve the attachment within your Serval team before uploading it to Vanta. They need the workflow’s Current Team context in addition to the Vanta connection - if a document upload fails before reaching Vanta, check that the workflow has team context available.
Need help? Contact support@serval.com for assistance with your Vanta integration.