Skip to content
Proud to collaborate with Microsoft for Startups

chat.conversation.send-message ​

Append a user turn to a chat conversation and return the assistant reply

End-to-end chat send-message pipeline.

Overview ​

PropertyValue
Workflow typeDag
LibraryApp-chat
Version1.0

Input Schema ​

FieldTypeRequiredDefaultDescription
conversation_uuiduuidYes—ChatConversation.uuid (external surface)
user_uuiduuidNo—User.uuid (external surface). Required for a member run; refused on an end-user run
user_messagestringYes—Raw user message content (1-32000 chars)
provided_inputsjsonNo—Optional resolved form payload for a prior pending_input
confirmed_actionjsonNo—Optional resolution of a prior pending_action
llm_connection_uuiduuidNo—Optional LLM connection override; falls back to org default
streambooleanNo—Streaming hint (metadata-only today)
deep_reasoningbooleanNo—Deep-reasoning mode: raise the dgi tool-loop budget so the model explores more of the catalog before answering
proactivebooleanNo—Proactive mode: after answering, surface 2-3 suggested next actions the user can take
workflow_run_uuiduuidNo—Engine-stamped parent run UUID (DAG step target)

Output Schema ​

FieldTypeRequiredDefaultDescription
conversation_uuiduuidNo——
user_uuiduuidNo——
user_messagestringNo——
provided_inputsjsonNo——
confirmed_actionjsonNo——
llm_connection_uuiduuidNo——
streambooleanNo——
deep_reasoningbooleanNo——
proactivebooleanNo——
workflow_run_uuiduuidNo—DAG run UUID; stamped by the engine's auto-generated 'start' transition.
validatejsonNo—Result dict from the validate step
persist_user_messagejsonNo—Result dict from the persist-user-message step
dispatch_dgijsonNo—Result dict from the dispatch-dgi step
wait_and_persist_assistantjsonNo—Result dict from the wait-and-persist-assistant step
return_payloadjsonNo—Result dict from the return-payload step
completed_atstringNo——
failed_atstringNo——
failure_reasonstringNo—Engine-stamped human-readable failure reason
failed_at_statestringNo—Engine-stamped state when the workflow failed
failed_stepstringNo—Engine-stamped step name (DAG path)
failed_layerintegerNo—Engine-stamped layer index (DAG path)
errorstringNo—Engine-stamped exception message
error_typestringNo—Engine-stamped exception class name
comp_current_layerintegerNo—DAG framework: index of the layer currently being compensated
comp_queuelistNo—DAG framework: remaining layer indices queued for compensation
comp_retry_countintegerNo—DAG framework: retry count for the in-flight compensation step
compensation_triggerstringNo—DAG framework: 'failed'

DAG Layers ​

#LayerStepsCompensation
1validatechat.conversation.send-message.validate—
2persist_user_messagechat.conversation.send-message.persist-user-message—
3dispatch_dgichat.conversation.send-message.dispatch-dgi—
4wait_and_persist_assistantchat.conversation.send-message.wait-and-persist-assistant—
5return_payloadchat.conversation.send-message.return-payload—

Execution Flow ​

Sub-workflows ​

Sub-workflowStep name
chat.conversation.send-message.validatevalidate
chat.conversation.send-message.persist-user-messagepersist_user_message
chat.conversation.send-message.dispatch-dgidispatch_dgi
chat.conversation.send-message.wait-and-persist-assistantwait_and_persist_assistant
chat.conversation.send-message.return-payloadreturn_payload

API Usage ​

bash
POST /api/workflows/start
Content-Type: application/json

{
  "workflow_type": "chat.conversation.send-message",
  "initial_data": {
    "conversation_uuid": "value",
    "user_message": "value"
  }
}