57 lines
1.6 KiB
TypeScript
57 lines
1.6 KiB
TypeScript
import { IntegrationDefinition } from '@botpress/sdk'
|
|
import proactiveConversation from 'bp_modules/proactive-conversation'
|
|
import proactiveUser from 'bp_modules/proactive-user'
|
|
import typingIndicator from 'bp_modules/typing-indicator'
|
|
import { channels, configuration, entities, user } from './definitions'
|
|
|
|
export const INTEGRATION_NAME = 'twilio'
|
|
export const INTEGRATION_VERSION = '1.3.3'
|
|
|
|
export default new IntegrationDefinition({
|
|
name: INTEGRATION_NAME,
|
|
version: INTEGRATION_VERSION,
|
|
title: 'Twilio',
|
|
description: 'Send and receive messages, voice calls, emails, SMS, and more.',
|
|
icon: 'icon.svg',
|
|
readme: 'hub.md',
|
|
configuration,
|
|
channels,
|
|
user,
|
|
entities,
|
|
actions: {},
|
|
events: {},
|
|
secrets: {
|
|
POSTHOG_KEY: {
|
|
description: 'Posthog key for error dashboards',
|
|
},
|
|
},
|
|
attributes: {
|
|
category: 'Communication & Channels',
|
|
guideSlug: 'twilio',
|
|
repo: 'botpress',
|
|
},
|
|
})
|
|
.extend(typingIndicator, () => ({ entities: {} }))
|
|
.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 Twilio channel',
|
|
},
|
|
},
|
|
}))
|