# Launch plans

> **📝 Note**
>
> An LLM-optimized bundle of this entire section is available at [`section.md`](https://www.union.ai/docs/v1/union/user-guide/core-concepts/launch-plans/section.md).
> This single file contains all pages in this section, optimized for AI coding agent context.

A launch plan is a template for a workflow invocation.
It brings together:

* A [workflow](https://www.union.ai/docs/v1/union/user-guide/core-concepts/workflows/page.md)
* A (possibly partial) set of inputs required to initiate that workflow
* Optionally, [notifications](https://www.union.ai/docs/v1/union/user-guide/core-concepts/launch-plans/notifications/page.md) and [schedules](https://www.union.ai/docs/v1/union/user-guide/core-concepts/launch-plans/schedules/page.md)

When invoked, the launch plan starts the workflow, passing the inputs as parameters.
If the launch plan does not contain the entire set of required workflow inputs, additional input arguments must be provided at execution time.

## Default launch plan

Every workflow automatically comes with a *default launch plan*.
This launch plan does not define any default inputs, so they must all be provided at execution time.
A default launch plan always has the same name as its workflow.

## Launch plans are versioned

Like tasks and workflows, launch plans are versioned.
A launch plan can be updated to change, for example, the set of inputs, the schedule, or the notifications.
Each update creates a new version of the launch plan.

## Custom launch plans

Additional launch plans, other than the default one, can be defined for any workflow.
In general, a given workflow can be associated with multiple launch plans, but a given launch plan is always associated with exactly one workflow.

## Viewing launch plans for a workflow

To view the launch plans for a given workflow, in the UI, navigate to the workflow's page and click **Launch Workflow**.
You can choose which launch plan to use to launch the workflow from the **Launch Plan** dropdown menu.
The default launch plan will be selected by default. If you have not defined any custom launch plans for the workflow, only the default plan will be available.
If you have defined one or more custom launch plans, they will be available in the dropdown menu along with the default launch plan.
For more details, see [Running launch plans](https://www.union.ai/docs/v1/union/user-guide/core-concepts/launch-plans/running-launch-plans/page.md).

## Registering a launch plan

### Registering a launch plan on the command line

In most cases, launch plans are defined alongside the workflows and tasks in your project code and registered as a bundle with the other entities using the CLI (see [Running your code](https://www.union.ai/docs/v1/union/user-guide/development-cycle/running-your-code/page.md)).

### Registering a launch plan in Python with `UnionRemote`

As with all Union.ai command line actions, you can also perform registration of launch plans programmatically with [`UnionRemote`](https://www.union.ai/docs/v1/union/user-guide/development-cycle/union-remote), specifically, `UnionRemote.register_launch_plan`.

### Results of registration

When the code above is registered to Union.ai, it results in the creation of four objects:

* The task `workflows.launch_plan_example.my_task`
* The workflow `workflows.launch_plan_example.my_workflow`
* The default launch plan `workflows.launch_plan_example.my_workflow` (notice that it has the same name as the workflow)
* The custom launch plan `my_workflow_custom_lp` (this is the one we defined in the code above)

### Changing a launch plan

Launch plans are changed by altering their definition in code and re-registering.
When a launch plan with the same project, domain, and name as a preexisting one is re-registered, a new version of that launch plan is created.

## Subpages

- [Defining launch plans](https://www.union.ai/docs/v1/union/user-guide/core-concepts/launch-plans/defining-launch-plans/page.md)
  - Default and Fixed Inputs
  - Scheduled Execution
  - Labels and Annotations
  - Execution Parameters
  - Security and Authentication
  - Raw Output Data Configuration
  - Putting It All Together
- [Viewing launch plans](https://www.union.ai/docs/v1/union/user-guide/core-concepts/launch-plans/viewing-launch-plans/page.md)
  - Viewing launch plans in the UI
  - Viewing launch plans on the command line with `uctl`
  - Viewing launch plans in Python with `UnionRemote`
- [Notifications](https://www.union.ai/docs/v1/union/user-guide/core-concepts/launch-plans/notifications/page.md)
- [Schedules](https://www.union.ai/docs/v1/union/user-guide/core-concepts/launch-plans/schedules/page.md)
  - Fixed-rate schedules
  - Cron schedules
  - Cron expression format
  - Cron expression examples
  - Cron aliases
  - kickoff_time_input_arg
- [Activating and deactivating](https://www.union.ai/docs/v1/union/user-guide/core-concepts/launch-plans/activating-and-deactivating/page.md)
  - Activating and deactivating a launch plan in the UI
  - Activating and deactivating a launch plan on the command line with `uctl`
  - Activating and deactivating a launch plan in Python with `UnionRemote`
- [Running launch plans](https://www.union.ai/docs/v1/union/user-guide/core-concepts/launch-plans/running-launch-plans/page.md)
  - Running a launch plan in the UI
  - Running a launch plan on the command line with `uctl`
  - Running a launch plan in Python with `UnionRemote`
  - Sub-launch plans
- [Reference launch plans](https://www.union.ai/docs/v1/union/user-guide/core-concepts/launch-plans/reference-launch-plans/page.md)
  - Example
- [Mapping over launch plans](https://www.union.ai/docs/v1/union/user-guide/core-concepts/launch-plans/mapping-over-launch-plans/page.md)
  - Launch plan defined in your code
  - Previously registered launch plan
- [Reactive workflows](https://www.union.ai/docs/v1/union/user-guide/core-concepts/launch-plans/reactive-workflows/page.md)
  - Scope
  - Trigger types
  - Artifact events
- [Concurrency control](https://www.union.ai/docs/v1/union/user-guide/core-concepts/launch-plans/concurrency-control/page.md)
  - How it works
  - Basic usage
  - Scheduled workflows with concurrency control
  - Defining the policy
  - Key behaviors and considerations
  - Version-agnostic check, version-specific enforcement
  - Concurrency limit on manual trigger
  - Scheduled execution behavior
  - Limitations
  - "At most" enforcement
  - Notifications for skipped executions
  - Best practices

---
**Source**: https://github.com/unionai/unionai-docs/blob/main/content/user-guide/core-concepts/launch-plans/_index.md
**HTML**: https://www.union.ai/docs/v1/union/user-guide/core-concepts/launch-plans/
