Skip to content
Convor
Convor Docs
Features

GDPR Compliance

Export and delete personal data to comply with GDPR right to portability and right to erasure requirements.

Convor provides two GDPR-specific endpoints for handling data subject requests. The export endpoint delivers a full JSON archive of all personal data, and the deletion endpoint performs a thorough erasure across every related table.

Overview

GDPR (General Data Protection Regulation) grants EU data subjects two key rights that Convor supports:

  • Right to portability: export all personal data in a machine-readable format
  • Right to erasure: permanently delete all personal data upon request

Both endpoints require authentication. The deletion endpoint additionally requires password confirmation to prevent accidental or unauthorized erasures.

Data Export (Right to Portability)

Download a complete JSON archive of all data associated with the authenticated user:

GET /api/gdpr/export

The response is a JSON file download with a descriptive filename:

convor-gdpr-export-{userId}-{date}.json

Exported Data

The archive includes the following sections:

SectionContents
userProfile data: email, name, image, verification status
membershipsOrganization memberships with roles and status
operatorOperator profile: display name, status, last seen
organizationsOrganization details: name, slug, plan
conversationsAll conversations in the org with metadata
messagesUp to 500 recent messages with sender info
surveysAll satisfaction survey responses

All timestamps are serialized as ISO 8601 strings. The exportedAt field at the top level records when the export was generated.

Message Limit

The export caps messages at the 500 most recent to keep file sizes manageable. If you need a complete message archive, use the Data Export endpoints with appropriate date filters.

Data Deletion (Right to Erasure)

Permanently delete all personal data for the authenticated user. This action is irreversible:

DELETE /api/gdpr/delete
{
  "password": "current-password"
}

The password field is required to confirm the request. Without it, the endpoint returns a validation error.

What Gets Deleted

The deletion process removes data in a specific order to maintain referential integrity:

  1. Push subscriptions: all notification subscriptions for the user
  2. Audit logs: the userId reference is set to null (anonymized, not deleted) to preserve audit trail integrity
  3. Messages: all messages sent by this operator are replaced with [Deleted by GDPR request], metadata is cleared, and the sender reference is nulled
  4. Conversation assignments: any conversations assigned to this operator are unassigned
  5. File uploads: all uploads by this user are deleted (across all organizations, per GDPR requirements)
  6. Visitor records: orphaned visitors from the organization are cleaned up
  7. Operator profile: the operator record for the current org is deleted
  8. Membership: the org membership is deleted
  9. User account: the user record is deleted only if no memberships remain in other organizations

What Is Retained

Some data is deliberately kept:

  • Anonymized audit logs: the userId is nulled but the log entry remains for compliance auditing
  • Aggregate analytics: anonymized metrics and statistics are not affected by the deletion

Irreversible Action

This endpoint performs a hard deletion. There is no undo. Advise users to export their data first using the portability endpoint. The deletion itself is also logged in the audit trail before the user reference is anonymized.

Rate Limiting

The deletion endpoint is rate-limited to 3 requests per minute to prevent abuse. The export endpoint uses the standard rate limit.

API Reference

MethodEndpointDescription
GET/api/gdpr/exportExport all user data as JSON
DELETE/api/gdpr/deleteDelete all user data (requires password)

Both endpoints require authentication and are scoped to the authenticated user. Deletion requires password confirmation.

Was this page helpful?

On this page