Integration Guide

Connecting CompliNudge to Drata

CompliNudge pushes your team's SOC2 training compliance into a Drata Custom Connection — one structured record per employee. You then map a Custom Test to your training control (e.g. DCF-36 Periodic Security Training), and the data surfaces as live automated evidence directly under Compliance → Controls — visible to auditors with no manual CSV exports or screenshots.

Prerequisites

  • An active CompliNudge account with admin access
  • A Drata account with permission to create Custom Connections and API keys

Data source schema

Paste this JSON schema into Drata's data source when creating the Custom Connection, and set employeeName as the display name key.

{
  "type": "object",
  "properties": {
    "employeeName": { "type": "string" },
    "slackUserId": { "type": "string" },
    "trainingProgram": { "type": "string" },
    "status": { "type": "string" },
    "completionPercentage": { "type": "number" },
    "modulesCompleted": { "type": "integer" },
    "modulesTotal": { "type": "integer" },
    "lastCompletedAt": { "type": "string" },
    "knowledgeScore": { "type": "number" },
    "riskTier": { "type": "string" },
    "exemptReason": { "type": "string" },
    "reportingPeriodStart": { "type": "string" },
    "reportingPeriodEnd": { "type": "string" }
  },
  "required": [
    "employeeName",
    "slackUserId",
    "trainingProgram",
    "status",
    "completionPercentage",
    "reportingPeriodStart",
    "reportingPeriodEnd"
  ]
}

Setup steps

  1. 1

    In Drata, open Connections → Manage Accounts and create a new Custom Connection named “CompliNudge”.

  2. 2

    Choose “JSON schema” as the data source, paste the schema below, and click Validate JSON schema. Set the display name key to employeeName.

  3. 3

    Save the connection, then open the Manage tab. Under “Send a single piece of evidence”, click Copy on the curl example. The URL in that command is your records endpoint — it looks like https://public-api.drata.com/public/custom-connections/77/resources/42/records.

  4. 4

    In Drata, create a Public API key with the Custom Connections scopes.

  5. 5

    In CompliNudge, go to Settings → Integrations → Drata and click Connect Drata. Paste your API key and the records endpoint URL.

  6. 6

    CompliNudge validates the credentials, then pushes employee records automatically on the next scheduled sync. For an immediate push, click Push to Drata.

  7. 7

    In Drata, go to Compliance → Controls and open your Periodic Security Training control (DCF-36). Under the Monitoring tab, click Map tests and create a Custom Test. Set the resource to your CompliNudge connection, add two OR conditions: status Equals completed and status Equals exempt, and set the evaluation threshold to “All results must pass”. Once saved, your training data appears as live automated evidence directly on the control — visible to auditors without navigating to Custom Connections.

What syncs

  • One record per employee (display name + Slack user ID)
  • Overall training status and completion percentage
  • Modules completed / total and last completion timestamp
  • Knowledge score and compliance risk tier
  • Exempt status and reason (for excluded users)

Troubleshooting

Invalid API key or insufficient scopes
Regenerate the Drata Public API key and confirm it has the Custom Connections scopes, then reconnect in Settings.
Connection or resource not found / invalid endpoint URL
Paste the full records endpoint URL from the Manage tab curl example (e.g. https://public-api.drata.com/public/custom-connections/77/resources/42/records). Make sure you're copying from the right connection.
Records not appearing in Drata
Sync runs on a schedule; for an immediate push use "Push to Drata" in Settings. Records are matched by employee name (the display name key).