# Communication Configuration This YAML document outlines the configuration for sending out communications through various channels. It specifies the communication details, permissions, scripts, and attachments associated with each channel. ## Communication Configuration Structure The communication configuration consists of the following sections: ### Communication Information - **Name**: The name of the communication. - **Version**: The version of the communication. - **Author**: The name of the person responsible for the communication. - **Description**: A brief description of the communication. - **PermissionRequired**: The permission required for the customer to have opted in for. - **BusinessArea**: The business area associated with the communication. - **BusinessProcess**: The business process associated with the communication. ### Channel Configuration The communication configuration includes settings for different communication channels: - **Email**: Configuration for sending emails. - **Subject**: The subject of the email (supports handlebar variable replacement). - **ContentTemplate**: The path to the template file for the email content. - **Attachments**: List of attachments to include in the email. - **Name**: The name of the attachment. - **DocumentPath**: Optional. Path to the document to be generated for this attachment. - **DocumentParameterName**: Optional. If the attachment is a base64 string from a parameter. - **FileName**: The name of the attached file. - **WhatsApp**: Configuration for sending WhatsApp messages. - **SenderId**: WhatsApp SenderId used for sending the communication. - **PermissionRequired**: The permission required for sending marketing WhatsApp messages. - **Body**: The text to be sent to WhatsApp (supports handlebar tags). - **Attachments**: List of attachments to send to WhatsApp (similar to email). - **SMS**: Configuration for sending SMS messages. - **SenderId**: SMS SenderId used for sending the communication. - **PermissionRequired**: The permission required for sending marketing SMS messages. - **Body**: The text to be sent to SMS (supports handlebar tags). - **EntityStorage**: Configuration for storing the communication as an entity. - **Entity**: The type of entity for which the communication will be stored. - **PermissionRequired**: The permission required for storing the communication. - **Body**: The text to be stored as part of the entity (supports handlebar tags). - **Attachments**: List of attachments to associate with the stored entity (similar to email and WhatsApp). ### Scripts - **AssertChannel**: Optional JavaScript script to determine the channel to be used for sending the communication. - **PreScript**: JavaScript script to prepare information before building the communication. - **PostScript**: JavaScript script to run after the communication has been sent. ## Sample Configuration ```yaml Communication: - Name: 'Communication Name' Version: '0.0.1' Author: 'Person Name' Description: 'Description of the communication' PermissionRequired: 'MarketingComms' BusinessArea: '' BusinessProcess: '' AssertChannel: > // JavaScript which will return the channel to be used PreScript: > // Some JavaScript to prepare information for the communication PostScript: > // Some JavaScript to run after the communication has been sent Channels: - Email: Subject: 'Text for the subject' ContentTemplate: 'Path to template file' Attachments: - Name: 'Attachment Name' DocumentPath: 'Optional. Path to document to be generated for this' DocumentParameterName: 'Optional. If attachment is a base64 string from a parameter' FileName: 'Name of file that will be attached' - WhatsApp: SenderId: 'WhatsApp SenderId' PermissionRequired: 'MarketingWhatsApp' Body: 'Text to be sent to WhatsApp' Attachments: - Name: 'Attachment Name' DocumentPath: 'Optional. Path to document to be generated for this' DocumentParameterName: 'Optional. If attachment is a base64 string from a parameter' FileName: 'Name of file that will be attached' - SMS: SenderId: 'Sms SenderId' PermissionRequired: 'MarketingSMS' Body: 'Text to be sent to SMS' - EntityStorage: Entity: 'Customer' PermissionRequired: 'MarketingComms' Body: 'Text to be stored with the entity' Attachments: - Name: 'Attachment Name' DocumentPath: 'Optional. Path to document to be generated for this' DocumentParameterName: 'Optional. If attachment is a base64 string from a parameter' FileName: 'Name of file that will be attached'