Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Documentation

...

  • Create a Chatter Post
  • Create a Record
  • Automate Publisher Actions
  • Automate Flows
  • Update Records
    • Related Records - up the chain
    • Related Records - update multiple records below the current record.
    • Related Records - update multiple records below the current record based on a criteria. 
  • Coming in Winter '17 - call a Process from a Process - this may stop the issue of having to have the same criteria in each node - but I have to play with it for real. 
  • Invocable Actions - you need to understand what they are and why you would use them. 
  • You can now have multiple "trues" 

Things to Know

Processes are just Flows behind the scenes - see Process Builder Behind the Scenes for how you can tell. 

...

  • You can't change the object that the Process runs from after you create the process. But workflow rules are like that too.  
  • You can't add new criteria in the middle of a process. You can now. Create it at the bottom and re-order it
  • You can't reorder criteria in the process. You can now. 
  • Why oh why can't you just go to the flow that is created by the process, modify that, and have it still open in Process Builder if it validates as a flow that works in Process Builder. 
  • The Name and description don't copy over. Vote for this idea! https://success.salesforce.com/ideaView?id=08730000000DqB7AAK

Emails

  • They do now! 
  • You can use only email alerts that are associated with the same object that the process is associated with. The record that started the process is used as the starting point for any merge fields that are used in the email alert. Similar to workflows. 

...

Info
titleExample

I want to enter values on the Contract that are stored on the Account. Default values from the account.

One is the Primary Contact for that Account that the Contract is for - so that's a lookup value. Lookup values can now be set by Process Builder - Yay! So it should be easy, right? Wrong.

The other defaults are picklist values - eg Contract Type and Contract Process

I only want the defaults to be updated IF the Contract is not Activated yet, and IF the Account is changed. I don't want to override any values inadvertently that may have been changed from the default. It is not likely that the Account gets changed on a Contract, but you have to allow for this.

So, my first criteria node (in pseudocode) is

  • IF(AND(ISCHANGED(Account)) ,
  • NOT(ISBLANK(Account)),
  • Status <> "Activated')

Then my Immediate actions on that criteria are Update Record, set:

  • Contract Type from Account.Contract Type
  • Contract Process from Account.Contract Process.

Now, I SHOULD be able to put in a third update here - update Primary Contact from Account.Primary Contact BUT we run into this issue. https://help.salesforce.com/apex/HTViewSolution?id=000212174&language=en_US - the Process Builder fails IF the Primary Contact on Account is blank.

So, you would think, well, I will just add another criteria to my process to keep it all in the same process. Wrong. Yep, I did this - this is why I'm writing this example.

Second criteria node

  • IF(AND(ISCHANGED(Account)) ,
  • NOT(ISBLANK(Account)),
  • Status <> "Activated')
  • NOT(ISBLANK(Account.Primary Contact)).

Now, let's think about this - we still don't want to set the primary contact on the Contract unless ALL those criteria are still true. HOWEVER, the process will NEVER get there because Process Builder is very dumb - it only handles TRUE/FALSE. After the first criteria node is executed it will ONLY execute the second criteria node IF the criteria in the first node is FALSE. This has changed now, but I don't know how it would change this issue.

No. I want to execute the process again (recursion) AND with the same criteria - just the one additional criteria.

This help document comes into play https://help.salesforce.com/apex/HTViewHelpDoc?id=process_advanced_considerations.htm&language=en_US but I am not 100% sure I'm reading it right. "ISCHANGED always evaluates to false when a record is first created". Yes, I get that. I am also not changing the account in this (or any other) process, so I can be confident that ISCHANGED is correct for the first node, but I don't know whether the recursion on the process would mean that ISCHANGED will be true or false on the second node. But it doesn't matter because under no circumstances will anything get to the second node because I only want to do any of this stuff when ISCHANGED is true.

So, my options are - create 2 processes both with the same criteria - Nope. Hard to maintain (and actually I want three or 4 lookup fields updated). So it's off to create a Flow for me!. Flows are going to contain all the logic in one place and be much easier to see the logic and build.

...

  • Can't search on the fields
  • You have to scroll down to see the whole fields list
  • Clicking on the name of a field with a related list just selects the field - you have to click on the arrow. 

Emails

  • NOTE: You are NOT searching for email templates, you are searching for email alerts already created in the Workflows area. 
  • Email search only searches on the API name of the email alert.
  • Can't send emails from org wide addresses - now you would probably want to do this for about 99% of your emails https://success.salesforce.com/issues_view?id=a1p30000000T5cTAAS. (However, I was able to send an email like this. Weird). 

...

Filter by label (Content by label)
showLabelsfalse
max99
spacesSF
showSpacefalse
cqllabel = "process_builder" and space = "SF"
labelsprocess_builder

As you may notice, I'm not a fan of process builder - YET! and I've made a comment on the button click admin post mentioned above.