# Using the WebUI — workflow steps (`/workflows/<id>`)

**Any screen not listed here does not exist.** Headings quote the screen's own wording.

**Part of the workflows guide. Other topics:**
conversations, the input box, and sign-in: `references/webui.md`;
workflows themselves (creating, the canvas, running, versions, triggers, publishing): `references/webui-workspace-workflows.md`;
documents, files, tables, memory, channels, and apps: `references/webui-workspace.md`;
editing a file in place (「編集」): `references/webui-file-edit.md`;
SIROE pages, blocks, and boards: `references/webui-siroe.md`;
settings, administration, models, and triggers: `references/webui-settings.md`;
external service connections: `references/webui-connections.md`;
`/office`: `references/webui-office.md`;
`/meetings`: `references/webui-meetings.md`;
`/calendar`: `references/webui-calendar.md`.

## 「ワークスペース」 — workflow steps

| Where | What you can do |
| --- | --- |
| `/workflows/<id>` — 「設定」 with no step selected | **「ワークフローの入力」 declares what a run is given.** Each field is a row: name, kind (文字・数・整数・はい / いいえ・一覧・項目の組・ファイル・複数のファイル), 「必須」, and a description; 「入力の項目を追加」 adds one, and each row can be removed. The description becomes the field's label on the 「実行」 tab and on the 公開フォーム, and later steps pick the fields with 「/」. A 「ファイル」 field becomes 「ファイルを選ぶ」 when running. An input with nested fields or choices opens as JSON instead (「入れ子や選択肢の項目があるので、JSON で編集します」). No fields means the workflow runs without input. Like other edits it is undone with ⌘Z and kept by 「保存」; viewers who cannot edit see it greyed out. Renaming a field does not rewrite the steps that read it — 「使っている値」 marks them |
| `/workflows/<id>` — a step's 「設定」 | **Clicking a step opens 「設定」**: a value field takes an earlier step's result when you type 「/」 (or 「{{」) or press 「変数」 at the field's right, and pick it from the list — it goes in as a chip, and text can be written around it. Each entry in that list shows the value's kind at its right (文字・数・はい / いいえ・一覧・項目の組・ファイル; nothing when the kind is unknown). **Below 「設定」, 「使っている値」 lists the values this step's own fields read, as chips**; one the step cannot read (a deleted or later step, an input field that is not declared, a step the previous round cannot give) is shown in orange with the reason. The section is absent when the step reads nothing. The values passed to a service operation are listed as name / value rows (「項目を追加」, or 「JSON で編集」 to write them as JSON); once an operation is picked, the names it accepts appear under the rows as buttons (a required one marked 「*」) — pressing one adds that row, a missing required name is called out (「「…」は必須の項目です」), and a row whose name the operation knows shows its description. **A row's value field follows the type the operation expects:** a number box for a number, 「はい」/「いいえ」 for a yes / no, a dropdown when the operation lists its choices, and its own rows for a nested group (a list adds items with 「1 件目を追加」 / 「要素を追加」, each item laid out the same way). 「変数で渡す」 under such a field switches it to the chip field so an earlier step's result can be passed; 「値を直接入れる」 switches back. A saved value that does not fit the type opens in the chip field unchanged. **The operation list also carries the actions of the connected 外部サービス連携 (SmartHR, Concur, …)**, grouped under the service's name and its logo with the same Japanese names as the approval card; a service that needs each person's own link shows 「サービスが接続されていません」 until the person running it has linked it. In a run, an action an admin set to 「毎回確認」 is refused (nobody is there to approve it), a writing action whose default is to ask runs and is recorded in the approval log, and an action that sends a file (LegalOn 「契約書として登録する」) cannot be used. **The list also carries the AI's own tools, grouped under 「Samurai App」** with the same names as the chat's 「ツール一覧」 (e.g. 「SIROE ページを読む」, 「ブラウザを操作する」, 「まとめて探す」, 「手元の機械で動かす」): the step calls that tool once with the values in its rows, with no AI in between. The same approval rules hold — a tool set to 「禁止」, or one an admin set to 「毎回確認」, is refused; the rest run and are recorded in the approval log — and 「手元の機械で動かす」 / 「ブラウザを操作する」 on a 手元の PC use the device of the person who started the run, and only when that person published the version being run (or pressed run on the draft). **The same rows build the rest:** an AI step's 「出力の項目」 (name, type, 必須, description; a nested shape stays in JSON), a 「承認・入力を待つ」 step's 「入力欄」 (name, 見出し, 種類 「1 行」/「複数行」/「選択」 with 選択肢 split by 「、」, 必須), an HTTP step's 「ヘッダー」 (each value either written or picked from a registered シークレット, so the secret itself is never in the workflow), and a condition: 「条件を追加」 adds one, and 「組み合わせ方」 picks 「すべて満たす」 or 「どれかを満たす」 (a 「〜でない」 or nested condition opens as JSON). **「コード」 (a step that computes or reshapes values) has 「実行の場所」 and 「言語」:** 「隔離」 (the default) runs JavaScript at once with no outside access and no extra cost; 「コンテナ」 runs in a Linux container, takes tens of seconds to start and is billed, and is the only place 「Python」 can be picked (「言語」 offers 「JavaScript」 and 「Python」, with Python greyed out on 「隔離」). Switching back to 「隔離」 clears the container-only fields. **On 「コンテナ」 two more fields appear: 「ファイル」 (pick an input file or an earlier step's file with 「/」 or 「変数」; the code reads each file by its path) and 「シークレット」 (tick registered シークレット; the values are never handed to the container, and the code sends its requests through the host, which fills the secret in).** A container step's output is the code's returned value as `result` plus the files it saved as `files`, so later steps read `<step>.result` and pass `<step>.files` on. **Publishing a version, or pressing the run button on a draft, counts as approving a container step**: an action that would normally ask for approval then runs without asking and is recorded in the approval log, the same as a skill's script; a tool set to 「禁止」 or one an admin set to 「毎回確認」 is still refused. A draft started by a trigger or another workflow does not start the container. The 「エージェントに任せる」 and 「スキルを実行」 steps keep the approval rules above. **An HTTP step whose URL names the destination host in the workflow itself (e.g. `https://api.example.com/…`) may send a registered シークレット there in a published run without asking; a destination decided by an earlier step's value is not covered, and an admin's blocked destinations are always refused.** The 「出力」 section below lists the names this step's result goes by in later steps. **「エージェントに任せる」 and 「AI で生成」 have 「ファイル」**: pick an input file field or an earlier step's file with 「/」 or 「変数」, and those files are handed to the AI with the instruction. **「カテゴリ分類」 (in the 「流れ」 group of 「ステップを追加」) has the AI read a text and pick one of the named classes** (e.g. 請求 / 不具合 / その他): 「分類を追加」 adds a class, and the field under each class name takes an optional description of what belongs in it (it makes the split steadier); each class runs its own steps, and anything matching none — or a pick the AI is unsure about — goes to 「それ以外」. Later steps read the chosen class as `class` and how sure the AI was as `confidence` (0–1). For a value that arrives as a fixed word (申請の種類), 「値で振り分ける」 is the one to use. **「ファイルの加工」 (in the 「考える」 group) works on one Excel (xlsx) or CSV file**: pick it under 「加工するファイル」 (an input file or an earlier step's file, with 「/」 or 「変数」; or 「ファイル一覧から選ぶ」 for a fixed file), optionally 「シート」 (empty = the first sheet) and 「見出しの行」 (default 1). 「出力先」 picks 「元のファイルに上書き」 (a new version of the same file) or 「新しいファイル」: the file becomes 「雛形のファイル」, stays untouched, and the result is saved under 「新しいファイルの名前」 (earlier steps' values can go in, e.g. 請求書_{{入力の会社名}}.xlsx). 「操作を追加」 lists the operations in four groups, applied top to bottom (up to 20; the arrows reorder them), so a later one can read what an earlier one wrote. **「一覧表(行ごとに適用)」** works on each row picked by 「対象の行」 (「すべての行」, 「行番号の範囲」 with 「最初の行」 / 「最後の行」 as Excel row numbers, or 「条件に合う行」; shown only while such an operation is there): 「分類」 has the AI pick one of the 「ラベル」 from the 「読む列」 (up to 5, split by 「、」); 「AI で書く」 writes from an 「指示」; 「AI で抜き出す」 pulls up to 10 items (e.g. 会社名, 電話番号) out of the text into a column each in one go; 「数式」 writes an Excel formula where `{見出し}` becomes that row's cell; 「表記を揃える」 fixes spaces, full / half width, 郵便番号 or dates with no AI; 「突き合わせ」 copies columns from another file by a key, like VLOOKUP (add the file under 「参照ファイル」 with a name, then pick it; 「一致しない行に書く文字」 fills rows with no match); 「色塗り」 colours the whole row or one cell where the conditions hold; 「行ごとの画像」 pastes the image whose file name is in a column. **「帳票(決まったセルへ書く)」**: 「差し込む」 writes a value into a cell, 「画像を貼る」 pastes one image (e.g. 印影) fitted to the cell or its merged range, and 「明細を展開」 writes a list (e.g. 明細 from an earlier step) one item per row from 「最初の行」, inserting rows with the same format and formulas when there are more items than 「用意した行数」. A cell is given as an address (「番地」, e.g. B3) or as 「{{名前}}」 for a cell where the template says {{名前}} (only that part is replaced). With a fixed file, 「表から選ぶ」 shows the sheet and the pressed cell's address goes in, and the column fields suggest the headers. **「台帳(行を追加)」**: 「1 行追記」 writes one row under the last row. **「体裁」**: 「表を整える」 makes the header bold and grey, draws borders, fits the column widths and freezes the header; 「書式を付ける」 gives a column or a range (A1:D10) 太字, 罫線, 塗り, 文字の色, 配置 and 表示形式 (¥#,##0, #,##0, 0%, yyyy/mm/dd). 「書き込む列」 overwrites the column of that name if the header has one, otherwise adds it at the right end. A CSV cannot keep formulas, colours, images, inserted rows or formats, so 「数式」 / 「色塗り」 / images / 「明細を展開」 / 「体裁」 on a CSV fail the step. Up to 2,000 rows per run; it runs only from a published version or the run button on a draft. Later steps read `fileId` (pass it on as a file), `name`, `created`, `rows`, `columns`, `counts` and `lookups`. **「承認・入力を待つ」 also has 「承認者」**: tick up to 5 names from the approver list (設定 → 「承認」; empty until someone is registered there) and the step mails them an approval request and waits for their decision. While 承認者 are ticked, 「入力欄」 is hidden; while 「入力欄」 has rows, 承認者 cannot be ticked — an approval request carries only approve / reject / comment. **Ticking 「却下されたら止めずに先へ進める(差し戻し)」 on the step** keeps a rejection from stopping the run: the wait card shows 「差し戻す」 (→ 「差し戻しを送る」, with an optional 「差し戻しの理由(任意)」) in place of 「却下」, and the reason goes to the next step as the step's output (`decision` is `rejected`, with `comment`); put it inside a loop to rebuild from the reason. Expiry, 取り下げ, and timeout still fail the step. **「影武者を呼び出す」 (in the 「止める・待つ」 group) asks a member's 影武者**: pick the member under 「影武者」 (only members who turned their 影武者 on are listed), write the 「質問」 (earlier steps' values can go in), and optionally 「待つ上限」 (empty waits until the inquiry itself expires, 72 hours). The owner confirms the answer in their own inbox; later steps read it as `answer` (and `auto` when it was sent without the owner's check). A rejection or a timeout fails the step. |
