Data Export

Complete guide to exporting your personal data from Clocky. This is your GDPR Article 15 Right to Access.


Overview

What is data export?

Data export allows you to download a complete copy of all your personal data stored by Clocky. This is your legal right under GDPR Article 15 (Right to Access).

What you get:

  • Complete copy of all your data
  • Machine-readable JSON format
  • Delivered within 24 hours
  • Free of charge (first request per year)

Why export your data:

  • ✅ See exactly what Clocky knows about you
  • ✅ Transfer to another service (data portability)
  • ✅ Keep personal records/backups
  • ✅ Verify accuracy of your data
  • ✅ Compliance with your own data policies

GDPR rights

Article 15: Right to Access You have the right to obtain:

  • Confirmation that we process your data
  • Access to your personal data
  • Information about processing (how, why, how long)

Article 20: Right to Data Portability You have the right to:

  • Receive data in structured, machine-readable format
  • Transfer data to another controller

How to Export Your Data

Step 1: Run the command

/data-export

Run this command in any Discord channel where Clocky is present.

Requirements:

  • You must be the account owner
  • No special permissions needed
  • Works in any server with Clocky

Step 2: Wait for processing

Processing time:

  • Small datasets (< 100 sessions): 10-30 seconds
  • Medium datasets (100-1000 sessions): 1-5 minutes
  • Large datasets (1000+ sessions): 5-20 minutes

You'll see:

🔄 Generating your data export...

This may take a few minutes depending on how much data you have.
You'll receive a DM when it's ready.

Step 3: Receive your export

Delivery method: Discord Direct Message (DM)

Export message includes:

  • Download link (valid for 24 hours)
  • File size
  • Number of sessions included
  • Export timestamp
  • Expiration time

Example DM:

📥 Your Data Export is Ready

Export generated: January 15, 2025 at 3:45 PM
File size: 127 KB
Sessions included: 486
Servers: 2

[Download Export]

⚠️ This link expires in 24 hours for security.
Download your data now.

Step 4: Download the file

  1. Click "Download Export" button
  2. Opens secure download page
  3. File downloads as clocky-data-export-[timestamp].json
  4. Save to your device

What's Included in the Export

Export file structure

The export is a JSON file with the following structure:

{
  "export_info": {
    "generated_at": "2025-01-15T15:45:00Z",
    "user_id": "123456789012345678",
    "username": "YourUsername#1234",
    "export_version": "1.0"
  },
  "user_data": {
    "user_id": "123456789012345678",
    "username": "YourUsername#1234",
    "created_at": "2024-01-01T00:00:00Z",
    "preferences": {
      "leaderboard_public": false,
      "timezone": "America/New_York"
    }
  },
  "sessions": [...],
  "breaks": [...],
  "statistics": {...},
  "servers": [...]
}

User data section

What's included:

  • Discord User ID (your unique identifier)
  • Discord username (at time of export)
  • Account creation date (when you first used Clocky)
  • Preferences (leaderboard visibility, timezone)

Example:

{
  "user_id": "123456789012345678",
  "username": "alice#1234",
  "created_at": "2024-01-01T00:00:00Z",
  "preferences": {
    "leaderboard_public": false,
    "timezone": "America/New_York"
  }
}

Sessions section

What's included: For each work session:

  • Session ID (unique identifier)
  • Server ID and server name
  • Check-in timestamp
  • Check-out timestamp (if checked out)
  • Duration in minutes
  • Session status (active, completed, auto-closed)
  • Created/updated timestamps

Example:

{
  "sessions": [
    {
      "session_id": "abc123",
      "server_id": "987654321098765432",
      "server_name": "Work Server",
      "checked_in_at": "2025-01-15T09:00:00Z",
      "checked_out_at": "2025-01-15T17:30:00Z",
      "duration_minutes": 510,
      "break_duration_minutes": 60,
      "net_worked_minutes": 450,
      "status": "completed",
      "created_at": "2025-01-15T09:00:00Z",
      "updated_at": "2025-01-15T17:30:00Z"
    }
  ]
}

Breaks section

What's included: For each break:

  • Break ID
  • Session ID (which session this break belongs to)
  • Break start timestamp
  • Break end timestamp (if ended)
  • Duration in minutes
  • Break status (active, completed)

Example:

{
  "breaks": [
    {
      "break_id": "brk456",
      "session_id": "abc123",
      "started_at": "2025-01-15T12:00:00Z",
      "ended_at": "2025-01-15T13:00:00Z",
      "duration_minutes": 60,
      "status": "completed"
    }
  ]
}

Statistics section

What's included:

  • Total sessions count
  • Total worked time (all-time)
  • Average session duration
  • Longest session
  • Total break time
  • Servers you've used Clocky in

Example:

{
  "statistics": {
    "total_sessions": 486,
    "total_worked_minutes": 97520,
    "total_worked_hours": 1625.33,
    "average_session_minutes": 200.66,
    "longest_session_minutes": 540,
    "total_break_minutes": 5820,
    "servers_count": 2
  }
}

Servers section

What's included: For each server:

  • Server ID
  • Server name (at time of export)
  • First check-in date
  • Last check-in date
  • Total sessions in this server

Example:

{
  "servers": [
    {
      "server_id": "987654321098765432",
      "server_name": "Work Server",
      "first_checkin": "2024-01-01T09:00:00Z",
      "last_checkin": "2025-01-15T09:00:00Z",
      "session_count": 450
    }
  ]
}

Using Your Exported Data

Viewing the JSON file

Option 1: Online JSON viewer

Option 2: Text editor

  • Open with VS Code, Sublime Text, or Notepad++
  • Enable JSON syntax highlighting
  • Use "Format Document" for readability

Option 3: Code

// Node.js / JavaScript
const fs = require('fs');
const data = JSON.parse(fs.readFileSync('clocky-data-export.json', 'utf8'));
console.log(data.statistics);
# Python
import json

with open('clocky-data-export.json', 'r') as f:
    data = json.load(f)
    print(data['statistics'])

Converting to other formats

JSON to CSV (sessions):

Using online converter:

  1. Go to convertcsv.com/json-to-csv.htm
  2. Upload your JSON file
  3. Select "sessions" array
  4. Download CSV

Using Python:

import json
import csv

with open('clocky-data-export.json', 'r') as f:
    data = json.load(f)

with open('sessions.csv', 'w', newline='') as csvfile:
    writer = csv.DictWriter(csvfile, fieldnames=data['sessions'][0].keys())
    writer.writeheader()
    writer.writerows(data['sessions'])

JSON to Excel:

  1. Convert to CSV (above)
  2. Open in Excel
  3. Use "Text to Columns" if needed
  4. Format dates/times as needed

Analyzing your data

Calculate total hours by server:

import json
from collections import defaultdict

with open('clocky-data-export.json', 'r') as f:
    data = json.load(f)

hours_by_server = defaultdict(int)
for session in data['sessions']:
    hours_by_server[session['server_name']] += session['net_worked_minutes'] / 60

for server, hours in hours_by_server.items():
    print(f"{server}: {hours:.2f} hours")

Find longest sessions:

sessions = sorted(data['sessions'],
                 key=lambda x: x['net_worked_minutes'],
                 reverse=True)

print("Top 10 longest sessions:")
for s in sessions[:10]:
    print(f"{s['net_worked_minutes']/60:.2f}h on {s['checked_in_at']}")

Transferring to another service

Data portability steps:

  1. Export your data from Clocky
  2. Check if the new service accepts JSON imports
  3. Map Clocky's fields to their fields:
    • checked_in_at → start time
    • checked_out_at → end time
    • net_worked_minutes → duration
  4. Import using their API or upload feature

Common integrations:

  • Toggl Track: Convert to CSV, import via "Import time entries"
  • Clockify: Use API to import sessions
  • Harvest: Convert to CSV format
  • Custom tools: Use JSON directly via API

Frequently Asked Questions

How often can I export my data?

First export per year: Free

Additional exports: May incur reasonable administrative fees (we'll notify you first)

Does the export include deleted data?

No. Only currently active data is included. Deleted data is permanently removed and not included in exports.

Can I export data from a specific server only?

Currently, exports include all your data across all servers. Use the server_id or server_name fields to filter after export.

How long is the download link valid?

24 hours for security. After that, request a new export.

What if my DMs are disabled?

Enable DMs temporarily:

  1. Go to User Settings → Privacy & Safety
  2. Enable "Allow direct messages from server members"
  3. Request export again
  4. You can disable DMs again after downloading

Can admins export my data?

Admins can export server-wide data (Premium feature), but they can't export your individual data export. Your /data-export is private to you only.

Is my export encrypted?

Yes. The download link uses HTTPS encryption. The JSON file itself is not encrypted (so you can read it), but the transfer is secure.

What if I have thousands of sessions?

Large exports may take up to 20 minutes to generate. You'll still receive the file via DM when ready.

Can I automate exports?

Not currently. Exports must be manually requested to ensure user intent and prevent abuse.


Troubleshooting

I didn't receive a DM

Possible causes:

  • DMs are disabled
  • Bot is blocked
  • Discord had a delivery issue

Solution:

  1. Check Discord Privacy Settings
  2. Ensure you haven't blocked Clocky
  3. Wait 5 minutes and try again
  4. Contact support if still not received

Download link expired

Solution: Request a new export:

/data-export

Download immediately when received.

Can't open JSON file

Solution:

  1. Ensure file downloaded completely (check file size)
  2. Use a JSON-compatible viewer (not regular Notepad)
  3. Try online JSON viewer: jsonviewer.stack.hu

Export seems incomplete

Check:

  • File size matches what was stated in DM
  • JSON is valid (paste into validator)
  • You're looking in the right server data

If truly incomplete: Contact support with export timestamp: /support


Was this page helpful?