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
- Click "Download Export" button
- Opens secure download page
- File downloads as
clocky-data-export-[timestamp].json - 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
- Visit jsonviewer.stack.hu
- Upload or paste your JSON
- Browse data in structured format
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:
- Go to convertcsv.com/json-to-csv.htm
- Upload your JSON file
- Select "sessions" array
- 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:
- Convert to CSV (above)
- Open in Excel
- Use "Text to Columns" if needed
- 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:
- Export your data from Clocky
- Check if the new service accepts JSON imports
- Map Clocky's fields to their fields:
checked_in_at→ start timechecked_out_at→ end timenet_worked_minutes→ duration
- 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:
- Go to User Settings → Privacy & Safety
- Enable "Allow direct messages from server members"
- Request export again
- 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:
- Check Discord Privacy Settings
- Ensure you haven't blocked Clocky
- Wait 5 minutes and try again
- 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:
- Ensure file downloaded completely (check file size)
- Use a JSON-compatible viewer (not regular Notepad)
- 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