# Zapier

트리거에서 생년월일, 시간, 시간대 및 좌표를 가져와서 API에 차트를 요청하고 어센던트를 별자리 이름으로 변환하는 Zap입니다. 아래 요청은 단계에서 구성된 그대로 프로덕션으로 전송됩니다. Zapier의 단계는 2026년 9월 17일자 Zapier 문서를 기준으로 작성되었습니다.

<Aside type="caution" title="유료 Zapier 요금제 필요">
API by Zapier, Webhooks by Zapier 및 Formatter는 프리미엄 앱입니다. Zapier 문서에 따르면 이 세 가지 모두 무료 요금제에서는 사용할 수 없으며, Lookup Table 단계는 Professional 이상의 요금제가 필요합니다. 무료 요금제에서는 [Make](/integrations/make/) 또는 [n8n](/integrations/n8n/)을 사용하세요.
</Aside>

먼저 [자동화 키](/integrations/#키-자동화) 섹션에 설명된 대로 `chart` 스코프를 사용하여 키를 생성하세요.

## 1. 연결에 키 추가

Webhooks by Zapier 단계에 입력된 헤더는 해당 단계 자체에 저장되며 Zap에 접근할 수 있는 모든 사람이 볼 수 있습니다. API by Zapier는 이를 연결에 보관합니다.

1. **Apps** 페이지에서 **+ Add connection**을 클릭하고 **API by Zapier**를 선택하세요.
2. **Authentication type**: Static Headers (API key).
3. **Headers**: `X-Api-Key: `와 그 뒤에 오는 키를 한 줄에 입력하세요.
4. **Domain filter**: `api.astroway.info`를 입력하여 연결이 다른 곳으로 라우팅되지 않도록 합니다.

## 2. 차트 호출

작업을 추가하고 **API by Zapier**, **API Request** 이벤트 및 연결을 선택하세요.

- **Method**: `POST`.
- **URL**:

  ```
  https://api.astroway.info/v1/chart
  ```

- **Body**: 아래 JSON에서 값 대신 트리거 필드를 사용하세요.

```json
{
  "date": "1990-05-15",
  "time": "14:30:00",
  "timezone": "Europe/Kyiv",
  "latitude": "50.45",
  "longitude": "30.52"
}
```

각 값을 해당 트리거 필드로 바꾸고, 숫자도 포함하여 각 값 주위에 따옴표를 유지하세요. Zapier는 매핑된 필드를 일반 텍스트로 삽입하며 따옴표를 자동으로 추가하지 않지만, API는 `"50.45"`를 숫자로 받아들입니다. 단계의 Headers에 키를 추가하지 마세요. 연결이 이를 대체합니다.

단계를 테스트하세요. 올바른 응답은 `"ok": true`로 시작하며, 예시에서 `data.input.timezoneOffset`은 `4`입니다. 이는 그날 키이우의 시간 오프셋입니다.

## 3. 어센던트를 별자리로 변환

두 개의 Formatter 단계.

**Formatter, Numbers 이벤트, Spreadsheet-Style Formula 변환.** 수식:

```
FLOOR(ASCENDANT / 30)
```

여기서 `ASCENDANT` 대신 2단계의 `data.houses.ascendant`가 대체됩니다. 예를 들어 결과는 `5`입니다.

**Formatter, Utilities 이벤트, Lookup Table 변환.** Lookup Key는 수식의 결과입니다. 표:

| Key | Value |
|---|---|
| 0 | Aries |
| 1 | Taurus |
| 2 | Gemini |
| 3 | Cancer |
| 4 | Leo |
| 5 | Virgo |
| 6 | Libra |
| 7 | Scorpio |
| 8 | Sagittarius |
| 9 | Capricorn |
| 10 | Aquarius |
| 11 | Pisces |

예를 들어 결과는 `Virgo`입니다. 한국어 이름을 얻으려면 Value 열에 입력하세요.

태양과 달도 같은 방식으로 계산됩니다. 이는 `data.planets`의 첫 번째와 두 번째 항목이며, 각각 고유한 `longitude`를 가집니다. 예를 들어 54.34 (황소자리) 및 296.39 (염소자리)입니다.

## Webhooks by Zapier를 사용하는 경우

작동하지만 키는 연결이 아닌 단계에 있습니다. 차트를 위해 **Custom Request** 이벤트를 선택하세요. 이 이벤트는 Data 필드를 입력된 그대로 전송하므로 위 JSON은 변경 없이 전송됩니다. **Method**를 `POST`로 설정하고, **Headers**에 `X-Api-Key`와 키를 추가하고, `Content-Type`을 `application/json` 값으로 추가하세요.

## 단계가 실패할 때

- **`400 INVALID_FIELD` (세부 정보에 `timezone` 포함)**: 매핑된 시간대가 비어 있거나 `EST`와 같은 약어이거나 시간대 이름이 아닙니다.
- **`400` (세부 정보에 `date` 또는 `time` 포함)**: 트리거 형식이 `YYYY-MM-DD` / `HH:MM:SS`가 아닙니다. 호출 전에 날짜 Formatter 단계를 추가하세요.
- **`403 ENDPOINT_NOT_IN_SCOPE`**: 키 스코프에 `chart`가 없습니다.
- **`429 KEY_BUDGET_EXHAUSTED`**: 키의 예산이 소진되었습니다. 대시보드에서 예산을 늘리세요.

API는 지오코딩을 수행하지 않습니다. 트리거에 장소 이름만 있는 경우, 좌표는 트리거 자체에서 오거나 키를 가지고 있는 지오코딩 서비스에서 와야 합니다.
