# Saving, activation and source files

Use `createWorkflowVersionFromSource` with `workflowId` and `sourceXML` to save a version through the API. Pass XML as a GraphQL variable. Read it back with `getWorkflowVersionSource(id:)`; comments and formatting are preserved. Older versions created in another format are returned as equivalent XML.

Use `analyzeWorkflowSource(sourceXML:)` to check a draft without saving. Saving checks the graph and node configuration. Activation performs validation again, including data and resource permissions where applicable. `setActiveVersion` selects the version used by future executions; it does not rewrite an existing version.

For configuration files, manage `workflow_version` using its `workflowId` and `sourceXML`. Read existing source before adopting a version. Do not replace it with generated graph JSON. Review changes, verify referenced resources and activate deliberately.