Automation Champion

Automating Salesforce One Click at a Time
Automation Champion
  • Home
  • About Me
    • Testimonials
    • Resources
  • Process Builder
  • Salesforce Flow
  • Pardot
  • Apex
  • Training Details
    • Salesforce Administrator
    • Salesforce Advanced Administrator
    • Platform App Builder
    • Lightning Flow
    • Pardot
    • Sales Cloud
    • Service Cloud
    • Community Cloud
    • Hands-on Excercises
  • My Books
  • Contact Me
  • Tag: Salesforce release exam dates

    • Getting Started with Salesforce Flow – Part 42 (Running a Flow in System Mode)

      Posted at 1:50 PM by Rakesh Gupta, on November 21, 2020

      Big Idea or Enduring Question:

      How do you run a Lightning Flow in system mode? 

      Objectives:

      This blog post will help us to understand the following

      • Difference between user mode vs system mode? 
      • How to create a flow that runs in the system mode

      Business Use case

      Vigne Kozacek is working as a System Administrator at Universal Containers (UC). They normally grant read access to account records to account team members. He received a requirement to develop an application that will allow all users to add Chatter followers to the account record without editing it. (It should also work in case if they have only read access to the account record.)

      Automation Champion Approach (I-do):

      In this article Getting Started with Process Builder – Part 20 (Add Chatter Followers to Record), we had discussed a way to auto-add Chatter followers to an account record using Process Builder. But it will only work for System Administrators or users with the Edit permission on the Account object. There are few business scenarios where a business wants to implement this for all users so that anyone can add followers without editing the account record. Let’s start working through the solution for the business use case.

      We will use Flow and Process Builder because it runs in system mode. Before proceeding ahead, you have to understand User mode and System mode in Salesforce. 

      • System mode: In which the object and field-level permissions of the current user are ignored. 
      • User mode: In which the permissions, field-level security, and sharing rules of the current user are enforced.

      A few points to remember

      • By default, Screen Flow runs in user mode.
        • But Salesforce provides an ability to runs it in system mode.
      • Record-Trigged Flow always runs in system mode.
      • Scheduled-Trigged Flow always runs in system mode.
      • Process Builder runs in system mode.
      • When you launch a Flow using the Process Builder, then it will run in system mode.

      Before discussing the solution, let me show you a diagram of a Process Flow at a high level. Please spend a few minutes to go through the following Flow diagram and understand it.

      Let’s begin building this automation process.

      Guided Practice (We-do):

      There are 5 steps to solve Vigne’s business requirement using Lightning Flow. We must: 

      1. Define flow properties for screen flow
      2. Create a text variable 
      3. Create a screen to capture the user data
        1. Add a screen element
        2. Add a Lookup component 
        3. Add a create records element
      4. Setup the flow runtime mode 
      5. Create a quick action 

      Step 1: Define Flow Properties

      1. Click Setup.
      2. In the Quick Find box, type Flows.
      3. Select Flows then click on the New Flow.
      4. Select the Screen Flow option and click on Next and configure the flow as follows: 
        1. How do you want to start building: Freeform
      5. It will open the flow designer for you.

      Step 2: Create a Text Variable 

      Want the quick action to send the record’s ID to your flow? Create a variable like below and the rest Salesforce will handle for you. 

      1. Under Toolbox, select Manager. Click on the New Resource. 
      2. Input the following information:
        1. Resource Type: Variable
        2. API Name: recordId
        3. Data Type: Text
        4. Default Value: {!$GlobalConstant.EmptyString}
        5. Check Available for Input
        6. Check Available for Output
      3. Click Done. 

      Step 3.1: Add a Screen Element 

      1. Under Toolbox, select Elements. Drag and drop Screen onto the canvas. 
      2. Input the following information:
        1. Enter Label the API Name will auto-populate.
      3. Click Done. 

      Step 3.2: Add a Lookup Component to capture the user data whom they want to make a follower of the record

      1. Under Input section on Screen Element. Drag and drop Lookup onto the screen. 
      2. Input the following information:
        1. Enter API Name.
        2. Field API Name: CreatedById (Enter the field API Name that will show up in the list box to represent a record.)
        3. Label: Select a Follower (Enter a label that appears next to the lookup control)
        4. Object API Name: Account ( Enter the object API name) 
        5. Required: {!$GlobalConstant.True}
      3. Click Done.

      Step 3.3: Add a Create Records Element to add followers into the Record 

      1. Under Toolbox, select Elements. Drag and drop Create Records onto the canvas. 
      2. Input the following information:
        1. Enter Label the API Name will auto-populate.
        2. How Many Records to Create: One
        3. How to Set the Record Fields: Use separate resources, and literal values
        4. Object: Entity Subscription
        5. Set Field Values for the Entity Subscription
        6. Row 1:
          1. Field: ParentId
          2. Value: {!recordId}
        7. Click Add Row
        8. Row 2:
          1. Field: SubscriberId
          2. Value: {!Select_a_Follower.recordId} (RecordId from screen component lookup field added in the step 3.2)
      3. Click Done.

      Step 4: Setup the Flow Runtime Mode

      For a flow running in the user context, the running user’s profile and permission sets determine the object permissions and field-level access of the flow. When a flow attempts to create, read, edit, or delete Salesforce data, it enforces the running user’s permissions and field-level access. For example, if the running user doesn’t have the edit permission for the Account object, and the flow attempts to update account records, an error occurs. If the running user doesn’t have permission to edit the Rating field on the Account object, and the flow attempts to update that field, an error occurs.

      You can set a flow version to always run in the system context, overriding the context it normally runs in. If you choose system context with sharing, the flow respects org-wide default settings, role hierarchies, sharing rules, manual sharing, teams, and territories. But it doesn’t respect object permissions, field-level access, or other permissions of the running user.

      1. Connect the elements. It will look like the image below.
      2. Click Save.
      3. Enter Flow Label the API Name will auto-populate.
      4. Click Show Advanced.
      5. How to Run the Flow: System Context Without Sharing-Access All Data
      6. Type: Screen Flow
      7. API Version for Running the Flow: 50
      8. Interview Label: Add details to Account object {!$Flow.CurrentDateTime}
      9. Click Save. 

      Almost there! Once everything looks good, click the Activate button.

      Step 5: Create a Quick Action – Add Follower 

      The next step is to create a quick action (Add Follower) on the Account object to call the Flow and add it to the page layout. 

      1. Click Setup.
      2. In the Object Manager, type Account.
      3. Select Buttons, Links, and Action, then click New Action.
      4. Input the following information:
        1. Select Flow as Action Type.
        2. Select Add Follower to Record as Flow.
        3. Enter Label the Name will auto-populate.
      5. Click Save.

      Make sure to add the above quick action on the page layout. 

      Proof of Concept

      In this demo, I am going to use Adam Smith’s account (Profile assigned – Standard Read-Only). 

       The next step is to click on the Add Follower button and follow the instructions available on the Flow screen.

      Finally, check out the Follower section available on the record detail page.

      Formative Assessment:

      I want to hear from you!  

      What is one thing you learned from this post? How do you envision applying this new knowledge in the real world? 

      Let me know by Tweeting me at @automationchamp, or find me on LinkedIn.

      Have feedback, suggestions for posts, or need more information about Salesforce online training offered by me? Say hello, and leave a message!

      Posted in Chatter, Process Builder, Salesforce Flow | 5 Comments | Tagged Add Chatter Followers to Record, Add Chatter Followers to Record using PB, Add Chatter Followers to Record using Process Builder, Add Criteria Proces builder, Add follower, Add follower to record, Add subscriber, Add subscriber to record, ADM 201, adm 201 certification, adm 201 salesforce, admin release exam, Advance flow, Chatter, Cloud Flow Designer Workbook, Con 201, Create record through flow, Custom button, dev 401, DEV401, developer release exam, Enable Process Builder, EntitySubscription, Evaluate the rule when a record is created, flow, Flow and PB examples, Flow and Prcoess Builder examples, FLow and Process builder example, Flow Example, Flow examples, Flow in System mode, Flows, Flows run in user mode, follow records, Getting started with Process Builder, How to activate Process builder, how to use Process builder, Launch a Flow, Launch a Flow from Process builder, Lightning App, Lightning Process builder, New Flow, PB, Record Create, Run a Flow in System Context, Run a Flow in System Mode, run in system mode Flow, Run Salesforce Flow in System Context, Run Visual workflow in system mode, Running a Flow in System Context, Running a Flow in System Mode, salesforce, salesforce Admin exam, salesforce certified developer exam, Salesforce Certified Sales Cloud Consultant, salesforce chatter, Salesforce Flow, Salesforce maintenance exam, Salesforce release exam, Salesforce release exam dates, Salesforce release exams, Spring15 process builder, Spring15 Process builder enhancement, Update Records, Visual flow
    • Getting Started with Process Builder – Part 24 (Automatically Add User to a Chatter Group)

      Posted at 8:31 PM by Rakesh Gupta, on May 7, 2015

      To understand how to solve the same business use case using Salesforce Flow. Check out this article Getting Started with Salesforce Flow – Part 36 (Automatically Add New Users to a Chatter Group).

      Big Idea or Enduring Question:

      How do you automatically add users into a Chatter Group? 

      Objectives:

      This blog post will help us to understand the following

      • Create automation associated with creating a new user
      • Automatically add a user to a specified Chatter group
      • How to use the quick action in Process Builder
      • What is a MIXED DML error and how to avoid it?

      Business Use case

      Brenda David is working as a System administrator at Universal Containers (UC). Her next assignment is to create a process to auto add a new user to Chatter Group (UC Internal Announcements).

      Automation Champion Approach (I-do):

      The process of creating a new user can involve many steps that have to be repeated for each person. This can become time-consuming for admins. However, this process can be made easier with automation.

      A few months back, I had written an article Getting Started with Lightning Flow – Part 36 (Automatically Add New Users to a Chatter Group) to discuss a way through which we can auto add a new user to Chatter Group. To achieve it, I had used Flow, Process Builder, and Workflow Rule. I got excellent feedback, so I wanted to share another way to do achieve the same business use case, using the Process Builder and Global Action. 

      While this can be solved using various automation tools like Apex or Flow, we will use Process Builder. This is not something that can be accomplished with Workflow Rules. 

      Before proceeding, ahead, understanding CollaborationGroupMember objects in Salesforce. It represents a member of a Chatter group.

      Field Name Details
      CollaborationGroupId Represent Id of the Chatter Group
      MemberId Represent Id of the User (Group member)

      Before discussing the solution, let me show you a diagram of a Process Flow at a high level. Please spend a few minutes to go through the following Flow diagram and understand it.

      Let’s begin building this automation process.

      Guided Practice (We-do):

      There are 8 steps to solve Brenda’s business requirement using Process Builder. We must: 

      1. Create a chatter group
      2. Find the chatter group Id
      3. Creating a custom label to store chatter group Id
      4. Define process properties
      5. Define evaluation criteria
      6. Define process criteria
      7. Set time for actions to execute
      8. Add action – quick actions 

      Step 1: Create a Chatter Group

      1. Navigate to App Launcher and click on the Groups.
      2. Clicks on the New button. 
      3. Name the Group and make sure to select the Private Access Type.
      4. Click Save.

      Step 2: Find the Chatter Group Id for UC Internal Announcements 

      The next step is to find out the Id of the chatter group UC Internal Announcements. One possible workaround is to use the Developer Console. 

      1. Click Setup | Developer Console 
      2. In the Query Editor, run the following SOQL query 
        1. Select id, name from collaborationgroup where (name=’UC Internal Announcements’)
      3. Make sure to copy the Id. 

      Step 3: Creating a Custom Label to Store Chatter Group Id

      1. Click Setup.
      2. In the User Interface, type Custom Labels.
      3. Click on the New Custom Label button.
      4. Enter Short Description the Name will auto-populate. 
      5. Now enter the UC Internal Announcement chatter group id in the Value.
      6. Click Save.

      Step 4: Define Process Properties

      1. Click Setup.
      2. In the Quick Find box, type Process Builder.
      3. Select Process Builder, then click New.
      4. Name the Process and click the Tab button. The API Name will populate. 
      5. As a best practice, always input a description. 
      6. The process starts when A record changes.
      7. Click Save.

      Step 5: Define Evaluation Criteria

      1. Click on the Add Object node to begin selecting the evaluation criteria.
      2. Select the User object from the dropdown list.
      3. Start the process only when a record is created.
      4. Click Save.

      Step 6: Define Process Criteria

      1. Click the Add Criteria node to begin defining the process criteria.
      2. Name the criteria.
      3. The criteria should execute actions when the conditions are met.
      4. Set Conditions
        1. Row 1
          1. Field: User | IsActive
          2. Operator: Equals
          3. Type: Boolean
          4. Value: True
      5. Select All of the conditions are met (AND). 
      6. Click Save.

      Step 7: set time for actions to execute

      When DML operations on certain sObjects sometimes referred to as setup objects (such as a User Object), along with, on the non-setup object (such as Accounts), in the same transaction, then, a Mixed DML error is thrown at a User.

      The Mixed DML error is generated – when a User performs DML actions on Setup and non-Setup Objects in the same transaction -because some sObjects affect the user’s access to records in the org. Therefore, a user must insert or update these types of sObjects in different transactions to prevent operations from happening with incorrect access-level permissions. For example, a user cannot update an account, and a user role, in a single transaction. However, deleting a DML operation has no restrictions (reference Salesforce help).

      We are adding time delays to avoid MIXED DML Errors.

      1. Below Scheduled Actions, click Set Schedule.
      2. Set Field Values:
        1. Row 1:
          1. 0
          2. Hours
          3. After
          4. CreatedDate
      3. Click Save.

      Step 8: Add Action – Quick Actions

      1. Below 0 Hours After CreatedDate Scheduled Actions, click Add Action.
      2. For Action Type, select Quick Actions. 
      3. Name the action.
      4. Filter Search By: Type
      5. Type: Create a Record
      6. Action: NewGroupMember
      7. Set Quick Action Field Values:
        1. Row 1:
          1. Field: Member ID
          2. Type: Field Reference 
          3. Value: User | ID
        2. Click Add Row
        3. Row 2:
          1. Field: Related Record ID
          2. Type: Formula
          3. Value: System Variable | Label | UC_Internal_Chatter_Group_ID
      8. Click Save.

      Almost there! Once everything looks good, click the Activate button. 

      Note:- Before you activate your process, you will want to make sure that you have assigned data in the correct format because Process Builder obeys validation rules. If some fields are required by using validation rules, then make sure you have added those fields. Conversely, if some fields are required on the page layout, you can ignore those fields.

      Proof of Concept

      Now onwards, if a system administrator creates a new user, then Process Builder will automatically trigger and add the user to the UC Internal Announcement Chatter group.

      1. Now create a new user via the UI
      2. Once the user is created, they are automatically added to the chatter group UC Internal Announcements within a few seconds, as shown in the following screenshot:

      Check Paused Flow Interviews 

      1. Click Setup.
      2. In the Quick Find box, type Paused Flow Interviews.
      3. Now you will see all action waiting for execution. 

      Independent Practice (You-do):

      Automatically add a user to a different user group based on their role or profile. 

      Formative Assessment:

      I want to hear from you!  

      What is one thing you learned from this post? How do you envision applying this new knowledge in the real world? 

      Let me know by Tweeting me at @automationchamp, or find me on LinkedIn.

      Have feedback, suggestions for posts, or need more information about Salesforce online training offered by me? Say hello, and leave a message!

      Posted in Chatter, Process Builder, User Management | 15 Comments | Tagged Add Criteria Proces builder, Add Member into Chatter group, Add Memeber into chatter Group, Add new member to Chatter group, Add new member to Queue, Add new membwer to Public Group, Add new user to Chatter Group, ADM 201, adm 201 certification, adm 201 salesforce, admin release exam, Auto add new user to Chatter Group, Auto add new user to Chatter Groups, Automatically add individuals to Chatter Group upon provisioning new user, Automatically Add New User to Chatter Group, Automatically Add New User to Chatter Group Salesforce, Chatter, Chatter Group, CollaborationGroupId, CollaborationGroupMember, Con 201, dev 401, DEV401, developer release exam, Enable Process Builder, Evaluate the rule when a record is, Evaluate the rule when a record is created, Getting started with Process Builder, How to activate Process builder, how to use Process builder, Lightning Flow example, Lightning Process builder, Mixed Dml, MIxed DML Error, Mixed DML Flow, Mixed DML Soution, Process Builder, Process Builder example, Process Builder examples, Process Builder Salesforce, Process builder use case, Quick action process builder, Quick action process builder example, Quick action process builder examples, Quick action Salesforce Process builder, salesforce, salesforce Admin exam, salesforce certified developer exam, Salesforce Certified Sales Cloud Consultant, salesforce chatter, Salesforce Chatter Group, Salesforce maintenance exam, Salesforce release exam, Salesforce release exam dates, Salesforce release exams, Time based action in process builder, Use case for process builder quick action
    ← Older posts
    • Search

    • Upcoming Trainings

      Salesforce Administrator Certification
      Salesforce Advanced Administrator Certification
      Salesforce Platform App Builder Certification
      Lightning Flow & Process Builder
      Advanced Lightning Flow
      Pardot Specialist & Consultant Certification
      Sales Cloud Consultant Certification
      Service Cloud Consultant Certification
      Community Cloud Consultant Certification
    • Sponsor #1

    • Sponsor #2

    • Sponsor #3

    • Sponsor #4

    • Order Now!

    • Buy My Book

    • Buy My Book

    • Recent Posts

      • Getting Started with Salesforce Flow – Part 58 (Customize Previous, Next, Finish, and Pause Button Label for Screen Flow!)
      • Streamline Data Collection with Salesforce-Connected Forms
      • Getting Started with Salesforce Flow – Part 56 (Merge Chatter Topics with the Help of Salesforce Flow)
      • Getting Started with Salesforce Flow – Part 57 (Adding Validation to Flow Screen Components)
      • Getting Started with Salesforce Flow – Part 55 (Add or Remove Followers to a Record with the Help of Salesforce Flow)
    • Salesforce ID Converter Build on Lightning Flow

      Converting 15 digit ID to 18 digit Salesforce ID
    • Blog Archives

    • Categories

  • Information

    • About Me
    • Affiliate Disclaimer
    • Contact Me
    • Privacy Policy
  • Top Posts

    • Learning Flow
    • Learning Process Builder
    • Salesforce Spring’21 Release Quick Summary
    • Getting Started with Salesforce Flow – Part 11 (Count Number of records in a Record Collection Variable)
    • Getting Started with Salesforce Flow – Part 27 (Want to Send an HTML Email from Salesforce Flow? Oh, yes! It can be done!)
    • Getting Started with Salesforce Flow – Part 58 (Customize Previous, Next, Finish, and Pause Button Label for Screen Flow!)
    • Getting Started with Salesforce Flow – Part 28 (Have a File Upload Component and Other Details on a Single Screen? Really? Wow!)
    • Learning Apex
    • Learning Pardot
    • Getting Started with Salesforce Flow – Part 24 (Automatically Assign Permission Sets to New User)
  • Social Media

    • View Automationchampion’s profile on Facebook
    • View Automationchamp’s profile on Twitter
    • View Rakeshistom’s profile on GitHub