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 IDname: User nameemail: Email addressdepartment: Department nametitle: Job titlestate: active, inactivedivision: Division assignment
Labels:
name: User nameemail: Email addressdepartment: Department
Contact routing queues.
Spec fields:
id: Queue IDname: Queue namedescription: Queue descriptionmedia_types: Supported media (voice, chat, email, message)skill_evaluation_method: all, best, noneauto_answer_only: Boolean
Labels:
name: Queue namemedia_types: Supported media types
Routing skills for agent matching.
Spec fields:
id: Skill IDname: Skill name
Labels:
name: Skill name
Organizational divisions for access control.
Spec fields:
id: Division IDname: Division namedescription: Division descriptionhome: Is home division
Labels:
name: Division name
| Source | Relation | Target | Description |
|---|---|---|---|
GenesysUser | MEMBER_OF | GenesysDivision | User's division |
GenesysUser | HAS_SKILL | GenesysSkill | User's skills |
GenesysUser | ASSIGNED_TO | GenesysQueue | Queue assignments |
GenesysQueue | REQUIRES_SKILL | GenesysSkill | Queue skill requirements |
| Source | Relation | Target | Description |
|---|---|---|---|
GenesysUser | MAPS_TO | OktaUser | Identity sync |
GenesysUser | ON_CALL_FOR | PagerDutyEscalationPolicy | Incident routing |
GenesysQueue | NOTIFIES | SlackChannel | Queue alerts |
GenesysUser | MEMBER_OF | MetaTeam | Team 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"
- Go to Admin → Integrations → OAuth
- Click "Add Client"
- Select "Client Credentials" grant type
- Name it "SixDegree Integration"
- Set required roles:
- Users: View user data
- Routing: View queues and skills
- Authorization: View divisions
- 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_userslimit -
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 │
└──────────────────┘
- Link to Okta: Map Genesys users to SSO identities
- Connect to PagerDuty: Route incidents to on-call agents
- Integrate with Slack: Send queue alerts to channels
- Link to Teams: Map contact center agents to organizational teams
- Add Analytics: Track queue performance and agent utilization
-
okta: User identity management
-
pagerduty: Incident management integration
-
slack: Team communication
-
meta: Organizational structure