Choose what information should be shown for participants when picking participants to be added to the contract.Our application uses Salesforce Flows for better flexibility and to support for more use cases, when you installed the package our Managed Flow called OneflowParticipantsLogic is also installed and listed at Setup > Flows.
Think of this feature like declarative mapping, meaning Salesforce Admins can change to whatever best fits their business workflows by mapping fields from your objects to Participants UI to be transfered to Oneflow.
By using flows it's also possible to specify participants order, add participants as pre-default, add pre-defined participants which might not even be related to the object on the first place, the possibilities are endless!

OneflowParticipantsLogic Flow Overview 


First let's have an overview of the flow and the different paths it takes depending on the object which contract are being created from.


To start the flow takes 2 inputs has arguments ObjectId and ObjectName.

It's based on this ObjectName that element flow Decision (Check Base Object) chooses which path to take.


Check the following example for when ObjectName equals Account ( this path is only taken if contracts are being created from an Account Record on Salesforce)


Out-of-the-box OneflowParticipantsLogic flow splits into 4 different paths:

  • Account  (when ObjectName equals Account, path chosen is Creating Contract from Account)
  • Contact (when ObjectName equals Contact, path chosen is Creating Contract from Contact)
  • Lead (when ObjectName equals Lead, path chosen is Creating Contract from Lead)
  • Opportunity (when ObjectName equals Opportunity, path chosen is Creating Contract from Opportunity)


This is why there are 4 paths coming out the Decision Element, one path per each Object.


After taking on then path, flow will make use of other argument ObjectId to query the necessary fields used by the other flow elements.

For each Record returned by the "Get Records" Element you have to:

  1. Assigned to ParticipantFlow the values from the loop Record.
    The Assignment Element "Add Contact Info to Participants" on OneflowParticipantsLogic flow defines the mapping from Salesforce fields to Participants' UI.
  2. Add the newly created Participant Flow to the Participants List (ParticipantsCollectionSObject)
    After that add don't forget to add the new Participant Flow to the list of Participants Flows (ParticipantsCollectionSObject - collection variable)which will be returned to the UI.

After adding all participants to the collection variableParticipantsCollectionSObject, flow returns this list to the UI and flow execution finishes.


Please keep in mind that Participants UI is expecting ParticipantsCollectionSObject so make sure you're adding the participants to this variable and not to others.


Last but not least, don't forget to activate the flow and configure which flow should be used depending on the object by going Setup > Custom Settings > Oneflow Relate to> Flow Participant and changing it.


Participant Mapping

  • OFapp__contactId__c - Record's Id,  on Participants' UI when clicked opens the record.
  • OFapp__contactName__c - Participant's Name shown on Participants' UI.
  • OFapp__contactEmail__c - Participant's Email shown on Participants' UI.
  • OFapp__accountName__c - Participant's Account Name shown on Participants' UI.
  • OFapp__Is_Participant_Selected__c  - Participant's selection checkbox shown on Participants' UI.
  • OFapp__Oneflow_Role__c -  Participant's Oneflow Role (Signatory, Influencer, Viewer) checkbox shown on Participants' UI.
  • OFapp__Org_Number__c -  Participant's Org Number, not shown on UI but transfered to Oneflow.
  • OFapp__Participant_Description__c  -  Participant's Description shown on Participants' UI.
  • OFapp__Participant_Phone_Number__c -  Participant's Phone Number shown on Participants' UI.


Default Configuration
Check the following Out-of-the box default configuration to know from which fields for the listed objects the information is being shown:

  • Account
    When creating contracts from Account
    • OFapp__contactId__c <- Contact's ID (Id) related to the Account
    • OFapp__contactName__c <- Contact's Name (Name) related to the Account
    • OFapp__contactEmail__c <- Contact's Email (Email)related to the Account
    • OFapp__accountName__c <- Account Name (Name)
    • OFapp__Is_Participant_Selected__c <- false (Boolean)
    • OFapp__Oneflow_Role__c <- Signatory (Text)
    • OFapp__Org_Number__c  <-  Account Number (AccountNumber)
    • OFapp__Participant_Description__c <- Empty String
    • OFapp__Participant_Phone_Number__c <- Contact's Phone Number (Phone) related to Account
  • Contact
    When creating contracts from Contact
    • OFapp__contactId__c <- Contact's ID (Id)
    • OFapp__contactName__c <- Contact's Name (Name)
    • OFapp__contactEmail__c <- Contact's Email (Email)
    • OFapp__accountName__c <- Account Name related to contact (Account.Name)
    • OFapp__Is_Participant_Selected__c <- false (Boolean)
    • OFapp__Oneflow_Role__c <- Signatory (Text)
    • OFapp__Org_Number__c  <-  AccountNumber from Account related to the contact (Account.AccounNumber)
    • OFapp__Participant_Description__c <- Empty String
    • OFapp__Participant_Phone_Number__c <- Contact's Phone Number (Phone)
  • Lead
    When creating contracts from Lead
    • OFapp__contactId__c <- Lead's ID (Id)
    • OFapp__contactName__c <-  Lead's Name (Name)
    • OFapp__contactEmail__c <-  Lead's Email (Email)
    • OFapp__accountName__c <- Not mapped
    • OFapp__Is_Participant_Selected__c <- false (Boolean)
    • OFapp__Oneflow_Role__c <- Signatory (Text)
    • OFapp__Org_Number__c  <- <- Not mapped
    • OFapp__Participant_Description__c <- Empty String
    • OFapp__Participant_Phone_Number__c <- Lead Phone Number (Phone)
  • Opportunity
    When creating contracts from Opportunity (Contact Roles or Contacts related to same Account has Opportunity)
    • OFapp__contactId__c <- Contact's ID (Id)
    • OFapp__contactName__c <- Contact's Name (Name)
    • OFapp__contactEmail__c <- Contact's Email (Email)
    • OFapp__accountName__c <- Account Name related to contact (Account.Name)
    • OFapp__Is_Participant_Selected__c <- false (Boolean)
    • OFapp__Oneflow_Role__c <- Signatory (Text)
    • OFapp__Org_Number__c  <-  AccountNumber from Account related to the contact (Account.AccounNumber)
    • OFapp__Participant_Description__c <- Contact Role from Opportunity Contact Role or Empty
    • OFapp__Participant_Phone_Number__c <- Contact's Phone Number (Phone)


All the listed fields for Participant Flow can be mapped to different fields, please check instruction bellow Change Participants Flow Mapping.

To add other object besides the ones above listed above, please check the instructions bellow on Add a new Object to Oneflow Participants Flows.


Add a new Object to Oneflow Participants Flows

  1. Clone OneflowParticipantsLogic flow (or create a new version for a existing flow cloned from OneflowParticipantsLogic).
  2. Define Participant Mapping a.k.a which data should appear on Participants' UI (fields and records).
  3. Create a new outcome on Decision Element - Check Base Object, where ObjecName equals the object from which you want to be able to create contracts from.
  4. Use Get Records Element to query all fields using the ObjectID to be passed to Participant Flow.
  5. For each Record do:
  1.  Assigned to ParticipantFlow the values from the loop Record.
  2. Add the newly created Participant Flow to the Participants List (ParticipantsCollectionSObject)


        6. Change Relate To settings to use the newly created flow.

        7. Done!!

Check the following example video for Case:

    

    Party Name for Case maps to Subject
    Party Org Number for Case maps to Engineering Request


Case Mapping to Participants' UI

  • OFapp__contactId__c -  ContactId
  • OFapp__contactName__c - Contact.LastName
  • OFapp__contactEmail__c - Contact.Email
  • OFapp__accountName__c - Contact.Account.Name
  • OFapp__Is_Participant_Selected__c  - false
  • OFapp__Oneflow_Role__c - Signatory
  • OFapp__Org_Number__c -   Contact.Account.AccountNumber
  • OFapp__Participant_Description__c  -  "Case Contact" 
  • OFapp__Participant_Phone_Number__c -  "+46123123123"



Change Participants Flow Mapping for previously configured object

  1. Clone OneflowParticipantsLogic flow (or create a new version for a existing flow cloned from OneflowParticipantsLogic)
  2. Define New Participant Mapping a.k.a which data should appear on Participants' UI (fields and records).
  3. For each Record do:
    1. Assigned to new mapping to ParticipantFlow
  4. Done!!


Check the following example video to change the mapping for Case created above:

Party Name for Case changed to Contact.Account.Name (Create a formula field type Text at Case Object)
Party Org Number for Case maps to Engineering Request


New Case Mapping to Participants' UI

  • OFapp__contactId__c -  ContactId
  • OFapp__contactName__c - changed to Contact.firstname
  • OFapp__contactEmail__c - Contact.Email
  • OFapp__accountName__c - Contact.Account.Name
  • OFapp__Is_Participant_Selected__c  - changed to true
  • OFapp__Oneflow_Role__c - change to Influencer
  • OFapp__Org_Number__c -   Contact.Account.AccountNumber
  • OFapp__Participant_Description__c  -  "Case Contact" 
  • OFapp__Participant_Phone_Number__c -  "+46123123123"