Skip to main content

AiChatMutations

No description

type AiChatMutations {
createChat(
processId: Long
subjectKind: String
subjectId: Long
name: String!
settings: String
origin: String
): WorkflowChat
sendChatMessage(
chatId: Long!
content: String!
workflowData: WorkflowDataGqlInput
agentDraft: String
homeContext: String
integrationId: Long!
model: String!
files: [String!]!
): Boolean
cancelChatTurn(
chatId: Long!
): Boolean
respondToToolCall(
chatId: Long!
toolCallId: String!
approved: Boolean!
note: String
inputClaim: String
): Boolean
updateChatSettings(
chatId: Long!
settings: String!
): WorkflowChat
renameChat(
chatId: Long!
name: String!
): WorkflowChat
deleteChat(
chatId: Long!
): Boolean
}

Fields

AiChatMutations.createChat ● WorkflowChat object

Create an AI copilot chat on a process

AiChatMutations.createChat.processId ● Long scalar
AiChatMutations.createChat.subjectKind ● String scalar

Chat subject kind: workflow | agent | home

AiChatMutations.createChat.subjectId ● Long scalar
AiChatMutations.createChat.name ● String! non-null scalar
AiChatMutations.createChat.settings ● String scalar

ChatSettings json (mode, maxToolCalls, integrationId, model)

AiChatMutations.createChat.origin ● String scalar

Which surface opened this chat: direct | fix_with_barry | home. Metrics only - gates nothing.

AiChatMutations.sendChatMessage ● Boolean scalar

Send a user message and start the copilot's turn (streams via watchChat)

AiChatMutations.sendChatMessage.chatId ● Long! non-null scalar
AiChatMutations.sendChatMessage.content ● String! non-null scalar
AiChatMutations.sendChatMessage.workflowData ● WorkflowDataGqlInput input

Workflow chats: the current canvas graph — becomes the chat's working graph

AiChatMutations.sendChatMessage.agentDraft ● String scalar

Agent chats: the builder form's AgentDraftSnapshot JSON — becomes the chat's working draft

AiChatMutations.sendChatMessage.homeContext ● String scalar

Home chats: the HomeSnapshot JSON (the organization the chat is scoped to)

AiChatMutations.sendChatMessage.integrationId ● Long! non-null scalar
AiChatMutations.sendChatMessage.model ● String! non-null scalar
AiChatMutations.sendChatMessage.files ● [String!]! non-null scalar

Public ids of already-uploaded workflow files to attach to this message (pasted images). Ids only: the server rebuilds each reference from its own row, so a name, type or size claimed by the client is never believed. Capped per message and by total bytes; every attachment is replayed on each subsequent turn of the chat.

AiChatMutations.cancelChatTurn ● Boolean scalar

Stop the in-flight copilot turn

AiChatMutations.cancelChatTurn.chatId ● Long! non-null scalar

AiChatMutations.respondToToolCall ● Boolean scalar

Approve or reject a pending tool call (AskPermission mode)

AiChatMutations.respondToToolCall.chatId ● Long! non-null scalar
AiChatMutations.respondToToolCall.toolCallId ● String! non-null scalar
AiChatMutations.respondToToolCall.approved ● Boolean! non-null scalar
AiChatMutations.respondToToolCall.note ● String scalar

Rejections only: an optional free-text reply the copilot sees verbatim (it may carry the content you actually want, e.g. a corrected form schema). Capped server-side.

AiChatMutations.respondToToolCall.inputClaim ● String scalar

Input-request cards only: an InputClaim JSON saying what the user created (e.g. {"Integration":{"integrationId":42}}). It is a POINTER, never a fact and never tool arguments — the server re-reads what it points at under your own permissions and builds the copilot's result from what it finds, so a forged or cross-organization id yields an 'unavailable' result rather than anything the model believes.

AiChatMutations.updateChatSettings ● WorkflowChat object

Update a chat's settings (mode, tool-call limit, model)

AiChatMutations.updateChatSettings.chatId ● Long! non-null scalar
AiChatMutations.updateChatSettings.settings ● String! non-null scalar

AiChatMutations.renameChat ● WorkflowChat object

Rename a chat

AiChatMutations.renameChat.chatId ● Long! non-null scalar
AiChatMutations.renameChat.name ● String! non-null scalar

AiChatMutations.deleteChat ● Boolean scalar

Delete a chat and its transcript

AiChatMutations.deleteChat.chatId ● Long! non-null scalar

Returned By

aiChat mutation