> For the complete documentation index, see [llms.txt](https://help.genesis.autify.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.genesis.autify.com/features-ko/workflow/workflow-execution.md).

# 워크플로 실행

이 문서에서는 워크플로의 실행 방법·미리보기 실행·트리거 설정을 설명합니다.

## 실행 트리거

워크플로는 다음 4가지 방법으로 시작할 수 있습니다.

| 트리거            | 설명                               |
| -------------- | -------------------------------- |
| 수동 실행          | 화면에서 즉시 워크플로를 시작합니다              |
| API 트리거        | HTTP 요청을 통해 외부 시스템에서 워크플로를 시작합니다 |
| 예약             | 정기 일정에 따라 워크플로를 자동 실행합니다         |
| GitHub Webhook | GitHub 이벤트를 계기로 워크플로를 자동 실행합니다   |

{% hint style="warning" %}
기본적으로 같은 워크플로를 여러 번 실행하면 동시에 실행됩니다. **API 액세스**, **예약**, **GitHub Webhook**에서는 트리거 설정에서 **병렬로 실행**과 **이전 실행 취소**를 선택할 수 있습니다. 조직의 동시 실행 상한에 도달하면 추가 실행은 **대기열** 상태로 들어가고, 자리가 나면 자동으로 시작됩니다.
{% endhint %}

## 수동 실행

워크플로는 목록 화면 또는 편집기 화면에서 수동으로 시작할 수 있습니다.

**목록 화면에서 실행하기**

워크플로 목록의 각 행 작업 메뉴에서 \*\*실행(▶실행 아이콘)\*\*을 클릭하십시오.

{% hint style="info" %}
워크플로에 사용자 입력이 설정되어 있지 않은 경우, 확인 화면이 표시되며 입력을 한 후 그대로 실행할 수 있습니다.
{% endhint %}

## 미리보기 실행

미리보기 실행에서는 일반 실행과 마찬가지로 실행 기록에는 기록되지만, 목록에서 "미리보기" 레이블이 붙어 운영 실행과 구별하여 확인할 수 있습니다.

또한 미리보기 실행으로 생성된 아티팩트는 "아티팩트" 목록에는 표시되지만, 지식 베이스에는 인덱싱되지 않습니다(검색 대상에서 제외됩니다).

워크플로를 저장해 두면 페이지를 새로 고쳐도 가장 최근에 완료된 미리보기 결과가 복원되어 편집기에서 계속 확인할 수 있습니다.

### 워크플로 전체를 미리보기 실행하기

1. 편집기 화면을 여십시오.
2. 캔버스 오른쪽 아래의 도구 모음에 있는 \*\*미리보기(미리보기 아이콘)\*\*를 클릭하십시오.
3. 실행 대화 상자가 열립니다. 사용자 입력이 설정되어 있는 경우, 실행 전에 값을 확인·변경할 수 있습니다.
4. **워크플로 실행**을 클릭하여 실행을 시작하십시오.

실행 결과는 인스펙터의 **출력** 탭에서 확인할 수 있습니다.

미리보기 실행 중, 대상 블록을 선택하면 인스펙터 헤더에 **실행 중** 배지가 표시됩니다. 실행이 완료될 때까지 **세부 정보** 탭의 편집은 일시적으로 잠깁니다(**출력** 탭과 삭제 버튼은 평소대로 조작할 수 있습니다).

### 특정 블록까지 미리보기 실행하기

확인하려는 블록을 선택하여 인스펙터를 여십시오.

1. 인스펙터 안의 **미리보기 실행**을 클릭하십시오.
2. 미리보기에 사용자 입력이 필요한 경우, 대화 상자에서 값을 확인한 뒤 실행을 시작하십시오.
3. 실행이 완료되면 인스펙터가 **미리보기 결과**로 전환되어 같은 패널에서 블록 출력을 확인할 수 있습니다.
4. 다시 편집하려면 **블록 세부 정보로 돌아가기**를 클릭하십시오.

선택한 블록까지의 처리만 실행하므로, 워크플로의 일부를 빠르게 검증하고 싶을 때 유용합니다. 선택한 경로 밖의 블록은 해당 미리보기에서 제외되므로 결과에서 계속 대기 중처럼 보이지 않습니다.

## 트리거 설정

워크플로 편집 화면 오른쪽 위에 있는 **기타 작업**에서 **트리거**를 클릭하면, 자동 실행 트리거를 설정할 수 있습니다. 워크플로를 만드는 동안에는 AI 어시스턴트나 MCP 도구에서 기존 설정을 읽거나 API / 일정 / GitHub 트리거를 업데이트할 수도 있습니다.

<figure><img src="/files/J3TkHI7SAUJenVBurRuB" alt="트리거 설정 화면 스크린샷"><figcaption><p>트리거 설정 화면</p></figcaption></figure>

### API 액세스

HTTP 요청을 보내면 외부 시스템이나 CI/CD 파이프라인에서 워크플로를 시작할 수 있습니다.

<figure><img src="/files/EoQOUNh4OGNbVYmu3adm" alt="API 액세스 설정 스크린샷"><figcaption><p>API 액세스 설정</p></figcaption></figure>

1. **API 액세스** 스위치를 활성화하십시오.
2. **동시 실행 정책**에서 같은 워크플로의 이전 API 실행이 아직 대기 중이거나 실행 중일 때, 새 요청을 어떻게 처리할지 선택하십시오.

| 선택지      | 내용                                                       |
| -------- | -------------------------------------------------------- |
| 병렬로 실행   | 새 실행을 시작하고 이전 실행도 그대로 계속합니다                              |
| 이전 실행 취소 | 같은 워크플로의 API 실행에서 대기 중이거나 실행 중인 이전 실행을 취소한 후 새 실행을 시작합니다 |

3. 표시되는 **API 엔드포인트**의 URL을 복사하십시오.
4. `x-api-key` 헤더에 API 키를 포함한 POST 요청을 보내십시오.

```http
POST {API 엔드포인트 URL}
x-api-key: {API 키}
Content-Type: application/json

{
  "필드명": "값"
}
```

{% hint style="info" %}
API 키 관리는 **설정 > API 키**에서 할 수 있습니다.
{% endhint %}

### 예약

정기 일정에 따라 워크플로를 자동 실행할 수 있습니다.

1. **예약** 스위치를 활성화하십시오.
2. **빈도**에서 **매시간**, **매일**, **평일**, **매주**, **사용자 지정** 중 하나를 선택하십시오.
3. **실행할 분** 또는 **시간**을 설정하고, 필요에 따라 **요일**, **시간대**, **cron 표현식**을 지정하십시오.
4. 일정 미리보기와 **다음 실행** 목록을 확인한 뒤, **동시 실행 정책**에서 이전 예약 실행이 아직 대기 중이거나 실행 중일 때 새 실행을 어떻게 처리할지 선택하십시오.

| 선택지      | 내용                                                 |
| -------- | -------------------------------------------------- |
| 병렬로 실행   | 새 실행을 시작하고 이전 실행도 그대로 계속합니다                        |
| 이전 실행 취소 | 같은 워크플로의 대기 중이거나 실행 중인 이전 예약 실행을 취소한 후 새 실행을 시작합니다 |

5. **일정 저장**을 클릭하십시오.

{% hint style="warning" %}
**사용자 지정**을 사용하는 경우, 일정 실행 간격은 최소 15분 이상이어야 합니다.
{% endhint %}

{% hint style="info" %}
예약으로 트리거되는 경우, 워크플로의 사용자 입력에는 기본값이 사용됩니다.
{% endhint %}

### GitHub Webhook

GitHub 이벤트를 계기로 워크플로를 자동 실행할 수 있습니다.

{% hint style="warning" %}
GitHub Webhook을 사용하려면 사전에 워크스페이스에 GitHub를 연동해야 합니다. **설정**에서 GitHub 연동을 진행하십시오.
{% endhint %}

<figure><img src="/files/FoAq6hUzjyO4yywk9X77" alt="GitHub Webhook 설정 스크린샷"><figcaption><p>GitHub Webhook 설정</p></figcaption></figure>

1. **GitHub Webhook** 스위치를 활성화하십시오.
2. **다음 이벤트에서 트리거**에서 워크플로를 시작할 이벤트를 선택하십시오.

| 이벤트    | 내용                                   |
| ------ | ------------------------------------ |
| 푸시     | 코드가 브랜치에 푸시되었을 때 트리거됩니다              |
| 풀 리퀘스트 | 풀 리퀘스트가 열리거나, 닫히거나, 업데이트되었을 때 트리거됩니다 |
| 릴리스    | 새 릴리스가 게시되었을 때 트리거됩니다                |

3. **동시 실행 정책**에서 같은 조건에 일치하는 GitHub 이벤트의 이전 실행이 아직 대기 중이거나 실행 중일 때, 새 이벤트를 어떻게 처리할지 선택하십시오.

| 선택지      | 내용                                                                  |
| -------- | ------------------------------------------------------------------- |
| 병렬로 실행   | 새 실행을 시작하고 이전 실행도 그대로 계속합니다                                         |
| 이전 실행 취소 | 같은 워크플로·같은 브랜치·같은 이벤트에 일치하는 대기 중이거나 실행 중인 이전 실행을 취소한 후, 새 실행을 시작합니다 |

4. 필요에 따라 **리포지토리**에서 대상 리포지토리를 선택하십시오. 선택하지 않은 경우, 연동된 모든 리포지토리가 대상이 됩니다.
5. 필요에 따라 **브랜치**에 브랜치 패턴을 입력하십시오(예: `main`, `release/*`). 입력하지 않은 경우, 모든 브랜치가 대상이 됩니다.

{% hint style="info" %}
GitHub에 의해 트리거되는 경우, 워크플로의 사용자 입력에는 기본값이 사용됩니다.
{% endhint %}

## 실행 중 조작

AI 에이전트 블록이 실행 중일 때는 실행 세부 정보 화면에서 **실행 중인 에이전트에게 보낼 피드백**을 보낼 수 있습니다. 보낸 피드백은 대기열에 추가되어 에이전트의 다음 턴 전에 전달되므로, 실행을 멈추지 않고도 진행 방향을 보완할 수 있습니다.

### 실행 중지

실행 중이거나 대기 중인 워크플로를 수동으로 중지할 수 있습니다.

1. 실행 세부 정보 화면을 여십시오.
2. **중지**를 클릭하십시오.

중지한 워크플로는 상태가 **취소됨**이 됩니다. 나중에 재개할 수도 있습니다.

{% hint style="info" %}
실행에는 타임아웃이 없습니다. 처리가 완료될 때까지 자동으로 중지되지 않습니다. 장시간 실행이 예상되는 경우, 수동으로 중지 작업을 수행하십시오.
{% endhint %}

{% hint style="info" %}
**이전 실행 취소**를 선택한 경우, 새 API 요청, 예약 실행, GitHub 이벤트가 도착했을 때 이전 실행이 자동으로 취소될 수 있습니다. 실행 세부 정보 헤더에는 **새 트리거로 인해 취소됨**이라고 표시됩니다.
{% endhint %}

### 실행 재개

중지(취소됨)한 워크플로를 재개할 수 있습니다.

1. 실행 세부 정보 화면을 여십시오.
2. **재개**를 클릭하십시오.

재개 시점에 조직의 동시 실행 상한에 도달해 있으면, 실행은 **대기열** 상태로 들어가고 자리가 나면 자동으로 시작됩니다.

### 여기서 편집 후 재실행

과거 실행 결과를 확인하면서 특정 AI 에이전트 블록의 프롬프트를 다시 작성하여 재실행할 수 있습니다. 상위 블록의 출력은 그대로 인계되므로, 상위 처리를 다시 할 필요가 없습니다. 프롬프트 편집은 이번 재실행에만 적용되며, 워크플로 템플릿 자체는 변경되지 않습니다.

1. 워크플로의 실행 세부 정보 화면을 여십시오.
2. 그래프에서 재실행할 AI 에이전트 블록을 클릭하여 선택하십시오.
3. 인스펙터, 또는 그래프 노드의 호버 버튼에서 **여기서 편집 후 재실행**을 클릭하십시오.
4. 대화 상자에서 프롬프트를 편집하고 **워크플로 재실행**을 클릭하십시오.

새 실행이 작성되어, 상위 블록의 출력과 산출물을 인계한 채로 편집한 블록부터 뒤가 재실행됩니다.

{% hint style="info" %}
보관된 워크플로의 실행에서는 여기서 편집 후 재실행을 할 수 없습니다.
{% endhint %}

### 블록 검토

블록에 승인 플로가 설정되어 있는 경우, 그 블록의 실행 완료 후에 **검토 대기 중** 상태가 됩니다. 담당자가 검토할 때까지 워크플로는 다음 블록으로 진행되지 않습니다.

AI 에이전트 블록이 실행 중에 추가 정보가 필요하면 실행은 승인 대기 대신 **입력 필요** 상태가 됩니다. 실행 세부 정보 화면의 안내에서 요청 내용을 확인하고 **정보 입력**을 클릭한 다음, 추가 정보를 입력하고 **해결하고 계속**을 클릭하면 같은 실행을 다시 진행할 수 있습니다. 해결할 수 없으면 **워크플로 중지**를 선택하여 실행을 **차단됨**으로 종료하십시오. 차단된 실행은 다시 계속할 수 없습니다.

<figure><img src="/files/gLL6YnMvgiwe0IE06WgX" alt="블록 검토 스크린샷"><figcaption><p>블록 검토</p></figcaption></figure>

"검토"를 클릭하면 출력 확인 화면이 표시됩니다.

* **승인**을 클릭하면 워크플로가 다음 블록으로 진행됩니다.
* **변경사항으로 승인**을 클릭하면 블록의 출력 내용을 편집한 후에 승인할 수 있습니다.
* **거부**를 클릭하면 워크플로 실행이 실패로 종료됩니다.

검토가 필요한 블록이 파일을 만들거나 업데이트한 경우, 해당 변경은 블록이 승인될 때까지 워크스페이스에 저장되지 않습니다. **승인**, **변경사항으로 승인**, **거부**를 선택하기 전에 대기 중인 파일 변경을 검토하십시오.

{% hint style="info" %}
**검토 대기 중**인 실행은 승인 대기 동안 조직의 동시 실행 슬롯을 점유하지 않습니다. 승인 후 재개할 때도 다른 실행과 같은 방식으로, 자리가 있으면 시작되고 없으면 **대기열**로 들어갑니다.
{% endhint %}

## 실행 상태

| 상태      | 설명                                      |
| ------- | --------------------------------------- |
| 대기 중    | 실행 시작을 기다리는 상태                          |
| 실행 중    | 처리가 진행 중인 상태                            |
| 검토 대기 중 | 블록 승인을 기다리는 상태                          |
| 입력 필요   | 실행을 계속하기 전에 블록이 추가 정보를 기다리는 상태          |
| 차단됨     | 해결되지 않은 입력 요청에서 중지되어 더 이상 계속할 수 없는 상태   |
| 완료      | 모든 블록이 정상적으로 완료된 상태                     |
| 실패      | 오류가 발생하여 처리가 중단된 상태                     |
| 대기열     | 실행 슬롯이 비기를 기다리는 상태이며, 자리가 나면 자동으로 시작됩니다 |
| 취소됨     | 사용자가 수동으로 중지했거나, 새로운 일치 조건의 트리거로 대체된 상태 |
| 건너뜀     | 조건부 블록 등에 의해 실행에서 제외된 상태                |

{% hint style="warning" %}
어느 블록이든 실패하면, 그 시점에서 후속 블록은 실행되지 않고 워크플로 전체가 **실패**로 종료됩니다. "블록이 실패해도 후속 처리를 계속한다" 옵션은 없습니다.
{% endhint %}

{% hint style="info" %}
조건부 분기로 루프를 구성한 경우, 최대 루프 횟수를 초과하면 강제로 오류로 종료됩니다. 최대 루프 횟수는 블록 설정에서 변경할 수 있으며, 설정하지 않은 경우 3회가 사용됩니다.
{% endhint %}

## 문제 해결

### 사용자 입력 유효성 검사 오류

| 메시지                                                                    | 원인                           | 해결 방법                       |
| ---------------------------------------------------------------------- | ---------------------------- | --------------------------- |
| 텍스트 필드 "{label}"은(는) 비워둘 수 없습니다. 값을 입력하세요.                             | 필수 텍스트 필드에 값이 입력되지 않음        | 해당 필드에 값을 입력한 후 실행하십시오      |
| 숫자 필드 "{label}"은(는) 비워둘 수 없습니다. 값을 입력하세요.                              | 필수 텍스트 필드나 숫자 필드에 값이 입력되지 않음 | 해당 필드에 값을 입력한 후 실행하십시오      |
| 파일 "{label}"을(를) 찾을 수 없거나 더 이상 사용할 수 없습니다. 파일을 다시 업로드하거나 다른 파일을 선택하세요. | 업로드된 파일이 삭제되었거나 사용할 수 없게 됨   | 파일을 다시 업로드하거나 다른 파일을 선택하십시오 |

### 사용 제한 오류

| 상황                              | 원인             | 해결 방법                       |
| ------------------------------- | -------------- | --------------------------- |
| "사용 한도에 도달했습니다"라고 표시되어 실행할 수 없음 | 조직의 사용 제한에 도달함 | 관리자에게 연락하여 사용 제한 상향을 요청하십시오 |

### GitHub Webhook 오류

| 상황                            | 원인                         | 해결 방법                   |
| ----------------------------- | -------------------------- | ----------------------- |
| GitHub Webhook 스위치를 활성화할 수 없음 | 워크스페이스에 GitHub가 연동되어 있지 않음 | **설정**에서 GitHub를 연동하십시오 |
