Genesys Adapter - Technical Documentation

Genesys Adapter - Technical Documentation

Executive Summary

The Genesys Adapter provides comprehensive, enterprise-grade solutions for synchronizing Genesys Cloud contact center data into various database platforms including Microsoft SQL Server, PostgreSQL, and Snowflake. These integrations enable organizations to leverage their contact center data for advanced analytics, reporting, and business intelligence across their preferred database technology.

Key Benefits:

Comprehensive Data Access: Synchronizes a complete set of Genesys Cloud data including agent performance metrics, interaction details, and administrative information

Multi-Database Support: Supports Microsoft SQL Server, PostgreSQL, and Snowflake with database-specific optimizations

Optimized Performance: Utilizes database-specific features and optimized bulk operations to ensure efficient data loading and processing

Scalable Architecture: Designed to handle high volumes of data with batch processing and efficient database operations

Flexible Reporting: Creates a rich set of database views that simplify data access and reporting

Automated Synchronization: Provides multiple job types that can be scheduled to keep data current with minimal manual intervention

Consistent Data Model: Maintains a consistent data model across all supported database platforms

The Genesys Adapter handles all aspects of database integration, from connection management and schema creation to data synchronization and optimization. This enables organizations to focus on deriving insights from their contact center data rather than managing the technical complexities of data integration.

Overview

The Genesys Adapter provides robust integration with multiple database platforms, allowing organizations to synchronize data from Genesys Cloud into their preferred database system. This document outlines the technical details of how the database adapters function, including connection handling, data synchronization, schema management, and performance optimizations across Microsoft SQL Server, PostgreSQL, and Snowflake.

The adapter is designed with a common core architecture that handles the extraction and transformation of data from Genesys Cloud, with database-specific modules that optimize the loading process for each supported database platform. This approach ensures consistent data models and processing logic while leveraging the unique capabilities of each database system.

Database Connection and Configuration

Connection Setup

The Genesys Adapter connects to various database platforms using their respective .NET connectors. Connection details are specified in the application configuration and vary by database type:

Microsoft SQL Server

  • Server name/address and port
  • Database name
  • Authentication method (SQL Server or Windows Authentication)
  • Username and password
  • Connection timeout and other SQL Server-specific options

PostgreSQL

  • Host address and port
  • Database name
  • Username and password
  • Schema
  • SSL mode and other PostgreSQL-specific options

Snowflake

  • Account (Snowflake account identifier)
  • Database name
  • Username and password
  • Schema
  • Warehouse and other Snowflake-specific options

When establishing a database connection, the adapter dynamically creates the appropriate connection and data adapter objects based on the configured database type. This abstraction layer allows the adapter to work seamlessly with different database platforms while optimizing for the specific capabilities of each.

Connection String Management

The adapter securely manages connection strings for all supported database types, handling the specific requirements of each:

  • Secure Credential Storage: Passwords are encrypted at rest and decrypted only when needed
  • Connection Pooling: Configured appropriately for each database type
  • Timeout Handling: Database-specific timeout settings are applied
  • Error Handling: Connection failures are handled with appropriate retry logic

Supported Jobs and Data Synchronization

The Genesys Adapter supports a comprehensive set of jobs that synchronize different types of data from Genesys Cloud to the target database. Each job is responsible for retrieving specific data using the appropriate Genesys Cloud APIs and writing it to the corresponding database tables.

Agent Performance Jobs

Job Description Tables Genesys Cloud API
Adherence Synchronizes agent adherence to published schedules adherencedaydata, adherenceexcdata, adherenceactdata /api/v2/workforcemanagement/adherence/historical/bulk
Evaluation Synchronizes quality management evaluations evaldata, evaldetails, evalquestiondata, evalquestiongroupdata /api/v2/quality/evaluations
EvaluationCatchup Processes pending evaluations evaldata /api/v2/quality/evaluations/{id}
VoiceAnalysis Processes conversation analytics including sentiment and topics convvoiceoverviewdata, convvoicesentimentdetaildata, convvoicetopicdetaildata /api/v2/analytics/conversations/{id}/details
Survey Synchronizes customer survey responses surveydata /api/v2/quality/surveys

Interaction Data Jobs

Job Description Tables Genesys Cloud API
Chat Synchronizes chat interaction details chatdata, participantattributesdata /api/v2/analytics/conversations/{id}/details
Aggregation Processes user and queue interaction metrics userpresencedata, userinteractiondata, queueinteractiondata /api/v2/analytics/users/details/query, /api/v2/analytics/queues/observations/query
Conversation Synchronizes detailed conversation data convsummarydata /api/v2/analytics/conversations/details/query
InteractionPresence Combines interaction and presence data userinteractionpresencedetaileddata /api/v2/analytics/users/details/query
PresenceDetail Synchronizes detailed user presence data userpresencedetaileddata /api/v2/analytics/users/details/query
Realtime Provides real-time updates for users and queues realtimeuser, realtimequeue WebSocket notifications via /api/v2/notifications/channels

Administrative Jobs

Job Description Tables Genesys Cloud API
FactData Synchronizes reference data (users, queues, skills, etc.) userdetails, queuedetails, skilldetails, etc. Multiple endpoints for different entity types
Knowledge Synchronizes knowledge base content knowledgebase, knowledgebasecategorydata, knowledgebasedocument /api/v2/knowledge/knowledgebases
QueueMembership Synchronizes queue membership data activeqmembersdata /api/v2/routing/queues/{id}/members
UserQueueMapping Maps users to queues userqueuemappings /api/v2/routing/queues/{id}/members
UserQueueAudit Audits queue membership changes queueauditdata /api/v2/routing/queues/{id}/members

Workforce Management Jobs

Job Description Tables Genesys Cloud API
WFMSchedule Synchronizes workforce management schedules scheduledata /api/v2/workforcemanagement/managementunits/{id}/schedules
ScheduleDetails Synchronizes detailed schedule information scheduledetails /api/v2/workforcemanagement/managementunits/{id}/schedules/{scheduleId}
TimeOffReq Synchronizes time-off requests timeoffrequestdata /api/v2/workforcemanagement/timeoffrequests
HeadCountForecast Synchronizes headcount forecasts headcountforecastdata /api/v2/workforcemanagement/businessunits/{id}/planninggroups/{pgId}/headcountforecast
OfferedForecast Synchronizes offered forecasts offeredforecastdata /api/v2/workforcemanagement/businessunits/{id}/planninggroups/{pgId}/staffinggroups/{sgId}/offeredforecast
HoursBlockData Creates timesheet data with blocks of hours hoursblockdata Derived from schedule data

Usage and System Jobs

Job Description Tables Genesys Cloud API
OAuthUsage Tracks OAuth usage oauthusagedata /api/v2/oauth/clients/{id}/usage
SysConvUsage Tracks system conversation usage sysconvusagedata /api/v2/usage/query
Subscription Tracks subscription information suboverviewdata /api/v2/organization/subscriptions
SubsUsers Tracks subscription user details subhoursdetaildata /api/v2/organization/subscriptions
Information Provides information about the adapter N/A Various endpoints for system information

Genesys Cloud API Integration

The Genesys Adapter utilizes multiple API integration styles based on the data requirements. Each job is designed to use the most appropriate API style for its specific data needs.

API Integration Styles

REST API Queries

Many jobs use standard REST API endpoints to retrieve data from Genesys Cloud:

  • Implementation: Direct HTTP requests to specific endpoints
  • Authentication: OAuth 2.0 client credentials flow
  • Rate Limiting: Implements exponential backoff for 429 (Too Many Requests) responses
  • Pagination: Handles pagination for large result sets using cursor-based or offset-based approaches
  • Example Jobs: FactData, Knowledge, QueueMembership

The adapter implements sophisticated pagination handling to retrieve complete datasets while respecting API rate limits and resource constraints.

Analytics API

The Analytics API is used for retrieving detailed conversation, user, and queue data:

  • Implementation: POST requests with complex query structures
  • Query Structure: Supports filtering, sorting, intervals, and metrics
  • Paging: Uses cursor-based pagination for large result sets
  • Example Jobs: Aggregation, Conversation, InteractionPresence, PresenceDetail

The adapter constructs optimized query structures with appropriate filtering, sorting, and paging parameters to efficiently retrieve analytics data while minimizing API calls and resource usage.

WebSocket Notifications

The Realtime job uses WebSocket connections to receive real-time updates:

  • Implementation: WebSocket connections with topic subscriptions
  • Channel Management: Creates and manages multiple channels for large deployments
  • Topic Batching: Groups topics into batches of up to 1,000 per channel
  • Heartbeat: Implements ping/pong messages to maintain connection
  • Example Job: Realtime

The adapter implements a robust WebSocket connection management system that handles channel creation, topic subscription, message processing, and connection maintenance with appropriate error handling and recovery mechanisms.

Bulk Historical APIs

Some jobs use bulk historical APIs for retrieving large datasets:

  • Implementation: Asynchronous job-based processing
  • Job Management: Creates a job, monitors status, and retrieves results
  • Result Handling: Processes results in chunks as they become available
  • Example Jobs: Adherence, Evaluation

The adapter implements a sophisticated job management system that handles job creation, status monitoring, and result retrieval with appropriate error handling, timeout management, and retry logic to ensure reliable data processing even for large historical datasets.

API Authentication and Authorization

The Genesys Adapter connects to Genesys Cloud using OAuth 2.0 client credentials flow:

  1. OAuth Client Setup:

    • A dedicated OAuth client is created in Genesys Cloud with appropriate permissions
    • Client ID and secret are securely stored in the adapter configuration
    • Token refresh is handled automatically by the adapter
  2. Permission Requirements:

    • Analytics permissions for conversation and user data
    • Quality Management permissions for evaluations
    • Workforce Management permissions for adherence data
    • Administrative permissions for user and queue data
  3. Rate Limiting Management:

    • The adapter implements exponential backoff for rate limit handling
    • Concurrent API calls are limited to prevent 429 (Too Many Requests) errors
    • Batch sizes are optimized based on Genesys Cloud API limits

Data Synchronization Patterns

The Genesys Adapter implements several data synchronization patterns depending on the job type:

  1. Historical Backfill:

    • Used for initial data loading or catching up after extended downtime
    • Processes data in chunks based on date ranges
    • Implements parallel processing where appropriate
    • Example Jobs: Conversation, VoiceAnalysis, Adherence
  2. Incremental Updates:

    • Used for regular ongoing synchronization
    • Retrieves only data that has changed since the last synchronization
    • Uses the tabledefinitions table to track synchronization progress
    • Example Jobs: Aggregation, Chat, Evaluation
  3. Real-time Updates:

    • Used for near real-time data synchronization
    • Processes events as they occur in Genesys Cloud
    • Maintains persistent connections for event streaming
    • Example Job: Realtime
  4. Reference Data Synchronization:

    • Used for synchronizing relatively static data
    • Performs full synchronization less frequently
    • Implements efficient diffing to identify changes
    • Example Jobs: FactData, Knowledge

Data Normalization and Transformation

The Genesys Adapter performs several data normalization and transformation processes when synchronizing data from Genesys Cloud to the target database.

Data Normalization

  1. ID Normalization:

    • Consistent handling of Genesys Cloud UUIDs across all tables
    • Proper foreign key relationships between related entities
    • Standardized ID formats for cross-referencing
  2. Timestamp Normalization:

    • All timestamps are stored in UTC format
    • Local time conversions are handled in views
    • Consistent date/time formatting across all tables
  3. Hierarchical Data Flattening:

    • Complex nested JSON structures are flattened into relational tables
    • Parent-child relationships are preserved through foreign keys
    • Denormalization where appropriate for query performance
  4. Metadata Management:

    • Tracking metadata is added (e.g., "updated" timestamps)
    • Derived fields are calculated from source data (e.g., durations, counts)
    • Reference data is synchronized to enable proper joins between tables

ETL Pipeline

The Genesys Adapter implements a comprehensive ETL (Extract, Transform, Load) pipeline for Genesys Cloud data:

  1. Extract:

    • Data is extracted from Genesys Cloud using the appropriate API
    • Historical data is processed in batches based on date ranges
    • Real-time data is captured through WebSocket notifications
    • Rate limiting and error handling are implemented at this stage
  2. Transform:

    • JSON responses are parsed and flattened into relational structures
    • Data types are converted to match database-specific schema definitions
    • Calculated fields are generated (e.g., duration calculations, percentages)
    • Relationships between entities are established through key mappings
    • Data validation and cleansing are performed
  3. Load:

    • Transformed data is loaded into database tables
    • Incremental updates are managed through diffing operations
    • Data integrity is maintained through transaction management
    • Performance is optimized through database-specific bulk operations

Example Transformation: Conversation Data

The Genesys Adapter transforms conversation data from Genesys Cloud into a relational database structure through several key steps:

Source Data Structure:
When retrieving conversation data from Genesys Cloud, the adapter receives a hierarchical structure containing:

  • Conversation metadata (ID, start/end times, direction)
  • Multiple participants (customers, agents)
  • Multiple sessions per participant
  • Multiple segments per session
  • Additional metadata like divisions, attributes, and metrics

Target Database Structure:
This hierarchical data is transformed into multiple related tables:

  • convsummarydata: Contains high-level conversation information
  • participantdata: Contains details about each participant in the conversation
  • participantattributesdata: Contains any custom attributes associated with participants

Transformation Process:

  1. Primary Record Creation:

    • A main record is created in the convsummarydata table with the conversation ID, timestamps, direction, and media type
    • The record is assigned a unique key ID with a version prefix (e.g., "v1_" + conversation ID)
  2. Participant Data Extraction:

    • Each participant from the source data is processed
    • Customer participants provide ANI/DNIS information
    • Agent participants provide user IDs and queue information
    • Session and segment data is extracted for each participant
  3. Derived Field Calculation:

    • Talk time is calculated from segment durations
    • Queue time is calculated from relevant segments
    • After-call work time is derived from appropriate segments
    • First and last agent/queue information is determined
  4. Relationship Establishment:

    • Participant records are linked to the main conversation record
    • Participant attributes are linked to their respective participants
    • All records maintain the conversation ID as a common reference
  5. Data Standardization:

    • All timestamps are converted to a consistent UTC format
    • IDs are formatted with appropriate prefixes for versioning
    • Text fields are properly escaped and formatted
    • Numeric values are calculated with appropriate precision
  6. Metadata Addition:

    • All records receive an "updated" timestamp for tracking
    • Composite keys are created for child records to ensure uniqueness
    • Version information is maintained for schema compatibility

Conclusion

The Genesys Adapter provides comprehensive database integration solutions for synchronizing Genesys Cloud contact center data into Microsoft SQL Server, PostgreSQL, and Snowflake. The adapter implements a sophisticated ETL pipeline that handles the complexities of Genesys Cloud API integration, data normalization, and database-specific optimizations.

By supporting multiple database platforms with a consistent data model and processing logic, the Genesys Adapter offers organizations flexibility in choosing the database technology that best fits their requirements and environment. This enables organizations to unlock the full value of their Genesys Cloud data, combining it with other enterprise data sources to create a unified analytics platform for improved decision-making and business outcomes.

    • Related Articles

    • Genesys Cloud OAuth for Genesys Adapter

      Introduction These instructions are to be used to complete the necessary configuration of the Genesys Cloud instance required to allow the Customer Science Group Genesys Adapter to extract the required Analytical data from your dedicated Genesys ...
    • CXiaaS: Genesys Cloud Adapter for External Analytics

      Why do you need analytics? Data Analytics forms the backbone of business intelligence. It enables benchmarking, accurate reporting, KPI tracking and insights into consumer behaviour, allowing you to stay ahead of your competition. Customer Experience ...
    • CXiaaS: Customer hosted installation

      You can host our solution within your own nominated data centre cloud-hosted environment. All you need is a Linux or Windows Server and an SQL server of your choice. We install our adapter, provide available analytics templates for out-of-the-box ...
    • CSI Roadmap and Backlog

      Audience Feature Estimated Release Date Status Comments Customer CSI: Timeshift plugin March 2025 Limited Release Currently being delivered in limited beta - contact support for more information Architecture Genesys Adapter: Upgrade legacy licensing ...
    • CXiaaS Onboarding checklist

      The below is a list of items to be confirmed as part of an effective onboarding for CXiaaS Item Reference Genesys Client ID and Secret configured Customer Science provides a process to create this with a defined permissions role Genesys Cloud OAuth ...