web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

No record found.

Community site session details

Community site session details

Session Id :

Set Account's Primary Contact as Recipient when creating a new Phone Call

Guido Preite Profile Picture Guido Preite 54,086 Moderator
When a new Phone Call is created starting from an Account, the default recipient is the Account itself.
If we want to set the Primary Contact of the Account as Recipient, we need to call the following function inside the OnLoad event of the Phone Call entity.

function ChangePhoneCallRecipientFromAccountToPrimaryContact() {
// check if is a new phone call
if (Xrm.Page.ui.getFormType() == 1) {
// get the Phone Call To Recipient
var to = Xrm.Page.getAttribute("to").getValue();
// if the Recipient is an account we continue
if (to != null && to[0].entityType == "account") {
// get the account Id
var accountId = to[0].id;
// get the right url for the OData Query
var serverUrl;
if (Xrm.Page.context.getClientUrl !== undefined) {
serverUrl = Xrm.Page.context.getClientUrl();
} else {
serverUrl = Xrm.Page.context.getServerUrl();
}
// build the request
var ODataPath = serverUrl + "/XRMServices/2011/OrganizationData.svc";
var accountRequest = new XMLHttpRequest();
accountRequest.open("GET", ODataPath + "/AccountSet(guid'" + accountId + "')", false);
accountRequest.setRequestHeader("Accept", "application/json");
accountRequest.setRequestHeader("Content-Type", "application/json; charset=utf-8");
// execute the request
accountRequest.send();
if (accountRequest.status === 200) {
var retrievedAccount = JSON.parse(accountRequest.responseText).d;
// retrieve the primary contact of the account
var primaryContact = retrievedAccount.PrimaryContactId;
// if there is a primary contact we set as new To Recipient
if (primaryContact.Id != null) {
var newTo = new Array();
newTo[0] = new Object();
newTo[0].id = primaryContact.Id;
newTo[0].name = primaryContact.Name;
newTo[0].entityType = primaryContact.LogicalName;
Xrm.Page.getAttribute("to").setValue(newTo);
}
}
else {
alert("error");
}
}
}
}

This was originally posted here.

Comments

*This post is locked for comments