59 lines
1.7 KiB
TypeScript
59 lines
1.7 KiB
TypeScript
import { IntegrationDefinition, z } from '@botpress/sdk'
|
|
import { actionDefinitions } from './definitions'
|
|
|
|
export default new IntegrationDefinition({
|
|
name: 'salesforce',
|
|
title: 'Salesforce',
|
|
version: '1.0.3',
|
|
readme: 'hub.md',
|
|
icon: 'icon.svg',
|
|
description: 'Salesforce integration allows you to create, search, update and delete a variety of Salesforce objects',
|
|
configuration: {
|
|
identifier: {
|
|
linkTemplateScript: 'linkTemplate.vrl',
|
|
},
|
|
schema: z.object({}),
|
|
},
|
|
configurations: {
|
|
sfsandbox: {
|
|
title: 'Sandbox',
|
|
description: 'Use Salesforce sandbox environment (test.salesforce.com)',
|
|
schema: z.object({}),
|
|
identifier: {
|
|
linkTemplateScript: 'linkTemplate.vrl',
|
|
},
|
|
},
|
|
},
|
|
states: {
|
|
credentials: {
|
|
type: 'integration',
|
|
schema: z.object({
|
|
isSandbox: z.boolean().title('Is Sandbox').describe('Whether this is a Salesforce sandbox environment'),
|
|
accessToken: z.string().title('Access Token').describe('OAuth access token for Salesforce API calls'),
|
|
instanceUrl: z
|
|
.string()
|
|
.title('Instance URL')
|
|
.describe('Salesforce instance URL (e.g. https://yourorg.salesforce.com)'),
|
|
refreshToken: z
|
|
.string()
|
|
.optional()
|
|
.title('Refresh Token')
|
|
.describe('OAuth refresh token used to obtain new access tokens'),
|
|
}),
|
|
},
|
|
},
|
|
secrets: {
|
|
CONSUMER_KEY: {
|
|
description: 'Consumer key of the Salesforce app',
|
|
},
|
|
CONSUMER_SECRET: {
|
|
description: 'Consumer secret of the Salesforce app',
|
|
},
|
|
},
|
|
actions: actionDefinitions,
|
|
attributes: {
|
|
category: 'CRM & Sales',
|
|
repo: 'botpress',
|
|
},
|
|
})
|