87 lines
2.4 KiB
TypeScript
87 lines
2.4 KiB
TypeScript
import { z, IntegrationDefinition } from '@botpress/sdk'
|
|
import {
|
|
addCustomerToCampaignInputSchema,
|
|
addCustomerToListInputSchema,
|
|
sendMassEmailCampaignInputSchema,
|
|
addCustomerOutputSchema,
|
|
sendMassEmailCampaignOutputSchema,
|
|
getAllListsOutputSchema,
|
|
getAllListsInputSchema,
|
|
getAllCampaignsOutputSchema,
|
|
getAllCampaignsInputSchema,
|
|
} from './src/misc/custom-schemas'
|
|
|
|
const INTEGRATION_NAME = 'mailchimp'
|
|
|
|
export default new IntegrationDefinition({
|
|
name: INTEGRATION_NAME,
|
|
title: 'Mailchimp',
|
|
version: '0.3.12',
|
|
readme: 'hub.md',
|
|
icon: 'icon.svg',
|
|
description: 'Send mass email campaigns from within your workflows. Manage customers, campaigns, lists and more.',
|
|
channels: {},
|
|
configuration: {
|
|
schema: z.object({
|
|
apiKey: z.string().min(1).describe('Your API Key').title('Api Key'),
|
|
serverPrefix: z.string().min(1).describe('Your Server Prefix').title('Server Prefix'),
|
|
}),
|
|
},
|
|
actions: {
|
|
addCustomerToCampaign: {
|
|
title: 'Add Customer Profile to Campaign',
|
|
description: "Adds a Customer's Profile to a Campaign",
|
|
input: {
|
|
schema: addCustomerToCampaignInputSchema,
|
|
},
|
|
output: {
|
|
schema: addCustomerOutputSchema,
|
|
},
|
|
},
|
|
addCustomerToList: {
|
|
title: 'Add Customer Profile to List/Audience',
|
|
description: "Add Customer's Profile to a List/Audience",
|
|
input: {
|
|
schema: addCustomerToListInputSchema,
|
|
},
|
|
output: {
|
|
schema: addCustomerOutputSchema,
|
|
},
|
|
},
|
|
sendMassEmailCampaign: {
|
|
title: 'Mass Mailing of the Campaign',
|
|
description: 'Mass Mailing of the Campaign by its IDs',
|
|
input: {
|
|
schema: sendMassEmailCampaignInputSchema,
|
|
},
|
|
output: {
|
|
schema: sendMassEmailCampaignOutputSchema,
|
|
},
|
|
},
|
|
getAllLists: {
|
|
title: 'Get All Email Lists/Audiences',
|
|
description: 'Get all available email lists/audiences',
|
|
input: {
|
|
schema: getAllListsInputSchema,
|
|
},
|
|
output: {
|
|
schema: getAllListsOutputSchema,
|
|
},
|
|
},
|
|
getAllCampaigns: {
|
|
title: 'Get All Campaigns',
|
|
description: 'Get all available campaigns',
|
|
input: {
|
|
schema: getAllCampaignsInputSchema,
|
|
},
|
|
output: {
|
|
schema: getAllCampaignsOutputSchema,
|
|
},
|
|
},
|
|
},
|
|
attributes: {
|
|
category: 'Marketing & Email',
|
|
repo: 'botpress',
|
|
},
|
|
})
|