Zendesk
Discover Zendesk support infrastructure including tickets, users, organizations, and groups.
- Entities: Tickets, Users, Organizations, Groups
- Relationships: Links tickets to users, organizations, teams, and technical infrastructure
- Discovery: Automated polling-based discovery
- MCP Support: Query Zendesk data via Model Context Protocol
Support tickets with status, priority, assignee, and customer information.
Spec fields:
id: Ticket IDsubject: Ticket subjectdescription: Ticket descriptionstatus: new, open, pending, hold, solved, closedpriority: low, normal, high, urgenttype: problem, incident, question, taskrequester_id: Customer who opened the ticketassignee_id: Agent assigned to the ticketorganization_id: Customer organizationgroup_id: Support team assignedtags: Ticket tagscreated_at,updated_at: Timestamps
Labels:
status: Ticket statuspriority: Ticket prioritytype: Ticket typetag/*: Ticket tags
Users including customers and support agents.
Spec fields:
id: User IDname: Full nameemail: Email addressrole: end-user, agent, adminorganization_id: Organization membershipactive: Whether user is activesuspended: Whether user is suspendedtags: User tagscreated_at,updated_at: Timestamps
Labels:
name: User namerole: User roleactive: Active statustag/*: User tags
Customer organizations (companies).
Spec fields:
id: Organization IDname: Organization namedomain_names: Associated domainsdetails: Organization detailstags: Organization tagscreated_at,updated_at: Timestamps
Labels:
name: Organization nametag/*: Organization tags
Support teams/groups for ticket assignment.
Spec fields:
id: Group IDname: Group namedeleted: Whether group is deletedcreated_at,updated_at: Timestamps
Labels:
name: Group namedeleted: Deletion status
| Source | Relation | Target | Description |
|---|---|---|---|
ZendeskTicket | SUBMITTED_BY | ZendeskUser | Customer who opened ticket |
ZendeskTicket | ASSIGNED_TO | ZendeskUser | Agent assigned to ticket |
ZendeskTicket | BELONGS_TO | ZendeskOrganization | Customer organization |
ZendeskTicket | ASSIGNED_TO_GROUP | ZendeskGroup | Support team |
ZendeskUser | BELONGS_TO | ZendeskOrganization | User's organization |
| Source | Relation | Target | Description |
|---|---|---|---|
ZendeskTicket | REPORTED_ERROR | SentryError | Ticket about specific error |
ZendeskTicket | CAUSED_BY | K8sDeployment | Ticket caused by deployment |
ZendeskTicket | DURING_INCIDENT | PagerDutyIncident | Ticket during incident |
ZendeskTicket | RESOLVED_BY | GitHubPullRequest | PR that fixed the issue |
ZendeskTicket | ABOUT_SERVICE | K8sService | Ticket about specific service |
discovery:
enabled: true
settings:
subdomain: "mycompany" # For mycompany.zendesk.com
email: "admin@example.com"
token: "YOUR_API_TOKEN"
# Optional settings
include_tickets: true
include_users: true
include_organizations: true
include_groups: true
ticket_days_back: 30
ticket_status_filter: "all" # new, open, pending, hold, solved, closed, or "all"
mcp:
enabled: true
settings:
subdomain: "mycompany"
email: "admin@example.com"
token: "YOUR_API_TOKEN"
- Go to Admin Center → Apps and integrations → APIs → Zendesk API
- Click "Add API token"
- Enter description (e.g., "SixDegree Integration")
- Copy the token (save it securely, it won't be shown again)
The API token user needs:
- Read access to tickets, users, organizations, and groups
- Typically requires Agent or Admin role
degree discovery run zendesk@1.0.0 --config zendesk-config.yaml
Query: "Which customers were affected by the production incident?"
PagerDutyIncident → CAUSED → ZendeskTicket → BELONGS_TO → ZendeskOrganization
Query: "Show me all P1 tickets opened in the last 7 days"
Filter: ZendeskTicket[priority=urgent, created_at > 7d]
Query: "How many support tickets were created after the last deployment?"
K8sDeployment → CAUSED → ZendeskTicket (created after deployment time)
Query: "Which support group has the most open tickets?"
ZendeskTicket[status=open] → ASSIGNED_TO_GROUP → ZendeskGroup (count by group)
Query: "Show me Enterprise customers with more than 5 open tickets"
ZendeskOrganization[tag=enterprise] ← BELONGS_TO ← ZendeskTicket[status=open] (count > 5)
Query: "Link Sentry errors to customer-reported tickets"
SentryError ← REPORTED_ERROR ← ZendeskTicket (match by error message/tags)
Zendesk API rate limits:
- Enterprise plans: 700 requests/minute
- Professional plans: 400 requests/minute
- Essential plans: 200 requests/minute
The molecule implements:
- 100ms delay between paginated requests
- Automatic pagination handling
- Efficient bulk data fetching
MATCH (t:ZendeskTicket {priority: "urgent", status: "open"})
RETURN t
MATCH (t:ZendeskTicket)-[:BELONGS_TO]->(o:ZendeskOrganization {name: "Acme Corp"})
RETURN t
MATCH (t:ZendeskTicket {status: "open"})-[:ASSIGNED_TO]->(u:ZendeskUser)
RETURN u.name, COUNT(t) AS ticket_count
ORDER BY ticket_count DESC
MATCH (incident:PagerDutyIncident)
MATCH (ticket:ZendeskTicket)
WHERE ticket.created_at >= incident.created_at
AND ticket.created_at <= incident.resolved_at
RETURN incident, ticket
-
Verify subdomain is correct (without
.zendesk.com) -
Ensure API token is active and not expired
-
Check email/token format:
email/tokenin Basic Auth -
Check
ticket_days_backsetting (default: 30 days) -
Verify
ticket_status_filterincludes desired statuses -
Ensure API token user has permission to view tickets
-
Reduce discovery frequency
-
Consider using incremental sync (future enhancement)
-
Upgrade Zendesk plan for higher rate limits
┌──────────────────┐
│ Zendesk API │
│ (REST v2) │
└────────┬─────────┘
│
│ HTTPS
│ Basic Auth
│
┌────────▼─────────┐
│ Zendesk Molecule │
│ - Discovery │
│ - Entity Mapping │
│ - Relationships │
└────────┬─────────┘
│
│ gRPC
│
┌────────▼─────────┐
│ SixDegree │
│ Knowledge Graph │
└──────────────────┘
- Integrate with HubSpot: Link Zendesk organizations to HubSpot companies
- Link to Sentry: Automatically match tickets to error reports
- Connect to K8s: Track which deployments caused ticket spikes
- PagerDuty Integration: Link incidents to customer complaints
- GitHub Integration: Track which PRs resolved customer issues
-
hubspot: CRM and customer lifecycle data
-
pagerduty: Incident management
-
sentry: Error tracking
-
kubernetes: Deployment tracking
-
github: Code and PR tracking