All integrations
ADP
+
Bruin

ADP + Bruin

Source

Ingest ADP data into your warehouse with incremental loading, quality checks, and full lineage. Defined in YAML, version-controlled in Git.

For business teams

What you get

  • People analytics beyond HR tools

    Join ADP data with finance and project data. See fully-loaded team cost, hiring ROI, and attrition trends.

  • Headcount planning with real data

    Combine ADP org data with budget and project data. Plan headcount based on actual numbers, not estimates.

  • Compliance-ready data

    Quality checks validate that required fields are present, records are consistent, and org hierarchy is valid.

  • Faster reporting cycles

    ADP data syncs automatically. HR and finance get fresh data without waiting for someone to pull a report.

For data & engineering teams

How it works

  • Automatic schema handling

    Bruin detects ADP schema changes and handles them automatically. No manual migration scripts.

  • YAML-defined, Git-versioned

    Your ADP pipeline is a YAML file. Review in PRs, deploy with CI/CD, roll back with git revert.

  • Hierarchy validation

    Custom SQL checks validate manager-employee relationships and catch orphaned records in ADP org data.

  • Incremental sync

    Only sync new and changed ADP records. Full org structure stays in sync without re-processing everything.

Before you start

API credentials from ADP developer portal
Admin access to ADP Workforce Now

Step 1

Add your ADP connection

Connect using OAuth client credentials. Add this to your Bruin environment file — credentials are stored securely and referenced by name in your pipeline YAML.

Parameters

  • client_idADP API client ID
  • client_secretADP API client secret
connections:
  adp:
    type: adp
    uri: "adp://?client_id=<id>&client_secret=<secret>"

Step 2

Create your pipeline

Define a YAML asset that tells Bruin what to pull from ADP and where to land it. This file lives in your Git repo — reviewable, version-controlled, and deployable with CI/CD.

Available tables

workerspay_statementspositionsdepartmentsorg_units
name: raw.adp_workers
type: ingestr

parameters:
  source_connection: adp
  source_table: 'workers'
  destination: bigquery

Step 3

Add quality checks

Add column-level and custom SQL checks to your ADP data. If a check fails, the pipeline stops — bad data never reaches downstream models or dashboards.

Validate manager-employee hierarchy is valid
Catch employees with null departments
Ensure employee IDs are unique across syncs
columns:
  - name: employee_id
    checks:
      - name: not_null
      - name: unique
  - name: status
    checks:
      - name: accepted_values
        value: ['active', 'inactive', 'terminated', 'on_leave']

custom_checks:
  - name: valid manager hierarchy
    query: |
      SELECT COUNT(*) = 0
      FROM raw.adp_workers
      WHERE manager_id IS NOT NULL
        AND manager_id NOT IN (SELECT employee_id FROM raw.adp_workers)

Step 4

Run it

One command. Bruin connects to ADP, pulls data incrementally, runs your quality checks, and lands clean data in your warehouse. If a check fails, the pipeline stops — bad data never reaches downstream.

Backfill historical data with --start-date
Schedule with cron or trigger from CI/CD
Full lineage from ADP to your dashboards
$ bruin run .
Running pipeline...

  adp_workers
    ✓ Fetched 2,847 new records
    ✓ Quality: campaign_id not_null     PASSED
    ✓ Quality: spend not_null           PASSED
    ✓ Quality: no negative ad spend     PASSED
    ✓ Loaded into bigquery

  Completed in 12s

Other HR & Recruiting integrations

Ready to connect ADP?

Start for free, or book a demo to see how Bruin handles ingestion, quality, lineage, and scheduling for your entire data stack.