Last year I had a customer requirement to start a ClickDimensions Quick Send on a custom entity. By default, QuickSend is only available on lead, contact and opportunity. ClickDimensions has already an article on how creating a Quick Send like dialog to send a single email from any entity, but dialogs are deprecated. Therefore I made a deep dive into how the Quick Send button works and will share my findings with you.
The button
I will only focus on the command, I think button labels and button icons should be no problem for customizers.
Rebuild the command and use your own javascript in yellow marked areas.
The javascript
The following is just to give you a starting point. You need to fill it with additional logic to refer it to a contact or lead.
function openQuickSendForm() { // [CUSTOMIZE var type = 2; var typeName = "contact"; var id = "{332514B1-14F7-E711-A95F-000D3AB6ED20}"; // CUSTOMIZE] var accountKey = getAccountKey(); var region = getRegion(); var crmVersion = getCrmVersion(); var orglcid = parent.Xrm.Page.context.getOrgLcid(); var orgName = Xrm.Page.context.getOrgUniqueName(); var lcid = Xrm.Page.context.getUserLcid(); var userId = Xrm.Page.context.getUserId(); var params = '&id=' + id + '&orglcid=' + orglcid + '&orgname=' + orgName + '&type=' + type + '&typename=' + typeName + '&userlcid=' + lcid + '&userid=' + userId; var url = 'https://app' + region + '.clickdimensions.com' + '/MSCRM/v' + crmVersion + '/pages/quicksendemailtemplateForm.aspx' + '?accountKey=' + accountKey + params; _security.CreateSecuritySession(function (sessionId) { url += '&sessionId=' + sessionId; window.open( url, 'quicksendWindow', 'height=800px,width=730px,status=0,toolbar=0,resizable=1,scrollbars=1' ); }); }