Views:

Scenario Overview

In this scenario the requirement is to determine all the 'Sales Team' members of an Opportunity (i.e. an Access Team, new security feature in CRM 2013) & send them an email when the Opportunity reaches the 'Close' stage.


In the screenshot below we can see that the Sales Team currently has 3 members on the Opportunity.
 

North52 Decision Suite Solution

The North52 Decision Suite solution works like this,

  • We create a Formula of type Process Genie on the Email entity
  • We create a Workflow to trigger on the Status change of an Opportunity
  • When the workflow is triggered it creates the Email
  • We then use a N52 Process Genie in the workflow to call the formula on the newly-created Email.
  • This Formula then uses a Fetch-XML query to retrieve the Sales Team members
  • The Sales Team members are then added to the email's To list
  • Finally the Formula sends the email 


Note: The Fetch-XML query returns both the teammembership guid and the systemuserid guid. Therefore we must tell the SetAttributePartyList function which guid we want to use by setting the last parameter to 'systemuserid'.

North52 Decision Suite Steps

The following set of steps outline how to create this Formula  

  • Create a new formula of type 'Process Genie'
  • Set the Source entity to 'Email'
  • Copy & paste the formula below into the formula canvas
  • Create a Fetch-XML query called retrieveTeamMembers
  • Copy & paste the Fetch-XML code into the query
  • Create a workflow and configure it as below.
  • Add in the Formula ShortCode and set the Primary Entity ID to the email as shown. 
  • Save and test! 

Workflow

Email Message

N52 Process Genie


Email Sent to Team Members

Fetch-XML


Formula

SmartFlow(
  
    SetVar('TeamMembers', FindRecordsFD('retrieveTeamMembers', true, 
           SetParams([email.regardingobjectid]))),
  
  UpdateRecord('email',
               [email.activityid],
               SetAttributePartyList('to', 'systemuser', GetVar('TeamMembers'), 'systemuserid')),
  
    SendEmail([email.activityid])
  )

Fetch-Xml Description

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false">
   <entity name="teammembership">
       <link-entity name="team" from="teamid" to="teamid" alias="ab">
            <filter type="and">
                <condition attribute="regardingobjectid" operator="eq"  value="{0}" />
            </filter>
       </link-entity>
   </entity>
</fetch>

Wizard - FindRecordsFD

Please see below the wizard you can use to create the FindRecordsFD() function call used in this formula. 

Note you will need to either type or paste in the following. 
 

Did you know?

You can easily schedule recurring processes or CRM record updates

Every business has recurring processes and tasks that need to be done on repeatable and scheduled basis. Microsoft Dynamics 365 users are often surprised to learn that it is difficult to achieve using standard functionality. The North52 Scheduler makes it easy to trigger workflows and/or advanced business logic for specific entity records on a scheduled basis. 

Key features include:    

  • Create Recurring Schedules within Dynamics 365
  • Powerful Record Targeting - easily create queries to target a specific set of records
  • High Performance - can process 100,000+ records on a scheduled basis
  • Execute Workflow/Action or Update Entities
  • Native to Dynamics 365

Learn more about the Scheduler