90 lines
2.6 KiB
TypeScript
90 lines
2.6 KiB
TypeScript
import { z, IntegrationDefinition, messages } from '@botpress/sdk'
|
|
import proactiveConversation from 'bp_modules/proactive-conversation'
|
|
import proactiveUser from 'bp_modules/proactive-user'
|
|
|
|
export default new IntegrationDefinition({
|
|
name: 'vonage',
|
|
version: '1.0.5',
|
|
title: 'Vonage',
|
|
description: 'Send and receive SMS messages.',
|
|
icon: 'icon.svg',
|
|
readme: 'hub.md',
|
|
configuration: {
|
|
schema: z.object({
|
|
apiKey: z.string().min(1).describe('The API Key').title('API Key'),
|
|
apiSecret: z.string().min(1).describe('The API Secret').title('API Secret'),
|
|
signatureSecret: z.string().min(1).describe('The signature secret').title('Signature Secret'),
|
|
useTestingApi: z.boolean().describe('Chooses if we should use the test api').title('Use Testing API'),
|
|
}),
|
|
},
|
|
channels: {
|
|
channel: {
|
|
title: 'Channel',
|
|
description: 'The vonage Channel',
|
|
messages: { ...messages.defaults, bloc: messages.markdownBloc },
|
|
message: {
|
|
tags: {
|
|
id: { title: 'ID', description: 'The id of the message' },
|
|
},
|
|
},
|
|
conversation: {
|
|
tags: {
|
|
userId: { title: 'User ID', description: 'The User id' },
|
|
channel: { title: 'Channel', description: 'The conversation channel' },
|
|
channelId: { title: 'Channel ID', description: 'The channel id' },
|
|
},
|
|
},
|
|
},
|
|
},
|
|
events: {},
|
|
user: {
|
|
tags: {
|
|
userId: { title: 'User ID', description: 'The user id' },
|
|
channel: { title: 'Channel', description: 'The channel of the user' },
|
|
},
|
|
},
|
|
|
|
entities: {
|
|
conversation: {
|
|
schema: z.object({
|
|
userId: z.string(),
|
|
channelId: z.string(),
|
|
channel: z.string(),
|
|
}),
|
|
},
|
|
user: {
|
|
schema: z.object({
|
|
channel: z.string().describe('The channel of the user').title('Channel'),
|
|
userId: z.string().describe('The user id').title('User ID'),
|
|
}),
|
|
},
|
|
},
|
|
attributes: {
|
|
category: 'Communication & Channels',
|
|
guideSlug: 'vonage',
|
|
repo: 'botpress',
|
|
},
|
|
})
|
|
.extend(proactiveConversation, ({ entities }) => ({
|
|
entities: {
|
|
conversation: entities.conversation,
|
|
},
|
|
actions: {
|
|
getOrCreateConversation: {
|
|
name: 'startConversation',
|
|
title: 'Start proactive conversation',
|
|
description: 'Start a proactive conversation given a user',
|
|
},
|
|
},
|
|
}))
|
|
.extend(proactiveUser, ({ entities }) => ({
|
|
entities: { user: entities.user },
|
|
actions: {
|
|
getOrCreateUser: {
|
|
name: 'getOrCreateUser',
|
|
title: 'Get or create user',
|
|
description: 'Get or create a user in the Vonage channel',
|
|
},
|
|
},
|
|
}))
|