chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,110 @@
|
||||
import { IntegrationDefinition, z } from '@botpress/sdk'
|
||||
import { scheduleEventInputSchema, scheduleEventOutputSchema } from 'definitions/actions'
|
||||
import { inviteeEventOutputSchema } from 'definitions/events'
|
||||
|
||||
export default new IntegrationDefinition({
|
||||
name: 'calendly',
|
||||
title: 'Calendly',
|
||||
version: '0.0.6',
|
||||
readme: 'hub.md',
|
||||
icon: 'icon.svg',
|
||||
description: 'Schedule meetings and manage events using the Calendly scheduling platform.',
|
||||
configuration: {
|
||||
identifier: {
|
||||
linkTemplateScript: 'linkTemplate.vrl',
|
||||
},
|
||||
schema: z.object({}),
|
||||
},
|
||||
configurations: {
|
||||
manual: {
|
||||
title: 'Manual Configuration',
|
||||
description: 'Configure by manually supplying a Calendly Personal Access Token',
|
||||
schema: z.object({
|
||||
accessToken: z
|
||||
.string()
|
||||
.secret()
|
||||
.min(1)
|
||||
.describe('Your Calendly Personal Access Token')
|
||||
.title('Personal Access Token'),
|
||||
}),
|
||||
},
|
||||
},
|
||||
actions: {
|
||||
scheduleEvent: {
|
||||
title: 'Schedule Calendly Event',
|
||||
description: 'Generates a link for scheduling an event in Calendly',
|
||||
input: { schema: scheduleEventInputSchema },
|
||||
output: { schema: scheduleEventOutputSchema },
|
||||
},
|
||||
},
|
||||
events: {
|
||||
eventScheduled: {
|
||||
title: 'Event Scheduled',
|
||||
description: 'An event that triggers when an invitee fills out and submits a scheduling form',
|
||||
schema: inviteeEventOutputSchema,
|
||||
},
|
||||
eventCanceled: {
|
||||
title: 'Event Canceled',
|
||||
description: 'An event that triggers when an invitee cancels a scheduled event',
|
||||
schema: inviteeEventOutputSchema,
|
||||
},
|
||||
eventNoShowCreated: {
|
||||
title: 'Event No Show Created',
|
||||
description: 'An event that triggers when an invitee is marked as a no-show',
|
||||
schema: inviteeEventOutputSchema,
|
||||
},
|
||||
eventNoShowDeleted: {
|
||||
title: 'Event No Show Deleted',
|
||||
description: 'An event that triggers when an invitee is unmarked as a no-show',
|
||||
schema: inviteeEventOutputSchema,
|
||||
},
|
||||
},
|
||||
secrets: {
|
||||
OAUTH_CLIENT_ID: {
|
||||
description: "The unique identifier that's used to initiate the OAuth flow",
|
||||
},
|
||||
OAUTH_CLIENT_SECRET: {
|
||||
description: "A secret that's used to establish and refresh the OAuth authentication",
|
||||
},
|
||||
OAUTH_WEBHOOK_SIGNING_KEY: {
|
||||
description: "The signing key used to validate Calendly's OAuth webhook request payloads",
|
||||
},
|
||||
},
|
||||
states: {
|
||||
configuration: {
|
||||
type: 'integration',
|
||||
schema: z.object({
|
||||
oauth: z
|
||||
.object({
|
||||
refreshToken: z.string().describe('The refresh token for the integration').title('Refresh Token'),
|
||||
accessToken: z.string().describe('The access token for the integration').title('Access Token'),
|
||||
expiresAt: z
|
||||
.number()
|
||||
.min(0)
|
||||
.describe('The expiry time of the access token represented as a Unix timestamp (milliseconds)')
|
||||
.title('Expires At'),
|
||||
})
|
||||
.describe('The parameters used for accessing the Calendly API and refreshing the access token')
|
||||
.title('OAuth Parameters')
|
||||
.nullable(),
|
||||
}),
|
||||
},
|
||||
webhooks: {
|
||||
type: 'integration',
|
||||
schema: z.object({
|
||||
signingKey: z
|
||||
.string()
|
||||
.secret()
|
||||
.describe('The signing key used for webhook event signatures')
|
||||
.title('Webhook Signing Key'),
|
||||
}),
|
||||
},
|
||||
},
|
||||
__advanced: {
|
||||
useLegacyZuiTransformer: true,
|
||||
},
|
||||
attributes: {
|
||||
category: 'Business Operations',
|
||||
repo: 'botpress',
|
||||
},
|
||||
})
|
||||
Reference in New Issue
Block a user