The standard newsletter tool from ERPNext so far does not support personalisation of the content (refer to https://github.com/frappe/frappe/issues/6654).
Including dynamic content
ERPNextSwiss contains a function for this. Simply include the following custom script:
frappe.ui.form.on("Newsletter", {
refresh: function(frm) {
if ((!frm.doc.__islocal) && (frm.doc.email_sent == 0)) {
frm.add_custom_button(__("Send dynamic"), function() {
send_dynamic(frm);
});
}
}
});
function send_dynamic(frm) {
frappe.call({
method: 'erpnextswiss.erpnextswiss.dynamic_newsletter.enqueue_send_dynamic_newsletter',
args: {
newsletter: frm.doc.name
},
callback: function(r) {
frappe.msgprint(
__("The newsletter has been added to the sending queue. It will be sent in the next few minutes."),
__("Newsletter sending") );
}
});
}
Usage
With the above script, there is a "Dynamic send" button available. Pressing this will send the newsletter through a function that will enrich personalised content from the respective contact record.
Prerequisite
- make sure that all enlisted recipients also have a contact record (otherwise they will be skipped)
Available variables
Make sure to exactly match tag (including whitespaces).
| Tag |
Content |
| {{ first_name }} |
contact.first_name |
| {{ last_name }} |
contact.last_name |
| {{ salutation }} |
contact.salutation |
| {{ letter_salutation }} |
contact.letter_salutation |
| {{ department }} |
contact.department |
| {{ designation }} |
contact.designation |
Sample message
<h1>Hello {{ first_name }} {{ last_name }}!</h1>
<p>This is a newsletter</p>