Use these commands from an endpoint, server function or event. Choose Add Command → Connector → OpenAI, select the action, then choose an Account. Selecting an account reveals the remaining inputs. When the command returns a result, open OUTPUT and use Return as to name it for later commands.
All connector references · Connect an account · AI setup and shared results
Preserve the existing OpenAI Responses command for saved workflows. For a new text-only workflow, Generate Text provides explicit request/output limits and a shared result shape.
Inputs
| Input | Type | How to use it |
|---|---|---|
| Account | Account | Select an existing OpenAI connector in this organization. Use the account menu to connect/reconnect; do not enter a raw API key. |
| Model | text | Required exact OpenAI model ID for this operation; no default is supplied by the runtime. Model names are editable so you can use a currently supported model enabled for the account. |
| Instructions | text box | Optional instructions passed to OpenAI, such as "Answer in one sentence." At least Instructions or Input must be supplied. |
| Input | openai input | Optional prompt text or an ordered list of OpenAI input objects with role and content. Example: [{"role":"user","content":"What is a webhook?"}]. A single object is wrapped in a list. At least Instructions or Input is required; provider model and content limits apply. |
Result
An object containing responseId and outputText, with compatibility aliases response_id and output_text holding the same values. The legacy error field is retained; provider request failures throw a summarized error instead of exposing diagnostics.
Example
Account: select OpenAI. Model: paste an enabled Responses model ID. Instructions: "Answer briefly." Input: "What is a webhook?". Save as answer and use answer.outputText; older workflows may continue using answer.output_text.
Errors and limits
A missing, revoked, wrong-provider or inaccessible organization account stops the command. Isolated tests and live debugging do not contact providers; enable Use live data deliberately to test a connected account. Provider permissions, unsupported models/options, billing and rate limits can reject requests. Provider errors are summarized and external requests are not automatically retried. Missing both Instructions and Input fails. These legacy inputs do not use the newer Generate Text options or its 32,768-character prompt limit; OpenAI and execution limits still apply.
Upload supplied file bytes to OpenAI and return the provider file record. This does not add the file to the Twidget File Manager or automatically attach it to another AI request.
Inputs
| Input | Type | How to use it |
|---|---|---|
| Account | Account | Select an existing OpenAI connector in this organization. Use the account menu to connect/reconnect; do not enter a raw API key. |
| File | file | Required FILE value with accessible file bytes and a filename, such as the result of an admitted upload/read-file command. A path string or public URL alone is not a file upload. In-memory file reads are limited to 16 MiB. |
| Purpose | openai file purpose | Required OpenAI upload purpose. The current picker offers assistants (default) and fine-tune. Select a purpose supported by your intended OpenAI operation and file format; this command does not create an Assistant or training job. |
Result
The native OpenAI file record, including id, object, bytes, created_at, filename and purpose; expires_at is present when provided. Use its id only with provider operations that accept that file purpose.
Example
Account: select OpenAI. File: choose the FILE output of a previous upload/read step. Purpose: assistants for a compatible provider file workflow. Save as uploaded_file and use uploaded_file.id where an operation explicitly accepts it.
Errors and limits
A missing, revoked, wrong-provider or inaccessible organization account stops the command. Isolated tests and live debugging do not contact providers; enable Use live data deliberately to test a connected account. Provider permissions, unsupported models/options, billing and rate limits can reject requests. Provider errors are summarized and external requests are not automatically retried. Unavailable bytes, a file exceeding the in-memory bound, unsupported purpose/content or provider file limits can fail the upload. Do not assume an upload guarantees later model access.
Preserve the legacy OpenAI command that embeds one text value and returns OpenAI’s native embedding response. Use Create Embeddings for a bounded list with the shared result shape.
Inputs
| Input | Type | How to use it |
|---|---|---|
| Account | Account | Select an existing OpenAI connector in this organization. Use the account menu to connect/reconnect; do not enter a raw API key. |
| Model | text | Required exact OpenAI model ID for this operation; no default is supplied by the runtime. Model names are editable so you can use a currently supported model enabled for the account. |
| Input | text box | Required text to embed, such as "Red apple". Choose a model that supports embeddings; provider token limits apply. This legacy input is one text value rather than the new command’s list of texts. |
Result
The native OpenAI embedding object with object, model, data and usage. Each data item has object, index and embedding; usage uses OpenAI names prompt_tokens and total_tokens, not the newer camelCase usage fields.
Example
Account: select OpenAI. Model: paste an enabled embedding-model ID. Input: "Red apple". Save as legacy_vector and use legacy_vector.data[0].embedding.
Errors and limits
A missing, revoked, wrong-provider or inaccessible organization account stops the command. Isolated tests and live debugging do not contact providers; enable Use live data deliberately to test a connected account. Provider permissions, unsupported models/options, billing and rate limits can reject requests. Provider errors are summarized and external requests are not automatically retried. A text-generation model cannot be used as an embedding model. Provider text/token limits and execution limits apply.
Transcribe the supplied audio file with an OpenAI transcription model. The selected response format controls whether the result is an object or text.
Inputs
| Input | Type | How to use it |
|---|---|---|
| Account | Account | Select an existing OpenAI connector in this organization. Use the account menu to connect/reconnect; do not enter a raw API key. |
| Model | text | Required exact OpenAI model ID for this operation; no default is supplied by the runtime. Model names are editable so you can use a currently supported model enabled for the account. |
| Audio File | file | Required audio FILE value with accessible bytes and filename, produced by an admitted upload/read-file command. Select a provider-supported audio format; a filename or URL alone is not sufficient. In-memory file reads are limited to 16 MiB. |
| Response Format | openai speech to text response format | Choose json (editor default) or text. json returns the provider transcription object; text returns plain text. The chosen model must support the selected format. |
Result
For json, the provider transcription object normally contains text and may include usage depending on the model. For text, the result is a string rather than an object. Do not assume .text exists when Response_Format is text.
Example
Account: select OpenAI. Model: paste an enabled transcription-model ID. Audio_File: choose the FILE output of a previous step. Response_Format: json. Save as transcript and use transcript.text.
Errors and limits
A missing, revoked, wrong-provider or inaccessible organization account stops the command. Isolated tests and live debugging do not contact providers; enable Use live data deliberately to test a connected account. Provider permissions, unsupported models/options, billing and rate limits can reject requests. Provider errors are summarized and external requests are not automatically retried. Unsupported audio/response format, missing file bytes, oversized files or model restrictions fail transcription. OpenAI audio-size and duration limits also apply.
Create spoken audio from text and save it to the Twidget file store. Returns a file value for later workflow steps.
Inputs
| Input | Type | How to use it |
|---|---|---|
| Account | Account | Select an existing OpenAI connector in this organization. Use the account menu to connect/reconnect; do not enter a raw API key. |
| Model | text | Required exact OpenAI model ID for this operation; no default is supplied by the runtime. Model names are editable so you can use a currently supported model enabled for the account. |
| Voice | open ai voice | Required voice supported by your chosen model. The current picker offers alloy (default), ash, ballad, coral, echo, fable, nova, onyx, sage and shimmer. Voice availability depends on the model. |
| Instructions | text box | Optional speaking guidance, such as "Speak slowly in a calm tone." It is sent to OpenAI; only models supporting speech instructions will use it. |
| Input | text box | Required text to speak. Example: "Your order is ready." Provider model text limits apply; this legacy command has no maxOutputTokens option. |
| Output Format | open ai text to speech output format | Choose mp3 (editor default), wav, opus, aac, flac or pcm. Set a matching filename extension in Export_Path. Raw pcm requires the playback application to understand the audio format. |
| Export Path | text | Required destination file path including a filename, for example /audio/greeting.mp3. A path ending in / is rejected. Use a separate destination for each file you want to keep. |
| Permissions | permissions | Choose PRIVATE (editor default) or PUBLIC for the saved file. Public files can be downloaded without customer authentication; choose the visibility your workflow requires. |
Result
A Twidget FILE value for the saved audio, with file metadata such as filename/path/size and the chosen permissions. This is not a JSON transcription or a model text response.
Example
Account: select OpenAI. Model: paste an enabled speech-generation model ID. Voice: alloy. Input: "Your order is ready." Instructions: blank. Output_Format: mp3. Export_Path: /audio/order-ready.mp3. Permissions: PRIVATE. Save as spoken_audio.
Errors and limits
A missing, revoked, wrong-provider or inaccessible organization account stops the command. Isolated tests and live debugging do not contact providers; enable Use live data deliberately to test a connected account. Provider permissions, unsupported models/options, billing and rate limits can reject requests. Provider errors are summarized and external requests are not automatically retried. A destination ending in /, unsupported voice/format/model, oversized provider response or a failed file write causes an error. A provider generation charge may occur even if saving the audio subsequently fails.
Use an OpenAI Responses model with the image-generation tool and save the first returned image as a PNG file. This is the existing image command, not a direct image-model endpoint.
Inputs
| Input | Type | How to use it |
|---|---|---|
| Account | Account | Select an existing OpenAI connector in this organization. Use the account menu to connect/reconnect; do not enter a raw API key. |
| Model | text | Required exact Responses-compatible model ID enabled for image generation with the account. Do not substitute an image-only endpoint model unless OpenAI explicitly supports it through Responses. |
| Input | text box | Required prompt text describing the image, such as "A flat blue delivery-box icon on a white background." This command does not expose input-image uploads, size, quality or transparency options. |
| Export Path | text | Required destination file path including a filename, preferably ending .png, such as /images/delivery-box.png. The command writes PNG content regardless of the chosen extension; a path ending in / is rejected. |
| Permissions | permissions | Choose PRIVATE (editor default) or PUBLIC for the saved file. Public files can be downloaded without customer authentication; choose the visibility your workflow requires. |
Result
A Twidget FILE value for the first generated image saved as image/png. If the provider returns several image-generation results, this command saves only the first.
Example
Account: select OpenAI. Model: paste a Responses model ID supporting image generation. Input: "A flat blue delivery-box icon on white." Export_Path: /images/delivery-box.png. Permissions: PRIVATE. Save as generated_image.
Errors and limits
A missing, revoked, wrong-provider or inaccessible organization account stops the command. Isolated tests and live debugging do not contact providers; enable Use live data deliberately to test a connected account. Provider permissions, unsupported models/options, billing and rate limits can reject requests. Provider errors are summarized and external requests are not automatically retried. A model without image-generation support, a provider response containing no image, an oversized response, invalid destination or failed file write causes an error. Generation may be billed even if saving the file fails.
Generate a text answer from one prompt with OpenAI. No tools, file inputs, image inputs or streaming controls are exposed by this command.
Inputs
| Input | Type | How to use it |
|---|---|---|
| Account | Account | Select an existing OpenAI connector belonging to this organization. Connect or reconnect the account from the account input menu; never enter a raw API key here. |
| Model | text | Paste the exact model ID enabled for your OpenAI account, up to 200 characters; there is no default model. Model access depends on your account. Use List Models where available, then choose a model that supports this operation. |
| Instructions | text box | Optional nonblank instructions, up to 16,384 characters, such as "Answer in one short paragraph." Leave blank to omit them. Use this field for system guidance rather than adding a system role to Messages. |
| Input | text box | Required nonblank prompt text, up to 32,768 characters. Example: "Summarize this order in one sentence." Files, objects and message lists are not accepted here; use Chat for conversation turns. |
| Options | object | Optional object with only maxOutputTokens (whole number 1–8192; default 1024), temperature (0–2) and topP (greater than 0 and at most 1). Example: {"maxOutputTokens":200}. Omit sampling settings unless the selected model supports them. Unknown keys, tools and response-format settings are rejected. |
Result
An object with responseId, outputText, model, finishReason and usage. Use outputText for the answer. finishReason retains the provider status/stop reason. usage has inputTokens, outputTokens and totalTokens; unknown counts are null. A safety stop or token limit can produce empty or shortened text.
Example
Account: select your OpenAI connection. Model: paste an enabled text-model ID. Instructions: "Answer briefly." Input: "What is a webhook?". Options: {"maxOutputTokens":200}. Save as answer and use answer.outputText.
Errors and limits
A missing, revoked, wrong-provider or inaccessible organization account stops the command. Isolated tests and live debugging do not contact providers; enable Use live data deliberately to test a connected account. Provider permissions, unsupported models/options, billing and rate limits can reject requests. Provider errors are summarized and external requests are not automatically retried. Inputs over the 64 KiB serialized request limit, responses over 2 MiB, or a request exceeding 30 seconds fail instead of returning a partial result.
Send an ordered text conversation to OpenAI and return its text answer. Supply the conversation each time; this command does not create a persistent chat session.
Inputs
| Input | Type | How to use it |
|---|---|---|
| Account | Account | Select an existing OpenAI connector belonging to this organization. Connect or reconnect the account from the account input menu; never enter a raw API key here. |
| Model | text | Paste the exact model ID enabled for your OpenAI account, up to 200 characters; there is no default model. Model access depends on your account. Use List Models where available, then choose a model that supports this operation. |
| Instructions | text box | Optional nonblank instructions, up to 16,384 characters, such as "Answer in one short paragraph." Leave blank to omit them. Use this field for system guidance rather than adding a system role to Messages. |
| Messages | list | Required ordered list of 1–100 objects. Each object must contain only role ("user" or "assistant") and content (nonblank text, at most 32,768 characters). Example: [{"role":"user","content":"Name two primary colors."}]. System/tool roles and multimodal content are not supported. |
| Options | object | Optional object with only maxOutputTokens (whole number 1–8192; default 1024), temperature (0–2) and topP (greater than 0 and at most 1). Example: {"maxOutputTokens":200}. Omit sampling settings unless the selected model supports them. Unknown keys, tools and response-format settings are rejected. |
Result
An object with responseId, outputText, model, finishReason and usage. Use outputText for the answer. finishReason retains the provider status/stop reason. usage has inputTokens, outputTokens and totalTokens; unknown counts are null. A safety stop or token limit can produce empty or shortened text.
Example
Account: select your OpenAI connection. Model: paste an enabled text-model ID. Instructions: "Answer briefly." Messages: [{"role":"user","content":"What is a webhook?"}]. Options: {"maxOutputTokens":200}. Save as answer and use answer.outputText.
Errors and limits
A missing, revoked, wrong-provider or inaccessible organization account stops the command. Isolated tests and live debugging do not contact providers; enable Use live data deliberately to test a connected account. Provider permissions, unsupported models/options, billing and rate limits can reject requests. Provider errors are summarized and external requests are not automatically retried. Inputs over the 64 KiB serialized request limit, responses over 2 MiB, or a request exceeding 30 seconds fail instead of returning a partial result.
Read one bounded page of OpenAI model identifiers without generating text. This lists model metadata; it does not prove access to every model or operation.
Inputs
| Input | Type | How to use it |
|---|---|---|
| Account | Account | Select an existing OpenAI connector belonging to this organization. Connect or reconnect the account from the account input menu; never enter a raw API key here. |
| Cursor | text | Leave blank. This provider does not accept a model-pagination cursor in this command; a nonempty value is rejected. |
Result
An object with models (each has id and name), nextCursor, hasMore and truncated. At most 500 model entries are returned; paginating providers request up to 100 per page. nextCursor is null when unavailable. If truncated is true with no nextCursor, the remaining catalogue cannot be fetched with this command.
Example
Account: select your OpenAI connection. Cursor: blank. Save the result as model_catalog and read model_catalog.models; select a suitable returned model ID for a text or embedding command.
Errors and limits
A missing, revoked, wrong-provider or inaccessible organization account stops the command. Isolated tests and live debugging do not contact providers; enable Use live data deliberately to test a connected account. Provider permissions, unsupported models/options, billing and rate limits can reject requests. Provider errors are summarized and external requests are not automatically retried. Inputs over the 64 KiB serialized request limit, responses over 2 MiB, or a request exceeding 30 seconds fail instead of returning a partial result.
Convert a list of texts into numeric vectors with a compatible OpenAI embedding model. Use vectors for similarity search or matching; this does not store them in a database.
Inputs
| Input | Type | How to use it |
|---|---|---|
| Account | Account | Select an existing OpenAI connector belonging to this organization. Connect or reconnect the account from the account input menu; never enter a raw API key here. |
| Model | text | Paste the exact model ID enabled for your OpenAI account, up to 200 characters; there is no default model. Model access depends on your account. Use List Models where available, then choose a model that supports this operation. |
| Input | list | Required list of 1–32 nonblank text values, each at most 8,192 characters. Example: ["Red apple","Green pear"]. Keep the whole serialized request within 64 KiB; output index matches the original input position. |
| Options | object | Optional object. The only supported setting for this provider is dimensions: a whole number from 1 to 3072, for models that support a custom vector size. Leave blank or {} to use the model default. Example: {"dimensions":256}. |
Result
An object with model, data and usage. data contains one {index, embedding} entry per input in original order; embedding is a list of finite numbers. usage has inputTokens, outputTokens and totalTokens; unknown counts are null. Vector length depends on the model and supported settings.
Example
Account: select your OpenAI connection. Model: paste an enabled embedding-model ID. Input: ["Red apple","Green pear"]. Options: {}. Save as vectors and use vectors.data[0].embedding for the first text.
Errors and limits
A missing, revoked, wrong-provider or inaccessible organization account stops the command. Isolated tests and live debugging do not contact providers; enable Use live data deliberately to test a connected account. Provider permissions, unsupported models/options, billing and rate limits can reject requests. Provider errors are summarized and external requests are not automatically retried. Inputs over the 64 KiB serialized request limit, responses over 2 MiB, or a request exceeding 30 seconds fail instead of returning a partial result.
Isolated tests and live debugging do not call connected providers. Enable Use live data only when you intend to contact the account. Writes, messages and AI requests can change real data or incur provider charges. A successful connection check does not prove access to every action. These examples explain the command contract; they are not evidence of a completed live provider request.
GitHub commands
Use these commands from an endpoint, server function or event. Choose Add Command → Connector → GitHub, select the action, then choose an Account. Selecting an account reveals the remaining inputs. When the command returns a result, open OUTPUT and use Return as to name it for later commands. [All c...
Zendesk commands
Use these commands from an endpoint, server function or event. Choose Add Command → Connector → Zendesk, select the action, then choose an Account. Selecting an account reveals the remaining inputs. When the command returns a result, open OUTPUT and use Return as to name it for later commands. [All ...
Slack commands
Use these commands from an endpoint, server function or event. Choose Add Command → Connector → Slack, select the action, then choose an Account. Selecting an account reveals the remaining inputs. When the command returns a result, open OUTPUT and use Return as to name it for later commands. [All co...
xAI (Grok) commands
Use these commands from an endpoint, server function or event. Choose Add Command → Connector → xAI (Grok), select the action, then choose an Account. Selecting an account reveals the remaining inputs. When the command returns a result, open OUTPUT and use Return as to name it for later commands. [A...
Twilio commands
Use these commands from an endpoint, server function or event. Choose Add Command → Connector → Twilio, select the action, then choose an Account. Selecting an account reveals the remaining inputs. When the command returns a result, open OUTPUT and use Return as to name it for later commands. [All c...