Scenario Overview

In this scenario, the business requirement we are addressing is to create a Contact direct from a Lead, without creating an Opportunity and to move all the open and completed activities over to the new Contact.

For this we don't want to use the out of the box lead conversion process, we are essentially recreating a custom process that suits our business needs.

To do this we are going to use the North52 Quick Button to create a button on a Lead that will create the record for us.

N52 Formula Manager Solution

The Formula Manager solution works like this,

  • We create a formula of type 'ClientSide - Calculation' on the Lead entity
  • Add a North52 Quick Button to the form using the instructions that can be found here
  • Set the formula shortcode for the Quick Button to your formula
  • The Formula will first create the new Contact record
  • Then it uses Fetch-XML to retrieve the list of activities.
  • If the activity is open, it will update the regarding field to the new Contact 
  • If the activity is closed, it will store the status reason, then open the activity, update the regarding field and then close back down the activity setting the correct status reason
  • Finally, as the last step, it will mark the Lead as Qualified


N52 Formula Manager Steps

The following set of steps will set this formula up for you.

  • Create a new formula of type 'ClientSide - Calculation'
  • Set the Source Entity to 'Lead'
  • Copy and paste the formula below into the formula canvas
  • Save the formula
  • Create the Fetch-XML call using the below
  • Click Save and you are ready to test

North52 Quick Button

Newly Created Contact

All the Activities Copied Over


      SetAttribute('firstname', [lead.firstname]),
      SetAttribute('lastname', [lead.lastname]),
      SetAttribute('address1_line1', [lead.address1_line1]),
      SetAttribute('address1_line2', [lead.address1_line2]),
      SetAttribute('address1_line3', [lead.address1_line3])

    FindRecordsFD('FindAllActivities', true),

    If(CurrentRecord('statecode') = 0, /* Activity is open */
        SetAttribute('regardingobjectid', 'contact', GetVar('NewContact'))),

      /* Not Open -> Open Activity,  Update the regarding, then close activity again */
        /* Record Previous StatusReason */
        SetVar('pStatusReason', CurrentRecord('statuscode')),

          SetAttributeStatus( 0,  1 )),

          SetAttribute('regardingobjectid', 'contact', GetVar('NewContact'))),

          SetAttributeStatus( 1, GetVar('pStatusReason')))

    SetAttributeStatus( 1,  3)

  SmartFlowReturn(SetFormNotification('New Contact has been created - All activities have been moved over', 


<fetch top="50" >
  <entity name="activitypointer" >
    <attribute name="activityid" />
    <attribute name="regardingobjectid" />
    <attribute name="statecode" />
    <attribute name="activitytypecode" />
    <attribute name="statuscode" />
      <condition attribute="regardingobjectid" operator="eq" value="@leadid@" />
      <condition attribute="statecode" operator="neq" value="2" />

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 have created the FetchXML beforehand. 

Did you know?

North52 Quick Tiles can be displayed on Dynamics Portals Entity Forms

That's right, you can display information via North52 Quick Tiles on an Entity Form. Display things like:

  • Number of cases remaining
  • Current support repsonse time
  • Remaining credits
  • Outstand balance
  • And much more...

Configure your rules/decision logic using North52 Decision Tables. You can have one, two, three…or ten tiles - you choose! 

Learn more about North52 Quick Tiles for Portals