Skip to content

CID Software Solutions LTD

Home » Fusion Redwood: Add context-aware links to any page by using Guided Journeys – and discover the hidden URL context variables

Fusion Redwood: Add context-aware links to any page by using Guided Journeys – and discover the hidden URL context variables

Difficulty: Intermediate

Series — Context-aware links on Redwood pages (part 2)
Earlier: v1 — VB Studio advanced mode + DOM manipulation to inject a context link on the Redwood Order screen (Dec 2025). This post adds a config-only, business-analyst-friendly alternative using Guided Journeys, plus a method to discover the URL context variables Oracle leaves undocumented outside HCM.

TL;DR

  • Problem: Redwood decides for you where UI extensions are allowed, so on locked-down pages like Sales Order you can’t just drop in a Visual Builder component. But almost every Redwood page still lets you attach a Guided Journey — and a Guided Journey link URL can carry the current record’s context (e.g. the order id) via {Variable} placeholders. The catch: Oracle only documents those variable names for HCM. SCM, Procurement and the rest are undocumented.
  • Stack: Guided Journeys (functional config), the Redwood page’s journey-code page property, browser Dev Tools → Network (generateNavigationURL). No Visual Builder advanced mode, no code.
  • Who should read: SCM / CX / Procurement functional consultants and business analysts who want config-only, context-aware links (open a BIP/OTBI report or an external app with the current record) on Redwood pages — and developers who need to know when this won’t work and a code solution is still required.

Tested on / Prerequisites

Tested on Fusion 26B; requires access to the Journeys setup screen (to create and enable the Guided Journey), an active sandbox to inspect page properties, and browser Developer Tools. No Visual Builder advanced mode required — a business analyst can do this end to end. See Oracle’s Introduction to Guided Journeys and Enable a Guided Journey for Redwood Pages.

Business Challenge

Oracle is moving every Fusion screen to Redwood, and Redwood changed the rules for extensions. In the classic UI, Page Composer let us add a context-specific link to almost any page — open a BIP report or an external application and pass the current record with #{binding} syntax. In Redwood, where you can add UI is decided by the product team: CX screens expose a rich Visual Builder extension surface, but many SCM screens — Sales Order among them — expose very little. You don’t get to add an arbitrary link component.

What almost every Redwood page does allow is a Guided Journey. A Guided Journey can present instructions and documents, and — the part that matters here — a link that navigates to another internal page, an external site, or an OTBI/BIP report. That link URL supports {Variable} placeholders that Oracle substitutes at click time with the current page’s context. So the very “open a report/screen with the current order id” requirement we used to solve with Page Composer is achievable in Redwood, config-only, through a Guided Journey.

The one real obstacle: Oracle only documents the available context variables for HCM pages. For a Sales Order, an Inventory page, a PO — there is no published list of what you can put inside {...}. Our customer’s recurring need was exactly this: from the Redwood Sales Order page, open a target URL and pass the current order id. This post shows how to discover the context variables any Redwood page exposes, so you can build the link without guessing.

Why I changed this

In the Dec 2025 post we solved the same problem with Visual Builder Studio in advanced mode: an vbAfterNavigate action chain that scrapes the headerId out of the browser URL via DOM and injects a link — powerful, but developer-owned and more exposed to Oracle’s UI changes. When the context you need is actually available to the page’s Guided Journey, this config-only approach is cleaner, survives Oracle updates and P2T cloning better, and a business analyst can own it — so it is now our first choice. The Visual Builder / DOM approach remains the necessary fallback for pages that don’t expose the context you need (see Gotchas).

Solution Overview

First we build the Guided Journey, then we show how we knew which variable to put in its URL:

  1. Create a Guided Journey with an External URL task whose URL uses a {Variable} placeholder.
  2. Attach it to the target Redwood page using the page’s journey code (from the page properties) and confirm it renders.
  3. Play the page, open Dev Tools → Network, and click the link.
  4. Read the generateNavigationURL request payload — its Context object is the authoritative list of variables the page provides. This is where we confirm the correct name (here, HeaderId).
  5. Keep the URL using those exact names; Oracle substitutes them on navigation.
  6. If the variable you need is not in the payload, fall back to the Visual Builder / DOM development solution.

Implementation Details

Part 1 — Prepare the Guided Journey

Step 1 — Create the journey with a parametrized URL

In the Journeys setup screen, create a Guided Journey and add a task with Task Type = External URL. In Task URL, use a placeholder for the value you want to pass:

https://www.google.com?q={HeaderId}

Leave Open URL on the same page off if you want the link to open in a new tab. For this walkthrough the target is a deliberately simple URL so the substitution is obvious. We use {HeaderId} because we already know — from Part 2 below — that the Sales Order page populates it; on a page you haven’t inspected yet, run Part 2 first to learn the variable name, then set the URL.

Guided Journey "Sales Order Additional Actions" (Code SCM_SO_ADDITIONAL_ACTIONS, status Active) with its External URL task open in the side panel: Task Type set to External URL, Code EXTERNAL_URL, and Task URL set to https://www.google.com?q={HeaderId}, with the "Open URL on the same page" toggle off

Step 2 — Attach it to the page and confirm it renders

Attach the journey to the target page using the page’s journey code, which the Redwood page exposes as a page property. On the Sales Order page that’s Omorder Page Journey Code = SCM_SO_ADDITIONAL_ACTIONS at the page level (plus Omorder Main Section Journey Code at the section level). Set the journey’s Code to match, then play the page — the journey renders (here as the External URL banner with a Go to website action).

Redwood Sales Order page "Order 236" with the Page Properties panel open, showing Omorder Page Journey Code set to SCM_SO_ADDITIONAL_ACTIONS and the added Guided Journey rendered as an "External URL" banner with a "Go to website" button

Part 2 — How we found the HeaderId variable

Step 3 — Open the Network tab

With the page open, open the browser Developer Tools, switch to the Network tab, enable Preserve log, and clear the current entries so the next click is easy to find.

Played Redwood Order 236 page with the External URL Guided Journey banner on the left and an empty Chrome DevTools Network tab open on the right, ready to record

Step 4 — Read generateNavigationURL to discover the context

Click the Guided Journey link. In the Network tab a request named generateNavigationURL appears. Open its Payload — the Context object lists exactly which variables this page hands to the journey:

{
  "PersonId": "-1",
  "AssignmentId": "-1",
  "Context": {
    "OrderNumber": "236",
    "HeaderId": "300000014338664"
  }
}

On the Sales Order page the real, populated context is HeaderId (300000014338664) and OrderNumber (236). Note that PersonId and AssignmentId are present but come back as -1: those are HCM-oriented defaults that Oracle sends on every page, and they carry no meaning here. Only trust a variable that returns a real value for your record. This payload — not the (missing) SCM documentation — is your source of truth.

Chrome DevTools Network tab with the generateNavigationURL request selected and its Payload showing PersonId -1, AssignmentId -1, and a Context object containing OrderNumber 236 and HeaderId 300000014338664

Step 5 — Confirm the substitution

Because {HeaderId} is a variable the page populates, Oracle substitutes it and navigates. The target opens with the real value injected:

https://www.google.com/?q=300000014338664
Browser address bar showing the resolved URL https://www.google.com/?q=300000014338664, confirming that {HeaderId} was substituted with the current order's HeaderId

Swap the placeholder for whatever your real target expects — a BIP report p_header_id parameter, an OTBI analysis filter, or an external application’s query string. If the target wants the user-facing number rather than the internal id, use {OrderNumber} instead of {HeaderId}.

Gotchas / Production notes

  • Only HCM’s context variables are documented. For SCM, Procurement, and other pillars, generateNavigationURL is the authoritative source. Don’t guess names from the HCM list — inspect the actual payload for your page.
  • PersonId / AssignmentId appear everywhere as -1. They are HCM defaults echoed on non-HCM pages and are useless there. Treat any -1 value as “not available on this page.”
  • Context is page- and section-specific. A page-level journey (Omorder Page Journey Code) and a main-section journey (Omorder Main Section Journey Code) can expose different variables. Inspect the exact placement you intend to use.
  • {HeaderId} is the internal system id, not the human-readable order number. Pick {HeaderId} vs {OrderNumber} based on what the target report/screen/app actually keys on.
  • Not every page gives you what you need — and this is the honest limit of the config-only approach. Some screens expose Guided Journeys but do not include the record you’re after in the context. For example, Inventory Transactions offers Guided Journeys, but the generateNavigationURL payload does not carry the current interface/transaction header id — so a Guided Journey link simply cannot pass it. In that case you must fall back to a development solution: extract the id from the browser URL and build the link yourself, exactly as in the Dec 2025 VB advanced-mode post.
  • Values are substituted raw. If a value could contain characters that need URL-encoding, account for that in the target.
  • Config-only and P2T-safe — there’s no endpoint or credential to register, so the link survives Production-to-Test cloning. Still re-test after each Oracle quarterly update, since Redwood internals can change.

How to verify

  • In Dev Tools → Network, filter for generateNavigationURL, click your link, and confirm the Context object contains the variable you’re using with a real value (not -1).
  • Confirm the opened target URL contains the substituted value — e.g. ?q=300000014338664 in the address bar.
  • For a BIP or OTBI target, confirm the report actually receives and filters on the passed parameter.

Conclusion

Guided Journeys turn a Redwood limitation into a config-only win: on pages where Oracle won’t let you add a Visual Builder component, a business analyst can still deliver a context-aware link — open a report or a screen with the current record — with no developer and no advanced-mode DOM code, in a way that survives P2T and upgrades. The reusable part is the discovery method: for any Redwood page, generateNavigationURL tells you precisely which context variables you can pass, even where Oracle never documented them. And when a page genuinely doesn’t expose the context you need, you now know that up front — and know to reach for the development fallback instead of fighting the config.

CTA

Trying to add a context-aware link to a locked-down Redwood page, or not sure whether the context you need is even exposed? We’ve shipped both the Guided Journey approach and the Visual Builder fallback across enterprise SCM and CX clients, and we can do the same in your environment. Reach out at info@cidsolutions.co.il or on WhatsApp — let’s get it solved.


Tags: Oracle Fusion, Redwood, Guided Journeys, Order Management, Sales Order, Visual Builder Studio, SCM, OTBI, BIP, low-code

Related posts:

Leave a Reply

Your email address will not be published. Required fields are marked *