BastionGPT (Preview)
BastionGPT is a HIPAA-compliant AI assistant built for healthcare by Bastion Intelligence. Generate text with AI chat completions, ask questions about uploaded documents, and transcribe audio recordings with speaker separation. Customer content is never used to train AI models. A BastionGPT API subscription key is required.
This connector is available in the following products and regions:
| Service | Class | Regions |
|---|---|---|
| Copilot Studio | Premium | All Power Automate regions except the following: - US Government (GCC) - US Government (GCC High) - China Cloud operated by 21Vianet - US Department of Defense (DoD) |
| Logic Apps | Standard | All Logic Apps regions except the following: - Azure Government regions - Azure China regions - US Department of Defense (DoD) |
| Power Apps | Premium | All Power Apps regions except the following: - US Government (GCC) - US Government (GCC High) - China Cloud operated by 21Vianet - US Department of Defense (DoD) |
| Power Automate | Premium | All Power Automate regions except the following: - US Government (GCC) - US Government (GCC High) - China Cloud operated by 21Vianet - US Department of Defense (DoD) |
| Contact | |
|---|---|
| Name | Bastion Intelligence Support |
| URL | https://support.bastiongpt.com |
| support@bastiongpt.com |
| Connector Metadata | |
|---|---|
| Publisher | Bastion Intelligence |
| Website | https://bastiongpt.com |
| Privacy policy | https://bastionintelligence.com/privacy |
| Categories | AI;Productivity |
BastionGPT
Publisher: Bastion Intelligence
BastionGPT is a HIPAA-compliant AI assistant built for healthcare by Bastion Intelligence (FortaTech Security, LLC). This connector lets you generate text with AI chat completions, ask questions about uploaded documents, and transcribe audio recordings with speaker separation, all from your automations and agents. Customer content is never used to train AI models.
Prerequisites
- A BastionGPT API subscription. Request one at https://bastiongpt.com/api-signup. Keys are typically issued the same business day.
- Your BastionGPT API subscription key. Keep it confidential and rotate it if you suspect it has been exposed.
Obtaining Credentials
When you create a connection, paste your BastionGPT API subscription key into the API Key field. The connector sends the key in the key request header on every call. No other configuration is required.
Supported Operations
Ask a question
The simplest way to use BastionGPT. Sends a single question and returns the answer as plain text.
- Question (required): what you want to ask or have generated.
- Instructions (optional): guidance that shapes the response, such as the role to adopt, the audience, or the output format. When omitted, the default BastionGPT healthcare assistant persona is used.
- Document ID (optional): the ID returned by Upload a document, to ask about that document.
- Max Tokens (required, default 1000) and Temperature (advanced, default 0).
The response is flat: Answer, Finish Reason, Response ID, and Prompt/Completion/Total Tokens. Drag Answer directly into the next step.
Create a chat completion
Sends a multi-turn conversation to BastionGPT and returns an AI-generated text response. Use this when you need to send earlier turns or full control over the messages array; for a single question, Ask a question is simpler.
- Messages (required): the conversation, oldest first. Each message has a Role (
system,user, orassistant) and Content. Include earlier user and assistant turns to keep context. An optionalsystemmessage as the first item overrides the default BastionGPT healthcare assistant persona. - Max Tokens (required, default 1000): the maximum number of tokens to generate.
- Temperature (advanced, default 0): 0.0 to 1.0. Lower values give more consistent output.
- Document ID (optional): the ID returned by Upload a document, to ask questions about that document.
The response contains Choices (an array with one item whose Message Content holds the generated text), a Response ID, a Created timestamp, and Usage token counts. To read the generated text in an expression, use:
first(outputs('Create_a_chat_completion')?['body/choices'])?['message']?['content']
Upload a document
Uploads a single document (PDF, plain text, HTML, CSV, Markdown, PNG, or JPEG; 10 MB maximum) and returns a Document ID. Supply the File content (for example the File Content output of a SharePoint or OneDrive Get file content action) and the File name (for example File name with extension). Documents are retained for 30 days after upload and can be referenced by any number of chat completion requests during that time. A document ID is owned by the API subscription key that uploaded it.
Submit audio for transcription
Uploads an audio recording (WAV, MP3, M4A, OGG, WEBM, and other common formats) for asynchronous transcription with speaker separation. Supply the File content and the File name. Returns a Transcript ID immediately, plus the audio File Duration in seconds.
Get a transcript
Retrieves a transcript by Transcript ID. The operation always succeeds with a Status field:
processing: the transcript is not ready yet. Segments is empty and Text is blank. Wait 10 to 20 seconds and call the operation again. A typical pattern is a Do until loop that repeats until Status equalscompleted, with a Delay of 15 seconds inside the loop.completed: Segments holds the speaker-separated transcript (each with Timestamp in HH:MM:SS, Speaker, and Text), and Text holds the full transcript with one line per segment, ready to drop into an email, a document, or a record.
If the transcription failed or the transcript ID is missing, the operation returns an error with the service's message.
Getting Started
- Request an API subscription at https://bastiongpt.com/api-signup and receive your key.
- Add a BastionGPT action to your automation or agent and create a connection with your API key.
- For a first test, use Ask a question with the Question
Summarize the purpose of a SOAP note in two sentences.and Max Tokens200, then use Answer in a following step. - To work with a file, use Upload a document first, then pass the returned Document ID to Ask a question or Create a chat completion.
- To transcribe audio, use Submit audio for transcription, then poll Get a transcript until Status is
completed.
Known Issues and Limitations
- Max Tokens is required. Requests without it are rejected by the service.
- One document per chat completion request. Documents expire 30 days after upload; upload again to get a new ID.
- Chat completion size limits. Request body 10 MB; about 1.6 million characters per message and about 2.5 million characters of total message content. Very large prompts are automatically served by a large-context model.
- Get a transcript reports
processingfor unknown transcript IDs as well as for in-progress transcriptions. If the status staysprocessingwell beyond the audio duration, verify the transcript ID. Give Do until loops a sensible limit. - Streaming responses are not exposed by this connector. Use the non-streaming chat completion operation.
- Rate limits depend on your subscription tier. On status code 429, wait and retry with exponential backoff.
- File inputs need a content type. File content from SharePoint, OneDrive, Outlook attachments, or forms carries its content type automatically. If you build file content yourself from base64, use
dataUriToBinary(concat('data:<content type>;base64,', <base64>))so the service can recognize the file type. - Protected health information. BastionGPT is designed to process PHI under a Business Associate Agreement with Bastion Intelligence. Review your organization's policies before sending PHI through automations, and consider enabling secure inputs and outputs on actions so PHI is not written to run history.
Frequently Asked Questions
Which AI model answers my request?
BastionGPT automatically selects an appropriate enterprise-grade AI model for each request. The response format is the same regardless of the model used.
Is my data used to train AI models?
No. Customer content is never used to train AI models.
Where can I get help?
Visit https://support.bastiongpt.com or contact support@bastiongpt.com.
Creating a connection
The connector supports the following authentication types:
| Default | Parameters for creating connection. | All regions | Not shareable |
Default
Applicable: All regions
Parameters for creating connection.
This is not shareable connection. If the power app is shared with another user, another user will be prompted to create new connection explicitly.
| Name | Type | Description | Required |
|---|---|---|---|
| API Key | securestring | Your API subscription key. Request one at bastiongpt.com/api-signup | True |
Actions
| Ask a question |
Sends a single question to BastionGPT and returns the AI-generated answer as plain text. Optionally add instructions that shape the response, or supply a document ID to ask about a previously uploaded document. Use this operation for most scenarios; use the chat completion operation when you need to send a multi-turn conversation. |
| Create a chat completion |
Sends a multi-turn conversation to BastionGPT and returns an AI-generated text response. Include earlier user and assistant turns in the messages to keep context, add a system message as the first item to set instructions, or supply a document ID to ask questions about a previously uploaded document. For a single question, the ask a question operation is simpler. |
| Get a transcript |
Retrieves a transcript by its transcript ID. While transcription is still in progress, the status is processing and the segments are empty; wait 10 to 20 seconds and call the operation again. When the status is completed, the segments contain the speaker-separated transcript and the text contains the full transcript. |
| Submit audio for transcription |
Uploads an audio recording for asynchronous transcription with speaker separation and returns a transcript ID immediately. Use the transcript ID with the get transcript operation to retrieve the completed transcript. Common audio formats such as WAV, MP3, M4A, OGG, and WEBM are accepted. |
| Upload a document |
Uploads a single document and returns a document ID that can be supplied to the chat completion operation. Documents are retained for 30 days after upload and can be referenced by any number of chat completion requests during that time. Supported types are PDF, plain text, HTML, CSV, Markdown, PNG, and JPEG, up to 10 MB. |
Ask a question
Sends a single question to BastionGPT and returns the AI-generated answer as plain text. Optionally add instructions that shape the response, or supply a document ID to ask about a previously uploaded document. Use this operation for most scenarios; use the chat completion operation when you need to send a multi-turn conversation.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
Question
|
question | True | string |
The question or request to send to BastionGPT. |
|
Instructions
|
instructions | string |
Optional instructions that shape the response, such as the role to adopt, the audience, or the output format. When omitted, the default BastionGPT healthcare assistant persona is used. |
|
|
Document ID
|
document_id | string |
The optional ID of a document previously uploaded with the upload a document operation. The document is attached to the request so the answer can use its content. |
|
|
Max Tokens
|
max_tokens | True | integer |
The maximum number of tokens to generate in the answer. Must be 1 or greater. |
|
Temperature
|
temperature | float |
The sampling temperature from 0.0 to 1.0. Lower values produce more consistent output and higher values produce more varied output. |
Returns
- Body
- AskQuestionResponse
Create a chat completion
Sends a multi-turn conversation to BastionGPT and returns an AI-generated text response. Include earlier user and assistant turns in the messages to keep context, add a system message as the first item to set instructions, or supply a document ID to ask questions about a previously uploaded document. For a single question, the ask a question operation is simpler.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
Role
|
role | True | string |
The author of the message. Use system for instructions, user for the person's input, and assistant for earlier AI responses. |
|
Content
|
content | True | string |
The text content of the message. |
|
Max Tokens
|
max_tokens | True | integer |
The maximum number of tokens to generate in the response. Must be 1 or greater. |
|
Temperature
|
temperature | float |
The sampling temperature from 0.0 to 1.0. Lower values produce more consistent output and higher values produce more varied output. |
|
|
Document ID
|
document_id | string |
The optional ID of a document previously uploaded with the upload a document operation. The document is attached to the request so the response can use its content. One document per request. |
Returns
Get a transcript
Retrieves a transcript by its transcript ID. While transcription is still in progress, the status is processing and the segments are empty; wait 10 to 20 seconds and call the operation again. When the status is completed, the segments contain the speaker-separated transcript and the text contains the full transcript.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
Transcript ID
|
transcriptId | True | string |
The transcript ID returned by the submit audio for transcription operation. |
Returns
- Body
- TranscriptResponse
Submit audio for transcription
Uploads an audio recording for asynchronous transcription with speaker separation and returns a transcript ID immediately. Use the transcript ID with the get transcript operation to retrieve the completed transcript. Common audio formats such as WAV, MP3, M4A, OGG, and WEBM are accepted.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
Audio File
|
file | True | file |
The audio recording to transcribe. Common formats such as WAV, MP3, M4A, OGG, and WEBM are accepted. |
Returns
- Body
- TranscribeResponse
Upload a document
Uploads a single document and returns a document ID that can be supplied to the chat completion operation. Documents are retained for 30 days after upload and can be referenced by any number of chat completion requests during that time. Supported types are PDF, plain text, HTML, CSV, Markdown, PNG, and JPEG, up to 10 MB.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
File
|
file | True | file |
The document to upload. Supported types are PDF, plain text, HTML, CSV, Markdown, PNG, and JPEG, up to 10 MB. |
Returns
Definitions
AskQuestionResponse
| Name | Path | Type | Description |
|---|---|---|---|
|
Answer
|
answer | string |
The AI-generated answer text. |
|
Finish Reason
|
finish_reason | string |
The reason generation stopped. The value stop means a natural end, max_tokens means the token limit was reached and the answer may be truncated, and content_filter means content was withheld by safety filtering. |
|
Response ID
|
response_id | string |
The unique identifier of this response. |
|
Prompt Tokens
|
prompt_tokens | integer |
The number of tokens in the input, including any instructions. |
|
Completion Tokens
|
completion_tokens | integer |
The number of tokens generated in the answer. |
|
Total Tokens
|
total_tokens | integer |
The sum of prompt tokens and completion tokens. |
TranscriptResponse
| Name | Path | Type | Description |
|---|---|---|---|
|
Status
|
status | string |
The transcription status. The value processing means the transcript is not ready yet and completed means the segments and text are available. |
|
Segments
|
segments | array of TranscriptSegment |
The speaker-separated transcript segments in order. Empty while the status is processing. |
|
Text
|
text | string |
The full transcript as text, one line per segment with its timestamp and speaker. Empty while the status is processing. |
TranscriptSegment
| Name | Path | Type | Description |
|---|---|---|---|
|
Timestamp
|
timestamp | string |
The segment start time in HH:MM:SS format. |
|
Speaker
|
speaker | string |
The speaker label assigned by speaker separation. |
|
Text
|
text | string |
The transcribed text for this segment. |
ChatCompletionResponse
| Name | Path | Type | Description |
|---|---|---|---|
|
Choices
|
choices | array of Choice |
The generated responses. This array contains one item. |
|
Response ID
|
id | string |
The unique identifier of this response. |
|
Created
|
created | integer |
The Unix timestamp in seconds when the response was created. |
|
Usage
|
usage | Usage |
The token accounting for the request. |
Choice
| Name | Path | Type | Description |
|---|---|---|---|
|
Finish Reason
|
finishReason | string |
The reason generation stopped. The value stop means a natural end, max_tokens means the token limit was reached and the response may be truncated, and content_filter means content was withheld by safety filtering. |
|
Content
|
message.content | string |
The generated text. |
Usage
The token accounting for the request.
| Name | Path | Type | Description |
|---|---|---|---|
|
Prompt Tokens
|
promptTokens | integer |
The number of tokens in the input, including the system message. |
|
Completion Tokens
|
completionTokens | integer |
The number of tokens generated in the response. |
|
Total Tokens
|
totalTokens | integer |
The sum of prompt tokens and completion tokens. |
DocumentUploadResponse
| Name | Path | Type | Description |
|---|---|---|---|
|
Document ID
|
document_id | string |
The identifier of the uploaded document, valid for 30 days after upload. Supply it to the chat completion operation. |
TranscribeResponse
| Name | Path | Type | Description |
|---|---|---|---|
|
Transcript ID
|
transcriptId | string |
The identifier used to retrieve the completed transcript. |
|
File Duration
|
fileDuration | string |
The duration of the submitted audio in seconds, as a decimal string. |