Integration Procedure data flow and invocation
How an Integration Procedure builds its data JSON step by step, how later steps read earlier output with %ElementName:node% merge fields, and how Omniscripts, Flexcards, Flows, REST calls (GET or POST) and Apex (Type_SubType through the Connect API) invoke it.
Design and configure server side processes to integrate and orchestrate data between systems.
~7 min read · 3 practice questions ·
What the exam expects
- Trace how an Integration Procedure orchestrates Salesforce and external data in one server call, and predict the data JSON after each step.
- Reference an earlier step's output in a later step with an
%ElementName:node%merge field, inside literal text or a formula. - Invoke an Integration Procedure from an Omniscript, a Flexcard, a Flow, a REST call and Apex, and pick the right HTTP method for a request body.
- Call it from Apex with the Connect API using the Type_SubType identifier, and know the Enhanced Runtime Performance prerequisite.
Exam scope: the exam guide says a Developer candidate is not expected to have LWC, Apex or Angular development experience. Know that Flows call a procedure through an Apex class with an @InvocableMethod method, that Apex uses the Connect API with Type_SubType, and what the call returns (response as a List<String>, a job Id under IPResult with useQueueable); writing the Apex class itself is code-level detail you can skip.
Key terms: data JSON (the shared JSON every step reads from and writes to), element name (the node a step's output is stored under), merge field (%Step:node% reference to a data JSON value), Type_SubType (the unique identifier used to call the procedure), Connect API (ConnectAPI.OmniDesignerConnect.integrationProcedureExecute, the Apex entry point).
Key facts
- Detail
- Under a node named after the step's element name
- Detail
%Element:node%, colons between levels
- Detail
- Start with
=, as in=%Inputs:GrossIncome% * 0.7
- Detail
- GET can't pass data with a JSON request body
- Detail
- Apex class with @InvocableMethod
- Detail
- Type_SubType, such as Auto_CreateUpdateQuote
- Detail
- Enhanced Runtime Performance enabled on Omnistudio Settings
- Detail
responseis aList<String>; deserialize entry 0, then readresult
- Detail
- Not supported on Standard Runtime
- Why does
%status:code%return nothing when an HTTP Action named PingCarrier produced the status? - When must a REST caller use POST rather than GET?
- When does an Apex call to integrationProcedureExecute not route through the Connect API?
- What identifier does Apex pass for Type orders and SubType syncStatus?
The questions are free to read. Answers with their sources and self-grading are included with the pack.
Keep reading with the Omnistudio Developer pack
- Core concepts
- Exam traps
- Worked scenario
The pack includes:
- All 46 lessons of the Omnistudio Developer guide, with reading progress
- Interactive decision walks and step-by-step sequence steppers
- Inline practice questions and one-click topic practice (3 questions for this lesson)
- An official source cited for every claim
- An AI tutor that answers from the guide
- Unlimited timed practice exams