Skip to main content
Genesys

Genesys

Discover Genesys Cloud contact center data including users, queues, interactions, skills, and divisions.

  • Entities: Users, Queues, Skills, Divisions, Presence Definitions
  • Relationships: Links contact center entities to teams, services, and incidents
  • Discovery: Automated polling-based discovery via OAuth
  • MCP Support: Query Genesys Cloud data via Model Context Protocol

Agents and administrators in your contact center.

Spec fields:

  • id: User ID
  • name: User name
  • email: Email address
  • department: Department name
  • title: Job title
  • state: active, inactive
  • division: Division assignment

Labels:

  • name: User name
  • email: Email address
  • department: Department

Contact routing queues.

Spec fields:

  • id: Queue ID
  • name: Queue name
  • description: Queue description
  • media_types: Supported media (voice, chat, email, message)
  • skill_evaluation_method: all, best, none
  • auto_answer_only: Boolean

Labels:

  • name: Queue name
  • media_types: Supported media types

Routing skills for agent matching.

Spec fields:

  • id: Skill ID
  • name: Skill name

Labels:

  • name: Skill name

Organizational divisions for access control.

Spec fields:

  • id: Division ID
  • name: Division name
  • description: Division description
  • home: Is home division

Labels:

  • name: Division name
SourceRelationTargetDescription
GenesysUserMEMBER_OFGenesysDivisionUser's division
GenesysUserHAS_SKILLGenesysSkillUser's skills
GenesysUserASSIGNED_TOGenesysQueueQueue assignments
GenesysQueueREQUIRES_SKILLGenesysSkillQueue skill requirements
SourceRelationTargetDescription
GenesysUserMAPS_TOOktaUserIdentity sync
GenesysUserON_CALL_FORPagerDutyEscalationPolicyIncident routing
GenesysQueueNOTIFIESSlackChannelQueue alerts
GenesysUserMEMBER_OFMetaTeamTeam mapping
discovery:
enabled: true
settings:
client_id: "YOUR_OAUTH_CLIENT_ID"
client_secret: "YOUR_OAUTH_CLIENT_SECRET"
region: "us-east-1"

# Optional settings
include_users: true
include_queues: true
include_skills: true
include_divisions: true

max_users: 1000 # 0 = unlimited
mcp:
enabled: true
settings:
client_id: "YOUR_OAUTH_CLIENT_ID"
client_secret: "YOUR_OAUTH_CLIENT_SECRET"
region: "us-east-1"
  1. Go to Admin → Integrations → OAuth
  2. Click "Add Client"
  3. Select "Client Credentials" grant type
  4. Name it "SixDegree Integration"
  5. Set required roles:
    • Users: View user data
    • Routing: View queues and skills
    • Authorization: View divisions
  6. Copy the Client ID and Client Secret

The OAuth client needs these permissions:

  • users:readonly

  • routing:readonly

  • authorization:readonly

  • us-east-1 - mypurecloud.com

  • us-east-2 - use2.us-gov-pure.cloud

  • us-west-2 - usw2.pure.cloud

  • ca-central-1 - cac1.pure.cloud

  • eu-west-1 - mypurecloud.ie

  • eu-west-2 - euw2.pure.cloud

  • eu-central-1 - mypurecloud.de

  • ap-south-1 - aps1.pure.cloud

  • ap-northeast-1 - mypurecloud.jp

  • ap-northeast-2 - apne2.pure.cloud

  • ap-southeast-2 - mypurecloud.com.au

degree discovery run [email protected] --config genesys-config.yaml

Query: "Which agents handle the most high-priority queues?"

GenesysUser → ASSIGNED_TO → GenesysQueue[priority=high]

Query: "Which queues have skill requirements that few agents possess?"

GenesysQueue → REQUIRES_SKILL → GenesysSkill ← HAS_SKILL ← GenesysUser (count < 5)

Query: "Link contact center agents to incident management"

GenesysUser → ON_CALL_FOR → PagerDutyEscalationPolicy → HANDLES → PagerDutyIncident

Query: "Map Genesys users to organizational teams"

GenesysUser → MEMBER_OF → MetaTeam → OWNS → MetaService

Query: "Which queues have the highest volume and lowest staffing?"

GenesysQueue ← ASSIGNED_TO ← GenesysUser (count agents per queue)

Genesys Cloud API rate limits vary by plan:

  • Professional: 300 requests per minute
  • Enterprise: 600 requests per minute

The molecule implements:

  • Automatic rate limiting with backoff
  • Efficient pagination handling
  • Request queuing to stay within limits
MATCH (u:GenesysUser {state: "active"})
RETURN u
MATCH (u:GenesysUser)-[:HAS_SKILL]->(s:GenesysSkill {name: "Technical Support"})
RETURN u.name, u.email
MATCH (q:GenesysQueue)<-[:ASSIGNED_TO]-(u:GenesysUser)
RETURN q.name, COUNT(u) AS agent_count
ORDER BY agent_count DESC
MATCH (u:GenesysUser)-[:MEMBER_OF]->(d:GenesysDivision)
RETURN d.name, COUNT(u) AS user_count
ORDER BY user_count DESC
  • Verify OAuth client credentials are correct

  • Check that the region matches your Genesys Cloud instance

  • Ensure the OAuth client hasn't been deactivated

  • Check include_* settings are enabled

  • Verify OAuth client has required permissions

  • Ensure entities exist in your Genesys Cloud org

  • Reduce discovery frequency

  • Consider using max_users limit

  • Upgrade to higher Genesys Cloud plan tier

┌──────────────────┐
│ Genesys Cloud │
│ Platform API │
└────────┬─────────┘

│ HTTPS
│ OAuth 2.0

┌────────▼─────────┐
│ Genesys Molecule │
│ - Users │
│ - Queues │
│ - Skills │
│ - Divisions │
└────────┬─────────┘

│ gRPC

┌────────▼─────────┐
│ SixDegree │
│ Knowledge Graph │
└──────────────────┘
  1. Link to Okta: Map Genesys users to SSO identities
  2. Connect to PagerDuty: Route incidents to on-call agents
  3. Integrate with Slack: Send queue alerts to channels
  4. Link to Teams: Map contact center agents to organizational teams
  5. Add Analytics: Track queue performance and agent utilization