import { MESSAGE_TYPE_OPTIONS } from "../../common/constants.mjs";
import { checkWarnings } from "../../common/utils.mjs";
import icontact from "../../icontact.app.mjs";
export default {
key: "icontact-create-message",
name: "Create and Dispatch Message",
description: "Creates and dispatches a new message using custom HTML. [See the documentation](https://help.icontact.com/customers/s/article/Messages-iContact-API?r=153&ui-knowledge-components-aura-actions.KnowledgeArticleVersionCreateDraftFromOnlineAction.createDraftFromOnlineArticle=1)",
version: "0.0.1",
type: "action",
props: {
icontact,
campaignId: {
propDefinition: [
icontact,
"campaignId",
],
},
messageType: {
type: "string",
label: "Message Type",
description: "The kind of message being added.",
options: MESSAGE_TYPE_OPTIONS,
},
subject: {
type: "string",
label: "Subject",
description: "The subject line of the email.",
},
htmlBody: {
type: "string",
label: "HTML Body",
description: "Contains the HTML version of the email message body.",
optional: true,
},
textBody: {
type: "string",
label: "Text Body",
description: "Contains the text version of the email message body.",
optional: true,
},
messageName: {
type: "string",
label: "Message Name",
description: "The reference name of the message. This is used for organizational purposes and will not be seen by your contacts.",
optional: true,
},
previewText: {
type: "string",
label: "Preview Text",
description: "Indicates the preview text that some email systems display before opening the email.",
optional: true,
},
replyToCampaignId: {
propDefinition: [
icontact,
"campaignId",
],
label: "Reply To Campaign Id",
description: "Indicates the sender property where you want reply emails to be sent to.",
optional: true,
},
},
async run({ $ }) {
const {
icontact,
...message
} = this;
const response = await icontact.createMessage({
$,
data: {
message,
},
});
checkWarnings(response);
$.export("$summary", `Successfully created message with ID: ${response.messages[0].messageId}`);
return response.messages[0];
},
};