When you go to write a flow, think about its purpose, what you want to accomplish with your flow, and what kind of data you will be handling. A flow should be robust and able to continue running and moving data appropriately, even in unique and potentially unforeseen circumstances. In order to do this, keep the following in mind while building your flows.
Before sending data to another system, verify the data does not already exist in that system
Most flows result in an action that sends data between connectors, from one external system to another. Before posting an action that is going to create a new record, first check to make sure the data does not already exist elsewhere in a different record. You don’t want the data to be duplicated in the same system.
One way to do this is to add a Lookup step to your flow to look for the data in the system.
If the Lookup step returns no data, you send the data into the system.
If the Lookup does return data, add a Conditional step to your flow that will skip the Connector Action step in this condition.
Verify that a property or output exists (perform null checks)
Check that a property or output exists before referencing it in a flow step. This process is sometimes referred to as performing a null check, as you check to make sure that the object returns a value other than null.
You can do this by adding a Conditional step to your flow to check for the existence of a specific property or output.
If the conditional returns null, you know there is an issue with your property or output and you can fix your flow.
Select properties in Lookup steps to improve the efficiency of a flow
When you have a Lookup step, be aware of how much data is going into the flow. Define the specific properties from the record that you want to look up so your flow has less data to filter.