Files
botpress--botpress/integrations/mailchimp/src/actions/send-mass-email-campaign.ts
T
2026-07-13 13:34:48 +08:00

32 lines
1.1 KiB
TypeScript

import { RuntimeError } from '@botpress/sdk'
import { sendMassEmailCampaignInputSchema, sendMassEmailCampaignOutputSchema } from '../misc/custom-schemas'
import { getMailchimpClient, parseError } from '../utils'
import * as bp from '.botpress'
export const sendMassEmailCampaign: bp.IntegrationProps['actions']['sendMassEmailCampaign'] = async ({
ctx,
input,
logger,
}) => {
try {
const validatedInput = sendMassEmailCampaignInputSchema.parse(input)
const mailchimpClient = getMailchimpClient(ctx.configuration, logger)
const response = await mailchimpClient.sendMassEmailCampaign(validatedInput.campaignIds)
if (typeof response === 'undefined') {
throw new RuntimeError('Batch client is not available')
}
return sendMassEmailCampaignOutputSchema.parse({
id: response.id,
status: response.status,
total_operations: response.total_operations,
_links: response._links,
})
} catch (err) {
const error = parseError(err)
logger.forBot().error('Error adding customer to campaign', error)
throw error
}
}