All integrations
Zendesk
+
Bruin

Zendesk + Bruin

Source

Ingest Zendesk 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

  • Support data meets revenue data

    Join Zendesk tickets with billing and product usage. Build customer health scores that predict churn before it happens.

  • SLA monitoring, automated

    Zendesk response times and resolution metrics are quality-checked on every sync. Know when SLAs are at risk before customers escalate.

  • Support ROI in business terms

    Connect Zendesk agent performance to revenue outcomes. Show leadership the business impact of support quality.

  • No more ticket export Fridays

    Zendesk data syncs automatically. Reports are fresh every morning without manual pulls.

For data & engineering teams

How it works

  • Incremental ticket sync

    Only sync new and updated Zendesk tickets. No full reloads, even for high-volume support queues.

  • YAML-defined, Git-versioned

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

  • SLA validation in SQL

    Custom quality checks validate response times and resolution SLAs. Pipeline alerts when thresholds are breached.

  • Cross-source customer view

    Join Zendesk tickets with CRM and billing data in SQL transforms. Bruin resolves dependencies automatically.

Before you start

Zendesk API token
Admin account access

Step 1

Add your Zendesk connection

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

Parameters

  • api_keyZendesk API token
  • emailZendesk account email
  • subdomainZendesk subdomain (without .zendesk.com)
connections:
  zendesk:
    type: zendesk
    uri: "zendesk://?api_key=<api_key>&email=<email>&subdomain=<subdomain>"

Step 2

Create your pipeline

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

Available tables

ticketsusersorganizationsgroupsbrandssatisfaction_ratings
name: raw.zendesk_tickets
type: ingestr

parameters:
  source_connection: zendesk
  source_table: 'tickets'
  destination: bigquery

Step 3

Add quality checks

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

Validate ticket statuses against accepted values
Catch open tickets with no assignee
Ensure ticket IDs are unique — no duplicates
columns:
  - name: ticket_id
    checks:
      - name: not_null
      - name: unique
  - name: status
    checks:
      - name: accepted_values
        value: ['open', 'pending', 'resolved', 'closed']

custom_checks:
  - name: no tickets missing assignee
    query: |
      SELECT COUNT(*) = 0
      FROM raw.zendesk_tickets
      WHERE status = 'open' AND assignee_id IS NULL

Step 4

Run it

One command. Bruin connects to Zendesk, 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 Zendesk to your dashboards
$ bruin run .
Running pipeline...

  zendesk_tickets
    ✓ 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 Customer Support integrations

Ready to connect Zendesk?

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