diff --git a/packages/backend/src/apps/mailchimp/actions/index.js b/packages/backend/src/apps/mailchimp/actions/index.js index 25ce22d3..853ccb5a 100644 --- a/packages/backend/src/apps/mailchimp/actions/index.js +++ b/packages/backend/src/apps/mailchimp/actions/index.js @@ -1,3 +1,4 @@ import createCampaign from './create-campaign/index.js'; +import sendCampaign from './send-campaign/index.js'; -export default [createCampaign]; +export default [createCampaign, sendCampaign]; diff --git a/packages/backend/src/apps/mailchimp/actions/send-campaign/index.js b/packages/backend/src/apps/mailchimp/actions/send-campaign/index.js new file mode 100644 index 00000000..1c954cb9 --- /dev/null +++ b/packages/backend/src/apps/mailchimp/actions/send-campaign/index.js @@ -0,0 +1,39 @@ +import defineAction from '../../../../helpers/define-action.js'; + +export default defineAction({ + name: 'Send campaign', + key: 'sendCampaign', + description: 'Sends a campaign draft.', + arguments: [ + { + label: 'Campaign', + key: 'campaignId', + type: 'dropdown', + required: true, + description: '', + variables: true, + source: { + type: 'query', + name: 'getDynamicData', + arguments: [ + { + name: 'key', + value: 'listCampaigns', + }, + ], + }, + }, + ], + + async run($) { + const campaignId = $.step.parameters.campaignId; + + await $.http.post(`/3.0/campaigns/${campaignId}/actions/send`); + + $.setActionItem({ + raw: { + output: 'sent', + }, + }); + }, +}); diff --git a/packages/docs/pages/apps/mailchimp/actions.md b/packages/docs/pages/apps/mailchimp/actions.md index 1b20a1bb..4f527d3a 100644 --- a/packages/docs/pages/apps/mailchimp/actions.md +++ b/packages/docs/pages/apps/mailchimp/actions.md @@ -3,6 +3,8 @@ favicon: /favicons/mailchimp.svg items: - name: Create campaign desc: Creates a new campaign draft. + - name: Send campaign + desc: Sends a campaign draft. ---