# `LightningWeb.WorkflowLive.Helpers`
[🔗](https://github.com/OpenFn/lightning/blob/main/lib/lightning_web/live/workflow_live/helpers.ex#L1)

Helper functions for the Workflow LiveViews.

# `run_workflow`

```elixir
@spec run_workflow(
  Ecto.Changeset.t(Lightning.Workflows.Workflow.t())
  | Lightning.Workflows.Workflow.t(),
  map(),
  selected_job: map(),
  created_by: map(),
  project: map()
) ::
  {:ok,
   %{
     workorder: Lightning.WorkOrder.t(),
     workflow: Lightning.Workflows.Workflow.t(),
     message: Lightning.Extensions.UsageLimiting.message()
   }}
  | {:error, Ecto.Changeset.t(Lightning.Workflows.Workflow.t())}
  | {:error, Ecto.Changeset.t(Lightning.WorkOrders.Manual.t())}
  | {:error, Lightning.Extensions.UsageLimiting.message()}
  | {:error, :workflow_deleted}
```

# `save_workflow`

```elixir
@spec save_workflow(Ecto.Changeset.t(), struct()) ::
  {:ok, Lightning.Workflows.Workflow.t()}
  | {:error,
     Ecto.Changeset.t()
     | Lightning.Extensions.UsageLimiting.message()
     | :workflow_deleted}
```

# `workflow_enabled?`

Determines if a workflow is enabled based on its triggers.
Accepts either a Workflow struct or an Ecto.Changeset.

# `workflow_state_tooltip`

Generates a tooltip describing the workflow's state.
Accepts either a Workflow struct or an Ecto.Changeset.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
