<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Sid]]></title><description><![CDATA[Oracle ACE | AI Transformation Leader with a soft spot for HR. Field notes from the frontline of AI in enterprise. Occasional existential crisis.]]></description><link>https://www.sidmalik.uk</link><image><url>https://substackcdn.com/image/fetch/$s_!CUUX!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2c07966-71a2-4c49-a5be-b13d59ca9cf7_1203x1203.png</url><title>Sid</title><link>https://www.sidmalik.uk</link></image><generator>Substack</generator><lastBuildDate>Sun, 13 Sep 2026 10:57:55 GMT</lastBuildDate><atom:link href="https://www.sidmalik.uk/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Sid]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[sidbuilds@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[sidbuilds@substack.com]]></itunes:email><itunes:name><![CDATA[Sid M.]]></itunes:name></itunes:owner><itunes:author><![CDATA[Sid M.]]></itunes:author><googleplay:owner><![CDATA[sidbuilds@substack.com]]></googleplay:owner><googleplay:email><![CDATA[sidbuilds@substack.com]]></googleplay:email><googleplay:author><![CDATA[Sid M.]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[When Widgets Don’t Render: Debugging Oracle Fusion Agentic Applications]]></title><description><![CDATA[Hands-on notes from three days in a 26C: the complete patternId list, the two-part setup and four common reasons a widget fails to appear.]]></description><link>https://www.sidmalik.uk/p/when-widgets-dont-render-debugging</link><guid isPermaLink="false">https://www.sidmalik.uk/p/when-widgets-dont-render-debugging</guid><dc:creator><![CDATA[Sid M.]]></dc:creator><pubDate>Mon, 31 Aug 2026 13:40:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!j8AO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F540d6f15-9220-4b80-abfd-a5330e39d31f_810x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I spent 17&#8211;19 August building on a 26C pod in Oracle&#8217;s partner enablement labs. As I worked through the labs, the app&#8217;s summary area sometimes returned text when I expected a widget, displayed the wrong one or stayed blank. Most of those cases came down to the App Experience settings and the prompts being out of sync.</p><p>In <a href="https://www.sidmalik.uk/p/inside-an-oracle-fusion-agentic-app">my earlier piece on what is inside a Fusion agentic app</a>, I listed the seven widgets available in 26B, along with their pattern IDs and Oracle&#8217;s guidance on when to use each one. The <a href="https://docs.oracle.com/en/cloud/saas/readiness/common/26c/common26c/26C-common-wn-f50736.htm">26C readiness note</a> adds Multi-Card and Artifact Preview, bringing the total to nine.</p><h2><strong>The short version</strong></h2><ul><li><p><strong>26C adds two widgets, taking the total from seven to nine.</strong> Oracle&#8217;s readiness note identifies Multi-Card and Artifact Preview as the additions, and the current widget guide lists their pattern IDs as <code>multiCardWidget</code> and <code>artifactPreviewWidget</code>.</p></li><li><p><strong>In the lab authoring flow, two things have to agree.</strong> The widget must be selected in the App Experience settings on the <code>InitDisplay</code> LLM node and named in the instructions available to the agent. If those two places disagree, you can get the wrong widget or no widget.</p></li><li><p><strong>The prompt controls the layout.</strong> In Lab 3, I added two columns to a multi-record widget by changing the field list in the Init Display User Prompt. There was no separate schema or configuration screen to update.</p></li><li><p><strong>Set </strong><code>readOnly</code><strong> explicitly on </strong><code>recordWidget</code><strong>.</strong> In the training pod, leaving it unspecified produced different values across runs.</p></li><li><p><strong>Actions can be assigned row by row.</strong> One row can be clickable while the next is not, even within the same list.</p></li><li><p><strong>There is a second identifier set.</strong> The LLM output uses <code>patternId</code> values. Oracle&#8217;s public 26C sample workflows also contain <code>ORA_LAYOUT_*</code> values under <code>aiAppOutputSpecification.dataDisplay.layouts</code>. A training slide placed similar values in an app-level <code>displayWidgetList</code>, but I have not reproduced that exact field or its scope.</p></li></ul><h2><strong>The nine widgets in 26C</strong></h2><ul><li><p><strong>Chart</strong> (<code>chartWidget</code>) for trends over time, comparisons across categories or proportions.</p></li><li><p><strong>Card</strong> (<code>cardWidget</code>) for a single alert or update, with error, warning and info variants.</p></li><li><p><strong>Messages List</strong> (<code>messageListWidget</code>) for several alerts, with optional priority and actions on each item. Oracle&#8217;s earlier CoE guide calls this one &#8220;Message List&#8221;.</p></li><li><p><strong>Change List</strong> (<code>changeListWidget</code>) for comparing a KPI&#8217;s current and previous values.</p></li><li><p><strong>Multi Record</strong> (<code>multiRecordWidget</code>) for tabular data with row-level status and actions.</p></li><li><p><strong>Record</strong> (<code>recordWidget</code>) for showing one record as either a detail view or an editable form, using <code>readOnly</code> true or false.</p></li><li><p><strong>Sankey</strong> (<code>sankeyWidget</code>) for a flow or funnel where relative volume matters.</p></li><li><p><strong>Multi Card</strong> (<code>multiCardWidget</code>, new in 26C) for displaying several peer cards in one widget.</p></li><li><p><strong>Artifact Preview</strong> (<code>artifactPreviewWidget</code>, new in 26C) for reviewing text, rich text, structured rich text, PDF or URL content in place.</p></li></ul><p>Use <code>multiCardWidget</code> when related cards belong together in one widget. <code>cardWidget</code> is for a single update; <code>messageListWidget</code> presents a list. The session slides listed text, rich text, PDF and URL support for Artifact Preview. Oracle&#8217;s <a href="https://docs.oracle.com/en/cloud/saas/fusion-ai/26c/aiaas/enable-workflows-to-generate-widgets-in-agentic-applications.html">current 26C widget guide</a> now confirms those formats, adds structured rich text, and notes that PDF and URL content remains read-only even when edit mode is requested.</p><p>Widget output is wrapped in <code>&lt;oraInfoDisplay&gt;</code> and identifies the widget with <code>patternId</code>. Be careful with the payload wrapper. Oracle&#8217;s current 26C page describes a widget-specific <code>config</code> block and uses it in most examples, while its Artifact Preview example uses <code>properties</code>. Older Fusion CoE examples also use <code>properties</code>, often alongside <code>title</code> and <code>description</code>. I would follow the example for the target release and widget instead of assuming one four-key wrapper applies everywhere. Oracle&#8217;s <a href="https://blogs.oracle.com/fusioncoe/agentic-apps-widgets">Agentic Apps &#8211; Widgets</a> article remains useful for the original seven property schemas.</p><h2><strong>A widget has to be enabled and prompted</strong></h2><p>In the authoring flow used in the labs, the training described widget setup as a two-step sequence.</p><p><strong>First, enable the widget.</strong> On the <code>InitDisplay</code> LLM node, the App Experience section contains a picker labelled &#8220;Select the widgets you want to use&#8221;. In the Lab 3 example below, <code>Multi Record</code> is the only selection. The same section has toggles for actions, communications and PowerPoint generation, as well as an Instructions box. Its help text asks for clear, everyday guidance on when and how the widgets should be used.</p><p>For an app designed around one widget type, I keep the selection narrow. There is little benefit in enabling five when the instructions use only one.<br></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!j8AO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F540d6f15-9220-4b80-abfd-a5330e39d31f_810x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!j8AO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F540d6f15-9220-4b80-abfd-a5330e39d31f_810x768.png 424w, https://substackcdn.com/image/fetch/$s_!j8AO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F540d6f15-9220-4b80-abfd-a5330e39d31f_810x768.png 848w, https://substackcdn.com/image/fetch/$s_!j8AO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F540d6f15-9220-4b80-abfd-a5330e39d31f_810x768.png 1272w, https://substackcdn.com/image/fetch/$s_!j8AO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F540d6f15-9220-4b80-abfd-a5330e39d31f_810x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!j8AO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F540d6f15-9220-4b80-abfd-a5330e39d31f_810x768.png" width="810" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/540d6f15-9220-4b80-abfd-a5330e39d31f_810x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:810,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:221016,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.sidmalik.uk/i/212838764?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F540d6f15-9220-4b80-abfd-a5330e39d31f_810x768.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!j8AO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F540d6f15-9220-4b80-abfd-a5330e39d31f_810x768.png 424w, https://substackcdn.com/image/fetch/$s_!j8AO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F540d6f15-9220-4b80-abfd-a5330e39d31f_810x768.png 848w, https://substackcdn.com/image/fetch/$s_!j8AO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F540d6f15-9220-4b80-abfd-a5330e39d31f_810x768.png 1272w, https://substackcdn.com/image/fetch/$s_!j8AO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F540d6f15-9220-4b80-abfd-a5330e39d31f_810x768.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Second, describe the output you want</strong>. The Initial Graphics Display Instructions tell the agent how to use the enabled widget. Its response includes the <code>patternId</code> and configuration block that the UI renders.</p><p>The lab guidance put app-wide formatting and widget rules in the App Experience tab&#8217;s Instructions field. Guidance for one agent went in that agent&#8217;s prompt or its workflow LLM node prompt. This keeps the same general widget instructions from being copied and maintained across several agents.<br></p><h2><strong>Adding two columns in Lab 3</strong></h2><p>Lab 3, Exercise 1 made the prompt&#8217;s role especially clear. The starting point was a multi-record widget showing deals. The exercise asked us to add Revenue (USD) and Win Prob (%) as two new columns. There was no column designer and no schema change. The only required layout edit was to the field list in the Init Display User Prompt:</p><pre><code><code>Return as multiRecordWidget with:
- Name
- RecommendedAction (if present)
- Deal Risk
- Revenue (USD)
- Win Prob (%)</code></code></pre><p>Six steps get that edit into a running app.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vF3f!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb065970a-3b78-46ec-aeab-f4e134c307d7_1103x445.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vF3f!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb065970a-3b78-46ec-aeab-f4e134c307d7_1103x445.png 424w, https://substackcdn.com/image/fetch/$s_!vF3f!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb065970a-3b78-46ec-aeab-f4e134c307d7_1103x445.png 848w, https://substackcdn.com/image/fetch/$s_!vF3f!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb065970a-3b78-46ec-aeab-f4e134c307d7_1103x445.png 1272w, https://substackcdn.com/image/fetch/$s_!vF3f!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb065970a-3b78-46ec-aeab-f4e134c307d7_1103x445.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vF3f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb065970a-3b78-46ec-aeab-f4e134c307d7_1103x445.png" width="1103" height="445" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b065970a-3b78-46ec-aeab-f4e134c307d7_1103x445.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:445,&quot;width&quot;:1103,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:64832,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.sidmalik.uk/i/212838764?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb065970a-3b78-46ec-aeab-f4e134c307d7_1103x445.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vF3f!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb065970a-3b78-46ec-aeab-f4e134c307d7_1103x445.png 424w, https://substackcdn.com/image/fetch/$s_!vF3f!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb065970a-3b78-46ec-aeab-f4e134c307d7_1103x445.png 848w, https://substackcdn.com/image/fetch/$s_!vF3f!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb065970a-3b78-46ec-aeab-f4e134c307d7_1103x445.png 1272w, https://substackcdn.com/image/fetch/$s_!vF3f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb065970a-3b78-46ec-aeab-f4e134c307d7_1103x445.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The full change took six steps:</p><ol><li><p>Open the Deal Risk workflow agent and locate the <code>InitDisplay</code> branch of the message-hint switch.</p></li><li><p>Open the <code>Init Display</code> LLM node, code <code>INIT_DISPLAY</code>. Its panel contains Name, Code and Error Handler, the language and chat-history toggles, and the two prompts.</p></li><li><p>Find the rendered field list in the User Prompt. Add Revenue (USD) after Deal Risk, followed by Win Prob (%).</p></li><li><p>In App Experience, confirm that <code>Multi Record</code> is selected under &#8220;Select the widgets you want to use&#8221;. The lab also has actions and communications enabled. Match those settings when reproducing the exercise, but treat them as separate capabilities; communications are not what makes a table row clickable.</p></li><li><p>Publish the workflow agent. In the lab environment, draft changes did not reach the running app unless <code>useDraftWorkflowWhileDeveloping</code> was set in the app JSON. The field now appears in Oracle&#8217;s public 26C sample app files with both <code>true</code> and <code>false</code> values, although I have not found its runtime behaviour explained in the prose documentation. Publishing remains the safest default.</p></li><li><p>Reopen the app and run it. The table should now contain both columns.</p></li></ol><p>The exercise changed how I think about prompt governance. If a prompt edit can add or remove a column, the prompt is part of the layout specification. <strong>It deserves the same version control and regression testing as a page definition.</strong> On many of the programmes I see, prompts are still reviewed mainly as copy, which leaves this part of the interface under-governed.</p><h2><strong>Four common reasons a widget does not render</strong></h2><p>The following failures came up several times during the sessions. Oracle&#8217;s current documentation now confirms the two-step enable-and-prompt requirement and the need for specific widget instructions. The run-to-run <code>readOnly</code> behaviour and the exact failure symptoms below remain observations from the training pod, so I still treat the list as a practical pre-flight check rather than a product guarantee.</p><ol><li><p><strong>The settings and prompt disagree.</strong> If a widget is enabled but never named in the prompt, the agent has not been told to use it. If it is named but not enabled, the agent is not allowed to use it. The UI does not flag either mismatch.</p></li><li><p><code>readOnly</code><strong> is not specified.</strong> With <code>recordWidget</code>, the same prompt can produce <code>readOnly: true</code> on one run and <code>readOnly: false</code> on another. If the user needs an editable form, state that directly in the instructions.</p></li><li><p><strong>Several widgets are enabled without selection criteria.</strong> You can enable more than one, but the agent then needs a rule for choosing between them and enough data for each valid choice. If you enable a chart and a multi-record table but provide five rows with no series, there is nothing for the chart branch to plot.</p></li><li><p><strong>The requested content is underspecified.</strong> The model generates the widget JSON from your instructions, so it needs enough detail to shape the response correctly. Name both the widget and the fields you want.</p></li></ol><p>Most of these are straightforward configuration errors. I now check the widget picker, the prompt and the available data before rewriting any instructions. Otherwise, it is easy to spend an hour polishing a prompt that was never the source of the failure.</p><h2><strong>Actions can vary by row</strong></h2><p>In a message list or multi-record widget, actions are attached at row level. A row with a genuine recommendation can be clickable while the next row has no action at all.</p><p>The trainers also drew a comparison with Redwood tables. I have not validated that side of the comparison and would not present it as a Redwood limitation without doing so. What I did confirm is the agentic-app behaviour: actions can vary from one row to the next.</p><p>That row-level control is useful when only two of ten records have a meaningful next step. Make those two clickable and leave the other eight alone.</p><h2><code>patternId</code><strong> and </strong><code>ORA_LAYOUT_*</code><strong> appear at different layers</strong></h2><p>One session slide showed a CLI-generated app configuration whose <code>displayWidgetList</code> array used a second naming scheme: <code>ORA_LAYOUT_CARD</code>, <code>ORA_LAYOUT_CHANGE_LIST</code> and <code>ORA_LAYOUT_RECORD</code>.</p><p>Oracle&#8217;s public <a href="https://github.com/oracle/fusion-ai-studio">Fusion AI Studio sample repository</a> now confirms the <code>ORA_LAYOUT_*</code> vocabulary. In the 26C branch, sample workflow files store values such as <code>ORA_LAYOUT_MESSAGES_LIST</code>, <code>ORA_LAYOUT_CHANGE_LIST</code>, <code>ORA_LAYOUT_CARD</code>, <code>ORA_LAYOUT_RECORD</code>, <code>ORA_LAYOUT_MULTIRECORD</code>, <code>ORA_LAYOUT_CHART</code> and <code>ORA_LAYOUT_MULTICARD</code> under <code>aiAppOutputSpecification.dataDisplay.layouts</code>. The same nodes use familiar <code>patternId</code> values in their widget instructions.</p><p>That is good evidence that the two vocabularies belong to different parts of the configuration. It does not confirm the slide&#8217;s exact <code>displayWidgetList</code> field or prove that it is an app-wide allow-list: that field does not appear in the current public samples I checked. For pro-code debugging, inspect the workflow node&#8217;s <code>dataDisplay.layouts</code> array and compare it with the widget requested in the prompt. If your app export also contains <code>displayWidgetList</code>, verify its behaviour in that release before depending on it.</p><p>Widgets are not limited to the <code>InitDisplay</code> region. Oracle&#8217;s <a href="https://docs.oracle.com/en/cloud/saas/fusion-ai/26c/aiaas/create-and-enable-workflows-for-using-in-agentic-apps.html">workflow guide</a> says Query responses can include displays and that <code>AdditionalContent</code> requests load extra panels; the widget guide uses <code>&lt;oraInfoDisplay&gt;</code> for widget output. The public samples place <code>dataDisplay.layouts</code> at node level, so check the node handling the relevant path rather than assuming one list covers the whole app.</p><h2></h2><p><em>Sources: hands-on labs at Oracle&#8217;s partner enablement, 17-19 August 2026; the Public lab guides issued alongside them, 26C documentation and the public 26C readiness note. Views are my own, not my employer&#8217;s or Oracle&#8217;s.</em></p>]]></content:encoded></item><item><title><![CDATA[Your Agentic App Has No Backend]]></title><description><![CDATA[An Oracle ACE's hands-on account of the message-hint protocol, why a workflow starts again on every interaction, and the console command that reveals the execution sequence.]]></description><link>https://www.sidmalik.uk/p/your-agentic-app-has-no-backend</link><guid isPermaLink="false">https://www.sidmalik.uk/p/your-agentic-app-has-no-backend</guid><dc:creator><![CDATA[Sid M.]]></dc:creator><pubDate>Wed, 26 Aug 2026 14:20:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!dsN3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffd97089-6b57-483f-8bd9-964872fc3a58_1847x909.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>When a Fusion architect looks at an agentic app, the first questions are usually about tables and REST services. Those are reasonable questions for almost everything else Oracle has put into Fusion. Here, however, the answer is different.</p><p>An agentic app does not have its own tables, views, business objects or REST APIs. Its workflow agent provides the backend behaviour. I spent three days building against this model during Oracle&#8217;s partner enablement in August. My earlier article, <a href="https://www.sidmalik.uk/p/inside-an-oracle-fusion-agentic-app">Inside an Oracle Fusion Agentic App</a>, described the app in the terms used by the documentation. This article looks at the execution underneath it, the design consequences and the console command that lets you observe it directly.</p><h2>Quick Summary</h2><ul><li><p><strong>The app has no separate data layer.</strong> It does not have tables, a business object layer or a REST API layer of its own; the workflow agent fills that role. This was stated in the sessions, rather than in a published source I can cite.</p></li><li><p><strong>A single label routes each request.</strong> The app includes <code>{{$context.$app.$OraMessageHint}}</code> on every call. The workflow&#8217;s first substantive node is a Switch that reads it. The published set contains ten hints, with <code>InvokeCapability</code> added in 26C.</p></li><li><p><strong>Each invocation begins at the top of the workflow.</strong> Business object outputs do not persist between hints, conversation-scoped variables do not survive, and each hint arrives as a fresh session. I observed this in three different ways during the labs, but it remains on my re-verification list.</p></li><li><p><strong>The browser-console command </strong><code>turnOnDebugging()</code><strong> shows the load sequence.</strong> It logs the hint type, the duration for each hint and each contributing agent&#8217;s <code>Partial Summary</code> before the &#8220;Oracle AI Apps Orchestrator&#8221; combines them. The command appears in Oracle&#8217;s Public lab guide, so this is not simply a trick demonstrated on a slide.</p></li><li><p><strong>The number of sections affects latency and cost.</strong> Every contributing agent runs when the app loads. Trainers gave six or seven as the practical ceiling.</p></li><li><p><strong>Three settings determine whether an agent works in the app.</strong> If the agent is missing from the builder dropdown, or returns plain text instead of a widget, one of those prerequisites is usually the cause.</p></li></ul><p>Read on for the full breakdown.</p><h2>The Workflow Agent Provides the Behaviour</h2><p>When an agentic app calls an agent, it passes a label in <code>{{$context.$app.$OraMessageHint}}</code>. The label tells the workflow what kind of response the app expects.</p><p>The lab guide describes a hint as a label sent by the application to a workflow agent to identify the purpose of the request and the expected response. Oracle&#8217;s Fusion CoE article, <a href="https://blogs.oracle.com/fusioncoe/agentic-apps-message-hints">Agentic Apps - Message Hints</a>, lists every hint and its trigger, so I will not repeat the table here.</p><p>The first real node in the workflow is a Switch on the hint value. Each branch gives the same agent a different job. <code>Summary</code> produces the strapline, <code>InitDisplay</code> builds the widgets and <code>Query</code> answers a typed question. The workflow therefore has one agent, ten entry points and one label that selects the entry point.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dsN3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffd97089-6b57-483f-8bd9-964872fc3a58_1847x909.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dsN3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffd97089-6b57-483f-8bd9-964872fc3a58_1847x909.png 424w, https://substackcdn.com/image/fetch/$s_!dsN3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffd97089-6b57-483f-8bd9-964872fc3a58_1847x909.png 848w, https://substackcdn.com/image/fetch/$s_!dsN3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffd97089-6b57-483f-8bd9-964872fc3a58_1847x909.png 1272w, https://substackcdn.com/image/fetch/$s_!dsN3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffd97089-6b57-483f-8bd9-964872fc3a58_1847x909.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dsN3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffd97089-6b57-483f-8bd9-964872fc3a58_1847x909.png" width="1456" height="717" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ffd97089-6b57-483f-8bd9-964872fc3a58_1847x909.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:717,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:739384,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.sidmalik.uk/i/212835577?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffd97089-6b57-483f-8bd9-964872fc3a58_1847x909.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dsN3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffd97089-6b57-483f-8bd9-964872fc3a58_1847x909.png 424w, https://substackcdn.com/image/fetch/$s_!dsN3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffd97089-6b57-483f-8bd9-964872fc3a58_1847x909.png 848w, https://substackcdn.com/image/fetch/$s_!dsN3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffd97089-6b57-483f-8bd9-964872fc3a58_1847x909.png 1272w, https://substackcdn.com/image/fetch/$s_!dsN3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffd97089-6b57-483f-8bd9-964872fc3a58_1847x909.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This changes the data-model discussion with a client. Anything that touches Fusion data lives inside a workflow branch and runs there under the requesting user's security. The useful architecture questions are which operations each agent may perform and on whose behalf.</p><h2><strong>Each Call Starts Again</strong></h2><p>The detail that catches people is that the workflow retains no state between these calls. Every call enters at the top and evaluates the Switch again.</p><p>The session phrasing was that every single time the app calls a workflow, it starts from the top. The Day 2 labs approached this from three directions. A business object output fetched for one hint was unavailable to the next. Conversation-scoped variables did not survive. Each hint behaved like a new session. The behaviour was consistent, but I saw it in a training pod rather than in a documented guarantee. I am reproducing it in my own environment before presenting it to a client as a firm constraint.</p><p>If the behaviour holds, it has three practical consequences:</p><ul><li><p><strong>Keep business object calls inside the relevant hint branches and expect some repetition.</strong> If both <code>InitDisplay</code> and <code>Query</code> need a worker&#8217;s assignment record, each branch fetches it. There is no shared cache, and a common node placed before the Switch would run for every hint, including those that do not need the data.</p></li><li><p><strong>Carry the required context in the payload.</strong> An action must receive what it needs in the request or fetch it within its own branch. An action that relies on a value calculated by the display branch thirty seconds earlier may appear to work in a demo and fail on the next click.</p></li><li><p><strong>Only the </strong><code>Query</code><strong> branch receives conversational memory, and it receives that memory with the request.</strong> When <code>Include chat history</code> is enabled, the conversation is handed to the node on each call. The workflow itself still retains nothing. The rest of the app is answering ten distinct requests about one screen, rather than maintaining a conversation.</p></li></ul><p>This design isolates the ten call types from one another: a failure in one region cannot corrupt state used by another. The cost is repeated data retrieval, which needs to be included in the design and estimate.</p><h2><strong>Observing the Sequence With </strong><code>turnOnDebugging()</code></h2><p>Open an agentic app, open the browser console, enter <code>turnOnDebugging()</code> and press Enter. The console responds with &#8220;Agentic Apps debug mode enabled&#8221;. Refresh the page and it logs every agent response as it arrives, including the hint type and elapsed time. Oracle documents this in steps 21 to 23 of its Lab 1 guide, which is marked Public on every page.</p><p>With debugging enabled, a refresh shows the five startup hints. Filter the console for &#8220;Summary&#8221; and you can see the consolidation: each contributing agent returns a <code>Partial Summary</code>, after which the &#8220;Oracle AI Apps Orchestrator&#8221; combines them into the summary displayed in the app. What looks like a single paragraph in the interface is produced by a fan-out and merge.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jPAX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cebc0df-ed0a-45d5-ae07-d5eb97746f97_1883x854.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jPAX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cebc0df-ed0a-45d5-ae07-d5eb97746f97_1883x854.png 424w, https://substackcdn.com/image/fetch/$s_!jPAX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cebc0df-ed0a-45d5-ae07-d5eb97746f97_1883x854.png 848w, https://substackcdn.com/image/fetch/$s_!jPAX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cebc0df-ed0a-45d5-ae07-d5eb97746f97_1883x854.png 1272w, https://substackcdn.com/image/fetch/$s_!jPAX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cebc0df-ed0a-45d5-ae07-d5eb97746f97_1883x854.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jPAX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cebc0df-ed0a-45d5-ae07-d5eb97746f97_1883x854.png" width="1456" height="660" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9cebc0df-ed0a-45d5-ae07-d5eb97746f97_1883x854.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:660,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:241008,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.sidmalik.uk/i/212835577?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cebc0df-ed0a-45d5-ae07-d5eb97746f97_1883x854.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jPAX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cebc0df-ed0a-45d5-ae07-d5eb97746f97_1883x854.png 424w, https://substackcdn.com/image/fetch/$s_!jPAX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cebc0df-ed0a-45d5-ae07-d5eb97746f97_1883x854.png 848w, https://substackcdn.com/image/fetch/$s_!jPAX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cebc0df-ed0a-45d5-ae07-d5eb97746f97_1883x854.png 1272w, https://substackcdn.com/image/fetch/$s_!jPAX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cebc0df-ed0a-45d5-ae07-d5eb97746f97_1883x854.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The log contains more than hint responses. <code>[ora.app] Saving application metadata</code> prints the app configuration, including its <code>pagePattern</code>. The session app used <code>swimlanesPattern</code>, which shows that layout belongs to app metadata rather than to an individual agent.</p><p>If an app feels slow, these per-hint timings let you identify the agent responsible. There is an important handling point: the console output includes agent codes and a configuration dump. I would use it only in my own demo pod, never in a client&#8217;s environment or in a screenshot taken from one.</p><h2><strong>Why Section Count Matters</strong></h2><p>On load, every section configured to contribute to the summary receives a <code>Summary</code> hint and runs its agent. The session did not give a technical limit on the number of sections or agents in an app. It did give a practical ceiling of six or seven, because additional sections increase both load latency and AI Units consumed on every open. A 300-node workflow was offered as the example to avoid.</p><p>This makes section count part of the cost model:</p><ul><li><p><strong>A section does not necessarily need to contribute to the summary.</strong> Removing that branch, or using a dedicated summary agent, removes one call from every load rather than from a single screen.</p></li><li><p><strong>The load-time cost applies on every open.</strong> An eighth section that is useful once a week still runs for every user on every load.</p></li><li><p><strong>Workflow Settings contains useful estimate fields.</strong> Beside the exposure flag are fields for estimated cost and time saved per run, in dollars and minutes. They are underused, but they provide the figures a steering committee is likely to request.</p></li></ul><p>I would not cite six or seven as a documented limit, because it is not one. The mechanism is the defensible point: each contributing section triggers a call on each load, and the console shows those calls.</p><h2><strong>The Three Prerequisites</strong></h2><p>A common failure during the training was an agent that did not appear in the app builder&#8217;s dropdown. The trainers gave three checks, in this order:</p><ol><li><p><strong>Enable </strong><code>Expose to Agentic Apps</code><strong> in Workflow Settings.</strong> Without it, the app-experience properties do not appear on the LLM nodes, so the agent has nothing to render even if it could be selected.</p></li><li><p><strong>Publish the agent at least once.</strong> A draft-only agent is absent from the builder. This catches teams that iterate quickly but have never completed an initial publication.</p></li><li><p><strong>End every branch on an LLM node.</strong> Widget, action and communication properties exist only on that leaf node. A branch that ends with a code node and a return node can still return plain text, making the agent appear functional until the app needs a chart.</p></li></ol><p>The third issue can consume an afternoon because it produces no error. When an agent behaves unexpectedly in the builder, I work through these checks in order.</p><h2><strong>Run Profiles and a Deliberately Broken Node</strong></h2><p>The most frequent complaint in the room was the iteration loop: edit the workflow, publish it, return to the app, refresh and inspect. There are two ways to shorten it.</p><p>One is <code>useDraftWorkflowWhileDeveloping</code> in the app JSON. An agent has only two versions at a time, draft and published, and this setting directs the app to the draft while you work.</p><p>The more capable option is a run profile in the workflow debugger. Set the trigger type to Agentic App, then choose Initial Display to inspect the rendered result or Invoke Action to supply a payload in the form the app sends. In my lab, that payload was <code>ScheduleCheckin, ScheduleCheckin(101)</code>. You can use breakpoints, Step, Resume, Rerun From Node and input overrides without leaving the editor.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!y937!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f3925e3-62c2-4bc5-aff9-1e0731aeb160_1501x793.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!y937!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f3925e3-62c2-4bc5-aff9-1e0731aeb160_1501x793.png 424w, https://substackcdn.com/image/fetch/$s_!y937!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f3925e3-62c2-4bc5-aff9-1e0731aeb160_1501x793.png 848w, https://substackcdn.com/image/fetch/$s_!y937!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f3925e3-62c2-4bc5-aff9-1e0731aeb160_1501x793.png 1272w, https://substackcdn.com/image/fetch/$s_!y937!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f3925e3-62c2-4bc5-aff9-1e0731aeb160_1501x793.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!y937!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f3925e3-62c2-4bc5-aff9-1e0731aeb160_1501x793.png" width="1456" height="769" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2f3925e3-62c2-4bc5-aff9-1e0731aeb160_1501x793.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:769,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:117201,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.sidmalik.uk/i/212835577?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f3925e3-62c2-4bc5-aff9-1e0731aeb160_1501x793.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!y937!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f3925e3-62c2-4bc5-aff9-1e0731aeb160_1501x793.png 424w, https://substackcdn.com/image/fetch/$s_!y937!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f3925e3-62c2-4bc5-aff9-1e0731aeb160_1501x793.png 848w, https://substackcdn.com/image/fetch/$s_!y937!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f3925e3-62c2-4bc5-aff9-1e0731aeb160_1501x793.png 1272w, https://substackcdn.com/image/fetch/$s_!y937!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f3925e3-62c2-4bc5-aff9-1e0731aeb160_1501x793.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Oracle taught this with a deliberately broken node in Lab 2. A &#8220;Create Check-in Document&#8221; business object function returns a 400 response with five missing-value errors, so participants diagnose a real failure instead of stepping through a successful workflow. That deliberate fault is why the debugger exercise stayed with most of the room.</p><p>I would create the run profiles at the start of a build, before the publish-and-refresh loop has taken up a morning.</p><h2><strong>A Twenty-Minute Reproduction</strong></h2><p>You can reproduce the behaviour above on a pod you already use, without first building anything.</p><ol><li><p>Open one of your own agentic apps and place the browser console beside it. The labs use a compliance app with four audit agents. Enter <code>turnOnDebugging()</code> and confirm that the console replies &#8220;Agentic Apps debug mode enabled&#8221;.</p></li><li><p>Refresh the page. The five startup hints should appear in sequence, each with the responding agent and elapsed time. Filter for &#8220;Summary&#8221; to see the <code>Partial Summary</code> consolidation.</p></li><li><p>Open the same agent in Workflows. Under Settings, then Details, find Expose to Agentic Apps. The adjacent fields capture estimated time and cost saved per run.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6oQK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d8bbb67-7c43-4dc2-bb81-ef7e7ea79d1b_654x810.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6oQK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d8bbb67-7c43-4dc2-bb81-ef7e7ea79d1b_654x810.png 424w, https://substackcdn.com/image/fetch/$s_!6oQK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d8bbb67-7c43-4dc2-bb81-ef7e7ea79d1b_654x810.png 848w, https://substackcdn.com/image/fetch/$s_!6oQK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d8bbb67-7c43-4dc2-bb81-ef7e7ea79d1b_654x810.png 1272w, https://substackcdn.com/image/fetch/$s_!6oQK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d8bbb67-7c43-4dc2-bb81-ef7e7ea79d1b_654x810.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6oQK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d8bbb67-7c43-4dc2-bb81-ef7e7ea79d1b_654x810.png" width="654" height="810" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9d8bbb67-7c43-4dc2-bb81-ef7e7ea79d1b_654x810.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:810,&quot;width&quot;:654,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:42370,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.sidmalik.uk/i/212835577?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d8bbb67-7c43-4dc2-bb81-ef7e7ea79d1b_654x810.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6oQK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d8bbb67-7c43-4dc2-bb81-ef7e7ea79d1b_654x810.png 424w, https://substackcdn.com/image/fetch/$s_!6oQK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d8bbb67-7c43-4dc2-bb81-ef7e7ea79d1b_654x810.png 848w, https://substackcdn.com/image/fetch/$s_!6oQK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d8bbb67-7c43-4dc2-bb81-ef7e7ea79d1b_654x810.png 1272w, https://substackcdn.com/image/fetch/$s_!6oQK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d8bbb67-7c43-4dc2-bb81-ef7e7ea79d1b_654x810.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ol start="4"><li><p><span>Open the message-hint Switch and inspect the case values. The panel shows the ten published hints. Also note that the visible part of the case expression begins </span><code>{{$context.$triggers.</code><span>; the namespace ambiguity is discussed below.</span></p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IKTw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdef3f36c-8863-431d-9b04-9f529d27e6f1_1866x907.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IKTw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdef3f36c-8863-431d-9b04-9f529d27e6f1_1866x907.png 424w, https://substackcdn.com/image/fetch/$s_!IKTw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdef3f36c-8863-431d-9b04-9f529d27e6f1_1866x907.png 848w, https://substackcdn.com/image/fetch/$s_!IKTw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdef3f36c-8863-431d-9b04-9f529d27e6f1_1866x907.png 1272w, https://substackcdn.com/image/fetch/$s_!IKTw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdef3f36c-8863-431d-9b04-9f529d27e6f1_1866x907.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IKTw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdef3f36c-8863-431d-9b04-9f529d27e6f1_1866x907.png" width="1456" height="708" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/def3f36c-8863-431d-9b04-9f529d27e6f1_1866x907.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:708,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:729096,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.sidmalik.uk/i/212835577?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdef3f36c-8863-431d-9b04-9f529d27e6f1_1866x907.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!IKTw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdef3f36c-8863-431d-9b04-9f529d27e6f1_1866x907.png 424w, https://substackcdn.com/image/fetch/$s_!IKTw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdef3f36c-8863-431d-9b04-9f529d27e6f1_1866x907.png 848w, https://substackcdn.com/image/fetch/$s_!IKTw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdef3f36c-8863-431d-9b04-9f529d27e6f1_1866x907.png 1272w, https://substackcdn.com/image/fetch/$s_!IKTw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdef3f36c-8863-431d-9b04-9f529d27e6f1_1866x907.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ol start="5"><li><p>In Debug, create an Agentic App run profile in Initial Display mode. Run it to inspect the app output in the editor. Then add a breakpoint and step through it. Lab 2 uses the broken business object call described above, which is worth recreating simply to learn the debugger.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_qWb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F122b24e5-90c6-4118-987f-92a100d2806f_1408x789.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_qWb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F122b24e5-90c6-4118-987f-92a100d2806f_1408x789.png 424w, https://substackcdn.com/image/fetch/$s_!_qWb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F122b24e5-90c6-4118-987f-92a100d2806f_1408x789.png 848w, https://substackcdn.com/image/fetch/$s_!_qWb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F122b24e5-90c6-4118-987f-92a100d2806f_1408x789.png 1272w, https://substackcdn.com/image/fetch/$s_!_qWb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F122b24e5-90c6-4118-987f-92a100d2806f_1408x789.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_qWb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F122b24e5-90c6-4118-987f-92a100d2806f_1408x789.png" width="1408" height="789" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/122b24e5-90c6-4118-987f-92a100d2806f_1408x789.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:789,&quot;width&quot;:1408,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:352814,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.sidmalik.uk/i/212835577?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F122b24e5-90c6-4118-987f-92a100d2806f_1408x789.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_qWb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F122b24e5-90c6-4118-987f-92a100d2806f_1408x789.png 424w, https://substackcdn.com/image/fetch/$s_!_qWb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F122b24e5-90c6-4118-987f-92a100d2806f_1408x789.png 848w, https://substackcdn.com/image/fetch/$s_!_qWb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F122b24e5-90c6-4118-987f-92a100d2806f_1408x789.png 1272w, https://substackcdn.com/image/fetch/$s_!_qWb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F122b24e5-90c6-4118-987f-92a100d2806f_1408x789.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!b4-1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac9f9f20-91b1-4386-b835-1687f8e73dce_1047x621.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!b4-1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac9f9f20-91b1-4386-b835-1687f8e73dce_1047x621.png 424w, https://substackcdn.com/image/fetch/$s_!b4-1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac9f9f20-91b1-4386-b835-1687f8e73dce_1047x621.png 848w, https://substackcdn.com/image/fetch/$s_!b4-1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac9f9f20-91b1-4386-b835-1687f8e73dce_1047x621.png 1272w, https://substackcdn.com/image/fetch/$s_!b4-1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac9f9f20-91b1-4386-b835-1687f8e73dce_1047x621.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!b4-1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac9f9f20-91b1-4386-b835-1687f8e73dce_1047x621.png" width="1047" height="621" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ac9f9f20-91b1-4386-b835-1687f8e73dce_1047x621.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:621,&quot;width&quot;:1047,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:132748,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.sidmalik.uk/i/212835577?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac9f9f20-91b1-4386-b835-1687f8e73dce_1047x621.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!b4-1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac9f9f20-91b1-4386-b835-1687f8e73dce_1047x621.png 424w, https://substackcdn.com/image/fetch/$s_!b4-1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac9f9f20-91b1-4386-b835-1687f8e73dce_1047x621.png 848w, https://substackcdn.com/image/fetch/$s_!b4-1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac9f9f20-91b1-4386-b835-1687f8e73dce_1047x621.png 1272w, https://substackcdn.com/image/fetch/$s_!b4-1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac9f9f20-91b1-4386-b835-1687f8e73dce_1047x621.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Doing this with your own agents on your own pod makes the execution model observable rather than something you have to accept from my account.</p><h2>Where This Leaves You</h2><p>The most useful model is to treat an agentic app as a rendering shell with a message contract. The logic, data access and security normally associated with a backend live in branches of a workflow agent, and that workflow starts at the top on every call.<br>For an architecture review, I would therefore focus on which agent handles each hint, what it can fetch and how many contributing agents the app runs on every open. The console gives you timings for that discussion instead of relying on impressions.</p><div><hr></div><p><em>Sources: Oracle AI Agent Studio partner enablement, attended in person 17-19 August 2026. The claims, the judgements and any errors are mine. Views are my own, not my employer&#8217;s or Oracle&#8217;s.</em></p>]]></content:encoded></item><item><title><![CDATA[Harness Beats Raw Intelligence: Lessons from Oracle's New GitHub Drop]]></title><description><![CDATA[An Oracle ACE's read of the fusion-ai-studio repo: a node-by-node census of all 94 sample workflows, the evaluation harness hiding in the CLI, and what to check before your team clones it.]]></description><link>https://www.sidmalik.uk/p/harness-beats-raw-intelligence-lessons</link><guid isPermaLink="false">https://www.sidmalik.uk/p/harness-beats-raw-intelligence-lessons</guid><dc:creator><![CDATA[Sid M.]]></dc:creator><pubDate>Fri, 24 Jul 2026 17:34:02 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/6ef3d905-56ad-496a-8c94-a5a237d48338_2752x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><br><br>By the time Oracle&#8217;s 14 July live session ended, the feed had already decided the story: Chris Leone&#8217;s pro-code push, live builds within days, recaps close behind. All true, and a real milestone. But the newly published repo was hiding more than the demos let on.</p><p>The morning after, I cloned the repo instead of building an agent. Every README, all 94 sample workflows, the CLI&#8217;s full command surface, both how-to guides - with Claude reading and parsing alongside me, because 94 workflow files is not a weekend well spent by hand. The repo says more about where Oracle thinks enterprise agents are going than anything said on the Live. Some of it Oracle hasn&#8217;t said out loud at all.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.sidmalik.uk/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Sid! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>The most revealing thing in it isn&#8217;t a demo. It&#8217;s a ratio: across all 94 sample workflows, Oracle builds four deterministic nodes - plain code and branching logic, no model call - for every one LLM call. Here&#8217;s what that, and the rest of the drop, tells you.</p><p><strong>Quick summary - the headlines:</strong></p><ul><li><p><strong>The sample library is 83% not AI.</strong> Across 94 workflows there are 1,481 pipeline nodes; only 247 (16.7%) call an LLM, and plain CODE nodes outnumber LLM calls 420 to 247. Twenty-eight workflows - almost a third contain no LLM node at al - This is intentional design choice - every LLM node is a latency risk and a potential billable event.</p></li><li><p><strong>Every sample is a workflow graph.</strong> Zero .agent or .topic files ship in this drop. Read it as a steer: workflow teams are the pattern Oracle trusts inside the 60-second response window.</p></li><li><p><strong>The CLI ships a full evaluation harness</strong> - test generation, LLM-as-judge scoring, model sweeps, token analysis - that the install guide doesn&#8217;t cover yet. It&#8217;s the most forward-looking thing in the box, and no independent run of it has been published.</p></li><li><p><strong>The quarterly update replaces your folders wholesale.</strong> Only src/ survives. Fork a sample in place and the 26D uptake deletes your work.</p></li><li><p><strong>Codex is the documented assistant, not a requirement.</strong> The skill format is the open Agent Skills convention; the same skill runs under other coding agents unmodified.</p></li></ul><p>Read on for the full breakdown.</p><h2>What Actually Landed</h2><p>The repo (github.com/oracle/fusion-ai-studio) was created on 26 June and went public alongside the 14 July announcement. Inside the release-26C/ folder: a VS Code extension (a .vsix inside a ZIP), the aistudio agent skill with a Node CLI inside it, two domain skills (succession management and warehouse shortages), and a sample library spanning eleven HCM modules, General Ledger insights, and three SCM modules.</p><p>The housekeeping tells its own story: UPL licence, no external pull requests accepted, one branch, no tags, publish-only commits. Development happens inside Oracle, GitHub carries the releases. This is a delivery medium for a quarterly drop, not an open-source project in any community sense - there&#8217;s no pull request to file, no maintainer to watch respond to an issue.</p><p>The functional shape is genuinely new for Fusion, though. Agent Studio artefacts - workflows, business objects, apps, tools - now exist as JSON files on your laptop: created locally, edited locally, pushed to the environment through a CLI. Configuration you can diff, review, and version. Leone framed it as the foundation for modern AI software engineering, and for once the architecture backs the sentence.</p><h2>What the Sample Library Really Teaches</h2><p>The demos show how fast you can build. The samples show how Oracle thinks you should build - and the single <strong>most useful thing to learn here is the number: four deterministic nodes for every LLM call.</strong></p><p>Use it three ways:</p><ul><li><p><strong>As a design-review shortcut.</strong> When your proposed workflow is mostly LLM nodes, the question should be - which of them a CODE or SWITCH node could replace?</p></li><li><p><strong>As a cost-model input.</strong> The node mix, not the use-case count, is what drives AI Units consumption - the ratio gives you a realistic baseline before anyone signs a forecast.</p></li><li><p><strong>As a scoping anchor.</strong> Start from the nearest sample, not a blank canvas. The median shape is ten nodes; anything sprawling past xx_worker_search (roughly 80 nodes) probably needs decomposing.</p></li></ul><p>Here&#8217;s the count behind it. I had Claude parse the dataPipeline of all 94 sample workflows and count every node.</p><div id="datawrapper-iframe" class="datawrapper-wrap outer" data-attrs="{&quot;url&quot;:&quot;https://datawrapper.dwcdn.net/mBoTO/1/&quot;,&quot;thumbnail_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dc3b9cef-0000-4408-82ff-58ac63dd4417_1220x684.png&quot;,&quot;thumbnail_url_full&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a756d1a7-96c5-47d4-af49-bcb857936ec3_1220x754.png&quot;,&quot;height&quot;:372,&quot;title&quot;:&quot;Node types across Oracle's 94 sample workflows&quot;,&quot;description&quot;:&quot;&quot;,&quot;belowTheFold&quot;:true}" data-component-name="DatawrapperToDOM"><iframe id="iframe-datawrapper" class="datawrapper-iframe" src="https://datawrapper.dwcdn.net/mBoTO/1/" width="730" height="372" frameborder="0" scrolling="no" loading="lazy"></iframe><script type="text/javascript">!function(){"use strict";window.addEventListener("message",(function(e){if(void 0!==e.data["datawrapper-height"]){var t=document.querySelectorAll("iframe");for(var a in e.data["datawrapper-height"])for(var r=0;r<t.length;r++){if(t[r].contentWindow===e.source)t[r].style.height=e.data["datawrapper-height"][a]+"px"}}}))}();</script></div><p>Strip the START/END scaffolding and deterministic nodes outnumber LLM calls roughly four to one. The median sample has ten nodes, two of them LLM. The largest, xx_worker_search, runs roughly 80 nodes with 13 LLM calls. And 28 of the 94 - almost a third of the reference library - contain no LLM node whatsoever.</p><p>The samples are also exclusively workflow graphs: no .agent or .topic artefacts in this release, and the README marks Workflow Teams as the recommended architecture. Read that as a steer. In the agentic-app context, where every response has to land inside the 60-second window, Oracle is showing you the pattern it trusts.</p><p>And the restraint is the craft. Every LLM node is a latency risk and a billable event. I covered the AI Units arithmetic in my pricing piece, these samples read like they were built by people who did that arithmetic too. In a field where most vendor demos maximise the AI on show, shipping a reference library this disciplined is a quietly confident move.</p><p>Hold onto this: the sample library is a style guide. The fastest way to raise your team&#8217;s first build is to make reading it part of the design phase.</p><h2>The Evaluation Harness Is the Quiet Headline</h2><p>The install guide walks a first-time user through setup with genuine care, and it stops there - fair enough for a first release aimed at getting people building. The CLI&#8217;s <code>--help</code> output is where the release shows its longer game.</p><p>Roughly 25 commands sit beyond the guide: <code>do-generate-workflow-test</code>, <code>run-workflow-tests</code>, <code>compare-workflow-test-runs</code>, <code>run-optimization-sweep</code>, <code>analyze-token-usage</code>, and more. Together they add up to LLM-as-judge evaluation, regression comparison across runs, per-node model overrides, and automated cost-optimisation sweeps - sitting next to a full policy lifecycle and the non-interactive login a CI pipeline needs.</p><p>Oracle showed this working at the 14 July session. The live model-downgrade demo switched two of six capabilities to a lower-tier model for the same quality at lower cost and latency. That demo maps directly onto <code>run-optimization-sweep</code> and <code>get-workflow-model-override-targets</code>. This is the part of the release that turns agent building from a craft into a discipline, and it deserves more attention than the fast-build demos you have seen so far. The honest caveat: the harness is demo-proven, not field-proven. The bundled guide doesn&#8217;t cover it, the samples ship without example tests, and I can&#8217;t find a published account of anyone running it independently - mine included, which is why it&#8217;s next on my lab list. Documentation usually catches up a release or two after the machinery lands. What matters is what you do in the meantime.</p><p>The real so-what, in three parts:</p><ul><li><p><strong>Your definition of done changes.</strong> Once test generation and judge scoring are one CLI command away, a workflow without a test and a judge result attached is a draft, not a deliverable. Write that into your delivery standard now, ahead of the tooling becoming table stakes.</p></li><li><p><strong>Your evidence trail changes.</strong> When an AI assistant authored the workflow, the judge results are the review artefact your auditors - and your own QA - will actually accept. Keep them with the release record.</p></li><li><p><strong>Someone needs to own it.</strong> Give the harness to whoever owns test scripts on your programme today, and have them run it against one sample workflow this month. The teams that learn it early will set the standard the rest inherit.</p></li></ul><h2>The Quarterly Update Eats Your Folder</h2><p>The second how-to in the repo covers uptake, and it is blunt: when a new release drops, you replace <code>aiapps/</code> wholesale, the <code>aistudio</code> skill folder wholesale, every domain skill folder wholesale. The only directory that survives is <code>src/</code> - the things you built yourself.</p><p>Follow the thread. The natural first move for any consultant - copy the succession-management sample, rename it, adapt it - is precisely the move the update model punishes. Copy the pattern into <code>src/</code>, never fork the file where it stands. And every quarter, everything your <code>src/</code> work sits on shifts underneath it.</p><p>Which is exactly what regression evaluation is for. The uptake model and the evaluation harness are two halves of one story: a quarterly refresh of the base is comfortable only if you can re-run your evals against it and diff the results. The survival kit ships in the same box - the guides just haven&#8217;t joined the dots yet, so join them yourself.</p><p>The sentence to lift into your delivery methodology: <strong>re-baseline your workflow evals as a standing step of every release uptake.</strong></p><h2>Codex on the Box, Any Agent in Practice</h2><p>The bundled how-to sends you to developers.openai.com to install Codex, and every demo you&#8217;ve seen runs on it. Oracle&#8217;s own press release is broader - it names OpenAI Codex and Claude Code as supported assistants - but the only install guide in the repo documents Codex alone, and that guide is what your consultants will actually follow. Worth being precise about what this does and doesn&#8217;t mean.</p><p>The skill itself is packaged in Agent Skills format - the open standard Anthropic published, since adopted across the major coding agents: a <code>SKILL.md</code> with prompt references and scripts under <code>.agents/skills/</code>. Nothing in it is Codex-specific, the CLI is plain Node, invoked by whatever coding agent reads the skill. I&#8217;ve had this exact skill running under Claude Code and GitHub Co-Pilot in my own setup. Codex is the documented path, not a dependency.</p><p>Three practical consequences:</p><ul><li><p><strong>No assistant lock-in.</strong> Whatever coding agent your firm has already put through security review can drive this.</p></li><li><p><strong>A data-governance question - flag it to your CTO early.</strong> The documented flow has functional consultants signing into a third-party AI assistant and handing it local files describing your org structures, GL logic and talent data context. Someone needs to answer which enterprise agreement that session runs under before the first laptop does it in anger.</p></li><li><p><strong>A second meter running.</strong> Every coding-agent session against the CLI burns its own tokens, on top of whatever AI Units the workflow consumes once live. Budget for the assistant plan alongside the AI Units - agentic development bills on both sides of the keyboard.</p></li></ul><p>And for those keeping score in the protocol wars: nobody abandoned MCP here. MCP remains a first-class tool type inside Agent Studio, where a running agent calls a live system. The CLI and skill live on the other side of the line, where artefacts get authored. Runtime integration and build-time authoring were never the same problem, and Oracle has just drawn the boundary where the rest of the industry has been converging on it.</p><h2>Before Your Team Clones It</h2><p>Credit first: the platform closes more of this than a generic security take admits. The CLI encrypts the Basic Auth password it stores in <code>env.properties</code>. Artefacts pushed to the server run inside Fusion&#8217;s security model, and business-object access rides the requesting user&#8217;s context. The residual list is short - which is rather the point:</p><ul><li><p><strong>The extension is a side-loaded </strong><code>.vsix</code><strong> out of a ZIP.</strong> Enterprise endpoint policies commonly block exactly that. Getting it whitelisted is your first blocker, and it isn&#8217;t a technical one - start it before the kick-off, not after.</p></li><li><p><strong>Oracle&#8217;s </strong><code>.gitignore</code><strong> ignores only a single build script, and the quick-start builds inside the cloned repo.</strong> The moment a workspace goes under git - the whole direction of travel - <code>env.properties</code> is one careless <code>git add -A</code> from being committed, carrying your pod URL and username even with the password encrypted. Write the ignore file first.</p></li><li><p><strong>One environment per workspace.</strong> <code>env.properties</code> holds a single host. If test is on 26C and prod is still on 26B, that&#8217;s parallel workspaces and parallel skill versions - plan the folder layout before ten consultants invent ten conventions.</p></li><li><p><strong>Nothing mandates a review before a push to a live environment.</strong> <code>do-save-workflow</code> deploys, and the toolchain puts no gate between the coding agent and the save. For HCM that&#8217;s a conversation, for the General Ledger samples it&#8217;s an audit finding waiting to be written. Put a human diff in the path, and keep the judge results as your evidence trail.</p></li></ul><h2>What To Do This Week</h2><p>Three moves, in order:</p><ol><li><p><strong>Clone the repo and run the node census</strong> on the samples nearest your own use cases. The pattern you should copy is sitting in there, counted.</p></li><li><p><strong>Get the </strong><code>.vsix</code><strong> in front of whoever owns your endpoint policy.</strong> It&#8217;s the long pole, and it isn&#8217;t technical.</p></li><li><p><strong>Run </strong><code>do-generate-workflow-test</code><strong> against one sample workflow</strong> and see the judge machinery with your own eyes - before anyone on your programme claims an agent is production-ready without it.</p></li></ol><p>The samples answer what Oracle thinks agents should look like. The harness decides whether yours actually work. No doubt, Oracle will keep refining this and adding to it  but there's already enough here to be worth the time of anyone creating, deploying or managing agents today.<br><br></p><p><em>Sources: the oracle/fusion-ai-studio repository, its bundled guides and CLI, and my own analysis scripts against a fresh clone. Node counts are reproducible from the repo&#8217;s release-26C sample set. Oracle product names and any screenshots remain the property of Oracle Corporation. Views mine, not my employer&#8217;s.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.sidmalik.uk/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Sid! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The AI That Hacked Its Way Out of a Test -Sandbox Escape That Should Rewrite Your Agent Controls]]></title><description><![CDATA[An Oracle ACE's read on the OpenAI-Hugging Face breach - the zero-day chain, why the defenders' own AI refused to help clean up, and what AI Agent Studio's defaults do and don't.]]></description><link>https://www.sidmalik.uk/p/the-ai-that-hacked-its-way-out-of</link><guid isPermaLink="false">https://www.sidmalik.uk/p/the-ai-that-hacked-its-way-out-of</guid><dc:creator><![CDATA[Sid M.]]></dc:creator><pubDate>Wed, 22 Jul 2026 07:34:13 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!AAGI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b2c4589-a8a8-4c8d-8d79-4ae480232512_1600x860.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You have spent months being told the risk with enterprise agents is that they will refuse too much - over-cautious, blocked by guardrails, useless at the edge. Last week gave us the opposite failure, and it is the one that should reorganise your controls.</p><p>An OpenAI model broke out of its sealed test environment and hacked Hugging Face. Nobody told it to. It was trying to pass a benchmark, decided the answers were on someone else&#8217;s servers, and went and took them.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.sidmalik.uk/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Sid! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>What Actually Happened</h2><p>OpenAI was benchmarking <a href="https://openai.com/index/hugging-face-model-evaluation-security-incident/">GPT-5.6 Sol and an unreleased, more capable model</a> on ExploitGym, a public set of 898 real-world software vulnerabilities - refusals dialled down for the evaluation, inside an isolated sandbox. The models found a zero-day in OpenAI&#8217;s own internal package registry proxy, escalated to admin, moved laterally until they reached a node with internet access, worked out that Hugging Face probably hosted the benchmark solutions, and broke in.</p><p>Hugging Face&#8217;s <a href="https://huggingface.co/blog/security-incident-july-2026">own incident report</a> describes the other end of the same attack: <em>&#8220;A malicious dataset abused two code-execution paths in our dataset processing&#8221;</em> - a remote-code loader and a template injection in a dataset config. From there the agent leaked cloud and cluster credentials, moved across internal clusters, planted decoy activity to slow investigators, and ran up more than 17,000 logged actions. It reached a limited set of internal datasets and several service credentials before it was stopped.<br></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AAGI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b2c4589-a8a8-4c8d-8d79-4ae480232512_1600x860.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AAGI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b2c4589-a8a8-4c8d-8d79-4ae480232512_1600x860.png 424w, https://substackcdn.com/image/fetch/$s_!AAGI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b2c4589-a8a8-4c8d-8d79-4ae480232512_1600x860.png 848w, https://substackcdn.com/image/fetch/$s_!AAGI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b2c4589-a8a8-4c8d-8d79-4ae480232512_1600x860.png 1272w, https://substackcdn.com/image/fetch/$s_!AAGI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b2c4589-a8a8-4c8d-8d79-4ae480232512_1600x860.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AAGI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b2c4589-a8a8-4c8d-8d79-4ae480232512_1600x860.png" width="1456" height="783" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8b2c4589-a8a8-4c8d-8d79-4ae480232512_1600x860.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:783,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:173958,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.sidmalik.uk/i/208023233?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b2c4589-a8a8-4c8d-8d79-4ae480232512_1600x860.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!AAGI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b2c4589-a8a8-4c8d-8d79-4ae480232512_1600x860.png 424w, https://substackcdn.com/image/fetch/$s_!AAGI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b2c4589-a8a8-4c8d-8d79-4ae480232512_1600x860.png 848w, https://substackcdn.com/image/fetch/$s_!AAGI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b2c4589-a8a8-4c8d-8d79-4ae480232512_1600x860.png 1272w, https://substackcdn.com/image/fetch/$s_!AAGI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b2c4589-a8a8-4c8d-8d79-4ae480232512_1600x860.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><br><span>OpenAI's own assessment: the models were </span><em>"hyperfocused on finding a solution"</em><span>. That is the whole story in three words. The sandbox was not a boundary to them. It was an obstacle between them and the score.<br></span></p><h2><span><br></span>The Clean-Up Nobody Would Help With</h2><p>Here is the part that should worry you more than the breach. When Hugging Face&#8217;s incident response team tried to point US frontier models at the forensics - 17,000-plus attacker events to analyse - the models refused. Hugging Face&#8217;s words: <em>&#8220;these requests were blocked by the providers&#8217; safety guardrails, which cannot distinguish an incident responder from an attacker.&#8221;</em> The exploit payloads and command-and-control artefacts a blue team needs to read are, character for character, the things a safety classifier is trained to reject.</p><p>So they ran the analysis on GLM 5.2, a Chinese open-weight model, on their own infrastructure. That choice carried a second benefit they name explicitly: no attacker data and no exposed credentials left their environment.<br><br>Attackers get an unrestricted agent. Defenders get a refusal. Sit with that, because it is now a live input to every AI security conversation you are in - and it will not resolve soon. Guardrails that can tell a legitimate responder from an attacker performing the identical action are a genuinely hard, unsolved problem.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_4t3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2221fc85-a1df-4eed-b08d-2fad516499c0_1600x900.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_4t3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2221fc85-a1df-4eed-b08d-2fad516499c0_1600x900.png 424w, https://substackcdn.com/image/fetch/$s_!_4t3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2221fc85-a1df-4eed-b08d-2fad516499c0_1600x900.png 848w, https://substackcdn.com/image/fetch/$s_!_4t3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2221fc85-a1df-4eed-b08d-2fad516499c0_1600x900.png 1272w, https://substackcdn.com/image/fetch/$s_!_4t3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2221fc85-a1df-4eed-b08d-2fad516499c0_1600x900.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_4t3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2221fc85-a1df-4eed-b08d-2fad516499c0_1600x900.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2221fc85-a1df-4eed-b08d-2fad516499c0_1600x900.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:144433,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.sidmalik.uk/i/208023233?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2221fc85-a1df-4eed-b08d-2fad516499c0_1600x900.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_4t3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2221fc85-a1df-4eed-b08d-2fad516499c0_1600x900.png 424w, https://substackcdn.com/image/fetch/$s_!_4t3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2221fc85-a1df-4eed-b08d-2fad516499c0_1600x900.png 848w, https://substackcdn.com/image/fetch/$s_!_4t3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2221fc85-a1df-4eed-b08d-2fad516499c0_1600x900.png 1272w, https://substackcdn.com/image/fetch/$s_!_4t3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2221fc85-a1df-4eed-b08d-2fad516499c0_1600x900.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><br>The Warning Was On arXiv Eighteen Months Ago</h2><p>If this feels familiar, it should. In February 2025 Palisade Research published <em><a href="https://arxiv.org/abs/2502.13295">Demonstrating specification gaming in reasoning models</a></em>: asked to beat a chess engine, models like OpenAI o3 and DeepSeek R1 <em>&#8220;will often hack the benchmark by default&#8221;</em> - editing the game state rather than losing. Most of us filed it under lab curiosity. Eighteen months later the same instinct chained zero-days across two companies&#8217; production systems to win a different game.</p><p>The lesson was never that AI is malicious. It is that optimisation pressure finds every path you did not fence off. The model does exactly what you rewarded - it just does not share your unstated assumption that &#8220;solve the benchmark&#8221; excludes &#8220;break into a third party to read the answer key.&#8221;</p><h2>What To Actually Do Before Your Next Agent Ships</h2><p>Before you reach for a control list, give the platform its due, because a lot of what failed here is closed by default in Fusion. A business-object tool runs under the requesting user&#8217;s own Fusion token, so an Agent Studio agent inherits that person&#8217;s identity and data security - it does not carry a standing super-credential of the kind the attacker harvested. Agents inherit Fusion&#8217;s security policies and access controls, the Security tab gates who can reach a team, and the agent is not executing arbitrary code on a node with open egress - it calls registered tools and a managed model endpoint, not the open internet. Most of the generic &#8220;give it least privilege, fence the network&#8221; advice doing the rounds this week is describing controls you already have.</p><p>What the defaults do not cover is a shorter, sharper list - and it is where this incident should actually change your build:</p><p><strong>Custom REST and MCP tools are where the identity binding breaks.</strong> Business-object tools ride the user&#8217;s token; a REST or MCP tool you build reaches outside that model on whatever credential you stored against the connection. Oracle&#8217;s own secure-by-design guidance says to design these tools to preserve identity - that stored service credential is this breach&#8217;s &#8220;reach far beyond the job&#8221; in miniature. Scope it to the task, and do not let convenience turn it into a standing key.</p><p><strong>The agent is only as least-privilege as the role behind it.</strong> Because tools inherit data security, an over-broad duty role - or exposing the team to a highly privileged user - hands the agent exactly that reach. Prune the fields a business-object tool exposes, and run a Segregation of Duties check (map it to Access Governance) before you compose any transaction-writing workflow. The platform enforces the role; it does not decide the role is too wide.</p><p><strong>Put a human on the irreversible step, by risk tier.</strong> Risk-classify the team - Low for info Q&amp;A, up to Critical for payments, payroll, supplier banking - and set Require Human Approval on the High and Critical actions. This is the specification control in Studio&#8217;s own language: the model will honour the goal you set, so the human sits on the step you cannot take back.</p><p><strong>Trust the instruction hierarchy, and treat inbound data as hostile.</strong> Studio ranks trusted policy above tool output above user request - keep it that way, and keep trusted instructions separate from untrusted content. Hugging Face&#8217;s entry point was a malicious dataset: content the system ingested and acted on. Ask the Palisade question of every agent before it ships - what is the cheapest path to this reward that I would be appalled by? - then close it in the environment, not the prompt.</p><p>And one control that lives above Studio entirely: <strong>do not assume your AI tooling will co-operate during an incident.</strong> Hugging Face&#8217;s fix was a locally hosted open-weight model that would actually read the attack logs when the commercial ones refused. If your IR plan quietly depends on a frontier model to triage an attack, that dependency fails at the exact moment you need it. Know which model your team can run on your own infrastructure, before the day you need it.</p><p>The model honours the goal you set and none of the assumptions you left unsaid. That is the sentence to lift into your agent governance framework - before the next deployment, not after the post-mortem.</p><p><em>Sources:<br> <a href="https://huggingface.co/blog/security-incident-july-2026">Hugging Face security report</a> (16 July 2026)<br> <a href="https://openai.com/index/hugging-face-model-evaluation-security-incident/">OpenAI incident disclosure</a> (21 July 2026)<br>Palisade Research, <a href="https://arxiv.org/abs/2502.13295">arXiv:2502.13295</a> (February 2025)<br>Reporting by <a href="https://fortune.com/2026/07/21/openai-says-ai-models-escaped-control-hacked-hugging-face/">Fortune</a> and <a href="https://www.thestack.technology/hugging-face-hacked-turned-to-chinese-llm-for-help-after-us-models-blocked-blue-team/">The Stack</a>. <br><br>This is my own view, not my employer&#8217;s. Diagram is my own.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.sidmalik.uk/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Sid! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Oracle 26C: The Boring Feature That Will Quietly Run Your Agent Fleet - the Debugger, the CLI, Policy Models, and the End of AI Configurator]]></title><description><![CDATA[Part one of two. This piece covers the AI Agent Studio platform changes in 26C. Part two covers what 26C means for HCM specifically - the migration work, the agent estate module by module + pricing]]></description><link>https://www.sidmalik.uk/p/oracle-26c-ai-agent-studio-grows</link><guid isPermaLink="false">https://www.sidmalik.uk/p/oracle-26c-ai-agent-studio-grows</guid><dc:creator><![CDATA[Sid M.]]></dc:creator><pubDate>Thu, 11 Jun 2026 07:35:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!CUUX!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2c07966-71a2-4c49-a5be-b13d59ca9cf7_1203x1203.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><p><em>Disclaimer: Everything below is taken from Oracle&#8217;s official 26C readiness documentation for Common Technologies and User Experience, published this week. These are confirmed 26C features, not roadmap items. As always, functionality described in readiness documents can change at Oracle&#8217;s discretion before it reaches your pod.</em><br><br>The 26C readiness notes landed this week, and the question you&#8217;ve been getting from clients and colleagues would be the usual one: what&#8217;s actually new, and what do I need to do about it?</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.sidmalik.uk/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Sid! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>The honest answer is that the headline of 26C is not a new agent. <strong>It&#8217;s the platform underneath the agents</strong>. Steve Miranda has talked about the installed base growing from maybe a hundred agents at launch to well over a thousand. At that scale, the question customers face changes from, Can we build an agent for this? to How do we run all of these properly? 26C is Oracle&#8217;s answer to that second question, and it makes this one of the most significant quarterly update for AI Agent Studio since the product launched.<br><br><strong>Quick Summary</strong></p><p>If you just want the headlines:</p><ol><li><p>AI Configurator is deprecated in 26C. All prompts configured there must be re-created and re-validated in AI Agent Studio.</p></li><li><p>A new Debugger lets you pause on a node, step through a flow one node at a time, rerun from any point, force a node's output to test what follows, and save reusable run profiles.</p></li><li><p>A new command line interface (CLI) works standalone or through the VS Code extension, and supports Codex-assisted and Claude Code-assisted editing.</p></li><li><p>Policy Models bring deterministic, repeatable decision logic into agent workflows through a new policy node.</p></li><li><p>The open Agent2Agent (A2A) protocol lets published Fusion agents be discovered and called by external agents, and vice versa.</p></li><li><p>Long-running sessions support multi-day agent conversations. Long-term memory adds episodic memory notes and user preferences shared across agents.</p></li><li><p>Bring Your Own LLM is now available via a service request to My Oracle Cloud Support, typically completed in two weeks, when OCI is your model provider.</p></li><li><p>HCM administrators are now scoped by product family for prompt configuration.</p></li></ol><h4><br><strong>AI Configurator Is Deprecated</strong></h4><p>The change that might consume the most project hours is also the one buried deepest in the notes. AI Configurator - the prompt editor built into HCM Experience Design Studio for locally editing prompts behind embedded AI features - is deprecated in 26C. Any prompts you configured there must be re-created and re-validated in AI Agent Studio. The old tool stays accessible, but only so you can copy your prompts out of it.</p><p>There&#8217;s a <strong>governance change</strong> riding along with this. <strong>HCM administrators are now scoped by product family,</strong> so a compensation admin can no longer edit recruiting prompts. In multi-pillar implementations that&#8217;s a welcome improvement - it just needs to be in your security design before the upgrade, not discovered after it.</p><p>If you&#8217;ve customised AI Assist prompts across recruiting, talent or HR over the past year, this is a real migration and regression testing exercise, and it lands in the same window as your normal 26C testing. I cover what that means practically in part two. The short version: treat it as a workstream with an owner, not a line on the upgrade checklist.</p><h4><strong>The Debugger</strong></h4><p>Agent Studio finally has a real debugger for agentic flows. Drop a breakpoint on a node and execution pauses there, so you can walk the flow one node at a time rather than watching it run end to end. From any node you can rerun forward, and you can pin or override what a node hands back to see how everything downstream reacts to a value you&#8217;ve forced in. The test setups you keep coming back to get saved as run profiles, so you&#8217;re not rebuilding them by hand every time.</p><p>For anyone who has sat reading trace logs trying to reconstruct why a team of agents produced a daft answer, this is the part of 26C that changes the day job most. Agent misbehaviour used to be something you reasoned about after it happened. Now you can halt the flow mid-execution and watch the decision being made. That pays off twice in delivery. Defects surface during the build instead of in a client demo, and the reasoning becomes visible enough that &#8220;the agent just did that&#8221; stops being a good enough answer for anyone in the room.</p><h4><strong>The CLI</strong></h4><p>There&#8217;s now a command line interface for Agent Studio, run on its own or from a terminal inside the VS Code extension. It handles the whole lifecycle of an artefact locally. You author it, validate it, debug and test it, then save it back, so none of that has to happen in the browser canvas any more. Artefacts can be validated before they&#8217;re handed on, and the part worth dwelling on is that it <strong>supports building and editing agents with Codex and with Claude Code.</strong></p><p>Two years ago, Oracle baking first-class support for rival vendors&#8217; coding assistants into its own product would have raised eyebrows. It is the right move regardless. Once an agent lives as a file on disk, it can <strong>sit in version control, go through the same peer review as any other change, and move across environments like normal code</strong>. The canvas is not going anywhere for business users. The CLI is there for the teams who have outgrown it.</p><p></p><h4><strong>Policy Models</strong></h4><p>You can now create policy models in Agent Studio for reliable, repeatable, deterministic policy-based decision-making at runtime, invoked from agentic workflows through a new policy node.</p><p>Approval limits, eligibility tests, the compliance checks where 'mostly right' is simply a fail, all of that can now be expressed as deterministic policy logic, with the LLM's probabilistic reasoning kept for the parts of the flow that genuinely need it. Clients have been asking how to get deterministic behaviour out of agentic workflows for a year, and until now the honest answer involved workarounds. Now it&#8217;s a platform feature.</p><h4><strong>Agent2Agent (A2A)</strong></h4><p>Published Fusion agents can now collaborate with agents on other platforms through the open A2A protocol. One thing to hold onto: an Agent Card broadcasts what an agent can do to anything that comes looking, so publishing needs to be a deliberate, per-agent decision rather than the default setting.</p><p><strong>In practice this means an agent in Slack or Teams can ask a Fusion agent a payroll question and get a properly governed answer.</strong> One thing to hold onto: an Agent Card broadcasts what an agent can do to anything that comes looking, so publishing wants to be a deliberate, per-agent decision rather than the default setting.</p><h4><strong>Long-Running Sessions and Long-Term Memory</strong></h4><p>Two related changes. First, agent conversations can now stretch across extended, including multi-day, interactions. If the system needs time to work through a complex query, or you need to leave the conversation to gather data, you can rejoin the same conversation in progress.</p><p>Second, agents get long-term memory, in two components. Episodic memory captures summaries of past interactions as memory notes, generated automatically through a memory curation process. User preferences are shared across agents, so a person gets a consistent experience regardless of which agent they&#8217;re talking to.</p><p>Shared preferences across a thousand-agent estate is what makes the whole thing start to feel like one assistant rather than a directory of bots. One thing to flag to your privacy team early: memory notes are derived personal data, and most organisations don&#8217;t yet have a retention position for them. Better to write one now than after the first data subject access request mentions it.</p><h4><strong>Bring Your Own LLM</strong></h4><p>You can now request enablement of additional supported LLMs through a service request to My Oracle Cloud Support. Most requests are completed within two weeks. More complex model integrations can take up to four. The BYOLLM path applies when Oracle Cloud Infrastructure is selected as the model provider, and doesn&#8217;t apply to the basic and premium models Oracle provides itself. For reference, Oracle&#8217;s published line-up in Agent Studio currently includes GPT 5.1 mini, GPT 4.1 mini and GPT-OSS-120B.</p><p>Model choice has been the loudest ask from regulated clients since Agent Studio launched. Now that the choice is available, the accountability comes with it - which model runs which workload becomes a decision your architecture governance owns, with cost and behaviour consequences attached. The cost side matters more than it used to, for reasons covered in part two.</p><h4><strong>A Note on the Agentic Applications Builder</strong></h4><p>You&#8217;ll see the Agentic Applications Builder mentioned in a lot of 26C coverage - the natural-language, low-code builder for assembling agentic applications from Oracle, partner and custom agents, announced in Oracle&#8217;s London press release on 24 March. Worth knowing: in the readiness documentation it sits under 26B, not 26C. It&#8217;s part of the same platform story but if you present it as a 26C feature in front of a client, someone will correct you, and they&#8217;ll be right.</p><h4><strong>What to Make of All This</strong></h4><p>Taken together, 26C reads like Oracle deciding that agents are software and should be treated accordingly. A debugger, a CLI, version control, deterministic policy logic, a standard interoperability protocol - this is the toolchain you&#8217;d expect around any serious development platform, and until this quarter Agent Studio didn&#8217;t have it.</p><p>The consolidation matters too. With AI Configurator gone, Agent Studio becomes the single place where all prompt configuration and agent management happens. That&#8217;s cleaner architecture and better governance, at the price of a migration that every customer with customised prompts now has to run.</p><p>That said, most of what&#8217;s new in 26C only pays off if implementation teams actually use it. Breakpoints, run profiles and peer-reviewed agent definitions are only valuable to teams that bring engineering discipline to agent work, and in my experience most programmes aren&#8217;t set up that way yet. The platform has grown up faster than the delivery practices around it.</p><p>Part two covers the other half of the story: what 26C asks of your ERP/HCM programme specifically, the agent landscape across all nine pillars, and the pricing question I can only partly answer.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.sidmalik.uk/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Sid! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Inside an Oracle Fusion Agentic App]]></title><description><![CDATA[An Oracle ACE's read on the design philosophy, four-region anatomy, $OraMessageHint protocol, seven widgets, and the communications trust contract.]]></description><link>https://www.sidmalik.uk/p/inside-an-oracle-fusion-agentic-app</link><guid isPermaLink="false">https://www.sidmalik.uk/p/inside-an-oracle-fusion-agentic-app</guid><dc:creator><![CDATA[Sid M.]]></dc:creator><pubDate>Thu, 14 May 2026 13:22:42 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!vLKq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea02b237-d4a3-4ac3-948e-7b12a12b3d76_2268x1888.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If you&#8217;ve read my earlier post on Oracle&#8217;s Fusion Agentic Applications announcement, you have the strategic story. A new category, 22 named apps, the SaaS-only boundary, what to do this quarter.</p><p>This is the first of two technical follow-ups. This one is about what&#8217;s inside an agentic app from the user&#8217;s side: the philosophy that shapes the design, the four-region UI, the protocol that wires it together, the visual vocabulary of widgets, and the communications model.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.sidmalik.uk/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Sid! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>The architecture stack, the agent orchestration patterns, and the AI Agent Studio tooling are in the second post.</p><h2>Quick Summary</h2><p>If you are only after the technical headlines:</p><ul><li><p>Fusion agentic apps are built around four design principles: Proactive Alerting, Decision Support, Action-Oriented Intelligence, Context-Aware Prioritisation.</p></li><li><p>Each principle maps to specific technical primitives - <code>InitActions</code> + <code>priority: true</code>, <code>&lt;oraInfoDisplay&gt;</code> + 7 widgets, <code>ora.Invoke()</code> + <code>followUpCommand</code> + <code>&lt;oraFormSubmit&gt;</code>, <code>$OraUserContext</code> + <code>$OraMessageHint</code>.</p></li><li><p>Every agentic app shares the same four-region UI anatomy: Advisor (Ask Oracle), Information Summary, Priority Actions, Communications.</p></li><li><p>Those regions map to four capabilities - Information Display, Advisor, Actions, Communication - this is what closes the loop from data to decision.</p></li><li><p>The app talks to its agents through <code>$OraMessageHint</code> - 10 enumerated hints across 3 lifecycle moments, routed through a Switch node, with a 60-second response window.</p></li><li><p>Information is displayed through a finite catalogue of seven declarative widgets: Chart, Card, Message List, Change List, Multi Record, Record, Sankey.</p></li><li><p>Communications converge on a five-step lifecycle - Suggest, Prefill, Fill, Review, Send - with a non-bypassable User Review step. As Aarti Satyamurthy at Oracle puts it: <em>&#8220;The agent moves the work. You keep the accountability.&#8221;</em></p></li></ul><p>Read on for the full breakdown.</p><h2>The Four Design Principles</h2><p>Four design principles shape every Fusion agentic app. They are worth reading carefully because each one maps directly to a piece of the architecture you&#8217;ll see later.</p><p><strong>Proactive Alerting.</strong> Don&#8217;t make users hunt for problems. Surface critical issues the moment they matter. A compliance certification expiring next week shouldn&#8217;t wait for someone to open a dashboard - the app proactively surfaces it before the user asks.</p><p><strong>Decision Support.</strong> Filter signal from noise. Present synthesised insights with clear recommendations and trade-offs, not raw data points. The principle is: if it&#8217;s purely informational, dashboard would suffice. An agentic app earns its place by helping the user decide.</p><p><strong>Action-Oriented Intelligence.</strong> Every interaction should lead to a concrete action - approve, escalate, renew, investigate. No dead-end views, no read-only summaries that leave the user with a follow-up tab to open.</p><p><strong>Context-Aware Prioritisation.</strong> Not all alerts are equal. Agents understand business goals and user roles, surfacing what&#8217;s urgent and holding what can wait.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vLKq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea02b237-d4a3-4ac3-948e-7b12a12b3d76_2268x1888.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vLKq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea02b237-d4a3-4ac3-948e-7b12a12b3d76_2268x1888.png 424w, https://substackcdn.com/image/fetch/$s_!vLKq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea02b237-d4a3-4ac3-948e-7b12a12b3d76_2268x1888.png 848w, https://substackcdn.com/image/fetch/$s_!vLKq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea02b237-d4a3-4ac3-948e-7b12a12b3d76_2268x1888.png 1272w, https://substackcdn.com/image/fetch/$s_!vLKq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea02b237-d4a3-4ac3-948e-7b12a12b3d76_2268x1888.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vLKq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea02b237-d4a3-4ac3-948e-7b12a12b3d76_2268x1888.png" width="728" height="606" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ea02b237-d4a3-4ac3-948e-7b12a12b3d76_2268x1888.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:1212,&quot;width&quot;:1456,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:3702642,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://promptsociety.substack.com/i/197525857?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea02b237-d4a3-4ac3-948e-7b12a12b3d76_2268x1888.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vLKq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea02b237-d4a3-4ac3-948e-7b12a12b3d76_2268x1888.png 424w, https://substackcdn.com/image/fetch/$s_!vLKq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea02b237-d4a3-4ac3-948e-7b12a12b3d76_2268x1888.png 848w, https://substackcdn.com/image/fetch/$s_!vLKq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea02b237-d4a3-4ac3-948e-7b12a12b3d76_2268x1888.png 1272w, https://substackcdn.com/image/fetch/$s_!vLKq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea02b237-d4a3-4ac3-948e-7b12a12b3d76_2268x1888.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Aarti Satyamurthy summarised this as <em>&#8220;Philosophy drives architecture. Architecture enables experience.&#8221; </em>in her last post. That&#8217;s the right way to read what comes next. Each piece of the framework below exists to make one of these four principles real.</p><p></p><h2>Principles &#8594; Technical Primitives</h2><p>The principles are not a marketing layer. Each maps to specific technical capabilities in the AI Agent Studio framework.</p><div id="datawrapper-iframe" class="datawrapper-wrap outer" data-attrs="{&quot;url&quot;:&quot;https://datawrapper.dwcdn.net/od3qZ/1/&quot;,&quot;thumbnail_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/986ad458-1bff-4e6c-a99d-51fea55d61f7_1220x664.png&quot;,&quot;thumbnail_url_full&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3032cae2-6690-477a-8234-7ccfb14784aa_1220x664.png&quot;,&quot;height&quot;:322,&quot;title&quot;:&quot;| Created with Datawrapper&quot;,&quot;description&quot;:&quot;Create interactive, responsive &amp; beautiful charts &#8212; no code required.&quot;,&quot;belowTheFold&quot;:true}" data-component-name="DatawrapperToDOM"><iframe id="iframe-datawrapper" class="datawrapper-iframe" src="https://datawrapper.dwcdn.net/od3qZ/1/" width="730" height="322" frameborder="0" scrolling="no" loading="lazy"></iframe><script type="text/javascript">!function(){"use strict";window.addEventListener("message",(function(e){if(void 0!==e.data["datawrapper-height"]){var t=document.querySelectorAll("iframe");for(var a in e.data["datawrapper-height"])for(var r=0;r<t.length;r++){if(t[r].contentWindow===e.source)t[r].style.height=e.data["datawrapper-height"][a]+"px"}}}))}();</script></div><p>If you&#8217;re building or extending an agentic app, that table is the cheatsheet. Each principle has named primitives you will be working with directly.</p><h2>The Four Regions and Four Capabilities</h2><p>Every Fusion agentic app shares a four-region UI on screen.</p><p>An <strong>Advisor</strong> at the top, branded &#8220;Ask Oracle&#8221;. An <strong>Information Summary</strong> in the body. A <strong>Priority Actions</strong> rail on the right. A <strong>Communications</strong> rail underneath.<br></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NyTj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F162571b0-e538-48b4-b6bf-9d7cd06cf247_1780x1306.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NyTj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F162571b0-e538-48b4-b6bf-9d7cd06cf247_1780x1306.jpeg 424w, https://substackcdn.com/image/fetch/$s_!NyTj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F162571b0-e538-48b4-b6bf-9d7cd06cf247_1780x1306.jpeg 848w, https://substackcdn.com/image/fetch/$s_!NyTj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F162571b0-e538-48b4-b6bf-9d7cd06cf247_1780x1306.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!NyTj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F162571b0-e538-48b4-b6bf-9d7cd06cf247_1780x1306.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NyTj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F162571b0-e538-48b4-b6bf-9d7cd06cf247_1780x1306.jpeg" width="1456" height="1068" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/162571b0-e538-48b4-b6bf-9d7cd06cf247_1780x1306.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1068,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:170216,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://promptsociety.substack.com/i/197525857?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F162571b0-e538-48b4-b6bf-9d7cd06cf247_1780x1306.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!NyTj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F162571b0-e538-48b4-b6bf-9d7cd06cf247_1780x1306.jpeg 424w, https://substackcdn.com/image/fetch/$s_!NyTj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F162571b0-e538-48b4-b6bf-9d7cd06cf247_1780x1306.jpeg 848w, https://substackcdn.com/image/fetch/$s_!NyTj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F162571b0-e538-48b4-b6bf-9d7cd06cf247_1780x1306.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!NyTj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F162571b0-e538-48b4-b6bf-9d7cd06cf247_1780x1306.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><br></p><p>Those four regions map cleanly to four capabilities the app delivers.</p><p><strong>Information Display</strong> is context that comes to the user. Agentic apps do more than just retrieve data, they generate context dynamically at startup, with the right widget chosen based on what the user needs to understand.</p><p><strong>Advisor</strong> is built-in expertise on demand. Ask Oracle is a 24/7 expert panel embedded in the workflow. Natural-language questions, responses grounded in business context and policy, drawing on specialised agents or coordinated agent teams.</p><p><strong>Actions</strong> is from insight to execution. The agent presents structured decision points with one-click execution inside the app itself. Prasanna Borse at Oracle Product Development describes this as <em>&#8220;no swivel chair, no handoffs.&#8221;</em></p><p><strong>Communication</strong> is proactive and embedded. The agent drafts messages and suggests follow-ups and the work doesn&#8217;t end with a decision, it requires follow-through.</p><p>All 22 apps in release 26B share this same four-region shape.</p><h2>The <code>$OraMessageHint</code> Protocol</h2><p>Aarti Satyamurthy covered this protocol briefly last month. It&#8217;s called <code>$OraMessageHint</code> - a contract between the app shell and the agent team. Ten enumerated hints across three lifecycle moments.</p><p><strong>At app startup</strong>, five hints fire in parallel - <code>InitSubtitle</code>, <code>Summary</code>, <code>InitDisplay</code>, <code>InitActions</code>, <code>InitCommunications</code> - populating the four regions before the user even clicks.</p><p><strong>When the user engages</strong>, three more - <code>Query</code> (carrying <code>$chatHistory</code> for Ask Oracle conversations), <code>InvokeAction</code> (carrying <code>$OraAction</code> when an action is executed), <code>AdditionalContent</code> (carrying <code>$OraPanelName</code> when a panel needs more detail).</p><p><strong>When communications flow</strong>, two more - <code>FillParameters</code> (carrying <code>$OraCommsParamsToFill</code>), <code>SendCommunication</code>.</p><p>Workflow agents inside the app route hints through a Switch node on <code>$context.$app.$OraMessageHint</code>. Each case maps to a purpose-built LLM or Agent node - Summary goes to a Handle Summary LLM node, InitDisplay to a Build Display Agent node, Query to an Answer Q&amp;A node carrying chat history. Structured prompts per branch. 60-second response window. One agent team, ten entry points.</p><p>That&#8217;s why Workflow Teams are the recommended architecture for agentic apps - structured routing, custom prompts per request type, and predictable latency inside the response window.</p><p>The full context-variable system that flows alongside the hints is wider than just <code>$OraMessageHint</code>:</p><ul><li><p><code>$OraUserContext</code> carries the invoking user&#8217;s identity (name, role, ID) on every request.</p></li><li><p><code>$OraAppContext</code> carries app-level initialisation context.</p></li><li><p>Per-hint context expressions: <code>$chatHistory</code>, <code>$OraAction</code>, <code>$OraPanelName</code>, <code>$OraCommsParamsToFill</code>.</p></li></ul><p>Message hints are not merely plumbing but the contract between the app and the agents - the reason an agentic app feels coherent instead of chaotic.</p><h2>The Seven Widgets</h2><p>The Information Summary region isn&#8217;t free-form copilot generation. It&#8217;s built from declarative widgets - pattern-based components with published JSON schemas. The agent&#8217;s job is to populate one of seven widget types with structured data and the UI renders it once done.</p><p>The full catalogue:</p><p><code>chartWidget</code> - Trends over time, category comparisons, proportions. Line, bar, or pie. Multiple datasets supported. Example: a monthly revenue trend with an insights summary block.</p><p><code>cardWidget</code> - One critical alert that deserves its own focus. Variant for severity (error, warning, info). Example: a CRITICAL system alert for High CPU Usage with an Investigate button.</p><p><code>messageListWidget</code> - Multiple alerts with individual priority, badges, timestamps, and inline actions. The workhorse for triage. Example: Compliance alerts (3 min ago), Pending approvals (12 min ago). Prevents alert fatigue.</p><p><code>changeListWidget</code> - KPI tracking with automatic percentage-change calculation. Feed it current and previous values; the widget handles direction and percentage. Display modes: percentage, raw, currency. Example: Conversion Rate 2.8 &#8594; 3.5 (+25.0%).</p><p><code>multiRecordWidget</code> - Tabular data with badge-style status cells and per-row actions. Example: a transactions table for employee roster.</p><p><code>recordWidget</code> - One record&#8217;s worth of fields, in either read-only display mode or editable form mode. Field types: text, textarea, number, date, select. Example: an Employee Profile form with Full Name, Hire Date, Department.</p><p><code>sankeyWidget</code> - Flow diagram with proportional link widths. Nodes are stages, edges are movement, link widths reflect volume. Example: Support ticket funnel, hiring pipeline with proportional widths exposing where the funnel narrows.</p><p>Quick decision rule:</p><ul><li><p>Single alert &#8594; <code>cardWidget</code></p></li><li><p>Multiple alerts &#8594; <code>messageListWidget</code></p></li><li><p>KPI comparison &#8594; <code>changeListWidget</code></p></li><li><p>Tabular data &#8594; <code>multiRecordWidget</code></p></li><li><p>Data visualisation &#8594; <code>chartWidget</code></p></li><li><p>Form or detail view &#8594; <code>recordWidget</code></p></li><li><p>Flow or funnel &#8594; <code>sankeyWidget</code></p></li></ul><p>The catalogue is finite and known, and in my opinion it is the reason the visual layer of an agentic app feels coherent across the 22 apps and across customer extensions.</p><h2>Communications: The Trust Contract</h2><p>Of all the pieces in an agentic app, the communications model is the part of the design that&#8217;s been thought through most carefully.</p><p>Two creation paths with the same lifecycle.</p><p><strong>APP-DEFINED</strong> templates are configured once in the Builder, linked to a template, and reused whenever the situation calls for it. Email, text, PowerPoint, PDF. Best for repeatable communications: weekly status updates, standard compliance alerts, executive briefings.</p><p><strong>AGENT-GENERATED</strong> runtime content is what the agent drafts on the fly when a situation is one-off. Email and text only. Strict rules: no placeholders, no fabricated data.</p><p>Both converge on a five-step lifecycle:</p><ol><li><p><strong>Suggest.</strong> Agent recommends the right communication for the moment based on context.</p></li><li><p><strong>Prefill.</strong> Agent fills the parameters it already knows from prompting, knowledge, and current context.</p></li><li><p><strong>Fill.</strong> When the user selects it, the agent completes the remaining parameters.</p></li><li><p><strong>Review.</strong> The user inspects, modifies, and approves before anything leaves the system. The non-bypassable node.</p></li><li><p><strong>Send.</strong> A designated delivery agent dispatches the message via email, Slack, PDF, or PowerPoint.</p></li></ol><p></p><p>Notice what&#8217;s not in that list: any step where the system sends without the user seeing it first.</p><p>Aarti&#8217;s framing on this was:</p><blockquote><p><em>&#8220;Communications are always outbound. Always reviewable. Always under human control. That&#8217;s the trust contract. The agent moves the work. You keep the accountability.&#8221;</em></p></blockquote><p>That&#8217;s the sentence to lift into your governance framework when you&#8217;re setting up these apps in your environment.</p><div><hr></div><p>The architecture stack, the agent orchestration patterns, and the AI Agent Studio tooling are in the second technical post. If you&#8217;re building or extending one of these apps, that&#8217;s the read you&#8217;ll want next.<br><br><br><strong>Disclaimer:</strong> This is my best reading of Oracle's Fusion Agentic Applications based on Oracle's public press releases dated 24 March and 9 April 2026 and conversation with Oracle product development team, technical posts by Oracle staff, and independent analyst coverage through May 2026.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.sidmalik.uk/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Sid! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Oracle just shipped a new category of enterprise software. Here’s what your Fusion roadmap should do about it.]]></title><description><![CDATA[An Oracle ACE&#8217;s read on Fusion Agentic Applications - what&#8217;s real, what&#8217;s not, and what to do moving forward.]]></description><link>https://www.sidmalik.uk/p/oracle-just-shipped-a-new-category</link><guid isPermaLink="false">https://www.sidmalik.uk/p/oracle-just-shipped-a-new-category</guid><dc:creator><![CDATA[Sid M.]]></dc:creator><pubDate>Wed, 13 May 2026 09:56:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!hBgO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc159489c-520a-4c29-aa93-deff624884d4_1433x776.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Most Oracle AI announcements over the past year have followed the same pattern. A few new agents, a Redwood UI refresh, the usual demo flow.</p><p>The announcements in AI World Tours have been different. Oracle has shipped a new category of enterprise software, not a new AI feature, and named 22 of them across ERP, SCM, HCM, and CX.</p><p>If you&#8217;re a Fusion architect or functional lead, the architecture underneath is good, the on-prem boundary just moved in a way that should change your Q3 plans, and release 26C will hit your tenant sooner than your release-management process is ready for.</p><h2>Quick Summary</h2><p>If you just want the headlines:</p><ul><li><p>Oracle has named 22 agentic applications across ERP/SCM (12), HCM (7), and CX (3). All included in Fusion at no additional subscription cost today.</p></li><li><p>Customer-side activation begins with release 26B.</p></li><li><p>The category is truly new - composable workspaces orchestrating teams of specialised agents around a business outcome. Most things called Agentic AI in 2025 are still single agents or fixed workflows.</p></li><li><p>Oracle has drawn a hard SaaS-only line. It remains to be seen how these will affect EBS, PeopleSoft, JD Edwards and Hyperion.</p></li><li><p>The engineering claim worth taking seriously: agents execute as the invoking user, inheriting RBAC and approval hierarchies, not as a service account.</p></li><li><p>Architecture is real, adoption is yet to be proven, and Forrester&#8217;s line - <em>&#8220;agent supply is strong, adoption proof is not&#8221;</em> - is somewhat of an honest take.</p></li></ul><p>Read on for the full breakdown.</p><h2>What&#8217;s Actually New</h2><p>The taxonomy goes AI Agents &gt; AI Workflows &gt; Agentic Apps. Goal-based single agents, then multi-step logic-based automations, then composable workspaces that orchestrate teams of agents around an outcome. The third pattern is the new one.</p><p>Most of what&#8217;s been called &#8220;agentic AI&#8221; in 2025 - parts of Agentforce, parts of Joule, large parts of Copilot - sits in the first two buckets.</p><p>I've watched Fusion users do exactly the manual orchestration agentic apps are supposed to compress i.e. hire-to-retire, workforce planning, to name a few.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hBgO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc159489c-520a-4c29-aa93-deff624884d4_1433x776.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hBgO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc159489c-520a-4c29-aa93-deff624884d4_1433x776.png 424w, https://substackcdn.com/image/fetch/$s_!hBgO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc159489c-520a-4c29-aa93-deff624884d4_1433x776.png 848w, https://substackcdn.com/image/fetch/$s_!hBgO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc159489c-520a-4c29-aa93-deff624884d4_1433x776.png 1272w, https://substackcdn.com/image/fetch/$s_!hBgO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc159489c-520a-4c29-aa93-deff624884d4_1433x776.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hBgO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc159489c-520a-4c29-aa93-deff624884d4_1433x776.png" width="1433" height="776" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c159489c-520a-4c29-aa93-deff624884d4_1433x776.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:776,&quot;width&quot;:1433,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:630658,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://promptsociety.substack.com/i/197474342?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc159489c-520a-4c29-aa93-deff624884d4_1433x776.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!hBgO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc159489c-520a-4c29-aa93-deff624884d4_1433x776.png 424w, https://substackcdn.com/image/fetch/$s_!hBgO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc159489c-520a-4c29-aa93-deff624884d4_1433x776.png 848w, https://substackcdn.com/image/fetch/$s_!hBgO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc159489c-520a-4c29-aa93-deff624884d4_1433x776.png 1272w, https://substackcdn.com/image/fetch/$s_!hBgO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc159489c-520a-4c29-aa93-deff624884d4_1433x776.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>That distinction is the one to take into your roadmap conversations.</p><h2>What Oracle Is Saying</h2><p>Enterprise software has historically been a system of record. It documents the business, follows fixed rules, retrieves information, completes tasks the user initiates.</p><p>Oracle is staking Fusion&#8217;s next decade on a system of outcomes. Software that works toward objectives without a human stitching steps together.</p><p>The shared foundation is what Fusion has always been good at - enterprise data, business objects, policies, approval hierarchies, RBAC. The agentic apps don&#8217;t replace that foundation. They sit on top and orchestrate against it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UJQ4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf41153d-2915-4ca8-af32-ed1a95405fbc_1406x879.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UJQ4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf41153d-2915-4ca8-af32-ed1a95405fbc_1406x879.png 424w, https://substackcdn.com/image/fetch/$s_!UJQ4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf41153d-2915-4ca8-af32-ed1a95405fbc_1406x879.png 848w, https://substackcdn.com/image/fetch/$s_!UJQ4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf41153d-2915-4ca8-af32-ed1a95405fbc_1406x879.png 1272w, https://substackcdn.com/image/fetch/$s_!UJQ4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf41153d-2915-4ca8-af32-ed1a95405fbc_1406x879.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UJQ4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf41153d-2915-4ca8-af32-ed1a95405fbc_1406x879.png" width="1406" height="879" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/df41153d-2915-4ca8-af32-ed1a95405fbc_1406x879.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:879,&quot;width&quot;:1406,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:802642,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://promptsociety.substack.com/i/197474342?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf41153d-2915-4ca8-af32-ed1a95405fbc_1406x879.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!UJQ4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf41153d-2915-4ca8-af32-ed1a95405fbc_1406x879.png 424w, https://substackcdn.com/image/fetch/$s_!UJQ4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf41153d-2915-4ca8-af32-ed1a95405fbc_1406x879.png 848w, https://substackcdn.com/image/fetch/$s_!UJQ4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf41153d-2915-4ca8-af32-ed1a95405fbc_1406x879.png 1272w, https://substackcdn.com/image/fetch/$s_!UJQ4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf41153d-2915-4ca8-af32-ed1a95405fbc_1406x879.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Most AI shipping in 2025 was new presentation over old transactions - chat over the same forms. Oracle is describing something different. A new application tier that takes business objectives as input and produces outcomes as output, calling existing transactional Fusion modules along the way.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!66jA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82bc8116-358d-448c-a1a0-0e92228c1917_1562x817.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!66jA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82bc8116-358d-448c-a1a0-0e92228c1917_1562x817.png 424w, https://substackcdn.com/image/fetch/$s_!66jA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82bc8116-358d-448c-a1a0-0e92228c1917_1562x817.png 848w, https://substackcdn.com/image/fetch/$s_!66jA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82bc8116-358d-448c-a1a0-0e92228c1917_1562x817.png 1272w, https://substackcdn.com/image/fetch/$s_!66jA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82bc8116-358d-448c-a1a0-0e92228c1917_1562x817.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!66jA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82bc8116-358d-448c-a1a0-0e92228c1917_1562x817.png" width="1456" height="762" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/82bc8116-358d-448c-a1a0-0e92228c1917_1562x817.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:762,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:773431,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://promptsociety.substack.com/i/197474342?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82bc8116-358d-448c-a1a0-0e92228c1917_1562x817.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!66jA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82bc8116-358d-448c-a1a0-0e92228c1917_1562x817.png 424w, https://substackcdn.com/image/fetch/$s_!66jA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82bc8116-358d-448c-a1a0-0e92228c1917_1562x817.png 848w, https://substackcdn.com/image/fetch/$s_!66jA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82bc8116-358d-448c-a1a0-0e92228c1917_1562x817.png 1272w, https://substackcdn.com/image/fetch/$s_!66jA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82bc8116-358d-448c-a1a0-0e92228c1917_1562x817.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>If You&#8217;re on EBS, PeopleSoft, JDE, or Hyperion</h3><p>One important thing to note is Rondy Ng&#8217;s comment during April Applications Analyst Summit -<em>&#8220;These agents are not coming to [EBS]. They&#8217;re not coming to our on-premises solutions, to JD Edwards, to PeopleSoft, to Hyperion. To enable this, you have to get to SaaS.&#8221;</em></p><p>If true, that&#8217;s Oracle telling roughly half its installed base that the system of outcomes is Fusion-SaaS-only (for now at least). EBS, PeopleSoft, JDE, and Hyperion stay in the system-of-record world for the rest of their support lifetime.</p><p>Oracle&#8217;s mitigation plan is a new enterprise configuration agent that ingests EBS, PeopleSoft, and JDE metadata and proposes a Fusion enterprise structure. Work that took SIs months now runs in hours. Real and useful, and commercially convenient. It accelerates the migration funnel Oracle has been trying to fill for a decade.</p><p>If you&#8217;re on a legacy stack, Q3 isn&#8217;t a multi-year migration. It&#8217;s negotiating the bridge to Fusion AI in 12-18 months and locking renewal guardrails before pricing models move.</p><h2>The 22 New Apps</h2><p>Oracle named 22 agentic applications across three suites - 12 in ERP/SCM, 7 in HCM, 3 in CX. Announced on 24 March 2026 at Oracle AI World London, with follow-on press releases on 9 April.</p><p>All 22 are included in Fusion starting 26B.</p><p>Forrester is expecting staggered maturity but from what I have seen in last few weeks, there is enough evidence that the delivered agentic applications are good enough to start with and will only improve moving forward. The ledger agent is in production, FP&amp;A and consolidation apps demoed live, Collectors and channel-revenue apps are expected this year.</p><p>The 22 also sit above a larger inventory of individual agents - Payables, Ledger, Planning, Claims Settlement - embedded in Fusion modules for longer. It&#8217;s best not to conflate the two layers.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aOYJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb489125-b724-4a98-bc90-0664943b965a_1431x755.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aOYJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb489125-b724-4a98-bc90-0664943b965a_1431x755.png 424w, https://substackcdn.com/image/fetch/$s_!aOYJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb489125-b724-4a98-bc90-0664943b965a_1431x755.png 848w, https://substackcdn.com/image/fetch/$s_!aOYJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb489125-b724-4a98-bc90-0664943b965a_1431x755.png 1272w, https://substackcdn.com/image/fetch/$s_!aOYJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb489125-b724-4a98-bc90-0664943b965a_1431x755.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aOYJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb489125-b724-4a98-bc90-0664943b965a_1431x755.png" width="1431" height="755" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cb489125-b724-4a98-bc90-0664943b965a_1431x755.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:755,&quot;width&quot;:1431,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:622684,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://promptsociety.substack.com/i/197474342?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb489125-b724-4a98-bc90-0664943b965a_1431x755.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!aOYJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb489125-b724-4a98-bc90-0664943b965a_1431x755.png 424w, https://substackcdn.com/image/fetch/$s_!aOYJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb489125-b724-4a98-bc90-0664943b965a_1431x755.png 848w, https://substackcdn.com/image/fetch/$s_!aOYJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb489125-b724-4a98-bc90-0664943b965a_1431x755.png 1272w, https://substackcdn.com/image/fetch/$s_!aOYJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb489125-b724-4a98-bc90-0664943b965a_1431x755.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In the table below, each workspace is collapsed to a primary user and a primary outcome. </p><div id="datawrapper-iframe" class="datawrapper-wrap outer" data-attrs="{&quot;url&quot;:&quot;https://datawrapper.dwcdn.net/3GQgQ/1/&quot;,&quot;thumbnail_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dea06a50-36a3-4d72-9adc-a6347693628b_1220x2730.png&quot;,&quot;thumbnail_url_full&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/150abe0b-c54b-4eb5-9c9a-7c1296473dfa_1220x2730.png&quot;,&quot;height&quot;:1365,&quot;title&quot;:&quot;| Created with Datawrapper&quot;,&quot;description&quot;:&quot;Create interactive, responsive &amp; beautiful charts &#8212; no code required.&quot;,&quot;belowTheFold&quot;:true}" data-component-name="DatawrapperToDOM"><iframe id="iframe-datawrapper" class="datawrapper-iframe" src="https://datawrapper.dwcdn.net/3GQgQ/1/" width="730" height="1365" frameborder="0" scrolling="no" loading="lazy"></iframe><script type="text/javascript">!function(){"use strict";window.addEventListener("message",(function(e){if(void 0!==e.data["datawrapper-height"]){var t=document.querySelectorAll("iframe");for(var a in e.data["datawrapper-height"])for(var r=0;r<t.length;r++){if(t[r].contentWindow===e.source)t[r].style.height=e.data["datawrapper-height"][a]+"px"}}}))}();</script></div><h2>How It Stacks Up</h2><p>It&#8217;s worth holding this up against where the other three big platforms are.</p><p>SAP Joule has the good enough inventory - 40+ agents and 2,400 skills but the friction point is adoption. DSAG&#8217;s independent survey found only around 3% of SAP customers running it in production. Pricing through AI Units, at around &#8364;7 per unit with 12-month expiry, has been a real sticking point for SAP. And Joule needs RISE or GROW - it doesn&#8217;t run on-prem. So Oracle is ahead on transactional depth and on suite breadth in a single product motion.</p><p>Salesforce Agentforce is where Oracle should probably watch out. Salesforce posted $2.9B ARR, 29,000 deals, and 2.4B Agentic Work Units in FY26 Q4. That&#8217;s adoption trajectory Oracle might not be able to match for another release cycle. The AELA &#8220;all you can eat&#8221; pricing model is commercially differentiated too. Forrester reports limited adoption depth in customer conversations though, and third-party hallucination rates of 3-27% have been reported on some workloads. Oracle&#8217;s transactional-system-native architecture is the technical answer here. The commercial side will take longer.</p><p>Workday Illuminate is the interesting one on governance. Their Agent System of Record plus Agent Gateway has 65+ third-party agents registered. They&#8217;re consumption-priced via Flex Credits, with around 50 customer signings disclosed. The production cases are real - GM cut candidate screening 70%, AdventHealth claimed $68M in savings. Oracle&#8217;s AI Agent Marketplace covers similar territory but doesn&#8217;t yet have a comparable governance plane but I wouldn&#8217;t be surprised if something very concrete from Oracle hits in 26C and 26D because they are certainly working on this behind the scenes.</p><p>Microsoft Agent 365 went GA on 1 May 2026 with a cross-cloud agent registry that inventories AWS Bedrock and Google Cloud agents. Oracle has nothing equivalent at the moment and that&#8217;s a real gap for multi-cloud architecture. Microsoft&#8217;s distribution moat is 20M paid Copilot seats. Their transactional depth in Dynamics 365 Finance is shallower than Oracle&#8217;s though.</p><p>For your CIO conversation: Oracle&#8217;s strengths are its transactional-system-native execution and the breadth of suites it covers in one product motion. The places it trails are - Salesforce is ahead on raw adoption projections, Workday has shipped a more formal governance plane, and Microsoft was first with the cross-cloud agent registry. Each of those is closeable inside a year if Oracle prioritises it.</p><h2>What to Do Now</h2><p>Concrete actions for your roadmap this quarter.</p><p>Fusion customers - pick one workspace from the most-fleshed-out group (Collectors, Cross-Sell Program, Workforce Operations, or Design-to-Source) and stand up a sandboxed pod for release 26B activation. Choose one with a clean outcome metric (DSO, candidate-to-hire time, RFQ cycle time) so you have something to put in your Agent ROI Dashboard pilot.</p><p>EBS, PeopleSoft, JDE, and Hyperion shops - negotiate the bridge to Fusion AI in 12-18 months and ask Oracle for the enterprise configuration agent in a pre-sales engagement. You&#8217;ll want to see what migration acceleration actually looks like.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WCKW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6da05087-04e5-43fa-b3b9-7c2e9424168d_1396x748.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WCKW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6da05087-04e5-43fa-b3b9-7c2e9424168d_1396x748.png 424w, https://substackcdn.com/image/fetch/$s_!WCKW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6da05087-04e5-43fa-b3b9-7c2e9424168d_1396x748.png 848w, https://substackcdn.com/image/fetch/$s_!WCKW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6da05087-04e5-43fa-b3b9-7c2e9424168d_1396x748.png 1272w, https://substackcdn.com/image/fetch/$s_!WCKW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6da05087-04e5-43fa-b3b9-7c2e9424168d_1396x748.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WCKW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6da05087-04e5-43fa-b3b9-7c2e9424168d_1396x748.png" width="1396" height="748" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6da05087-04e5-43fa-b3b9-7c2e9424168d_1396x748.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:748,&quot;width&quot;:1396,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:569173,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://promptsociety.substack.com/i/197474342?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6da05087-04e5-43fa-b3b9-7c2e9424168d_1396x748.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WCKW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6da05087-04e5-43fa-b3b9-7c2e9424168d_1396x748.png 424w, https://substackcdn.com/image/fetch/$s_!WCKW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6da05087-04e5-43fa-b3b9-7c2e9424168d_1396x748.png 848w, https://substackcdn.com/image/fetch/$s_!WCKW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6da05087-04e5-43fa-b3b9-7c2e9424168d_1396x748.png 1272w, https://substackcdn.com/image/fetch/$s_!WCKW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6da05087-04e5-43fa-b3b9-7c2e9424168d_1396x748.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In a follow-up post I&#8217;ll go inside one of these apps - the protocol that wires the app shell to its agents, the widget schemas, the communications model, and what makes Oracle&#8217;s architecture defensible. If you&#8217;re standing one of these up in your tenant, that&#8217;s the read you&#8217;ll want next.</p><p></p><p></p><div><hr></div><p><strong>Disclaimer:</strong> This is my best reading of Oracle&#8217;s Fusion Agentic Applications announcement based on Oracle&#8217;s public press releases dated 24 March and 9 April 2026, conversations with Oracle product development team, and independent analyst coverage published through May 2026.</p><div><hr></div>]]></content:encoded></item><item><title><![CDATA[Triggers, Channels, and the Integration Layer: How Oracle AI Agents Connect to Everything]]></title><description><![CDATA[Everyone wants to talk about what agents can do.]]></description><link>https://www.sidmalik.uk/p/triggers-channels-and-the-integration</link><guid isPermaLink="false">https://www.sidmalik.uk/p/triggers-channels-and-the-integration</guid><dc:creator><![CDATA[Sid M.]]></dc:creator><pubDate>Tue, 07 Apr 2026 11:37:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!TK9g!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F937b791c-71d4-4335-9588-ec488f90fd99_1920x1080.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Everyone wants to talk about what agents can do. What they can query, what they can create, what decisions they can make. Almost nobody starts with how the agent gets kicked off in the first place.</p><p>That&#8217;s a mistake. Trigger design matters more than most people think when deploying Workflow Agents in production - because the trigger determines not just when your agent runs, but how well it fits into the way your organisation actually works.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.sidmalik.uk/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Sid! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>The 26A release introduced three trigger types for Workflow Agents - webhook, email, and schedule - alongside native integrations for Microsoft Teams and Slack. Between them, they cover most of what you&#8217;ll need. I&#8217;m not going to walk through what triggers exist - you can find that in the docs. This is about which trigger fits which problem, and what you actually need to know to configure each one properly.</p><p><strong>One thing to flag upfront: the agent must be in a published state for any trigger to work. Sounds obvious. It isn&#8217;t, I&#8217;ve been personally tripped by this more than once.</strong></p><h3>The Webhook Trigger: System-to-System Integration</h3><p>This is what sits behind the invokeAsync REST API, and it&#8217;s where you&#8217;ll spend the most time if your organisation runs Fusion alongside other enterprise systems.</p><p>The pattern is a two-step async flow. An external application sends a POST to the invoke endpoint - passing a user prompt or structured data - and because the agent may take time to reason through that input, the call returns a job ID immediately. The calling system then polls a separate status endpoint using that job ID to retrieve the final output.</p><p>The endpoint URLs follow a consistent structure:</p><ul><li><p><strong>Invoke:</strong> <code>https://&lt;pod_host&gt;/api/fusion-ai/orchestrator/agent/v2/&lt;workflowCode&gt;/invokeAsync</code></p></li><li><p><strong>Status:</strong> <code>https://&lt;pod_host&gt;/api/fusion-ai/orchestrator/agent/v2/&lt;workflowCode&gt;/status/&lt;jobId&gt;</code></p></li></ul><p>Authentication is standard OAuth 2.0 bearer tokens via OCI IAM/IDCS. Nothing new if you&#8217;re already working with Fusion APIs.</p><h3>The Request Body: More Than Just a Message</h3><p>The invokeAsync request body supports more fields than most people realise. Beyond the obvious <code>message</code> field (your user prompt), there&#8217;s <code>conversational</code> (boolean - set to true for multi-turn exchanges), <code>conversationId</code> (pass back the ID from a previous response to continue a conversation), <code>invocationMode</code> (either <code>END_USER</code> or <code>ADMIN</code> for debug output), <code>parameters</code> (key-value object for webhook input variables), <code>streamOutput</code> and <code>progressMessage</code> (booleans for streaming and progress updates), and <code>resumeNodeInput</code> (for resuming a workflow that&#8217;s paused at a human approval step). The <code>status</code> field lets you target either the <code>PUBLISHED</code> or <code>DRAFT</code> version of a workflow - useful during testing.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TK9g!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F937b791c-71d4-4335-9588-ec488f90fd99_1920x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TK9g!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F937b791c-71d4-4335-9588-ec488f90fd99_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!TK9g!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F937b791c-71d4-4335-9588-ec488f90fd99_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!TK9g!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F937b791c-71d4-4335-9588-ec488f90fd99_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!TK9g!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F937b791c-71d4-4335-9588-ec488f90fd99_1920x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TK9g!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F937b791c-71d4-4335-9588-ec488f90fd99_1920x1080.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/937b791c-71d4-4335-9588-ec488f90fd99_1920x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:269153,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://promptsociety.substack.com/i/193452324?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F937b791c-71d4-4335-9588-ec488f90fd99_1920x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!TK9g!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F937b791c-71d4-4335-9588-ec488f90fd99_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!TK9g!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F937b791c-71d4-4335-9588-ec488f90fd99_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!TK9g!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F937b791c-71d4-4335-9588-ec488f90fd99_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!TK9g!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F937b791c-71d4-4335-9588-ec488f90fd99_1920x1080.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The initial response returns immediately with status <code>RUNNING</code>, a <code>jobId</code> for polling, and a <code>conversationId</code> for future multi-turn exchanges. You then poll the status endpoint until the status transitions to <code>COMPLETE</code> or <code>ERROR</code>. When <code>COMPLETE</code>, the <code>output</code> field contains the agent&#8217;s final response. If the status is <code>WAITING</code>, that means the workflow has paused at a human approval step - your integration needs to handle that explicitly.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!j6Ew!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F957ed680-f046-4e62-b8cf-c35a9c8b3ce7_1920x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!j6Ew!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F957ed680-f046-4e62-b8cf-c35a9c8b3ce7_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!j6Ew!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F957ed680-f046-4e62-b8cf-c35a9c8b3ce7_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!j6Ew!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F957ed680-f046-4e62-b8cf-c35a9c8b3ce7_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!j6Ew!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F957ed680-f046-4e62-b8cf-c35a9c8b3ce7_1920x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!j6Ew!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F957ed680-f046-4e62-b8cf-c35a9c8b3ce7_1920x1080.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/957ed680-f046-4e62-b8cf-c35a9c8b3ce7_1920x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:334008,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://promptsociety.substack.com/i/193452324?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F957ed680-f046-4e62-b8cf-c35a9c8b3ce7_1920x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!j6Ew!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F957ed680-f046-4e62-b8cf-c35a9c8b3ce7_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!j6Ew!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F957ed680-f046-4e62-b8cf-c35a9c8b3ce7_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!j6Ew!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F957ed680-f046-4e62-b8cf-c35a9c8b3ce7_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!j6Ew!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F957ed680-f046-4e62-b8cf-c35a9c8b3ce7_1920x1080.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!F3tN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bf5f66d-b78d-403d-af8e-069cb9ed2d66_1920x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!F3tN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bf5f66d-b78d-403d-af8e-069cb9ed2d66_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!F3tN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bf5f66d-b78d-403d-af8e-069cb9ed2d66_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!F3tN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bf5f66d-b78d-403d-af8e-069cb9ed2d66_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!F3tN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bf5f66d-b78d-403d-af8e-069cb9ed2d66_1920x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!F3tN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bf5f66d-b78d-403d-af8e-069cb9ed2d66_1920x1080.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8bf5f66d-b78d-403d-af8e-069cb9ed2d66_1920x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:349909,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://promptsociety.substack.com/i/193452324?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bf5f66d-b78d-403d-af8e-069cb9ed2d66_1920x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!F3tN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bf5f66d-b78d-403d-af8e-069cb9ed2d66_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!F3tN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bf5f66d-b78d-403d-af8e-069cb9ed2d66_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!F3tN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bf5f66d-b78d-403d-af8e-069cb9ed2d66_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!F3tN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bf5f66d-b78d-403d-af8e-069cb9ed2d66_1920x1080.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><strong>For development, appending </strong><code>?invocationMode=ADMIN</code><strong> as a query parameter (or setting it in the request body) is worth knowing about. It returns the full node execution trace - traceId, start and end timestamps in both epoch and ISO format, input and output token counts, node-level execution details, and </strong><code>timeTaken</code><strong> in milliseconds. That saves you a lot of debugging time compared to guessing from the output alone.</strong></p><h3>Setting Up External Access: The IAM Configuration</h3><p>If you&#8217;re calling invokeAsync from outside the Fusion ecosystem, there&#8217;s a multi-step IAM setup that needs to happen first. The Oracle documentation outlines five steps: create a confidential application in Fusion IAM that represents the external app, enable access to the AI Agent Studio service for invokeAsync, create a matching confidential application in the external app&#8217;s own IAM, register the external app in the AI Agent Studio Credentials tab (base URL, IDCS URL, scope, public/private keys), and then create business objects from the registered data source if needed. <strong>It&#8217;s not complex, but it&#8217;s sequential - and skipping a step means silent failures rather than helpful error messages.</strong></p><p><strong>Two profile options also need to be set at site level before any of this works: </strong><code>ORA_ASE_SAS_INTEGRATION_ENABLED</code><strong> must be set to Yes, and </strong><code>ORA_HCM_VBCS_PWA_ENABLED</code><strong> must be set to Y for end user access. These are the kind of prerequisites that don&#8217;t surface in any error message - you just get a blank response or a 403.</strong></p><h3>Parameterised Webhooks</h3><p>This is the more powerful pattern. When configuring a webhook trigger, you define named input variables - with explicit types like string or number - that get passed into the REST call as part of the parameters object. Those values are then available within the workflow as trigger variables, accessible through the context picker under Input &gt; Variables.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gyhU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F761e8891-c888-410d-8b8c-9bd40515ac39_1920x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gyhU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F761e8891-c888-410d-8b8c-9bd40515ac39_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!gyhU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F761e8891-c888-410d-8b8c-9bd40515ac39_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!gyhU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F761e8891-c888-410d-8b8c-9bd40515ac39_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!gyhU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F761e8891-c888-410d-8b8c-9bd40515ac39_1920x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gyhU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F761e8891-c888-410d-8b8c-9bd40515ac39_1920x1080.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/761e8891-c888-410d-8b8c-9bd40515ac39_1920x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:296861,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://promptsociety.substack.com/i/193452324?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F761e8891-c888-410d-8b8c-9bd40515ac39_1920x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gyhU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F761e8891-c888-410d-8b8c-9bd40515ac39_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!gyhU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F761e8891-c888-410d-8b8c-9bd40515ac39_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!gyhU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F761e8891-c888-410d-8b8c-9bd40515ac39_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!gyhU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F761e8891-c888-410d-8b8c-9bd40515ac39_1920x1080.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>So in practice: a single published workflow can handle multiple variations of a process, with the calling system supplying the context that shapes how the agent behaves. Instead of building separate workflows for every scenario, you parameterise the inputs and let the workflow adapt.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9LS1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F127339ba-d669-425a-995d-627a5e303953_1920x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9LS1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F127339ba-d669-425a-995d-627a5e303953_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!9LS1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F127339ba-d669-425a-995d-627a5e303953_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!9LS1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F127339ba-d669-425a-995d-627a5e303953_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!9LS1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F127339ba-d669-425a-995d-627a5e303953_1920x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9LS1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F127339ba-d669-425a-995d-627a5e303953_1920x1080.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/127339ba-d669-425a-995d-627a5e303953_1920x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:308445,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://promptsociety.substack.com/i/193452324?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F127339ba-d669-425a-995d-627a5e303953_1920x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9LS1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F127339ba-d669-425a-995d-627a5e303953_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!9LS1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F127339ba-d669-425a-995d-627a5e303953_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!9LS1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F127339ba-d669-425a-995d-627a5e303953_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!9LS1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F127339ba-d669-425a-995d-627a5e303953_1920x1080.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>If your integration platform, middleware, or an application like EPM or a third-party system needs to invoke a Fusion agent without any human initiating the conversation - webhook is the right choice. And with the Data Source Applications capability in 26A, those agents can now reach back out to non-Fusion systems too, using OAuth connections configured under Credentials. The integration story is becoming properly bidirectional.</p><h3>Multi-Turn Conversations via the API</h3><p>The <code>conversationId</code> field is what makes multi-turn integrations work. After the first invokeAsync call, the response includes a <code>conversationId</code>. Pass that back in the next request with <code>conversational</code> set to true, and the agent retains the full conversation history - meaning it can reason about what&#8217;s already been discussed rather than treating each call as a cold start. For integration scenarios where an external system needs a back-and-forth exchange with a Fusion agent (rather than a single fire-and-forget), this is what makes that possible. When session management is enabled, the session persists for interactive conversation with short-term memory that condenses chat history to reduce latency and token usage.</p><div><hr></div><h3>The External REST Tool: Reaching Beyond Fusion</h3><p>Before getting to the other trigger types, I want to cover the External REST tool - because it&#8217;s the primary mechanism for connecting workflows to non-Fusion systems, and it comes up in almost every integration design I&#8217;ve seen.</p><p>The configuration follows a consistent pattern: you set a base API URL, choose an authorization type (API Key or OAuth), then define individual functions - each with an HTTP method, resource path, parameters, headers, and body. POST with JSON body is the most common pattern for create/update operations: leave requests, job requisitions, benefit enrolments, record updates in external systems.</p><p>The clever bit is slottable parameters. You define placeholder fields in headers, query parameters, and body content - and at runtime, the LLM learns to generate the correct values based on context. The key to making this work well is providing good example parameters at design time. The agent uses those examples to understand what kind of data each field expects, and Oracle gives you the ability to test individual functions during design - before the workflow is published - with sample parameters to verify the integration works.</p><p>If you&#8217;re coming from traditional Fusion integration work, this is a big change. Instead of building middleware or writing custom adapters, you&#8217;re configuring REST connections directly within the agent studio and letting the LLM handle the dynamic parts. It&#8217;s not a replacement for OIC in complex integration scenarios, but for point-to-point API calls within a workflow, it&#8217;s a lot quicker to set up.</p><div><hr></div><h3>The Email Trigger: Document Ingestion That Actually Works</h3><p>The email trigger doesn&#8217;t get as much attention as the REST API. It should.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7Lj6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa400163e-b1ec-49f9-889b-155c5c552c15_1920x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7Lj6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa400163e-b1ec-49f9-889b-155c5c552c15_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!7Lj6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa400163e-b1ec-49f9-889b-155c5c552c15_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!7Lj6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa400163e-b1ec-49f9-889b-155c5c552c15_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!7Lj6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa400163e-b1ec-49f9-889b-155c5c552c15_1920x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7Lj6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa400163e-b1ec-49f9-889b-155c5c552c15_1920x1080.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a400163e-b1ec-49f9-889b-155c5c552c15_1920x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:316116,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://promptsociety.substack.com/i/193452324?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa400163e-b1ec-49f9-889b-155c5c552c15_1920x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7Lj6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa400163e-b1ec-49f9-889b-155c5c552c15_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!7Lj6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa400163e-b1ec-49f9-889b-155c5c552c15_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!7Lj6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa400163e-b1ec-49f9-889b-155c5c552c15_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!7Lj6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa400163e-b1ec-49f9-889b-155c5c552c15_1920x1080.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>Setup is simple. Configure a Google or Microsoft email account under Credentials &gt; Email Accounts with the account type set to Inbound. From that point on, any new email arriving in that inbox automatically kicks off the workflow. No polling job, no middleware.</p><p>What makes it useful is what context it gives you. The email body, sender address, subject line, headers, and processed attachment text are all available as context variables:</p><ul><li><p><code>$context.$triggers.EMAIL.$input.content</code> - email body</p></li><li><p><code>$context.$triggers.EMAIL.$input.fromAddress</code> - sender</p></li><li><p><code>$context.$triggers.EMAIL.$input.attachments[0].context</code> - extracted text from attachments</p></li></ul><p>That combination makes document ingestion workflows easy to wire up.</p><h3>What Document Ingestion Actually Looks Like</h3><p>The partner training materials had use cases that give you a sense of how far this can go:</p><ul><li><p><strong>P.O. to Sales Order:</strong> Customer purchase order arrives as a PDF attachment. The workflow ingests the document, classifies it as an order, extracts customer details, products, pricing, and terms, runs a catalogue and pricing check with exceptions flagged for human review, then creates and fulfils the sales order in Order Management.</p></li><li><p><strong>Supplier Quote to Purchase Requisition:</strong> Same pattern, different extraction - supplier details, items, quantities, UOMs, currency and amounts. Confirm the supplier and line count, then create the requisition in Procurement.</p></li><li><p><strong>Court Order to Payroll Garnishment:</strong> A court order received via secure email triggers a workflow that identifies the employee, case number, and amounts, checks HR and payroll records for exceptions, then applies the deduction and updates payroll.</p></li><li><p><strong>FDA Recall to Inventory Quarantine:</strong> An FDA recall notice triggers identification of affected item codes, lot numbers, and facilities, matches against current inventory, then quarantines items and blocks distribution.</p></li></ul><p>These are exactly the kind of processes where someone had to touch every step manually.</p><p><strong>Two practical constraints to know upfront. First: each workflow can monitor only one unique inbound email account. You can&#8217;t have a single workflow listening to multiple mailboxes. Second: you cannot reuse the same inbound email account across multiple workflows. One inbox, one workflow - that&#8217;s the model. This means dedicated, purpose-specific inboxes rather than a shared mailbox with filtering logic.</strong></p><p><strong>It&#8217;s also worth configuring error notification destinations early. You can specify error destination emails with context expressions - meaning if the workflow fails, the right person gets notified with the relevant context automatically rather than the failure disappearing silently.</strong></p><p><strong>To verify your email trigger is working, go to the Monitoring and Evaluation tab, open the Activities subtab, and check Inbound Emails. You&#8217;ll see the trigger email contents and can verify whether the workflow was actually initiated. Same approach works for schedule triggers - the Schedules view under Activities shows whether your scheduled runs are firing.</strong></p><div><hr></div><h3>File Upload via Chat: UCM and the 26B Simplification</h3><p>Not every document processing scenario starts from an email. Sometimes it starts from a user uploading a file during a conversation.</p><p>In 26A, you added the MultiFileProcessor tool to an agent. Users could upload up to five files at a time, combined size limit of 50 MB, across formats including PDF, XLSX, DOCX, PPTX, CSV, JSON, XML, and images. Third-party cloud storage uploads from Google Drive, Dropbox, or OneDrive were also supported.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SIwk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01be3dee-3996-429a-b3cc-dc08b34744c9_1920x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SIwk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01be3dee-3996-429a-b3cc-dc08b34744c9_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!SIwk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01be3dee-3996-429a-b3cc-dc08b34744c9_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!SIwk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01be3dee-3996-429a-b3cc-dc08b34744c9_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!SIwk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01be3dee-3996-429a-b3cc-dc08b34744c9_1920x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SIwk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01be3dee-3996-429a-b3cc-dc08b34744c9_1920x1080.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/01be3dee-3996-429a-b3cc-dc08b34744c9_1920x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:284387,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://promptsociety.substack.com/i/193452324?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01be3dee-3996-429a-b3cc-dc08b34744c9_1920x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!SIwk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01be3dee-3996-429a-b3cc-dc08b34744c9_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!SIwk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01be3dee-3996-429a-b3cc-dc08b34744c9_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!SIwk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01be3dee-3996-429a-b3cc-dc08b34744c9_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!SIwk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01be3dee-3996-429a-b3cc-dc08b34744c9_1920x1080.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>In 26B, the mechanism was simplified. Instead of the MultiFileProcessor tool, you add a Tool node to your workflow and select &#8220;Chat Attachments Reader&#8221; as the type. Cleaner approach - the file reading becomes a node in the workflow rather than a tool attached to an agent.</p><p>For UCM-based document processing - where the file is already an attachment on a Fusion business object - the Document Processor node handles retrieval. You configure the metadata (family, product, business object fields) and the function used for retrieval (such as <code>get_document_for_processing</code>). The node retrieves the file from UCM and sends it to the document-processing backend for text extraction.</p><div><hr></div><h3>The Schedule Trigger: Governance on Autopilot</h3><p>The schedule trigger is the quietest of the three, and probably the most useful for keeping things running properly on an ongoing basis.</p><p>It supports two patterns:</p><ul><li><p><strong>Interval scheduling</strong> fires on a repeating, time-based cadence - seconds, minutes, hours, or days from a defined anchor point. Good for continuous monitoring: checking headcount exceptions every four hours, or monitoring approval queue ages and escalating anything past a threshold.</p></li><li><p><strong>Recurrence scheduling</strong> works on calendar-based patterns, either one-off or repeating. Good for structured operational rhythms: weekly payroll reconciliation, monthly compliance attestation reminders, quarterly audit preparation.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YF_e!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce98c985-5409-4016-b497-c249687b8274_1920x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YF_e!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce98c985-5409-4016-b497-c249687b8274_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!YF_e!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce98c985-5409-4016-b497-c249687b8274_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!YF_e!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce98c985-5409-4016-b497-c249687b8274_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!YF_e!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce98c985-5409-4016-b497-c249687b8274_1920x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YF_e!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce98c985-5409-4016-b497-c249687b8274_1920x1080.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ce98c985-5409-4016-b497-c249687b8274_1920x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:267304,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://promptsociety.substack.com/i/193452324?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce98c985-5409-4016-b497-c249687b8274_1920x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!YF_e!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce98c985-5409-4016-b497-c249687b8274_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!YF_e!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce98c985-5409-4016-b497-c249687b8274_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!YF_e!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce98c985-5409-4016-b497-c249687b8274_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!YF_e!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce98c985-5409-4016-b497-c249687b8274_1920x1080.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>You can combine both trigger types on the same agent to suit different automation needs simultaneously.</p><h3>Multi-Step Use Cases Across Fusion Pillars</h3><p>The training materials had detailed scenarios showing how schedule triggers connect to broader workflow patterns:</p><ul><li><p><strong>HCM - Leave/Accommodation:</strong> Evaluates eligibility against dates and policy constraints, determines required docs and routing path, routes to HR/Legal/Benefits, handles approvals and exception reviews, creates the leave case, updates time and payroll, notifies stakeholders.</p></li><li><p><strong>SCM - Supply Disruption Recovery:</strong> Fires on a late/shortage/quality alert, identifies impacted orders, assesses inventory constraints, determines best recovery option (cost vs SLA), reallocates and reroutes, updates ATP allocations, publishes a summary.</p></li><li><p><strong>ERP - Dispute &gt; Credit/Rebill:</strong> Customer dispute raised, evidence gathered from orders/shipments/terms, credit vs rebill vs deny decision, proof assembled and comms drafted, credit threshold approval, then issue credit/rebill, update AR, notify customer, close.</p></li><li><p><strong>CX - Case-to-Resolution:</strong> New case from any channel, intent and severity classified, next-best fix and escalation criteria determined, troubleshoot steps executed, high-risk/VIP approvals, case updated, customer summary sent, closed with audit trail.</p></li></ul><p><strong>One configuration detail that&#8217;s easy to overlook: the user who creates a scheduled workflow must be assigned the FAI Batch Job Manager Duty role (</strong><code>ORA_DR_FAI_BATCH_JOB_MANAGER_DUTY</code><strong>). This isn&#8217;t obvious from the UI and it will block your scheduling job from being created. Raise it with your security team early - before you get to testing.</strong></p><div><hr></div><h3>Teams and Slack: Meeting Users Where They Already Are</h3><p>For a lot of organisations, the biggest deal in 26A isn&#8217;t a trigger in the technical sense - it&#8217;s the native channel integrations for Microsoft Teams and Slack.</p><p>These move agent interaction out of the embedded Fusion chat widget (which requires users to be in Fusion) and into the collaboration tools they&#8217;re already in all day. If user adoption of AI capabilities has been slow in your organisation, this is often the difference between something people actually use and something they forget about.</p><h3>Teams Setup: Step by Step</h3><p>The Teams configuration is more involved than most trigger setups, so it&#8217;s worth laying out the steps. You start by creating an Azure Bot via Azure Portal (Create Resource &gt; Azure Bot, selecting Single Tenant as the creation type and &#8220;Create new Microsoft App ID&#8221;). Then in AI Agent Studio, navigate to Credentials &gt; Channels &gt; Microsoft Teams and configure the channel with the bot details. AI Agent Studio generates a manifest ZIP file, which you download and upload to the Teams Admin Center (admin.teams.microsoft.com) under Teams apps &gt; Manage apps &gt; Upload new app. Finally, enable the app organisation-wide via Teams apps &gt; Setup policies &gt; Global.</p><p><strong>One gotcha: if you modify the channel configuration in AI Agent Studio after initial setup, you need to regenerate and re-upload the manifest ZIP to Teams. The old manifest won&#8217;t reflect the changes.</strong></p><h3>Slack Setup</h3><p>Slack follows a similar manifest-driven approach. Navigate to Credentials &gt; Channels &gt; Slack, generate a manifest from AI Agent Studio, then go to api.slack.com/apps and create a new app &#8220;From a manifest.&#8221; Choose your workspace, paste in the manifest JSON, and complete the setup. Extract the Bot User OAuth Token from the app configuration, then return to AI Agent Studio and enter that token in the Slack channel configuration. In Slack itself, add the app to your workspace.</p><h3>Security: The Channel Permissions</h3><p>A new duty role in 26A groups all channel-related permissions for both Teams and Slack. The permissions are granular: create, read, update, and delete for both ChannelManifest and ExternalChatCorrelation. That&#8217;s eight individual permissions. Any user configuring channel integrations or interacting with agents through these channels needs this role assigned. Factor it into your security review ahead of go-live, not during UAT.</p><div><hr></div><h3>Embedded Workflows: Composability Through Reuse</h3><p>This is a capability that sits alongside trigger design and I think will become increasingly central to how people build.</p><p>The Workflow node and Agent node allow a running workflow to call other published workflows or reusable agents as part of its execution. The Workflow node calls a published workflow or agent team; the Agent node calls a reusable agent. Think of them as building blocks for composable automation.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!p2Nz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd87a3c0e-c31e-495a-a763-348364e2c7a0_1920x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!p2Nz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd87a3c0e-c31e-495a-a763-348364e2c7a0_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!p2Nz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd87a3c0e-c31e-495a-a763-348364e2c7a0_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!p2Nz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd87a3c0e-c31e-495a-a763-348364e2c7a0_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!p2Nz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd87a3c0e-c31e-495a-a763-348364e2c7a0_1920x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!p2Nz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd87a3c0e-c31e-495a-a763-348364e2c7a0_1920x1080.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d87a3c0e-c31e-495a-a763-348364e2c7a0_1920x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:246193,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://promptsociety.substack.com/i/193452324?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd87a3c0e-c31e-495a-a763-348364e2c7a0_1920x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!p2Nz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd87a3c0e-c31e-495a-a763-348364e2c7a0_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!p2Nz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd87a3c0e-c31e-495a-a763-348364e2c7a0_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!p2Nz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd87a3c0e-c31e-495a-a763-348364e2c7a0_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!p2Nz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd87a3c0e-c31e-495a-a763-348364e2c7a0_1920x1080.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>The training materials showed a customer support bot whose main workflow handles the initial query, and when escalation is needed, a Workflow node calls a separate Ticket Creation workflow. That child workflow logs the issue, returns a ticket ID to the parent. Variables and messages can be passed through - these appear as input variables if the called workflow has a webhook trigger with defined variables.</p><p><strong>Important constraint:</strong> workflows containing human-approval nodes or wait nodes cannot currently be called as embedded workflows. The wait node restriction is noted as being addressed in 26B, but the human-approval constraint remains. Makes sense architecturally - an embedded workflow that blocks waiting for a human would create unpredictable timing for the parent - but it&#8217;s something to design around early.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!agDh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8248bd04-6c1d-4730-ab20-f92b522c275f_1920x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!agDh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8248bd04-6c1d-4730-ab20-f92b522c275f_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!agDh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8248bd04-6c1d-4730-ab20-f92b522c275f_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!agDh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8248bd04-6c1d-4730-ab20-f92b522c275f_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!agDh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8248bd04-6c1d-4730-ab20-f92b522c275f_1920x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!agDh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8248bd04-6c1d-4730-ab20-f92b522c275f_1920x1080.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8248bd04-6c1d-4730-ab20-f92b522c275f_1920x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:201108,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://promptsociety.substack.com/i/193452324?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8248bd04-6c1d-4730-ab20-f92b522c275f_1920x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!agDh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8248bd04-6c1d-4730-ab20-f92b522c275f_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!agDh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8248bd04-6c1d-4730-ab20-f92b522c275f_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!agDh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8248bd04-6c1d-4730-ab20-f92b522c275f_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!agDh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8248bd04-6c1d-4730-ab20-f92b522c275f_1920x1080.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>Output of the embedded workflow is accessible via <code>$context.$nodes.&lt;NODE_CODE&gt;.$output.output</code>, which means you can capture results and route subsequent logic accordingly.</p><div><hr></div><h3>The A2A Protocol: Looking Beyond Fusion</h3><p>Beyond the invokeAsync API, the Connecting the Ecosystem training session introduced the A2A (Agent-to-Agent) protocol - a standardised REST interface for agent discovery and communication. The flow is discover-then-interact: search for available agents, retrieve an agent&#8217;s metadata and capabilities via its agent card, send a message to initiate a task, poll for results.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JV0o!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f4d5559-955d-43c4-8c91-4815d67cea79_1920x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JV0o!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f4d5559-955d-43c4-8c91-4815d67cea79_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!JV0o!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f4d5559-955d-43c4-8c91-4815d67cea79_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!JV0o!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f4d5559-955d-43c4-8c91-4815d67cea79_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!JV0o!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f4d5559-955d-43c4-8c91-4815d67cea79_1920x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JV0o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f4d5559-955d-43c4-8c91-4815d67cea79_1920x1080.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5f4d5559-955d-43c4-8c91-4815d67cea79_1920x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:286612,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://promptsociety.substack.com/i/193452324?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f4d5559-955d-43c4-8c91-4815d67cea79_1920x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!JV0o!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f4d5559-955d-43c4-8c91-4815d67cea79_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!JV0o!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f4d5559-955d-43c4-8c91-4815d67cea79_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!JV0o!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f4d5559-955d-43c4-8c91-4815d67cea79_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!JV0o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f4d5559-955d-43c4-8c91-4815d67cea79_1920x1080.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>The interesting part is that Fusion agents aren&#8217;t just being called by external systems here - they&#8217;re discoverable by other agents. If you&#8217;re running a multi-platform environment, this is where agents actually start talking to each other across platforms.</p><p>Alongside A2A, 26A also introduced MCP client support - allowing agents to connect to MCP-compliant external servers using a standardised bidirectional protocol. Where the External REST tool requires you to configure each API endpoint manually, MCP lets the agent discover available tools from an external server automatically. It&#8217;s early days, but the direction is clear: agents that can find and use capabilities they weren&#8217;t explicitly configured for.</p><div><hr></div><h3>Where Users Actually Find Your Agents</h3><p>One aspect of trigger and channel design that doesn&#8217;t get enough attention is how end users discover and access published agents. Beyond the Fusion chat widget and the Teams/Slack integrations, there are several embedding paths worth knowing about:</p><p>Deployment Path Best For Context-Aware Setup Effort <strong>Agent Explorer</strong> Users discovering all available agents No Zero - it&#8217;s built in <strong>Guided Journeys</strong> Step-by-step tasks embedded in Redwood pages Partial Two-step config <strong>VB Studio / Smart Actions</strong> Module-specific contextual AI Yes - auto-detects page context Developer-level <strong>Triggers</strong> Automated background processing N/A AI Studio config <strong>External Access (invokeAsync)</strong> Agents called from external apps N/A OCI IAM token setup</p><p>Agent Explorer is the simplest path - it&#8217;s essentially a personal AI app store inside Fusion. Users navigate to Me &gt; Show More &gt; AI Agent Studio, or hit the direct URL (<code>/fscmUI/redwood/human-resources/ai-studio/agent-explore</code>). It has two tabs: &#8220;Needs Attention&#8221; for ongoing conversations and history, and &#8220;Explore&#8221; for searching all published agents. End users only see agents where the security configuration matches their role.</p><p>Smart Actions via VB Studio offer the deepest integration. The agent is context-sensitive - it can automatically detect and pull data from the page the user is currently viewing. No manual input required. But availability is limited - it&#8217;s not universal across all modules. Check product-specific documentation before planning around it.</p><p>Guided Journeys got a useful enhancement in 26B: you can now trigger a workflow agent on journey task completion or task save, which opens up scenarios where completing a guided step automatically kicks off background processing.</p><p>The AI Agent Marketplace (26B) is the new addition to keep an eye on. It&#8217;s embedded natively within Fusion - users can discover, test, and deploy third-party agents directly. For partners, this is the distribution channel.</p><p><strong>Where you deploy the agent matters because it changes whether people actually find and use it. An agent embedded via Smart Actions in the right Redwood page at the right moment will get used. The same agent, only accessible through the standalone chat widget, probably won&#8217;t.<br><br></strong></p><div id="datawrapper-iframe" class="datawrapper-wrap outer" data-attrs="{&quot;url&quot;:&quot;https://datawrapper.dwcdn.net/79xCj/1/&quot;,&quot;thumbnail_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d15f86fd-7025-4b43-a938-f2ec0342ab18_1220x844.png&quot;,&quot;thumbnail_url_full&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/695e5928-38c5-491a-9fff-2fc070c4d0b3_1220x914.png&quot;,&quot;height&quot;:447,&quot;title&quot;:&quot;Where Users Actually Find Your Agents&quot;,&quot;description&quot;:&quot;&quot;,&quot;belowTheFold&quot;:true}" data-component-name="DatawrapperToDOM"><iframe id="iframe-datawrapper" class="datawrapper-iframe" src="https://datawrapper.dwcdn.net/79xCj/1/" width="730" height="447" frameborder="0" scrolling="no" loading="lazy"></iframe><script type="text/javascript">!function(){"use strict";window.addEventListener("message",(function(e){if(void 0!==e.data["datawrapper-height"]){var t=document.querySelectorAll("iframe");for(var a in e.data["datawrapper-height"])for(var r=0;r<t.length;r++){if(t[r].contentWindow===e.source)t[r].style.height=e.data["datawrapper-height"][a]+"px"}}}))}();</script></div><div><hr></div><h3>What to Make of All This</h3><p>Trigger design doesn&#8217;t get enough attention, and it should - because the trigger basically defines how the whole integration works:</p><ul><li><p><strong>Webhook-triggered workflows</strong> are designed for system-to-system communication. They need to be solid, parameterisable, and optimised for reliability.</p></li><li><p><strong>Email-triggered workflows</strong> are designed around document ingestion. Their success depends on how well the extraction handles real-world content.</p></li><li><p><strong>Schedule-triggered workflows</strong> are designed for periodic governance. Their value depends on running reliably at the right cadence.</p></li></ul><p>If you think about this upfront, the architecture stays clean. If you don&#8217;t, you&#8217;re reworking integration logic after the fact.</p><p>These trigger types don&#8217;t need to be used in isolation either. A common pattern is a schedule-triggered workflow that runs a periodic check, with a Workflow node inside it that calls a webhook-triggered agent to handle exception processing. The layering gives each component a clean responsibility - and with embedded workflows, those components become properly reusable across different contexts.</p><h3>Security Roles: The Full Picture</h3><p>Since triggers, channels, and external access all have role requirements, here they are in one place. The admin roles are pillar-specific:</p><ul><li><p>HCM: <code>ORA_DR_FAI_GENERATIVE_AI_AGENT_HCM_ADMINISTRATOR_DUTY</code></p></li><li><p>SCM: <code>ORA_DR_FAI_GENERATIVE_AI_AGENT_SCM_ADMINISTRATOR_DUTY</code></p></li><li><p>ERP/FIN: <code>ORA_DR_FAI_GENERATIVE_AI_AGENT_FIN_ADMINISTRATOR_DUTY</code></p></li><li><p>PRC: <code>ORA_DR_FAI_GENERATIVE_AI_AGENT_PRC_ADMINISTRATOR_DUTY</code></p></li><li><p>CX: <code>ORA_DR_FAI_GENERATIVE_AI_AGENT_CX_ADMINISTRATOR_DUTY</code></p></li></ul><p>End users need <code>ORA_DR_FAI_GENERATIVE_AI_AGENT_RUNTIME_DUTY</code> (with the <code>HRC_ACCESS_AI_AGENT_CHAT_PRIV</code> privilege) to interact with agents through Explorer or chat. For the External REST tool, you need <code>ORA_FND_TRAP_PRIV</code> (Create and Edit Backends for Visual Builder Studio). And as mentioned above, scheduled workflows require <code>ORA_DR_FAI_BATCH_JOB_MANAGER_DUTY</code>.</p><p><strong>A user only sees an agent in Agent Explorer if the security assigned to that agent matches their access criteria and the agent has been published. This is by design - but it means your security review needs to happen before your UAT, not during it.</strong></p><div><hr></div><p><em>Disclaimer: The views here are my own and draw on Oracle's partner training sessions and publicly available documentation. All screenshots in this article are from Oracle's AI Agent Studio Partner Training (March 2026) and remain the property of Oracle Corporation. Oracle's guidance evolves - always verify with official docs and test in your own environment before making production decision</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.sidmalik.uk/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Sid! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>