Files
2026-07-13 13:34:48 +08:00

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',
},
})