使用Power Automate发送带附件的邮件,并将该邮件关联到Dynamics 365中的Timeline

我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面的微软最有价值专家(Microsoft MVP),欢迎关注我的微信公众号 MSFTDynamics365erLuoYong ,回复401或者20200408可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!

以前写过博文 Dynamics CRM邮件附件,你真的了解吗?,可以知道邮件附件使用的实体是 activitymimeattachment 。今天用Power Automate来发带附件的邮件时候进一步看了下。

先说下Web API创建邮件附件的方法,参考了 HOW TO CREATE AN ACTIVITY ATTACHMENT USING WEBAPI IN DYNAMICS 365 ,我这里提供下示例代码:

var emailId = "97117037-8379-ea11-a811-000d3a378a3a";
var documentBodyInBase64 = "iVBORw0KGgoAAAANSUhEUgAAADIAA.....";
var data =
{
    "objectid_activitypointer@odata.bind": "/activitypointers(" + emailId + ")",
    "body": documentBodyInBase64,
    "filename": "test.jpg",
    "objecttypecode": "email",
    "subject": "test.jpg",
    "mimetype": "image/jpeg"
}


Xrm.WebApi.createRecord("activitymimeattachment", data).then(
    function success(result) {
        console.log("activitymimeattachment created with ID: " + result.id);
    },
    function (error) {
        console.log(error.message);
    }
);

我也碰到这个帖子 Creating a new Email Attachment in Dynamics 365 碰到的问题:就是attachmentid字段必须输入,但是实际上应该不用,不设置就保存不了。

然后在这个帖子 Creating activitymimeattachment (Email attachment) Record through Microsoft Flow 中提出了利用 HTTP with Azure AD 这个Connector直接发起HTTP请求来做,的确是可以的。

配置链接的时候参考下图,也就是这两个URL都配置为Dynamics的URL。

 然后发起的HTTP请求内容类似如下:

 发送的邮件要显示在Dynamics 365的Timeline中可以参考 Send Dynamics 365 Emails from Power Automate  或者 Creating and Sending an Email from Dynamics 365 using Power Automate 。

需要先创建Email Messages实体(也就是email实体)记录,Description字段就是邮件正文,支持HTML,Subject就是邮件标题,Regarding (关联实体的显示名称) 字段设置为类似 /accounts(record guid) 。

然后调用SendEmail这个绑定操作就可以将邮件发出。

如果是筛选某条记录的附件内容用来发邮件,筛选附件的条件可以参考如下:

还可以参考我的博文 Power Automate实用常见问题解答(FAQ) 了解更多关于Power Automate的信息。

原文地址:https://www.cnblogs.com/luoyong0201/p/Power_Automate_Send_Email_With_Attachment_And_Display_In_Dynamics_365_Timeline.html