# 자동화

> 실행을 클릭하지 않고 워크플로를 실행하세요. 일정, Webhook, Telegram 봇 메시지, API로 시작하는 방법을 매일 뉴스 동영상 예시와 함께 설명합니다.

Source: https://nodaro.ai/ko/docs/guides/automations

**자동화**는 **실행**을 클릭하지 않아도 시작되는 워크플로입니다. 일정에 따라, 다른 시스템이 Webhook을 호출할 때, 내 Telegram 봇이 메시지를 받을 때, 또는 내 코드에서 API를 통해 시작할 수 있습니다. 워크플로에 트리거 노드를 추가하고, 저장하고, 켜세요. 트리거는 무료이며, 각 실행은 실행한 노드의 비용만 냅니다.

## 실행을 시작하는 네 가지 방법
| 방법 | 시작 시점 | 설정 방법 | 트리거 비용 |
| --- | --- | --- | --- |
| **일정** | 매주 평일 9:00처럼 시간 규칙이 일치할 때 | [일정 트리거](https://nodaro.ai/docs/nodes/automate/schedule-trigger) | 무료 |
| **Webhook** | 다른 시스템이 워크플로의 URL로 HTTP 요청을 보낼 때 | [Webhook 트리거](https://nodaro.ai/docs/nodes/automate/webhook-trigger) | 무료 |
| **Telegram** | 내 Telegram 봇이 메시지를 받을 때 | [Telegram 트리거](https://nodaro.ai/docs/nodes/automate/telegram-trigger) | 무료 |
| **API** | 내 코드가 Nodaro에 워크플로 실행을 요청할 때 | API 토큰과 [워크플로 API](https://nodaro.ai/docs/developers/api/workflows) | 무료 |

## 트리거로 시작된 실행이 실행하는 것
- **다른 노드에 연결된 트리거는 그 뒤에 있는 분기만 실행합니다.** 트리거 다음의 노드와, 그 노드들이 입력으로 필요로 하는 모든 노드입니다. 이 입력 노드들은 새 결과를 위해 다시 실행됩니다. 트리거가 닿지 않는 노드는 그대로 둡니다.
- **아무것에도 연결되지 않은 트리거는 워크플로 전체를 실행합니다.**
- **워크플로 하나에 트리거를 여러 개 둘 수 있으며,** 각 트리거가 자기 분기를 시작합니다. 예를 들어 일정과 Webhook이 같은 작업을 시작할 수 있습니다.
- 편집기, API, 게시된 앱에서 시작한 실행은 트리거의 제한을 받지 않습니다.

“연결됨”에는 직접 그린 연결, [그룹](https://nodaro.ai/docs/nodes/automate/group)의 구성원인 것, 다른 노드의 값을 읽는 필드가 포함됩니다.

## 예시: 매일 뉴스 동영상
이 워크플로는 매일 아침 뉴스 피드의 최신 항목을 읽어 캡션이 있는 짧은 세로 동영상으로 만들고 게시합니다.

Workflow: 연결되지 않은 일정 트리거가 매일 아침 워크플로 전체를 실행합니다. 피드가 동영상과 캡션이 되고, 둘 다 게시됩니다.

- 웹 스크래핑 → 텍스트 생성 - 모든 LLM (프롬프트)
- 웹 스크래핑 → 텍스트 생성 - 모든 LLM (프롬프트)
- 텍스트 생성 - 모든 LLM → 동영상 생성 (프롬프트)
- 동영상 생성 → SNS에 게시 (동영상)
- 텍스트 생성 - 모든 LLM → SNS에 게시 (캡션)

### 피드 읽기
[웹 스크래핑](https://nodaro.ai/docs/nodes/automate/web-scrape) 노드를 추가하고, **소스**를 **RSS 피드**로 설정한 뒤 RSS 또는 Atom 피드 주소를 **피드 URL**에 붙여 넣으세요. **결과 수 제한**을 1로 설정하세요. 대부분의 피드는 최신 항목을 먼저 나열하므로, 노드는 보통 제목, 링크, 설명, 날짜가 담긴 최신 항목을 반환합니다.

### 동영상 프롬프트 작성
[텍스트 생성 - 모든 LLM](https://nodaro.ai/docs/nodes/automate/prompt) 노드를 추가하고 웹 스크래핑의 **JSON** 출력을 **프롬프트** 입력에 연결하세요. 뉴스 항목이 요청으로 전달되도록 **사용자 프롬프트**는 비워 두고, <strong>지시 사항(시스템 프롬프트)</strong>에 작업을 적으세요. 예를 들면 다음과 같습니다.

```
이 뉴스 항목의 핵심 내용을 보여 주는 8초 길이 세로 동영상의 프롬프트를 하나 작성하세요. 장면, 카메라, 조명을 60단어 이내로 묘사하세요. 화면에 텍스트는 넣지 마세요.
```

영어 원문 프롬프트:

```
Write one prompt for an 8-second vertical video that shows the main idea of this news item. Describe the scene, the camera and the light in under 60 words. Do not include any text on screen.
```

### 동영상 만들기
[동영상 생성](https://nodaro.ai/docs/nodes/video/generate-video) 노드를 추가하고 텍스트 생성 - 모든 LLM 노드를 **프롬프트** 입력에 연결하세요. [VEO 3.1 Fast](https://nodaro.ai/docs/models/video/veo-3-1-fast), `9:16` 화면 비율, 8초를 고르세요.

### 캡션 작성
두 번째 텍스트 생성 - 모든 LLM 노드를 추가해 같은 방식으로 웹 스크래핑에 연결하고, **사용자 프롬프트**는 비워 두세요. <strong>지시 사항(시스템 프롬프트)</strong>에 해시태그 세 개가 들어간 150자 이하의 캡션을 요청하세요.

### 게시
[SNS에 게시](https://nodaro.ai/docs/nodes/publish/publish-to-social)를 추가하세요. 동영상과 캡션을 연결하고, 계정과 **릴스 게시** 작업을 고르세요. 계정을 연결하는 방법은 [SNS에 게시하기](https://nodaro.ai/docs/guides/publishing-to-social)를 참고하세요.

### 테스트한 뒤 예약하기
편집기에서 워크플로를 한 번 실행하고 게시물을 확인하세요. 그런 다음 [일정 트리거](https://nodaro.ai/docs/nodes/automate/schedule-trigger)를 추가하고, **매일 오전 9시** 프리셋을 클릭하고, 시간대를 고르고, 저장한 뒤 스위치를 켜세요. 트리거는 연결하지 않은 상태로 두어 워크플로 전체를 실행하게 하세요.

**실행마다 드는 비용**: 비용의 대부분은 동영상입니다. 8초짜리 VEO 3.1 Fast 클립은 165크레딧입니다. 피드 읽기에 11크레딧, 게시에 11크레딧이 더해지고, 텍스트 생성 - 모든 LLM 노드 두 개에 몇 크레딧이 더해집니다. 일정을 켜기 전에 **워크플로 실행**에서 합계를 확인하세요.

**변형**: 피드 대신 웹 페이지나 검색 결과를 읽으려면 웹 스크래핑에서 다른 **소스**를 고르세요. 모든 동영상을 알아보기 쉬운 파일 이름으로 내 계정에 보관하려면 동영상 생성 뒤에 [저장소에 저장](https://nodaro.ai/docs/nodes/publish/save-to-storage)을 추가하세요.

## 일정 트리거
일정은 **규칙**의 목록입니다. 내가 고른 시간대에서 어떤 규칙이든 현재 분과 일치하면 워크플로가 실행됩니다.

### 일정 설정
1. **자동화 › 트리거 › 일정 트리거**를 추가하세요.
2. **5분마다**, **매시간**, **매일 오전 9시**, **평일 오전 9시** 프리셋 중 하나를 클릭하거나, 규칙을 직접 만드세요.
3. **시간대**를 고르세요. 시간대가 없으면 규칙은 UTC 기준으로 해석됩니다.
4. 워크플로를 저장한 다음 일정을 켜세요.

**일정은 스위치가 켜져 있는 동안에만 실행됩니다.** 저장하면 일정이 등록되지만, 일시 중지된 상태로 시작합니다. 노드 설정 상단의 스위치로 켜세요. 편집기 상단 바의 버튼은 워크플로의 모든 일정에 대해 한 번에 같은 일을 합니다. 버튼에는 **일정 꺼짐**, **일정 켜짐**, 또는 예를 들어 **일정 1/2개 켜짐**이 표시됩니다. 일정을 켜지 않고 연결된 트리거의 분기를 지금 시험해 보려면 설정 하단의 **여기서부터 실행**을 클릭하세요. 아무것에도 연결되지 않은 트리거에는 분기가 없으므로 대신 워크플로 전체를 실행하세요.

![일정이 일시 중지된 일정 트리거 설정 패널. 프리셋, 하루 실행을 보여 주는 24시간 막대, 트리거 규칙 추가 버튼, 시간대가 보입니다.](https://nodaro.ai/docs-media/screens/en/nodes/schedule-trigger/settings.light.webp)

### 규칙
| 간격 | 설정 항목 | 실행 시점 |
| --- | --- | --- |
| **분** | 1~59분마다 | 매시간 0분, N분, 2N분 등 |
| **시간** | 1~23시간마다, 그리고 분 | 매일 0시, N시, 2N시 등의 지정한 분 |
| **일** | 1~31일마다, 시와 분 | 달력 기준 N일마다 그 시각 |
| **주** | 1~52주마다, 요일, 시와 분 | N주마다 그 요일. 한 주는 월요일에 시작합니다. |
| **개월** | 1~12개월마다, 날짜, 시와 분 | N개월마다 그 날짜, 그 달이 더 짧으면 마지막 날 |
| **사용자 지정(cron)** | 5개 필드로 된 cron 식 | 식이 일치할 때마다 |

일정에는 규칙을 여러 개 둘 수 있으며, 마지막 규칙은 삭제할 수 없습니다. **최대 실행 횟수**는 그 횟수만큼 실행한 뒤 일정을 멈춥니다. 제한을 두지 않으려면 비워 두세요.

설정 패널은 저장하기 전에 규칙의 의미를 보여 줍니다. 일정을 말로 풀어 쓴 설명, 하루 실행 횟수, 24시간 막대에 표시된 오늘의 실행, 다음 실행 세 번이 표시됩니다. 노드에는 다음 실행과 일정의 활성 또는 일시 중지 상태가 표시됩니다.

### 일정이 실행되는 방식
- Nodaro는 1분에 한 번 모든 일정을 확인합니다. 다시 시작한 뒤나 시계가 뒤로 돌아갈 때도 같은 분은 두 번 실행되지 않습니다. 시계가 건너뛰는 분은 그날 건너뜁니다.
- 워크플로의 이전 실행이 아직 진행 중이면 그 분은 건너뜁니다.
- **최대 실행 횟수**만큼 실행한 뒤에는 일정이 더 이상 실행되지 않습니다. 계속하려면 제한을 늘리거나 지우세요.
- 실행할 수 없는 일정은 스위치가 켜져 있는 동안 **실행 불가**를 표시합니다. 흔한 원인은 cron 식이 없는 사용자 지정 규칙, 요일이 없는 주간 규칙, Nodaro가 읽을 수 없는 시간대입니다. 고친 다음 다시 저장하세요.

## Webhook 트리거
Webhook을 사용하면 다른 시스템이 비공개 URL로 HTTP 요청을 보내 워크플로를 시작할 수 있습니다. 예를 들어 양식이나 쇼핑몰이 새로운 것이 들어올 때 호출할 수 있습니다.

1. **자동화 › 트리거 › Webhook 트리거**를 추가하세요.
2. **출력 파라미터**에서 워크플로가 기대하는 값을 추가하세요. 각 값에는 요청의 JSON 본문 키인 **이름**과, 텍스트, 이미지 URL, 동영상 URL, 오디오 URL 중 하나인 **유형**이 있습니다. 유형이 있어야 뒤의 노드들이 값을 올바르게 사용합니다.
3. 워크플로를 저장하세요. 저장하면 Webhook이 만들어집니다. 노드를 선택하고 설정 패널의 **Webhook URL**에서 전체 주소를 복사하세요. 캔버스의 노드에는 토큰이 줄여진 주소가 표시됩니다.
4. 그 URL로 JSON 본문이 담긴 `POST` 요청을 보내세요.

```bash
curl -X POST "<your Webhook URL>" \
  -H "Content-Type: application/json" \
  -d '{"topic": "our new running shoe", "imageUrl": "https://example.com/shoe.jpg"}'
```

- **URL은 이후 저장해도 바뀌지 않습니다.** 노드를 삭제하면 URL이 폐기됩니다.
- Webhook URL마다 **1분에 최대 10번 요청**할 수 있습니다.
- **URL을 비밀번호처럼 다루세요.** URL에는 자체 비밀 키가 들어 있습니다. URL을 가진 사람은 누구나 워크플로를 시작하고 내 크레딧을 쓸 수 있습니다.

자동화 도구도 같은 주소를 호출하며, [Webhook 출력](https://nodaro.ai/docs/nodes/publish/webhook-output)이 결과를 그 도구로 돌려보냅니다. 단계별 가이드는 [n8n](https://nodaro.ai/docs/guides/n8n-integration), [Make](https://nodaro.ai/docs/guides/make-integration), [Zapier](https://nodaro.ai/docs/guides/zapier-integration)에 있습니다.

## Telegram 트리거
Telegram 트리거는 내 Telegram 봇이 메시지를 받으면 워크플로를 시작합니다.

1. **연동**에서 봇 토큰을 붙여 넣어 봇을 연결하세요.
2. **자동화 › 트리거 › Telegram 트리거**를 추가하고 **Telegram 봇**을 고르세요.
3. 필요하면 **채팅 ID 필터**로 채팅 하나로 제한하고, **메시지 유형**으로 텍스트, 사진, 동영상, 오디오, 문서 중 일부로 제한하세요.
4. **트리거 활성화**를 클릭한 다음 워크플로를 저장하세요. 준비되면 노드에 **활성: 메시지 수신 대기 중**이 표시됩니다.

일치하는 메시지마다 실행이 하나씩 시작됩니다. 트리거는 메시지 텍스트, 채팅 ID와 메시지 ID, 메시지 유형을 전달합니다. 사진, 동영상, 오디오가 있으면 그 링크도 전달하며, Nodaro가 먼저 내 저장소에 복사합니다.

- **여러 트리거가 봇 하나를 함께 쓸 수 있습니다.** 각 메시지는 모든 트리거의 필터와 비교되며, 일치하는 트리거마다 자체 실행을 시작합니다.
- **캔버스에서 실행을 지켜보세요.** 편집기에서 워크플로가 열려 있으면, 메시지로 시작된 실행의 진행 상황과 결과가 노드에 표시됩니다. [Telegram 트리거](https://nodaro.ai/docs/nodes/automate/telegram-trigger#see-the-run-on-the-canvas)를 참고하세요.
- **그룹 메시지**: 봇은 BotFather에서 그룹 개인정보 보호 모드를 끄지 않는 한, 자신에게 보낸 그룹 메시지만 받습니다.
- **큰 파일**: Telegram은 봇이 최대 20MB의 파일을 다운로드하도록 허용합니다. 더 큰 파일은 미디어 없이 메시지만 도착합니다.
- **저장할 때 트리거를 등록하지 못했다는 경고가 나타나면,** 경고에 이유가 표시됩니다. 흔한 원인은 연결한 뒤 폐기된 봇 토큰입니다.

## API로 실행 시작
내 코드에서 **설정 › API 토큰**의 API 토큰으로 워크플로를 실행할 수 있습니다. 워크플로 ID와 입력 값을 `POST /v1/api/run`으로 보내세요. 입력은 노드 ID나 노드의 고유한 레이블을 키로 사용합니다.

```bash
curl -X POST "https://app.nodaro.ai/v1/api/run" \
  -H "Authorization: Bearer $NODARO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"workflowId": "<workflow id>", "inputs": {"Text": {"text": "a cat at sunset"}}}'
```

실행은 즉시 시작되며 실행 ID로 응답합니다. 완료될 때까지 상태를 확인한 다음 결과를 읽으세요. 짧은 워크플로라면 `?wait=true&timeout=120`을 추가해 같은 요청 안에서 결과를 기다리세요. 제한 시간은 최대 600초입니다. [워크플로 API](https://nodaro.ai/docs/developers/api/workflows)를 참고하세요. [MCP](https://nodaro.ai/docs/mcp)로 연결된 AI 어시스턴트도 내 워크플로를 실행할 수 있습니다.

## 무인 실행 보관과 확인
- **모든 실행은 실행 기록에 있습니다.** **실행 기록** 목록에는 각 실행이 결과와 오류와 함께 표시됩니다. 배지는 **수동**, **Webhook**, **일정**, **텔레그램 봇**, **API**, **앱 실행**처럼 실행이 어떻게 시작되었는지 보여 줍니다.
- **이름을 붙인 사본을 보관하세요.** 분기 끝에 [저장소에 저장](https://nodaro.ai/docs/nodes/publish/save-to-storage)을 추가하세요. 아무도 편집기를 열어 두지 않아도 결과를 파일 이름과 함께 내 계정에 저장합니다. [에셋과 미디어](https://nodaro.ai/docs/concepts/assets-and-media)를 참고하세요.
- **결과를 다음 곳으로 보내세요.** 워크플로를 [SNS에 게시](https://nodaro.ai/docs/nodes/publish/publish-to-social), [저장소에 저장](https://nodaro.ai/docs/nodes/publish/save-to-storage), [Webhook 출력](https://nodaro.ai/docs/nodes/publish/webhook-output)으로 끝내세요.

## 팁
- **천천히 시작하세요.** 처음에는 긴 간격을 쓰고, 테스트하는 동안 **최대 실행 횟수**를 설정하세요. 분기가 잘 동작하면 간격을 줄이세요.
- **켜기 전에 테스트하세요.** **여기서부터 실행**은 일정을 켜지 않고 연결된 트리거의 분기를 한 번 실행합니다. 아무것에도 연결되지 않은 트리거라면 편집기에서 워크플로 전체를 실행하세요.
- **크레딧을 확인하세요.** 모든 실행은 노드 비용을 냅니다. 5분마다 실행되는 일정은 하루에 288번 실행됩니다.
- **자동화는 내 접근 권한을 따릅니다.** 트리거가 실행될 때마다 Nodaro는 트리거를 설정한 사람이 여전히 워크플로를 실행할 수 있는지 확인합니다. [워크스페이스](https://nodaro.ai/docs/concepts/workspaces)에서는 그 사람이 접근 권한을 잃으면 트리거가 멈추고, 실행 기록에 이유가 적힌 실패한 실행이 하나 표시됩니다.

## 자주 묻는 질문

### Nodaro 워크플로를 매일 자동으로 실행할 수 있나요?

네. 일정 트리거를 추가하고, 매일 오전 9시 같은 규칙과 시간대를 고른 뒤 저장하고, 스위치로 일정을 켜세요. 일정은 스위치가 켜져 있는 동안에만 실행됩니다.

### 트리거에 크레딧이 드나요?

아니요. 일정, Webhook, Telegram 트리거는 무료입니다. 각 실행은 실행한 노드의 비용만 정상 가격으로 냅니다.

### 트리거는 워크플로의 어느 부분을 실행하나요?

다른 노드에 연결된 트리거는 그 뒤에 있는 분기와, 그 분기가 입력으로 필요로 하는 노드만 실행합니다. 아무것에도 연결되지 않은 트리거는 워크플로 전체를 실행합니다.

### Webhook은 얼마나 자주 워크플로를 시작할 수 있나요?

Webhook URL마다 1분에 최대 10번입니다. 더 자주 실행하려면 대신 API로 실행을 시작하세요.

### 예약된 실행이 아직 진행 중일 때 다음 실행 시간이 되면 어떻게 되나요?

Nodaro는 그 분을 건너뜁니다. 이전 실행이 끝난 뒤 일정이 다음으로 일치하는 시간에 다음 실행이 시작됩니다.
