As enterprise automation matures, the ability to orchestrate AI-driven intelligence across fragmented systems is becoming a core architectural requirement. Fusion AI Agents can be invoked directly from any external application beyond the native Fusion interface giving developers the flexibility to embed agent-powered workflows into their own systems and portals.
This guide walks through the integration flow: authenticating your application, invoking an Agent Team, and polling for results.

At the heart of this integration is the Invoke Async API, a asynchronous pattern designed for the realities of AI workloads. The below highlights the flow

Step 1: Authentication

All API interactions require a valid OAuth 2.0 bearer token. The access tokens can be obtained through any supported grant type, such as client credentials, password, SAML2, JWT, authorization code, device code, or refresh tokens. If your environment is on OCI IAM / IDCS, follow the standard OAuth configuration as documented in the official Oracle references below:

We’re currently working on a blog covering OAuth 2.0 authentication, token generation, and user assertion. Stay tuned!

The Asynchronous Execution Pattern

AI Agents are not instantaneous. They may need to reason over complex prompts, query large document repositories, call external APIs, or wait for human-in-the-loop responses. To accommodate this “Invoke then Poll” asynchronous pattern is followed.

Step 2: Invoke the Agent

Initiate the agent session by posting to the InvokeAsync endpoint. The request body carries the user prompt, agent teams configuration, and any custom parameters your integration requires.

Endpoint:
POST https://{pod_host}/api/fusion-ai/orchestrator/agent/v1/{agent_team_code}/invokeAsync
Sample Request Body
{
  "conversational": true,
  "conversationId": null,
  "version": 13,
  "status": "PUBLISHED",
  "message": "Compare M1000034 of org IMO and M1000040 of Org SBI",
  "invocationMode": "END_USER",
  "parameters": {
    "Param1": "ABC",
    "Param2": "123"
  }
}
Sample Response
{
    "input": "{\"workflowCode\":\"PRODUCT_COMPARISON_ADVISOR_COE\",\"message\":\"Compare M1000034 of org IMO and M1000040 of Org SBI?\",\"conversational\":true,\"conversationId\":\"eb6f8427-5e13-4dd2-8fa9-ef3887f19385\",\"jobId\":\"c73c1580-70cc-4f62-93c0-48d9484d8b8b\",\"invocationMode\":\"END_USER\",\"version\":13,\"status\":\"PUBLISHED\",\"parameters\":{},\"refreshCache\":false,\"useInternalConfig\":false,\"workflowId\":\"300000029907702\"}",
    "output": null,
    "error": null,
    "followUpQuestions": [],
    "jobId": "c73c1580-70cc-4f62-93c0-48d9484d8b8b",
    "conversationId": "eb6f8427-5e13-4dd2-8fa9-ef3887f19385",
    "traceId": "0000000000000000322418a3c9ceb65d",
    "status": "RUNNING",
    "supportingChunks": [],
    "citations": [],
    "nodes": [],
    "waitingToolCode": null,
    "workflowCode": "PRODUCT_COMPARISON_ADVISOR_COE",
    "workflowName": null,
    "architecture": null,
    "workflowVersion": 13,
    "workflowStatus": "PUBLISHED",
    "startDate": 1773341443081,
    "endTime": 0,
    "createDate": "2026-03-12T18:50:43.081+0000",
    "endDate": "1970-01-01T00:00:00.000+0000",
    "timeTaken": 0,
    "inputTokenCount": 0,
    "outputTokenCount": 0,
    "waitingNodeDetails": null
}

Step 3: Capture the jobId

The jobId in the response will be used to poll for results.

To continue a conversation across multiple turns, pass the conversationId from a previous response. Setting it to null starts a new session.

Step 4: Poll for Results

Once you have a jobId, poll the status endpoint for result

Endpoint:
GET https://{pod_host}/api/fusion-ai/orchestrator/agent/v1/{agent_team_code}/status/{jobId}
Sample Response

The ‘output’ field in the response has the Final response of Agent Team along with other attributes.

{
    "input": "{\"workflowCode\":\"PRODUCT_COMPARISON_ADVISOR_COE\",\"message\":\"Compare M1000034 of org IMO and M1000040 of Org SBI?\",\"conversational\":true,\"conversationId\":\"eb6f8427-5e13-4dd2-8fa9-ef3887f19385\",\"jobId\":\"c73c1580-70cc-4f62-93c0-48d9484d8b8b\",\"invocationMode\":\"END_USER\",\"version\":13,\"status\":\"PUBLISHED\",\"parameters\":{},\"refreshCache\":false,\"useInternalConfig\":false,\"workflowId\":\"300000029907702\"}",
    "output": "Here’s a concise comparison between M1000034 (Org IMO) and M1000040 (Org SBI)............",
    "error": null,
    "followUpQuestions": [],
    "jobId": "c73c1580-70cc-4f62-93c0-48d9484d8b8b",
    "conversationId": "eb6f8427-5e13-4dd2-8fa9-ef3887f19385",
    "traceId": "0000000000000000322418a3c9ceb65d",
    "status": "COMPLETE",
    "supportingChunks": [],
    "citations": [],
    "nodes": [],
    "waitingToolCode": null,
    "workflowCode": "PRODUCT_COMPARISON_ADVISOR_COE",
    "workflowName": null,
    "architecture": null,
    "workflowVersion": 13,
    "workflowStatus": "PUBLISHED",
    "startDate": 1773341443159,
    "endTime": 1773341469930,
    "createDate": "2026-03-12T18:50:43.159+0000",
    "endDate": "2026-03-12T18:51:09.930+0000"
}

Continue polling while status is RUNNING or WAITING. When the status is WAITING, the agent may be expecting a human approval. Handle this case explicitly in your integration logic.
Stop polling when status is COMPLETE or ERROR, then read the output or error field accordingly.

To retrieve detailed debug information(similar to executing from debug window). Use the below in the requests
POST: Use invocationMode=ADMIN in the request body parameter
GET: Use /api/fusion-ai/orchestrator/agent/v1//status/?invocationMode=ADMIN

The below table provides descriptions of the fields in the request body and the response

FieldDescription
conversationalSet to true
conversationIdPass the Id from response to resume a conversation,  otherwise new conversation will be started.
invocationModeADMIN or END_USER
statusPUBLISHED or DRAFT
parametersJson object with key value pair. “parameters”: { “param1”: “value”, “param2″:  “value” }
Request Body Field Description
FieldDescription
inputRequest sent in invokeAsync method
outputFinal response of Agent Team
progressMessageIf set to true, this will contain progress messages while request is in progress.
errorIf execution fails, this field will have error desciption.
followUpQuestionsContains list of follow-up questions, If enabled
jobIdJobId
conversationIdConversation identifier
traceIdInternal id for execution used for debugging issues
statusStatus of execution (RUNNING, WAITING, COMPLETE and ERROR)
supportingChunksReturn supporting chunks of Document Tool
citationsReturn citations of Document Tool
nodesList of high steps performed in execution(available in ADMIN mode) Workflow Agent Team = Node Details Supervisor = Agents.
startDate & endTimeStart & End of execution in epoch format in UTC time
createDate & endDateStart & End of execution in ISO format in UTC time
Response Field Description

Bringing It Together

Integrating Fusion AI Agents into external applications is a significant step toward an autonomous enterprise architecture. By exposing agent capabilities through a well-defined invokeAsync API, it is possible for any external system, custom portals, third-party apps to harness AI-driven intelligence without requiring users to be inside Fusion Application.