Files
wehub-resource-sync d25d482dc2
Publish CLI Package / publish-npm (push) Waiting to run
Publish Python SDK / publish-pypi (push) Waiting to run
Publish TypeScript SDK / publish-npm (push) Waiting to run
CI / Migrate Dev DB (push) Has been skipped
CI / Detect Version (push) Has been cancelled
CI / Migrate DB (push) Has been cancelled
CI / Build Dev ECR (./docker/app.Dockerfile, ECR_APP) (push) Has been cancelled
CI / Build Dev ECR (./docker/db.Dockerfile, ECR_MIGRATIONS) (push) Has been cancelled
CI / Build Dev ECR (./docker/pii.Dockerfile, ECR_PII) (push) Has been cancelled
CI / Build Dev ECR (./docker/realtime.Dockerfile, ECR_REALTIME) (push) Has been cancelled
CI / Deploy Trigger.dev (Dev) (push) Has been cancelled
CI / Build AMD64 (./docker/app.Dockerfile, ECR_APP, ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Build AMD64 (./docker/db.Dockerfile, ECR_MIGRATIONS, ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Build AMD64 (./docker/pii.Dockerfile, ECR_PII, ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Build AMD64 (./docker/realtime.Dockerfile, ECR_REALTIME, ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/app.Dockerfile, ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/db.Dockerfile, ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/pii.Dockerfile, ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/realtime.Dockerfile, ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Check Docs Changes (push) Has been cancelled
CI / Process Docs (push) Has been cancelled
CI / Create GitHub Release (push) Has been cancelled
CI / Test and Build (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:20:55 +08:00

92 lines
2.7 KiB
TypeScript

import { ZendeskIcon } from '@/components/icons'
import type { ConnectorMeta } from '@/connectors/types'
export const DEFAULT_MAX_TICKETS = 500
export const zendeskConnectorMeta: ConnectorMeta = {
id: 'zendesk',
name: 'Zendesk',
description: 'Sync Help Center articles and support tickets from Zendesk',
version: '1.0.0',
icon: ZendeskIcon,
auth: {
mode: 'apiKey',
label: 'API Token',
placeholder: 'Enter your Zendesk API token',
},
configFields: [
{
id: 'subdomain',
title: 'Subdomain',
type: 'short-input',
placeholder: 'yourcompany (from yourcompany.zendesk.com)',
required: true,
description: 'Your Zendesk subdomain',
},
{
id: 'email',
title: 'Email',
type: 'short-input',
placeholder: 'agent@yourcompany.com',
required: true,
description: 'Email address of the Zendesk user for API authentication',
},
{
id: 'contentType',
title: 'Content Type',
type: 'dropdown',
required: true,
description: 'What content to sync from Zendesk',
options: [
{ label: 'Articles & Tickets', id: 'both' },
{ label: 'Help Center Articles Only', id: 'articles' },
{ label: 'Support Tickets Only', id: 'tickets' },
],
},
{
id: 'ticketStatus',
title: 'Ticket Status Filter',
type: 'dropdown',
required: false,
description: 'Filter tickets by status (applies only when syncing tickets)',
options: [
{ label: 'All Statuses', id: 'all' },
{ label: 'New', id: 'new' },
{ label: 'Open', id: 'open' },
{ label: 'Pending', id: 'pending' },
{ label: 'On Hold', id: 'hold' },
{ label: 'Solved', id: 'solved' },
{ label: 'Closed', id: 'closed' },
],
},
{
id: 'locale',
title: 'Article Locale',
type: 'short-input',
required: false,
placeholder: 'e.g. en-us (default: all locales)',
description: 'Locale for Help Center articles',
},
{
id: 'maxTickets',
title: 'Max Tickets',
type: 'short-input',
required: false,
placeholder: `e.g. 200 (default: ${DEFAULT_MAX_TICKETS})`,
description: 'Maximum number of tickets to sync',
},
],
tagDefinitions: [
{ id: 'contentType', displayName: 'Content Type', fieldType: 'text' },
{ id: 'status', displayName: 'Status', fieldType: 'text' },
{ id: 'priority', displayName: 'Priority', fieldType: 'text' },
{ id: 'labels', displayName: 'Labels', fieldType: 'text' },
{ id: 'tags', displayName: 'Tags', fieldType: 'text' },
{ id: 'updatedAt', displayName: 'Last Updated', fieldType: 'date' },
{ id: 'commentCount', displayName: 'Comment Count', fieldType: 'number' },
],
}