Files
botpress--botpress/integrations/workable/integration.definition.ts
T
2026-07-13 13:34:48 +08:00

59 lines
1.4 KiB
TypeScript

import { z, IntegrationDefinition } from '@botpress/sdk'
import {
createCandidateInJob,
createCandidateInTalentPool,
getCandidate,
listCandidates,
updateCandidate,
} from 'definitions/actions/candidates'
import { getJobQuestions } from 'definitions/actions/jobs'
import { candidateCreated, candidateMoved } from 'definitions/events/candidates'
export default new IntegrationDefinition({
name: 'workable',
title: 'Workable',
description: 'Integration with Workable for Botpress',
version: '0.1.2',
readme: 'hub.md',
icon: 'icon.svg',
configuration: {
schema: z.object({
apiToken: z
.string()
.min(1, 'API token is required')
.describe('Your Workable API access token')
.title('API access token'),
subDomain: z
.string()
.min(1, 'Account subdomain is required')
.describe('Your account subdomain is required')
.title('Account subdomain'),
}),
},
states: {
webhooks: {
type: 'integration',
schema: z.object({
ids: z.array(z.number()).title('ID').describe('The ID of the webhook'),
}),
},
},
actions: {
listCandidates,
getCandidate,
createCandidateInJob,
createCandidateInTalentPool,
updateCandidate,
getJobQuestions,
},
events: {
candidateCreated,
candidateMoved,
},
attributes: {
category: 'Business Operations',
guideSlug: 'workable',
repo: 'botpress',
},
})