A containerized Playwright browser agent that authenticates into My Oracle Support, retrieves the top-ranked knowledge articles for any detected Oracle error code, and returns structured resolution content to the n8n workflow — without human involvement.
For any Oracle environment running EBS or Fusion, MOS contains years of accumulated knowledge — patch notes, known defects, configuration guides, performance tuning articles, and error-specific resolution paths. An experienced Oracle DBA knows how to navigate it. A junior administrator or a stretched IT team often does not.
Even an experienced DBA searching MOS during a production incident is operating under time pressure. The search interface returns dozens of results. Ranking them by relevance to a specific EBS version and module requires judgment built from years of Oracle support experience. Reading, distilling, and applying a knowledge article takes 20–40 minutes per incident.
The Playwright browser agent replicates exactly what a skilled Oracle support engineer does when they log into MOS, search for an error code, identify the most relevant article, and extract the Symptoms, Cause, and Solution sections. Every step happens in under three minutes without human involvement.
MOS uses Oracle's SSO with optional MFA. Conventional automation re-authenticates on every run, triggering MFA challenges and account lockouts. The platform solves this with session persistence.
A one-time manual login is performed via a headed browser session — the administrator completes the SSO and MFA flow normally. This is the only step in the entire platform that requires a human to interact with a browser. It happens once at initial deployment and again only when the session expires.
After the manual login, Playwright's storageState feature captures the resulting cookies, local storage tokens, and session data into a secure auth.json file stored in the container's encrypted volume.
const context = await browser.newContext({
storageState: 'auth.json'
});
// All subsequent requests are pre-authenticatedEvery invocation loads the auth.json storage state into a new browser context. From MOS's perspective, the request looks like a returning authenticated session — no login page, no MFA challenge, no CAPTCHA.
The agent detects session expiry — specifically, redirection to the Oracle SSO login page during retrieval. When detected, the agent immediately alerts a human administrator to re-authenticate via the headed browser. The incident workflow pauses gracefully during re-authentication rather than failing silently.
When n8n identifies a diagnostic signal — an ORA error code, a concurrent manager failure pattern, a specific module exception — it invokes the browser agent via REST API with the error code and ERP version as parameters.
The agent navigates to the MOS search endpoint, injecting the error code and module as query parameters. The search is constructed dynamically — not hardcoded — so it adapts to every error code and ERP version combination the platform encounters.
GET /api/retrieve
{
"query": "ORA-01652",
"version": "EBS R12.2.10",
"module": "AP"
}The agent identifies the top 3 knowledge articles from search results. Articles whose Doc IDs match the detected ERP version are ranked above generic articles. Patch-only articles are ranked below configuration and resolution guides for initial retrieval.
For each top-ranked article, the agent extracts only the Symptoms, Cause, and Solution sections — not the full article. This data minimization step keeps the token budget manageable when the extracted content is passed to the LLM for synthesis.
The agent returns a structured JSON response to n8n containing the Doc ID, a relevance score, and the extracted text sections. n8n injects this alongside the internal diagnostic analysis for final LLM synthesis.
{
"doc_id": "123456.1",
"title": "ORA-1652 Extending TEMP Tablespace",
"symptoms": "...",
"cause": "...",
"solution": "...",
"relevance_score": 0.94
}MOS uses bot detection mechanisms that flag automated browser sessions. The platform uses the playwright-extra library with the Stealth Plugin to present as a human browser session.
The navigator.webdriver flag — the primary browser automation fingerprint — is masked. MOS bot detection relies on this flag as a first-pass check.
The agent randomizes its User-Agent string across a pool of realistic browser signatures on every session. A fixed User-Agent is a reliable bot detection signal over time.
Variable delays between page loads, simulated mouse movements, and randomized scroll patterns. Instant page transitions without interaction are a strong bot detection signal.
MOS credentials represent privileged access to Oracle's complete knowledge base. The platform's credential handling reflects the sensitivity of that access.
MOS credentials are never stored in scripts, workflow definitions, or container images. They reside exclusively in n8n's encrypted Environment Variables store or a HashiCorp Vault instance — retrieved at runtime and never written to disk in plaintext.
The auth.json session file is stored in an encrypted Docker volume. A stolen session token is as dangerous as a stolen password for the duration of the session lifetime.
Only the Symptoms, Cause, and Solution sections of each knowledge article are extracted. Full article content is never passed to the LLM context — minimizing both token cost and the volume of proprietary Oracle content processed by third-party AI services.
The container automatically switches between Headed mode for human-attended re-authentication and Headless mode for autonomous retrieval. Production retrieval runs never display browser windows on server infrastructure.
We're talking to Oracle teams who want to be part of shaping the platform.
Get in Touch →