Shahi LegalFlowSuite

Event Types & Structure

Event Categories

Consent Events

Banner Interaction Events

Banner Display Event

`json
{
“event”: “consentbannerdisplay”,
“properties”: {
“banner_type”: “initial|revisit|customization”,
“triggerreason”: “pageload|scroll|exit_intent|manual”,
“geo_location”: “US|EU|BR”,
“language”: “en|es|fr”,
“timestamp”: “2024-01-15T10:30:00Z”
}
}
`

Banner Accept Event

`json
{
“event”: “consentbanneraccept”,
“properties”: {
“consent_categories”: [“essential”, “analytics”, “marketing”],
“acceptmethod”: “acceptall|customize_accept”,
“interaction_time”: 15,
“previous_consent”: false,
“geo_location”: “EU”,
“timestamp”: “2024-01-15T10:30:15Z”
}
}
`

Banner Reject Event

`json
{
“event”: “consentbannerreject”,
“properties”: {
“rejectmethod”: “rejectall|customize_reject”,
“interaction_time”: 8,
“rejected_categories”: [“analytics”, “marketing”],
“geo_location”: “US”,
“timestamp”: “2024-01-15T10:30:08Z”
}
}
`

Banner Customize Event

`json
{
“event”: “consentbannercustomize”,
“properties”: {
“customization_time”: 45,
“categories_viewed”: [“essential”, “analytics”, “marketing”, “preferences”],
“finaldecision”: “partialaccept”,
“geo_location”: “BR”,
“timestamp”: “2024-01-15T10:30:45Z”
}
}
`

Cookie Category Events

Category-Specific Consent

`json
{
“event”: “consentcategoryupdate”,
“properties”: {
“category”: “analytics”,
“action”: “granted|denied|withdrawn”,
“method”: “banner|preference_center|api”,
“previous_status”: “denied”,
“geo_location”: “EU”,
“timestamp”: “2024-01-15T10:31:00Z”
}
}
`

Bulk Category Updates

`json
{
“event”: “consentbulkupdate”,
“properties”: {
“categories_updated”: {
“analytics”: “granted”,
“marketing”: “denied”,
“preferences”: “granted”
},
“updatemethod”: “preferencecenter”,
“updatereason”: “userreview”,
“geo_location”: “US”,
“timestamp”: “2024-01-15T10:32:00Z”
}
}
`

Privacy Events

Policy Interaction Events

Privacy Policy View

`json
{
“event”: “privacypolicyview”,
“properties”: {
“policy_version”: “2.1”,
“viewsource”: “bannerlink|footerlink|directurl”,
“timeonpage”: 180,
“scroll_depth”: 85,
“sectionsviewed”: [“datacollection”, “user_rights”, “contact”],
“geo_location”: “EU”,
“timestamp”: “2024-01-15T10:35:00Z”
}
}
`

Cookie Policy Interaction

`json
{
“event”: “cookiepolicyinteraction”,
“properties”: {
“policy_version”: “1.3”,
“interaction_type”: “view|download|print”,
“categories_explored”: [“essential”, “analytics”, “marketing”],
“questionsasked”: [“whatarecookies”, “howto_manage”],
“geo_location”: “BR”,
“timestamp”: “2024-01-15T10:36:00Z”
}
}
`

DSR Portal Events

Portal Access Event

`json
{
“event”: “dsrportalaccess”,
“properties”: {
“accessmethod”: “directurl|bannerlink|emaillink”,
“user_type”: “new|returning”,
“session_duration”: 420,
“pagesviewed”: [“requestform”, “status_check”, “help”],
“geo_location”: “US”,
“timestamp”: “2024-01-15T10:40:00Z”
}
}
`

Request Submission Event

`json
{
“event”: “dsrrequestsubmitted”,
“properties”: {
“request_type”: “access|rectification|erasure|portability”,
“identity_method”: “email|sms|document”,
“request_complexity”: “simple|complex”,
“estimated_completion”: “24h|72h|30d”,
“geo_location”: “EU”,
“timestamp”: “2024-01-15T10:45:00Z”
}
}
`

Compliance Events

Accessibility Events

Accessibility Scan Event

`json
{
“event”: “accessibilityscancompleted”,
“properties”: {
“scan_type”: “automated|manual”,
“wcag_level”: “AA”,
“issues_found”: 12,
“issues_fixed”: 8,
“scan_duration”: 45,
“page_url”: “/products”,
“timestamp”: “2024-01-15T11:00:00Z”
}
}
`

Accessibility Improvement Event

`json
{
“event”: “accessibilityimprovementapplied”,
“properties”: {
“improvementtype”: “alttext|colorcontrast|keyboardnavigation”,
“auto_applied”: true,
“elements_affected”: 15,
“wcag_guideline”: “1.1.1”,
“page_url”: “/contact”,
“timestamp”: “2024-01-15T11:05:00Z”
}
}
`

Legal Document Events

Document Generation Event

`json
{
“event”: “legaldocumentgenerated”,
“properties”: {
“documenttype”: “privacypolicy|cookie_policy|terms”,
“generation_method”: “auto|manual”,
“customizations”: [“companyinfo”, “geoclauses”],
“export_format”: “pdf|html”,
“processing_time”: 3.2,
“timestamp”: “2024-01-15T11:10:00Z”
}
}
`

Document Publishing Event

`json
{
“event”: “legaldocumentpublished”,
“properties”: {
“documenttype”: “privacypolicy”,
“publishmethod”: “wordpresspage|direct_link”,
“previous_version”: “2.0”,
“new_version”: “2.1”,
“changes_summary”: “Updated GDPR clauses”,
“timestamp”: “2024-01-15T11:15:00Z”
}
}
`

User Journey Events

Page Interaction Events

Enhanced Page View

`json
{
“event”: “enhancedpageview”,
“properties”: {
“page_url”: “/privacy-policy”,
“page_title”: “Privacy Policy”,
“timeonpage”: 245,
“scroll_depth”: 92,
“consentstatus”: “fullconsent”,
“geo_location”: “EU”,
“device_type”: “desktop”,
“timestamp”: “2024-01-15T11:20:00Z”
}
}
`

Content Engagement Event

`json
{
“event”: “content_engagement”,
“properties”: {
“contenttype”: “privacypolicy|cookiebanner|dsrform”,
“engagement_type”: “read|interact|convert”,
“engagement_depth”: 78,
“time_spent”: 180,
“consent_impact”: true,
“geo_location”: “US”,
“timestamp”: “2024-01-15T11:25:00Z”
}
}
`

Conversion Events

Privacy-Aware Conversion

`json
{
“event”: “privacy_conversion”,
“properties”: {
“conversiontype”: “formsubmit|purchase|signup”,
“conversion_value”: 49.99,
“consentstatus”: “fullconsent”,
“privacytoolsused”: [“consentbanner”, “privacypolicy”],
“attribution_window”: “30d”,
“geo_location”: “BR”,
“timestamp”: “2024-01-15T11:30:00Z”
}
}
`

Goal Completion Event

`json
{
“event”: “privacygoalcompleted”,
“properties”: {
“goalname”: “privacypolicy_read”,
“goal_category”: “engagement”,
“goal_value”: 1,
“consent_required”: true,
“usersegment”: “gdprcompliant”,
“geo_location”: “EU”,
“timestamp”: “2024-01-15T11:35:00Z”
}
}
`

Event Structure Standards

Common Event Properties

Required Properties

`json
{
“eventid”: “uniqueevent_identifier”,
“timestamp”: “ISO8601timestamp”,
“userid”: “anonymizeduser_identifier”,
“sessionid”: “sessionidentifier”,
“geolocation”: “countrycode”,
“consentstatus”: “consentstate”
}
`

Optional Properties

`json
{
“useragent”: “browseruser_agent”,
“ipaddress”: “anonymizedip”,
“referrer”: “referring_url”,
“campaign”: “utm_campaign”,
“device_type”: “mobile|desktop|tablet”,
“browserlanguage”: “languagecode”
}
`

Event Naming Conventions

Naming Rules

    1. Use snake_case for event names
    2. Start with category prefix (consent, privacy, compliance_)
    3. Use descriptive, specific names
    4. Avoid abbreviations
    5. Keep names under 50 characters
    6. Examples

    7. consentbanneraccept
    8. privacypolicyview
    9. dsrrequestsubmitted
    10. cba (too abbreviated)
    11. userdidsomething (too vague)
    12. Property Naming Conventions

      Property Standards

    13. Use snake_case for property names
    14. Use descriptive names
    15. Include units in names when applicable (seconds, percentage)
    16. Use consistent data types
    17. Document all custom properties
    18. Data Types

      `json
      {
      “stringproperty”: “textvalue”,
      “numeric_property”: 42,
      “boolean_property”: true,
      “array_property”: [“item1”, “item2”],
      “object_property”: {“key”: “value”},
      “timestamp_property”: “2024-01-15T10:30:00Z”
      }
      `

      Platform-Specific Event Mapping

      Google Analytics 4 Mapping

      GA4 Event Structure

      `javascript
      gtag(‘event’, ‘consentbanneraccept’, {
      ‘consent_categories’: ‘essential,analytics’,
      ‘interaction_time’: 15,
      ‘geo_location’: ‘EU’,
      ‘customparameter1′: ‘value’
      });
      `

      GA4 Custom Events

    19. Map SLOS events to GA4 custom events
    20. Use custom parameters for additional data
    21. Set up conversion events for key actions
    22. Configure custom dimensions for segmentation
    23. Segment Event Mapping

      Segment Event Structure

      `javascript
      analytics.track(‘Consent Banner Accept’, {
      consent_categories: [‘essential’, ‘analytics’],
      interaction_time: 15,
      geo_location: ‘EU’
      });
      `

      Segment Integration

    24. Use Segment’s tracking methods
    25. Implement consent-aware destination filters
    26. Set up transformation functions
    27. Configure event forwarding rules
    28. Mixpanel Event Mapping

      Mixpanel Event Structure

      `javascript
      mixpanel.track(‘Consent Banner Accept’, {
      ‘Consent Categories’: [‘essential’, ‘analytics’],
      ‘Interaction Time’: 15,
      ‘Geo Location’: ‘EU’
      });
      `

      Mixpanel Features

    29. Use Mixpanel’s event tracking
    30. Set up user profiles with consent data
    31. Create cohorts based on consent status
    32. Implement A/B testing for consent flows
    33. Facebook Pixel Event Mapping

      Facebook Event Structure

      `javascript
      fbq(‘track’, ‘ConsentGiven’, {
      content_name: ‘Privacy Consent’,
      content_category: ‘Privacy’,
      consent_categories: [‘essential’, ‘analytics’]
      });
      `

      Facebook Custom Events

    34. Use Facebook’s custom event tracking
    35. Set up consent-aware conversion tracking
    36. Create custom audiences based on consent
    37. Implement privacy-compliant retargeting
    38. Event Processing Pipeline

      Event Collection

      Client-Side Collection

    39. Browser-based event capture
    40. Consent status validation
    41. Data anonymization
    42. Batch processing for efficiency
    43. Server-Side Collection

    44. Server-generated events
    45. API-based event submission
    46. Webhook event processing
    47. Real-time event streaming
    48. Event Processing

      Real-Time Processing

    49. Immediate event validation
    50. Consent status checking
    51. Platform-specific formatting
    52. Real-time platform delivery
    53. Batch Processing

    54. Event aggregation
    55. Data enrichment
    56. Duplicate removal
    57. Batch platform delivery
    58. Event Storage

      Event Storage Structure

      `json
      {
      “event_id”: “uuid”,
      “eventtype”: “consentbanner_accept”,
      “userid”: “anonymizedid”,
      “properties”: {},
      “context”: {},
      “timestamp”: “2024-01-15T10:30:00Z”,
      “platform_data”: {
      “ga4”: “sent”,
      “segment”: “sent”,
      “mixpanel”: “queued”
      }
      }
      `

      Storage Optimization

    59. Data compression
    60. Index optimization
    61. Retention policies
    62. Archive strategies
    63. Event Validation and Quality

      Event Validation

      Schema Validation

    64. JSON schema validation
    65. Property type checking
    66. Required field validation
    67. Custom validation rules
    68. Data Quality Checks

    69. Duplicate event detection
    70. Outlier detection
    71. Data completeness checks
    72. Consent status validation
    73. Quality Metrics

      Event Quality Metrics

    74. Validity Rate: Percentage of valid events
    75. Completeness Score: Average property completeness
    76. Timeliness: Average processing delay
    77. Accuracy: Event data accuracy rate
    78. Monitoring Dashboards

    79. Real-time quality monitoring
    80. Alert system for quality issues
    81. Trend analysis for quality metrics
    82. Automated quality reports
    83. Event Debugging and Testing

      Debug Mode

      Development Debug

      `javascript
      // Enable debug logging
      window.SLOS_DEBUG = true;

      // Log all events
      window.SLOS_EVENTS = [];

      // Console output for events
      console.log(‘SLOS Event:’, eventName, properties);
      `

      Platform Debug Tools

    84. GA4 Debug: Use GA4 debug mode
    85. Segment Debug: Use Segment debugger
    86. Mixpanel Debug: Enable Mixpanel debug
    87. Facebook Debug: Use Facebook pixel helper
    88. Testing Framework

      Event Testing

      `javascript
      // Test event firing
      slosAnalytics.track(‘test_event’, {
      testproperty: ‘testvalue’
      });

      // Verify event in platform
      // Check console logs
      // Validate data accuracy
      `

      Integration Testing

    89. Test end-to-end event flow
    90. Verify platform delivery
    91. Check data transformation
    92. Validate consent filtering
    93. Performance Considerations

      Event Processing Performance

      Optimization Techniques

    94. Event batching for efficiency
    95. Asynchronous processing
    96. Caching strategies
    97. Compression techniques
    98. Performance Metrics

    99. Processing Latency: Average event processing time
    100. Throughput: Events processed per second
    101. Error Rate: Failed event processing rate
    102. Resource Usage: CPU and memory usage
    103. Scalability Considerations

      High Volume Handling

    104. Horizontal scaling
    105. Load balancing
    106. Queue management
    107. Auto-scaling rules
    108. Global Distribution

    109. CDN integration
    110. Regional processing
    111. Data localization
    112. Cross-region replication
    113. Security and Privacy

      Event Security

      Data Protection

    114. Event data encryption
    115. Secure transmission
    116. Access control
    117. Audit logging
    118. Privacy Protection

    119. Data anonymization
    120. Consent validation
    121. Retention controls
    122. Deletion capabilities
    123. Compliance Considerations

      GDPR Compliance

    124. Lawful processing basis
    125. Data minimization
    126. Purpose limitation
    127. User rights implementation
    128. CCPA Compliance

    129. Data collection disclosure
    130. Opt-out processing
    131. Deletion rights
    132. Non-discrimination
    133. Related Documentation

    134. Overview
    135. Platform Setup
    136. Metrics & Reporting
    137. Privacy Compliance

Share this article

Was this article helpful?

Help us improve our documentation

Still need help?

Our support team is ready to assist you with personalized guidance for your workspace.

Submit a support ticket