# uip ah automations, idea-flows, business-cases, phases, questionnaires, pipelines

> Syntax and options for the Automation Hub idea-to-delivery lifecycle — submitting and reading automation ideas, phase transitions, cost-benefit analyses, the assessment catalogue, and the benefit-ranked pipeline view.

An **automation** (Automation Hub calls the underlying record a "process") is the core record in Automation Hub — a submitted idea that moves through configurable **phases** (Idea, Assessment, Analysis, Solution Design, Development, Testing, Live, …) via an **idea flow**. Each phase has a **cost-benefit analysis** (business case), and an **assessment** (a set of questions from the **questionnaire** catalogue) captures the answers that feed a submission. The **pipeline** view is automations plus their execution and benefit figures, ranked. See [`uip ah`](./uip-ah.md) for shared concepts (projection/`--all-fields`, paged vs. unpaged lists, ID discovery) that apply to every verb here.

## uip ah automations

Work with automation ideas — the core Automation Hub record.

### Synopsis

```text
uip ah automations list [--search <text>] [--sort-by <field>] [--sort-order asc|desc] [--category-id <id...>] [--application-id <id...>] [--business-unit <name>] [--phase-id <id...>] [--status-id <id...>] [--tags <tag...>] [--owner-id <id>] [--submitter-id <id>] [--updated-by-id <id>] [--submission-type <type>] [--start-date <date>] [--end-date <date>] [--plain-text] [--high-level-assessment] [--advanced-information] [--limit <n>] [--offset <n>] [--all-fields]
uip ah automations get <automation-id> [--plain-text] [--all-fields]
uip ah automations schema get [automation-id] [--source-type <type>] [--idea-flow-id <id>] [--category-id <id>] [--destination <path>]
uip ah automations create --source-type <type> --file <json-file> [--from-schema] [--idea-flow-id <id>]
uip ah automations update <automation-id> --file <json-file>
```

### uip ah automations list

List automation ideas on the tenant.

#### Options

| Long | Value | Description |
|---|---|---|
| `--search <text>` | string | Free-text search, as in the Explore screen. |
| `--sort-by <field>` | string | Field to sort on, e.g. `process_updated_epoch`. |
| `--sort-order <direction>` | `asc`\|`desc` | Sort direction. |
| `--category-id <id...>` | repeatable | Only automations in these categories. |
| `--application-id <id...>` | repeatable | Only automations using these applications. |
| `--business-unit <name>` | string | Only automations in this business unit. |
| `--phase-id <id...>` | repeatable | Only automations in these phases. |
| `--status-id <id...>` | repeatable | Only automations in these phase statuses. |
| `--tags <tag...>` | repeatable | Only automations carrying these tags. |
| `--owner-id <id>` | integer | Only automations owned by this user id. |
| `--submitter-id <id>` | integer | Only automations submitted by this user id. |
| `--updated-by-id <id>` | integer | Only automations last updated by this user id. |
| `--submission-type <type>` | string | Only this submission type. |
| `--start-date <date>` / `--end-date <date>` | `YYYY-MM-DD` | Created on or after/before this date. |
| `--plain-text` | flag | Convert rich-text fields to plain text. |
| `--high-level-assessment` | flag | Include high-level assessment data. |
| `--advanced-information` | flag | Include detailed and custom question answers. |
| `--limit <n>` / `--offset <n>` | integer | Paging. Default `--limit 20`. |
| `--all-fields` | flag | Return the raw payload instead of the projected fields. |

#### Example

```bash
uip ah automations list --limit 10 --sort-by process_updated_epoch --sort-order desc
```

#### Data shape (--output json)

```json
{
  "Code": "AhAutomationsList",
  "Data": [
    {
      "Id": 20, "Name": "Invoice intake", "Slug": "invoice-intake", "Phase": "Analysis",
      "PhaseStatus": "In Progress", "SubmissionType": "ED", "BusinessUnit": "EMEA",
      "Department": "Finance", "AutomationScore": 78, "Priority": 1, "IsPublished": 0,
      "CreatedEpoch": 1735689600000, "UpdatedEpoch": 1738368000000,
      "PhaseKey": "ANALYSIS", "Tags": ["finance"]
    }
  ],
  "Pagination": { "Returned": 1, "Limit": 10, "Offset": 0 }
}
```

`Tags` is derived from the real record's `process_tags` array (or its `__display` twin) into a plain string array. `PhaseKey` is the value `uip ah phases set --phase` takes.

### uip ah automations get

Get one automation idea by id.

#### Arguments

| Name | Required | Purpose |
|---|---|---|
| `<automation-id>` | yes | Automation id. |

#### Options

| Long | Description |
|---|---|
| `--plain-text` | Convert rich-text fields to plain text. |
| `--all-fields` | Return the raw payload. |

#### Example

```bash
uip ah automations get 20 --plain-text
```

#### Data shape (--output json)

```json
{ "Code": "AhAutomationsGet", "Data": { "Id": 20, "Name": "Invoice intake", "Phase": "Analysis" } }
```

### uip ah automations schema get

Get an assessment schema — the document `create`/`update` consume. With an automation id it returns that automation's filled form; without one it returns a blank template for `--source-type`.

#### Arguments

| Name | Required | Purpose |
|---|---|---|
| `[automation-id]` | no | Existing automation id, to read its filled schema. Omit for a blank template. |

#### Options

| Long | Value | Description |
|---|---|---|
| `--source-type <type>` | `COE`\|`ED`\|`CD`\|`PM`\|`TM` | Required for a blank template (no automation id given). |
| `--idea-flow-id <id>` | integer | Idea flow id, for a customized flow. |
| `--category-id <id>` | integer | Category id, to pick the active assessment. |
| `--destination <path>` | path | Write the schema JSON to this file instead of the output envelope. |

Either an automation id or `--source-type` is required — passing neither fails client-side before any request.

#### Example

```bash
uip ah automations schema get --source-type COE --destination ./idea.json
```

#### Data shape (--output json)

```json
{ "Code": "AhAutomationsSchemaGet", "Data": { "SourceType": "COE", "Destination": "./idea.json" } }
```

When `--destination` is omitted, `Data.Schema` carries the schema document inline instead of `Destination`.

### uip ah automations create

Submit a new automation idea. `--source-type` picks the fixed-shape submission form (`ED`→`/automationidea`, `COE`→`/coe-automationidea`, `PM`→`/processmining-idea`); `--from-schema` submits a filled `schema get` document through `/idea-from-schema` instead — required for `CD`/`TM` source types, and for any tenant with customized idea flows via `--idea-flow-id`.

#### Options

| Long | Value | Required | Description |
|---|---|---|---|
| `--source-type <type>` | `COE`\|`ED`\|`CD`\|`PM`\|`TM` | conditionally | Required unless `--idea-flow-id` is given instead. |
| `--file <json-file>` | path | **yes** | Request body — the fixed-shape JSON, or the filled `user_inputs` document with `--from-schema`. |
| `--from-schema` | flag | no | Submit through the schema endpoint using the document from `automations schema get`. |
| `--idea-flow-id <id>` | integer | no | Target idea flow for `--from-schema` — replaces `--source-type` for tenants with customized flows. Requires `--from-schema`. Conflicts with `--source-type`. |

`--idea-flow-id` without `--from-schema` fails client-side (the fixed-shape endpoints have no notion of an idea flow). A `--file` whose JSON already carries a `user_inputs` key has it unwrapped automatically; a file that's just the answers map is used as-is.

#### Example

```bash
uip ah automations create --source-type ED --file ./idea.json
```

#### Data shape (--output json)

```json
{ "Code": "AhAutomationsCreate", "Data": { "Id": 42, "SourceType": "ED", "Name": "..." } }
```

### uip ah automations update

Update an automation's assessment answers from a file — the same document `automations schema get <automation-id>` writes out.

#### Arguments

| Name | Required | Purpose |
|---|---|---|
| `<automation-id>` | yes | Automation id. |

#### Options

| Long | Value | Required | Description |
|---|---|---|---|
| `--file <json-file>` | path | **yes** | JSON with the `user_inputs` answers to apply. |

#### Example

```bash
uip ah automations update 20 --file ./20.json
```

#### Data shape (--output json)

```json
{ "Code": "AhAutomationsUpdate", "Data": { "Id": 20, "Status": "Updated" } }
```

## uip ah idea-flows

Discover the configured idea flows and the phase/status pairs they allow.

### uip ah idea-flows list

#### Options

| Long | Description |
|---|---|
| `--limit <n>` / `--offset <n>` | Paging, applied client-side (unpaged endpoint). |
| `--all-fields` | Return the raw payload. |

#### Example

```bash
uip ah idea-flows list
```

#### Data shape (--output json)

```json
{
  "Code": "AhIdeaFlowsList",
  "Data": [
    { "Id": 1, "Name": "Business Process", "Phases": { "IDEA": "NEW_IDEA, AWAITING_REVIEW", "LIVE": "IN_PRODUCTION" } }
  ]
}
```

`Phases` collapses the raw response's one-column-per-phase shape (`IDEA`, `ASSESSMENT`, `QUALIFICATION`, `ANALYSIS`, `SOLUTION_DESIGN`, `DEVELOPMENT`, `TESTING`, `TECHNICAL_REVIEW`, `LIVE`) into a single object, only including phases the flow actually uses.

## uip ah business-cases

Read an automation's cost-benefit analysis (Automation Hub's own term is CBA) and set its project-plan baseline.

### uip ah business-cases get

#### Arguments

| Name | Required | Purpose |
|---|---|---|
| `<automation-id>` | yes | Automation id. |

#### Options

| Long | Description |
|---|---|
| `--all-fields` | Return the raw payload. |

#### Example

```bash
uip ah business-cases get 20
```

#### Data shape (--output json)

```json
{ "Code": "AhBusinessCasesGet", "Data": { "AutomationId": 20, "BaselineIsSet": 0, "Sections": [{ "Title": "Project Plan" }] } }
```

### uip ah business-cases set-baseline

Freeze the project-plan baseline for an automation from a file of phase dates. Flips `BaselineIsSet` to `1`.

#### Arguments

| Name | Required | Purpose |
|---|---|---|
| `<automation-id>` | yes | Automation id. |

#### Options

| Long | Value | Required | Description |
|---|---|---|---|
| `--file <json-file>` | path | **yes** | `{ "phases": [{ "phase": "Analysis", "start_date": "09/01/2026", "end_date": "09/15/2026" }] }`. Phase names come from the Baseline section of `business-cases get` (Analysis, Solution Design, Development, Testing, Launch Date); dates are `MM/DD/YYYY`; every phase except Launch Date needs an `end_date`. |

A bare phases array is auto-wrapped in `{ "phases": [...] }`; anything else that isn't already `{ "phases": [...] }` is rejected client-side before the request is sent.

#### Example

```bash
uip ah business-cases set-baseline 20 --file ./baseline.json
```

#### Data shape (--output json)

```json
{ "Code": "AhBusinessCasesSetBaseline", "Data": { "AutomationId": 20, "Status": "BaselineSet" } }
```

## uip ah phases

Move an automation through the pipeline.

### uip ah phases set

#### Arguments

| Name | Required | Purpose |
|---|---|---|
| `<automation-id>` | yes | Automation id. |

#### Options

| Long | Value | Description |
|---|---|---|
| `--phase <variable>` | string | Target phase variable, e.g. `TECHNICAL_REVIEW`. Preferred over the legacy form; pair with `--status`. |
| `--status <variable>` | string | Target status variable, e.g. `AWAITING_REVIEW`. Required together with `--phase`. |
| `--phase-status-id <id>` | integer | Legacy numeric phase-status id — alternative to `--phase`/`--status`, not combinable with them. |
| `--submitter-id <id>` | integer | Submitter user id. Only applies with `--phase-status-id`; rejected with `--phase`/`--status`. |

Exactly one style is required: `--phase` with `--status`, or `--phase-status-id` alone. Find valid phase/status pairs with `uip ah idea-flows list`.

#### Examples

```bash
uip ah phases set 20 --phase TECHNICAL_REVIEW --status AWAITING_REVIEW
```

```bash
uip ah phases set 20 --phase-status-id 118
```

#### Data shape (--output json)

```json
{ "Code": "AhPhasesSet", "Data": { "AutomationId": 20, "Phase": "TECHNICAL_REVIEW", "Status": "AWAITING_REVIEW" } }
```

With `--phase-status-id`, `Data` carries `PhaseStatusId` instead of `Phase`/`Status`.

## uip ah questionnaires

Read the assessment question catalogue.

### uip ah questionnaires list

#### Options

| Long | Value | Required | Description |
|---|---|---|---|
| `--assessment <name>` | `high-level`\|`detailed`\|`citizen-development` | **yes** | Assessment to read. |
| `--section <key>` | string | no | Only this section, e.g. `q1-overview`. |
| `--active-only` / `--no-active-only` | flag | no | Only active questions (the server default) / include inactive ones too. |
| `--mandatory-only` | flag | no | Only mandatory questions. |
| `--limit <n>` / `--offset <n>` | integer | no | Paging, applied client-side (unpaged endpoint). |
| `--all-fields` | flag | no | Return the raw payload. |

#### Example

```bash
uip ah questionnaires list --assessment high-level
```

#### Data shape (--output json)

```json
{
  "Code": "AhQuestionnairesList",
  "Data": [
    {
      "Section": "Overview", "SectionKey": "q1-overview", "SectionId": 1, "QuestionCount": 6,
      "Questions": [{ "Id": 101, "Key": "q1", "Title": "...", "IsMandatory": 1, "IsActive": 1 }]
    }
  ]
}
```

## uip ah pipelines

Read the automation pipeline — automations with their phase and benefit figures. Kept separate from `automations list`: the endpoint adds per-phase benefit columns and spells its sort direction `order` internally (same `--sort-order` flag).

### uip ah pipelines list

#### Options

| Long | Value | Description |
|---|---|---|
| `--search <text>` | string | Free-text search. |
| `--sort-by <field>` | string | Field to sort on. |
| `--sort-order <direction>` | `asc`\|`desc` | Sort direction. |
| `--category-id <id...>` | repeatable | Only these categories. |
| `--application-id <id...>` | repeatable | Only automations using these applications. |
| `--business-unit <name>` / `--department <name>` | string | Scope filters. |
| `--phase-id <id...>` / `--status-id <id...>` | repeatable | Only these phases / phase statuses. |
| `--tags <tag...>` | repeatable | Only automations carrying these tags. |
| `--priority <priority...>` | repeatable | Only these priorities. |
| `--submission-type <type>` | string | Only this submission type. |
| `--plain-text` | flag | Convert rich-text fields to plain text. |
| `--limit <n>` / `--offset <n>` | integer | Paging. Default `--limit 20`. |
| `--all-fields` | flag | Return the raw payload. |

#### Example

```bash
uip ah pipelines list --sort-by process_estimated_benefit_score --sort-order desc --limit 10
```

#### Data shape (--output json)

```json
{
  "Code": "AhPipelinesList",
  "Data": [
    {
      "Id": 20, "Name": "Invoice intake", "Phase": "Analysis", "PhaseStatus": "In Progress",
      "PhaseOrder": 3, "Priority": 1, "AutomationScore": 78, "EstimatedBenefitFtes": 1.5,
      "EstimatedBenefitPerYear": 42000, "EaseOfImplementation": "Medium",
      "BusinessUnit": "EMEA", "Department": "Finance", "UpdatedEpoch": 1738368000000
    }
  ],
  "Pagination": { "Returned": 1, "Limit": 10, "Offset": 0 }
}
```

## Related

- [`uip ah`](./uip-ah.md) — overview, concepts, `audit-logs`, `auth-info`.
- [Applications, components, documents, media, store-listings, store-reviews](./uip-ah-catalog.md)
- [Categories, tags, collaborators, roles, users](./uip-ah-people.md)

## See also

- [Tools (plugins)](./concepts-tools.md)
- [Global options](./global-options.md)
- [Exit codes](./exit-codes.md)
