# n8n

Workflow dengan empat node: di input data kelahiran, di tengah peta natal dari API, di output tanda Matahari, Bulan, dan Ascendant. Diimpor ke n8n 2.39.7 dan dijalankan melawan produksi 2026-09-17, dan hasil di bawah adalah apa yang dikembalikannya.

Pertama buat kunci, seperti dijelaskan di bagian [Kunci untuk otomatisasi](/integrations/#ключ-для-автоматизації), dengan area `chart`.

## 1. Tambahkan kunci sebagai credential

Kunci disimpan di penyimpanan credentials n8n, bukan di node, jadi tidak masuk ke workflow yang diekspor.

1. Buat credential baru di n8n dengan tipe **Header Auth**.
2. **Name**: `X-Api-Key`.
3. **Value**: kunci kamu.
4. Simpan dengan nama **AstroWay API key**. Workflow di bawah mencari credential dengan nama ini.

## 2. Impor workflow

Unduh [n8n-natal-chart.json](/integrations/n8n-natal-chart.json), buka workflow kosong dan tempelkan isi file ke kanvas atau gunakan impor dari file di menu workflow.

Di dalam ada empat node:

- **Start**, node Manual Trigger: memulai workflow saat pengujian.
- **Birth data**, node Edit Fields (Set): `date`, `time`, `timezone`, `latitude` dan `longitude` satu orang.
- **AstroWay chart**, node HTTP Request: memanggil `POST /v1/chart`.
- **Big three**, node Edit Fields (Set): mengubah longitude menjadi nama tanda.

## 3. Jalankan

Jalankan workflow. **Big three** mengembalikan:

```json
{
  "sun": "Taurus",
  "moon": "Capricorn",
  "rising": "Virgo",
  "offset_used": 4
}
```

`offset_used` adalah offset dari UTC yang ditemukan server untuk `Europe/Kyiv` pada 1990-05-15: 4, bukan 3 yang biasanya ditulis secara manual.

## Bagaimana node HTTP Request dikonfigurasi

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

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

- **Authentication**: Generic Credential Type.
- **Generic Auth Type**: Header Auth, credential **AstroWay API key**.
- **Send Body**: diaktifkan.
- **Body Content Type**: JSON.
- **Specify Body**: Using JSON.

Body ditetapkan dengan ekspresi, sehingga nilai dari node sebelumnya diteruskan apa adanya:

```js
{{ JSON.stringify({ date: $json.date, time: $json.time, timezone: $json.timezone, latitude: $json.latitude, longitude: $json.longitude }) }}
```

## Bagaimana tanda dihitung

Setiap field di **Big three** adalah ekspresi. Tanda sama dengan longitude dibagi 30 dan dibulatkan ke bawah, sebagai indeks dalam daftar:

```js
{{ ['Aries','Taurus','Gemini','Cancer','Leo','Virgo','Libra','Scorpio','Sagittarius','Capricorn','Aquarius','Pisces'][Math.floor($json.data.houses.ascendant / 30)] }}
```

Untuk Sun dan Moon, longitude diambil dari `$json.data.planets.find(p => p.name === 'Sun').longitude` dan juga dari `'Moon'`.

## Masukkan data Anda

Ganti **Start** dan **Birth data** dengan pemicu yang sebenarnya kamu gunakan: formulir, webhook, atau baris baru tabel, dan cocokkan field-nya dengan lima nama di atas. Dua hal yang perlu diperiksa:

- **`timezone` tidak boleh kosong.** Nilai kosong ditolak dengan `400`, jadi cocokkan field atau setel ke `auto` jika koordinat dapat diandalkan.
- **Koordinat wajib.** API tidak melakukan geocode nama kota; jika formulir hanya menanyakan lokasi, tambahkan langkah geocode sebelum **AstroWay chart**.

<Aside type="note">
Pemanggilan di luar area kunci menghentikan eksekusi dengan `403 ENDPOINT_NOT_IN_SCOPE`, dan kunci yang melebihi anggaran dengan `429 KEY_BUDGET_EXHAUSTED`. Kedua hal ini untuk itu: tingkatkan limit di dashboard, bukan mengulangi permintaan.
</Aside>
