New to Kestra?
Use blueprints to kickstart your first workflows.
Run a registered Mistral agent workflow from Kestra with completion polling, pass inputs from the flow, and confirm the final status in Slack.
Mistral workflows package agent logic, but something still has to start them with the right inputs, wait for the outcome, and react to it. This blueprint makes Kestra that something: io.kestra.plugin.mistral.RunWorkflow starts a registered workflow with an input map built from flow inputs, polls the execution until it reaches a terminal state, and exposes the status, remote execution ID, result, and timing as task outputs that flow straight into a Slack confirmation.
run_workflow (io.kestra.plugin.mistral.RunWorkflow) calls the Mistral API with workflowIdentifier from the flow input and an input map carrying the document text and language. With wait: true the task polls every pollInterval (five seconds) until the remote execution reaches a terminal state, and throws a timeout after waitTimeout (fifteen minutes).{{ outputs.run_workflow.status }} (COMPLETED, FAILED, or CANCELED), {{ outputs.run_workflow.executionId }}, {{ outputs.run_workflow.totalDurationMs }}, the start and end timestamps, and the JSON serialized result.notify posts the status, duration, and both execution IDs to Slack as plain scalars.errors block posts a distinct Slack alert on failure or timeout, so a hung agent workflow surfaces instead of silently waiting.Calling the run endpoint is one HTTP request; production needs the rest: secrets for the API key, typed inputs so anyone can launch a run from the UI, polling with a hard timeout, downstream tasks that consume the result, and a searchable history of every run and its outcome. Kestra declares all of it in one flow, and the same pattern chains agent workflows with databases, warehouses, and notifications.
workflow_identifier, accepting text and language inputs, or adjust the input map to your workflow's contract.MISTRAL_API_KEY: Mistral API bearer token.SLACK_WEBHOOK_URL: Slack incoming webhook URL.workflow_identifier to a workflow registered in your Mistral account and adjust the input map keys to match it.{{ outputs.run_workflow.status }} with an If task to handle FAILED runs differently from COMPLETED ones.{{ outputs.run_workflow.result }} with a small script task to extract structured fields for downstream tasks.wait: false for fire-and-forget starts and pair with the WorkflowEvents trigger blueprint to react on completion.deploymentName to pin runs to a specific workflow version during rollouts.