# Make에서 Nodaro 사용

> HTTP 앱으로 Make 시나리오에서 Nodaro 워크플로를 시작하고, 완성된 이미지나 동영상을 Make 커스텀 Webhook으로 받으세요. API 키는 필요 없습니다.

Source: https://nodaro.ai/ko/docs/guides/make-integration

**Make**는 시나리오에서 어떤 Nodaro 워크플로든 시작하고, 완성된 이미지, 동영상 또는 오디오를 커스텀 Webhook으로 받을 수 있습니다. 생성은 Nodaro가 맡습니다. 언제 실행하고 결과를 어디로 보낼지는 Make가 정합니다. 워크플로 자체의 Webhook 주소로 실행을 시작하므로 어느 방향이든 Nodaro API 키가 필요 없습니다.

## 두 서비스의 연결 방식
1. HTTP 앱의 **Make a request** 모듈이 프롬프트 같은 JSON 본문을 Nodaro 워크플로의 Webhook 주소로 보냅니다.
2. Nodaro 워크플로는 [Webhook 트리거](https://nodaro.ai/docs/nodes/automate/webhook-trigger)로 시작해 노드를 실행하고 [Webhook 출력](https://nodaro.ai/docs/nodes/publish/webhook-output)으로 끝납니다.
3. Webhook 출력이 결과를 Make의 **Custom webhook**으로 보내고, 이 Webhook이 결과를 가지고 두 번째 시나리오를 시작합니다.

Workflow: Nodaro 쪽 구성입니다. Make 시나리오가 Webhook 트리거를 시작하고, Webhook 출력이 이미지 주소를 Make 커스텀 Webhook으로 보냅니다.

- Webhook 트리거 → 이미지 생성 (프롬프트)
- 이미지 생성 → Webhook 출력 (image_url)

## 1단계: Make에서 결과 받기
Nodaro 워크플로에 받는 쪽의 주소가 필요하므로 받는 쪽을 먼저 만드세요.

1. 시나리오를 만들고 **Webhooks › Custom webhook** 모듈을 트리거로 추가하세요.
2. **Webhook** 옆의 **Add**를 클릭하고, “Nodaro 결과”처럼 이름을 지정한 다음 **Save**를 클릭하세요.
3. Make가 생성한 URL을 복사하세요. 이제 Make가 첫 요청을 기다립니다.

Make Webhook은 각각 하나의 시나리오에 속합니다. 준비가 되면 시나리오를 켜서 결과가 도착할 때마다 처리되게 하세요.

## 2단계: Nodaro 워크플로 만들기
1. **Webhook 트리거** 노드를 추가하세요. **출력 파라미터**에서 이름이 `prompt`이고 유형이 **텍스트**인 파라미터를 추가하세요.
2. `prompt` 출력을 [이미지 생성](https://nodaro.ai/docs/nodes/image/generate-image) 노드나 결과를 만드는 다른 노드의 프롬프트 입력에 연결하세요.
3. **Webhook 출력** 노드를 추가하세요. Make Webhook URL을 **Webhook URL**에 붙여 넣으세요. **입력 파라미터**에서 유형이 **이미지 URL**인 `image_url`을 추가하고 이미지를 연결하세요.
4. 워크플로를 저장하세요. Webhook 트리거를 선택하고 **Webhook URL** 아래에 있는 주소를 복사하세요.

주소는 `https://app.nodaro.ai/v1/webhooks/<token>` 형식입니다. 토큰은 비밀번호처럼 작동합니다. 주소를 가진 사람은 누구나 워크플로를 시작할 수 있습니다.

## 3단계: Make에서 실행 시작
1. 실행을 시작할 시나리오에 **HTTP** 앱의 **Make a request** 모듈을 추가하세요.
2. Nodaro 주소를 **URL**에 붙여 넣고 **Method**를 **POST**로 설정하세요.
3. **Body content type**을 `application/JSON`으로, **Body input method**를 **Data structure**로 설정하세요. 이름이 `prompt`인 필드를 추가하고 앞선 모듈의 값을 매핑하세요.
4. 다음 모듈이 `executionId`를 매핑할 수 있도록 **Parse response**를 **Yes**로 설정하세요.

**Data structure** 방식은 값을 이스케이프합니다. 매핑된 값이 들어간 원시 JSON 문자열은 값에 따옴표가 있으면 깨질 수 있습니다.

## 돌아오는 응답
Nodaro는 아무것도 생성하기 전에 바로 요청에 응답합니다. 응답은 실행 ID가 담긴 `202`입니다.

```json
{ "executionId": "3f9e2b1a-7c6d-4e5f-8a9b-0c1d2e3f4a5b", "status": "pending" }
```

실행이 끝나면 Webhook 출력이 결과를 커스텀 Webhook으로 보냅니다. 본문에는 입력 파라미터마다 키가 하나씩 있고, 미디어 값은 Nodaro에 있는 파일의 주소입니다.

```json
{ "image_url": "https://cdn.nodaro.ai/images/2538b658-d2e1-42ee-890a-72ce06089feb.png" }
```

커스텀 Webhook이 수신 대기하는 동안 Nodaro 워크플로를 한 번 실행하면 Make가 구조를 학습해 `image_url`을 매핑할 수 있는 필드로 만듭니다. Webhook의 고급 설정에서 구조를 직접 정의할 수도 있습니다.

## Webhook 대신 폴링
같은 시나리오에서 [개인 API 토큰](https://nodaro.ai/docs/developers/api/authentication)으로 결과를 폴링할 수도 있습니다. 폴링은 개인 프로젝트에 있는 워크플로에서 작동합니다.

1. 요청 모듈 뒤에 **Tools › Sleep** 모듈을 추가하세요. 예를 들어 30초로 설정합니다.
2. **Method**가 **GET**이고 URL이 `https://app.nodaro.ai/v1/api/status/<executionId>`인 **Make a request** 모듈을 하나 더 추가하고, 첫 요청의 `executionId`를 매핑하세요.
3. 토큰에는 **API key** 인증 유형을 선택하세요. **Key**에 `Bearer <your API token>`을 넣고, 헤더에 배치하고, 파라미터 이름을 `Authorization`으로 지정하세요.
4. 상태가 `completed`가 되면 같은 방법으로 `https://app.nodaro.ai/v1/api/result/<executionId>`를 호출하세요. 응답에는 실행의 출력과 그 주소가 나열됩니다.

동영상은 몇 분이 걸릴 수 있고, Sleep 모듈 하나가 기다릴 수 있는 시간에는 한도가 있습니다. 오래 걸리는 실행에는 위의 Webhook 방식이 더 간단합니다. 상태 응답과 결과 응답은 [새 입력값으로 워크플로 실행](https://nodaro.ai/docs/developers/api/workflows#run-a-workflow-with-new-input-values)에서 설명합니다.

## 미리 고려할 제한
| 제한 | 발생하는 일 | 대처 방법 |
| --- | --- | --- |
| 워크플로당 한 번에 실행 하나 | 실행 중에 보낸 요청은 진행 중인 실행의 `executionId`와 함께 `409`로 응답합니다. | 이전 결과가 도착한 뒤 다음 요청을 보내거나 워크플로를 복사하세요. |
| 주소당 분당 요청 10개 | 그보다 많은 요청은 `429`로 응답합니다. | 요청 간격을 두세요. |
| 전송 시도 1회 | Webhook 출력은 응답을 30초 동안 기다리며 재시도하지 않습니다. 전송에 실패하면 노드가 실패합니다. | 받는 시나리오를 켜 두세요. |
| 사용하지 않는 Make Webhook은 중지됨 | Make는 5일 동안 어떤 시나리오도 사용하지 않은 Webhook을 비활성화합니다. | 커스텀 Webhook을 활성 시나리오에 두세요. |

## 비용
Webhook 트리거와 Webhook 출력은 비용이 들지 않습니다. 그 사이에 있는 노드의 크레딧만 에디터와 같은 가격으로 지불합니다. 위 예시에서는 실행마다 Nano Banana 2 이미지 한 장의 가격인 22크레딧이 듭니다. 실패한 노드에 예약된 크레딧은 자동으로 환불됩니다.

같은 방식은 [n8n](https://nodaro.ai/docs/guides/n8n-integration)과 [Zapier](https://nodaro.ai/docs/guides/zapier-integration)에서도 작동합니다. 일정과 워크플로를 시작하는 다른 방법은 [자동화](https://nodaro.ai/docs/guides/automations)에서 다룹니다.

## 자주 묻는 질문

### Make에서 Nodaro를 사용하려면 Nodaro API 키가 필요한가요?

아니요. HTTP 앱의 Make a request 모듈이 Nodaro 워크플로의 Webhook 주소로 실행을 시작하고, Webhook 출력 노드가 결과를 Make 커스텀 Webhook으로 보냅니다. API 키는 결과를 폴링하는 방식을 쓸 때만 필요합니다.

### Make에서 Nodaro 결과의 필드를 매핑할 수 없는 이유는 무엇인가요?

Make 커스텀 Webhook은 처음 받은 요청에서 데이터 구조를 학습합니다. Webhook이 수신 대기하는 동안 Nodaro 워크플로를 한 번 실행하거나 데이터 구조를 직접 정의하면 필드를 사용할 수 있습니다.

### Nodaro가 409로 응답하는 이유는 무엇인가요?

Nodaro 워크플로가 이미 실행 중이고, 워크플로는 한 번에 요청 하나만 실행하기 때문입니다. 이전 결과가 도착한 뒤 다음 요청을 보내거나, 병렬로 실행하려면 워크플로의 사본을 만드세요.

### 비용은 얼마인가요?

Webhook 트리거와 Webhook 출력은 무료입니다. 그 사이에 있는 노드의 크레딧만 에디터와 같은 가격으로 지불합니다.
