# n8n

Workflow met vier knooppunten: aan de invoer geboortedata, in het midden een geboortehoroscoop via de API, aan de uitvoer de tekens van de Zon, Maan en Ascendant. Het is geïmporteerd in n8n 2.39.7 en uitgevoerd tegen productie op 2026-09-17, en het resultaat hieronder is precies wat het teruggaf.

Maak eerst een sleutel aan, zoals beschreven in de sectie [Sleutel voor automatisering](/integrations/#ключ-для-автоматизації), met het bereik `chart`.

## 1. Voeg sleutel toe als credential

De sleutel wordt opgeslagen in de credentials‑opslag van n8n, niet in de knoop, dus komt niet in de geëxporteerde workflow terecht.

1. Maak in n8n een nieuw credential van het type **Header Auth**.
2. **Name**: `X-Api-Key`.
3. **Value**: je sleutel.
4. Sla het op onder de naam **AstroWay API key**. De workflow hieronder zoekt het credential precies onder deze naam.

## 2. Importeer workflow

Download [n8n-natal-chart.json](/integrations/n8n-natal-chart.json), open een lege workflow en plak de bestandsinhoud op het canvas of gebruik de import vanuit bestand in het workflow‑menu.

Binnenin vier knooppunten:

- **Start**, knoop Manual Trigger: start de workflow tijdens een test.
- **Birth data**, knoop Edit Fields (Set): `date`, `time`, `timezone`, `latitude` en `longitude` van één persoon.
- **AstroWay chart**, knoop HTTP Request: roept `POST /v1/chart` aan.
- **Big three**, knoop Edit Fields (Set): zet lengtegraden om naar tekennamen.

## 3. Voer uit

Voer de workflow uit. **Big three** retourneert:

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

`offset_used` is de verschuiving ten opzichte van UTC die de server vond voor `Europe/Kyiv` op 1990-05-15: 4, en niet 3, wat normaal handmatig wordt geschreven.

## Hoe de HTTP Request knoop is geconfigureerd

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

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

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

De body wordt ingesteld via een expressie, dus waarden van elke vorige knoop worden doorgegeven zoals ze zijn:

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

## Hoe de tekens worden berekend

Elk veld in **Big three** is een expressie. Het teken is gelijk aan de lengte gedeeld door 30 en naar beneden afgerond, als index in de lijst:

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

Voor de Zon en de Maan wordt de lengte gehaald uit `$json.data.planets.find(p => p.name === 'Sun').longitude` en op dezelfde manier uit `'Moon'`.

## Vervang door je eigen gegevens

Vervang de **Start** en **Birth data** trigger door degene die je echt gebruikt: een formulier, webhook of een nieuwe rij in een tabel, en koppel de velden aan de vijf namen hierboven. Twee dingen om te controleren:

- **`timezone` mag niet leeg zijn.** Een lege waarde wordt afgewezen met `400`, dus koppel het veld of zet `auto` als de coördinaten betrouwbaar zijn.
- **Coördinaten zijn verplicht.** De API geocodeert geen plaatsnaam; als het formulier alleen een locatie vraagt, voeg dan een geocodeer‑stap toe vóór **AstroWay chart**.

<Aside type="note">
Een oproep buiten het sleutelbereik stopt de uitvoering met `403 ENDPOINT_NOT_IN_SCOPE`, en een sleutel boven het budget geeft `429 KEY_BUDGET_EXHAUSTED`. Beide zijn hiervoor: verhoog de limiet in het dashboard, in plaats van de aanvraag te herhalen.
</Aside>
