# `Jido.Messaging.Onboarding`
[🔗](https://github.com/agentjido/jido_messaging/blob/v1.0.0/lib/jido_messaging/onboarding.ex#L1)

Onboarding flow orchestration APIs.

Flows are persisted in the configured storage adapter and executed by
supervisor-managed workers keyed by onboarding ID.

# `transition`

```elixir
@type transition() :: Jido.Messaging.Onboarding.StateMachine.transition()
```

# `advance`

```elixir
@spec advance(module(), String.t(), transition(), map(), keyword()) ::
  {:ok, %{flow: Jido.Messaging.Onboarding.Flow.t(), transition: map()}}
  | {:error, term()}
```

Advance an onboarding flow with a deterministic transition.

# `cancel`

```elixir
@spec cancel(module(), String.t(), map(), keyword()) ::
  {:ok, %{flow: Jido.Messaging.Onboarding.Flow.t(), transition: map()}}
  | {:error, term()}
```

Cancel an onboarding flow.

# `complete`

```elixir
@spec complete(module(), String.t(), map(), keyword()) ::
  {:ok, %{flow: Jido.Messaging.Onboarding.Flow.t(), transition: map()}}
  | {:error, term()}
```

Complete an onboarding flow.

# `get`

```elixir
@spec get(module(), String.t()) ::
  {:ok, Jido.Messaging.Onboarding.Flow.t()} | {:error, term()}
```

Fetch onboarding flow state without changing worker state.

# `resume`

```elixir
@spec resume(module(), String.t()) ::
  {:ok, Jido.Messaging.Onboarding.Flow.t()} | {:error, term()}
```

Resume an onboarding flow from persisted state.

# `start`

```elixir
@spec start(module(), map(), keyword()) ::
  {:ok, Jido.Messaging.Onboarding.Flow.t()} | {:error, term()}
```

Start (or resume) an onboarding flow.

# `whereis_worker`

```elixir
@spec whereis_worker(module(), String.t()) :: pid() | nil
```

Returns the PID for a flow worker, if it is currently running.

---

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