Search all guides

Reference · Tools

OpenAI Reasoning

Use the GPT-5.x frontier models in extended-reasoning mode for complex multi-step tasks.

Action AI v1

OpenAI Reasoning calls a frontier model in extended-reasoning mode, applying internal chain-of-thought before answering — suited to mathematical work, advanced code generation, logic and scientific problems. It can reason over an uploaded document or image by file ID. A typical build is analysing a complex contract and extracting the obligations with their justification.

Works as
Action
Tool name
openai_reasoning
Parameters
12
Outputs
Output, Error
Credentials
OpenAI
Official docs
OpenAI docs developers.openai.com

What you can build with OpenAI Reasoning

  • Solve a complex math problem step by step.
  • Analyze code for bugs using chain-of-thought reasoning.
  • Reason through a multi-step logic puzzle.
  • Generate a detailed analysis of a scientific paper.
  • Solve a competitive programming problem.

Each of these runs as a step in a BusyBot workflow or inside an agent, so the result can be routed, filtered and sent on with the core nodes and any of the communication integrations.

Overview

OpenAI Reasoning calls OpenAI frontier models in extended-reasoning mode; the Model dropdown lists the reasoning-capable models currently available to the workspace. These models perform internal chain-of-thought before producing a response and excel at math, coding, logic, and scientific reasoning. The tool calls the OpenAI Responses API (POST /responses) with configurable reasoning effort (low/medium/high). An optional Attachment File ID references a file already uploaded via openai_file_upload and attaches it to the user message as a document or an image, selected by Attachment Type. Returns the model output text along with a reasoning summary and token usage.

Node Type

Action — processes input items and produces output

Input / Output

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires OpenAI credentials. See the Credentials Guide for setup instructions.

Parameters

ParameterTypeRequiredDefaultDescription
ModeloptionsNo(current default)The OpenAI model to invoke in extended-reasoning mode. Pick a specific GPT-5.x version — labels are pinned, not aliased to “latest”.
Options: the OpenAI reasoning models available to your workspace — pick one from the dropdown.
System PromptstringNoYou are a helpful assistant.System-level instructions for the model. Sent as the “instructions” field on the Responses API request. Defaults to a generic helpful-assistant prompt — override per workflow as needed. Supports expressions.
User MessagestringYes—The user message or prompt to send. Falls back to item.json.message or item.json.prompt if empty. Supports expressions.
Attachment File IDstringNo—Optional OpenAI file ID (file-…) returned by openai_file_upload. When provided, the file is referenced by ID and attached as a content block on the user message — no re-upload, no binary input needed. Falls back to item.json.attachmentFileId if empty. Supports expressions like {{ $json.fileId }} from an upstream openai_file_upload node.
Attachment TypeoptionsNodocumentHow the model should interpret the attached file. Only used when Attachment File ID is set.
Options: document (PDF / text / code / CSV / structured file), image (jpg / png / gif / webp)
Reasoning EffortoptionsNomediumHow much reasoning effort the model should spend.
Options: low (fastest responses, lowest cost), medium (balanced), high (best quality, higher cost and latency)
OptionscollectionNo{}Optional response settings — add only the fields you need.
— Max Output TokensnumberNo16384Maximum number of tokens in the model response.
— Response Field NamestringNoresponseThe output field name where the model response text will be stored.
Include InputbooleanNofalseWhether to include the original input item fields in the output.
Web SearchbooleanNofalseEnable OpenAI’s built-in web search. When on, the model may search the web before answering and returns cited sources in the sources output field.
Search Context SizeoptionsNomediumHow much web search context to give the model. Only used when Web Search is on. (shown when Web Search is on)
Options: low (fastest, cheapest, fewer sources), medium (balanced default), high (more sources and detail, slower)
Search User LocationcollectionNo{}Optional approximate user location that biases search results. Leave empty for no localization. (shown when Web Search is on)
— CountrystringNo—Two-letter ISO 3166-1 alpha-2 country code.
— CitystringNo—Free-text city name.
— RegionstringNo—Free-text region or state name.
— TimezonestringNo—IANA timezone identifier.
Max ConcurrencynumberNo10Maximum number of items to process concurrently.

Output Data

One output item per input item. The answer text lands on the field named by Response Field Name (response by default), with the reasoning summary, model and usage beside it. The rest of the input item JSON is dropped unless Include Input is on; binary data on the input item is forwarded unchanged.

{
  "response": "The model's answer",
  "reasoning": [],
  "model": "the model that produced the answer",
  "usage": { "input_tokens": 512, "output_tokens": 2048 },
  "sources": [{ "url": "https://...", "title": "Page title", "snippet": "cited excerpt" }]
}
  • reasoning is the summary the model chose to expose about its internal reasoning. It is often empty — treat it as optional colour, never as the answer.
  • usage is the token accounting returned by the API. Reasoning tokens are billed as output tokens, so a high Reasoning Effort raises cost even when the visible answer is short.
  • sources is always present: an array of cited results when Web Search is on, and an empty array when it is off. Each entry carries url and title, plus snippet when OpenAI supplies citation offsets.

Reference the result downstream by expression, e.g. {{ $json.response }}.

Example Configuration

Quick, low-cost reasoning with the defaults:

{
  "type": "openai_reasoning",
  "parameters": {
    "userMessage": "{{ $json.question }}",
    "reasoningEffort": "low"
  }
}

Deep analysis with explicit instructions and the input preserved:

{
  "type": "openai_reasoning",
  "parameters": {
    "systemPrompt": "You are a senior engineer. Work through the problem carefully before answering.",
    "userMessage": "Find the race condition in this code and explain the fix:\n{{ $json.code }}",
    "reasoningEffort": "high",
    "includeInput": true,
    "maxConcurrency": 3,
    "options": {
      "maxOutputTokens": 32768,
      "responseFieldName": "analysis"
    }
  }
}

Reason over a file uploaded by an upstream OpenAI File Upload node:

{
  "type": "openai_reasoning",
  "parameters": {
    "userMessage": "Check this spreadsheet for accounting errors and list them.",
    "attachmentFileId": "{{ $json.fileId }}",
    "attachmentType": "document",
    "reasoningEffort": "medium"
  }
}

Error Handling

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes failed items to Error output port

Tips

OpenAI Reasoning uses OpenAI frontier models in extended-reasoning mode to solve complex multi-step problems. It is the right tool when a task requires advanced mathematical, coding, logical, or scientific reasoning that standard chat models cannot adequately handle. The tool produces a response text, a reasoning summary, and token usage statistics.

Frequently asked questions

How do I reason over a document?

Set Attachment File ID to a `file-...` ID returned by OpenAI File Upload. That lets the model work over an uploaded document or image rather than only the prompt text.

When is this worth the extra cost?

On genuinely multi-step problems — proofs, intricate code, layered logic. For summarising or extraction, a standard chat call gives comparable quality for less.

Can I control how much it deliberates?

The reasoning behaviour is configurable on the node, which is the main lever on both cost and depth.

Which credential does it need?

An OpenAI credential with access to the frontier model selected.

Build with the OpenAI Reasoning node

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need OpenAI credentials first.

Open BusyBot

Last reviewed . Spotted something wrong? Tell us.