Skip to content
Last updated: 2026-04-06
Reference

GraphQL Events Reference

Dxtra uses event triggers to process database changes automatically. When a record is inserted or updated in a tracked table, the platform fires an internal webhook that executes the associated business logic.

Internal Only

All event triggers are internal to the Dxtra platform. There is no customer-configurable outbound webhook system. Events fire from the database to internal handlers and are not sent to your application endpoints.

How Event Triggers Work

graph LR
    DB[(Database)] -->|Row change| Engine[Event Engine]
    Engine -->|Webhook POST| Handler[Internal Handler]
    Handler -->|Business logic| DB
  1. A database row is inserted or updated in a tracked table
  2. The event engine detects the change and fires a webhook to the configured handler URL
  3. The internal handler executes business logic (e.g., send email, create related records, trigger workflows)
  4. Failed events are retried automatically

Event Payload Format

All event triggers follow a standard event payload format:

JSON
{
  "event": {
    "session_variables": {
      "x-hasura-role": "user",
      "x-hasura-user-id": "<user-uuid>"
    },
    "op": "INSERT",
    "data": {
      "old": null,
      "new": {
        "id": "<record-uuid>",
        "created_at": "2025-08-11T10:30:00Z"
      }
    }
  },
  "created_at": "2025-08-11T10:30:00Z",
  "id": "<event-uuid>",
  "trigger": {
    "name": "trigger_name"
  }
}
Field Description
event.op Operation type: INSERT, UPDATE, or DELETE
event.data.old Previous row values (null for INSERT)
event.data.new New row values (null for DELETE)
event.session_variables Session context from the originating request
trigger.name Name of the event trigger that fired

Core Data Events

Data Controller Events

data_controllers_insert -- fires when a new data controller is registered.

  • Initializes Tag Manager account for the organization
  • Sets up default compliance configuration
  • Creates initial user permissions

data_controller_details_update -- fires when data controller details are updated.

Event Data:

JSON
{
  "event": {
    "type": "data_controller_created",
    "data": {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "title": "Acme Corporation",
      "did": "did:dep:12345",
      "created_at": "2025-08-07T10:30:00Z"
    }
  },
  "created_at": "2025-08-07T10:30:00Z",
  "id": "c3d4e5f6-a7b8-9012-cdef-123456789012"
}

Processing Actions: - Initialize Dxtra Tag Manager account - Set up default compliance templates - Create initial user permissions - Send welcome email sequence

Data Subject Events

data_subjects_insert -- fires when a new data subject record is created.

Event: data_subjects_insert

Webhook: Handled automatically by Dxtra platform

Event Data:

JSON
{
  "event": {
    "type": "data_subject_registered",
    "data": {
      "id": "f8e7d6c5-b4a3-2109-8765-432109876543",
      "data_controller_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "created_at": "2025-08-07T10:30:00Z"
    }
  }
}

Processing Actions: - Generate privacy-preserving identifier - Link to existing processing activities - Initialize consent management records - Trigger consent collection workflows

Data Processing Activity Events

data_processing_activities_insert -- fires when a new processing activity is recorded.

  • Validates legal basis and purpose alignment
  • Updates compliance status

Rights Request Events

data_subject_rights_requests_insert -- fires when a data subject submits a rights request.

  • Sends verification email to the data subject
  • Creates processing timeline and deadlines
  • Notifies relevant team members

data_subject_rights_requests_update -- fires when a rights request status or verification state changes.

  • Triggers downstream workflows based on the new status
  • Sends status update notifications

Authentication Events

auth_users_insert -- fires when a new user account is created.

  • Runs email verification
  • Initializes user profile

Payload:

JSON
{
  "event": {
    "op": "INSERT",
    "data": {
      "new": {
        "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
        "email": "user@example.com",
        "displayName": "Jane Smith",
        "createdAt": "2025-08-07T10:30:00Z",
        "locale": "en",
        "defaultRole": "user",
        "isAnonymous": false
      }
    }
  }
}

  • Links the new account to pending team invitations
  • Sets role-based permissions from the invitation

data_controller_create_user -- fires when a user is added to a data controller organization.

  • Provisions access to the organization's resources

data_controller_users_update -- fires when a user's role or status changes within an organization.

  • Syncs role changes to dependent services
  • Updates Tag Manager user permissions

data_subject_preference_values_update -- fires when a data subject updates their consent preferences.

  • Syncs preference changes across integrated platforms

Scheduled Events

Payload:

JSON
{
  "event": {
    "op": "INSERT",
    "data": {
      "new": {
        "id": "d4e5f6a7-b8c9-0123-defa-234567890123",
        "owner_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "owner_type": "data_controller",
        "title": "Consent renewal reminder",
        "message": "Annual consent renewal required for processing activity",
        "is_active": true,
        "frequency_type": "monthly",
        "frequency_rate": 1,
        "next_event_at": "2025-09-07T10:30:00Z",
        "reference": "consent_renewal",
        "created_at": "2025-08-07T10:30:00Z"
      }
    }
  }
}

  • Routes the event to the appropriate handler based on event type
  • Common scheduled events: rights request deadline reminders, consent renewal notifications, data retention policy execution

Domain Verification Events

domain_verification_cors_sync -- fires when a domain verification status changes.

  • Updates CORS configuration for verified domains

Document Generation Events

generate_v0_profile -- fires when a compliance profile generation is queued.

  • Triggers the onboarding assessment workflow

generate_controller_documents -- fires when document generation is queued.

  • Orchestrates privacy document generation (notices, policies, agreements)

generate_controller_purposes -- fires when purpose generation is queued.

  • Generates processing purposes from the organization profile

Scheduled Background Jobs

Dxtra runs scheduled background jobs (cron triggers) for maintenance tasks:

Job Schedule Purpose
Delete expired controllers Daily (midnight) Removes expired trial accounts
Monthly usage check 1st of each month Evaluates subscription usage
Process scheduled events Every 10 minutes Executes queued scheduled events
Verify domain records Every 15 minutes Checks DNS records for domain verifications
Consolidate data subjects Hourly Merges duplicate data subject records
DSAR compliance check Daily (8 AM) Notifies DPO of overdue rights requests

Event Configuration

All event triggers share these defaults:

Setting Value
Retry attempts Varies per trigger (0–3)
Retry interval 10 seconds
Processing timeout 60 seconds
Columns included All (*)

Failed events are retried with the configured interval. If all retries fail, the event is logged for manual review.

For Developers

Event triggers are internal infrastructure. To integrate with Dxtra: