User Data Recording Procedures

Transparent documentation of how we collect, record, store, and manage user information

Purpose: This document explains the technical mechanisms, procedures, and safeguards we use to record user information in compliance with GDPR, CCPA, and privacy best practices.

1. Contact Information Recording

1.1 Initial Collection Point

Where: Contact forms, support tickets, email inquiries

What We Record:

  • Full name, email address, phone number
  • Organization name and company role
  • Issue description and incident details
  • Timestamp of submission (automatic)
  • IP address (for security purposes)

1.2 Recording Mechanism

Browser-Side: Form data is validated using client-side JavaScript to ensure data quality before submission.

// Validation procedure (assets/js/main.js) const validateField = (input) => { const value = sanitizeInput(input.value); const isRequired = input.hasAttribute('required'); const errorTarget = input.closest('.field')?.querySelector('[data-error]'); let error = ''; if (isRequired && !value) { error = 'This field is required.'; } else if (input.type === 'email' && value && !isEmail(value)) { error = 'Enter a valid email address.'; } // Additional validation logic... };

1.3 Data Sanitization

Security Procedure: All user input is sanitized to prevent XSS attacks and SQL injection:

const sanitizeInput = (str) => { if (!str) return ''; return str .replace(/[<>]/g, '') .slice(0, 1000) .trim(); };

1.4 Server-Side Storage

Recording Location:

  • Contact forms → CRM/ticket system (encrypted database)
  • Email inquiries → Email server with security headers
  • Incident details → Encrypted support knowledge base

Encryption Standard: TLS 1.2+ for data in transit, AES-256 for data at rest

2. Cookie & Preference Recording

2.1 Cookie Consent Tracking

Mechanism: Browser localStorage (not dependent on third-party cookies)

// Cookie consent recording (assets/js/main.js) const initCookieNotice = () => { const banner = document.querySelector('[data-cookie-banner]'); const accept = document.querySelector('[data-cookie-accept]'); if (!banner || !accept) return; const key = 'xo-cookie-consent'; const stored = localStorage.getItem(key); if (stored === 'accepted') { banner.hidden = true; } accept.addEventListener('click', () => { banner.hidden = true; try { localStorage.setItem(key, 'accepted'); } catch (err) { /* ignore */ } }); };

2.2 First-Party Cookies Used

Cookie Name Purpose Expiration Required
xo-cookie-consent Record user consent preference Persistent (localStorage) Yes (GDPR compliance)
xo-theme-preference Remember light/dark mode choice 1 year No (optional)
xo-nav-state Remember mobile nav open/close state Session No (UX enhancement)

3. Analytics & Usage Recording

3.1 Analytics Provider

Service: Plausible Analytics (privacy-friendly, no tracking cookies)

Data Collected:

  • Page views (URI path, no query parameters)
  • Referrer source (Google, LinkedIn, direct)
  • Device type (desktop, tablet, mobile)
  • Browser and OS (anonymized)
  • Geographic location (country-level only)
  • Session duration

3.2 Recording Mechanism

// Plausible async tracking (loaded in all pages) <script async src="https://plausible.io/js/pa-l19egDkYdaqOJP_bLhgaL.js"></script> <script> window.plausible = window.plausible || function () { (plausible.q = plausible.q || []).push(arguments); }; plausible.init(); </script>

3.3 NO Personally Identifiable Information

Plausible does NOT collect:

  • IP addresses (hashed, not stored)
  • User IDs or account information
  • Email addresses
  • Cookie IDs or tracking codes
  • Query parameters (search terms, utm_source, etc.)

4. Form Submission Recording

4.1 Contact Form Submission

HTML Structure:

<form data-js-contact-form> <input type="text" name="fullName" required minlength="2"> <input type="email" name="email" required> <textarea name="message" required minlength="10"></textarea> <button type="submit">Submit</button> </form>

4.2 Form Validation & Recording Process

  1. User Input: Data entered into form fields
  2. Client-Side Validation: JavaScript validates format, length, and type
  3. Sanitization: Input sanitized to remove harmful characters
  4. Error Display: Validation errors shown to user in real-time
  5. Submission: Form submitted to server endpoint (encrypted HTTPS)
  6. Server-Side Recording: Data stored in CRM/database with timestamp
  7. Confirmation: User receives success message and confirmation email
  8. Retention: Data retained per policy (3 years for contacts)

5. Click & Interaction Tracking

5.1 CTA Button Tracking

// Track CTA button clicks (assets/js/main.js) document.querySelectorAll('.btn-primary, .btn-secondary').forEach(btn => { btn.addEventListener('click', () => { const text = btn.textContent.trim().slice(0, 50); const section = btn.closest('section')?.querySelector('h1, h2, h3')?.textContent?.slice(0, 50) || 'unknown'; trackEvent('cta_click', { button_text: text, section: section, href: btn.getAttribute('href') || 'no-link' }); }); });

5.2 External Link Tracking

// Track external link clicks (assets/js/main.js) document.querySelectorAll('a[href^="http"]').forEach(link => { link.addEventListener('click', () => { trackEvent('external_link_click', { url: link.getAttribute('href'), text: link.textContent.slice(0, 50) }); }); });

5.3 Data Retention

Event data is retained for 90 days in Plausible Analytics, then automatically deleted.

6. Social Share Tracking

6.1 Social Share Events

Tracked Actions:

  • Tweet share (Twitter/X)
  • LinkedIn share
  • Facebook share
  • Email share

6.2 Recording Mechanism

// Social share button tracking const initSocialShare = () => { document.querySelectorAll('[data-social-share] a').forEach(btn => { btn.addEventListener('click', () => { trackEvent('social_share', { platform: btn.getAttribute('data-platform'), article: document.querySelector('h1')?.textContent?.slice(0, 100) || 'unknown' }); }); }); };

7. User Rights & Data Access

7.1 Data Subject Rights

Users can exercise their rights by contacting privacy@exchangeguardians.com:

  • Access Request: Receive all data recorded about you (30-day response)
  • Correction: Request updates to incorrect information
  • Deletion: Request erasure of your data (subject to legal retention)
  • Portability: Receive data in structured, portable format (CSV/JSON)
  • Objection: Opt out of analytics, marketing, or other processing

8. Data Breach Notification

8.1 Incident Response Procedure

  1. Detection: Security monitoring identifies potential breach
  2. Investigation: Determine scope, affected data, and root cause
  3. Notification (≤72 hours): EU DPA and affected users notified per GDPR Article 33
  4. Disclosure: Full transparency provided about what happened and remediation
  5. Remediation: Implement fixes and prevent recurrence
  6. Documentation: Record incident and lessons learned

9. Third-Party Data Sharing

9.1 When We Share Data

Service Providers (DPA-protected):

  • Cloud hosting: AWS/Azure (encrypted, segregated)
  • Email: SendGrid (transactional only)
  • Analytics: Plausible (aggregated, non-PII)
  • Chat: Intercom (if enabled, optional)

9.2 Prohibition on Selling Data

We DO NOT:

  • Sell user data to marketers or brokers
  • Share data without explicit user consent
  • Use data for purposes not disclosed in privacy policy
  • Combine personal data from multiple sources without consent

10. Audit & Compliance Verification

10.1 Regular Audits

  • Quarterly: Review data collection mechanisms and retention
  • Semi-Annual: Penetration testing and security assessment
  • Annual: Full GDPR compliance audit and DPA review

10.2 Compliance Verification

Standards Met:

  • ✓ GDPR 2016/679 (EU data protection)
  • ✓ CCPA/CPRA (California privacy)
  • ✓ ePrivacy Directive 2002/58/EC (Cookies)
  • ✓ Data Protection Act 2018 (UK)
  • ✓ Web Accessibility Guidelines (WCAG 2.1 AA)

11. Contact for Data Privacy Questions

If you have questions about how we record and manage your data:

Version: 1.0 | Effective: January 11, 2026

This document provides transparent procedures for how ExchangeGuardians records user information. All procedures comply with applicable data protection laws and privacy regulations.