You are here:
External Object Considerations for Flows
Keep these considerations in mind when building flows that include external objects.
Required Editions
| View supported editions. |
- When you create or update external object records, don’t set values for indirect lookup relationships that map to a different data type on the external system. For example, don’t set a value for a Text indirect lookup relationship that maps to a Date value on the external system.
- To find the Salesforce record linked to from an external object by an indirect lookup
relationship, match the parent object’s Id field to the ID in the
indirect lookup relationship field. Select the indirect lookup relationship, and add
.Id before the closing curly bracket. For example, an indirect
lookup relationship connects Contact (parent standard object) to Social Media post (child
external object). In a flow, the record variable {!socialMediaPost}
contains field values for a social media post. To find the parent contact record, in a Get
Records element, filter
by:
Id Equals {!socialMediaPost.indirectLookupRelationship_c__c.Id} - To find the parent external object record linked to by an external lookup relationship,
match the parent record’s external ID to the external lookup relationship on the child
record. For example, an external lookup relationship connects Product Catalog Item (parent
external object) to Case (child standard object). In a flow, the record variable
{!case} contains field values for a support case. To find the
parent product catalog item record, in a Get Records element, filter
by:
ExternalId Equals {!case.externalLookupRelationship_c__c} -
If Salesforce creates, updates, or deletes data in
your org and then accesses external data in the same transaction, an error occurs. In your
flow, we recommend using a separate transaction to access data in an external system. To
do so, end the prior transaction by adding a screen or local action to a screen flow or a
Wait element to an autolaunched flow. If you use a Wait element, don't use a record-based
resume time.
For example, a screen flow creates a contact and then displays a confirmation screen. Next, the flow updates the contact in the external system. The flow doesn’t fail because it uses a separate transaction to access the external data.
- Don’t update the External ID and Display URL fields in a process or flow.
- Record-change processes aren’t supported.
- A process or flow must
save or commit changes to a standard or a custom object before changing an external object
within the same transaction. To commit changes to a standard or custom object, you have
different options depending on the tool. After an action that changes a standard or custom
object record:
- In Flow Builder, add a screen, local action, or Wait element that pauses until a flow-based time occurs.
- In Process Builder, add a scheduled action.
Did this article solve your issue?
Let us know so we can improve!

