# n8n

Workflow cu patru noduri: la intrare datele nașterii, în mijloc harta natală cu API, la ieșire semnele Soarelui, Lunii și Ascendentului. A fost importat în n8n 2.39.7 și rulat împotriva producției pe 2026-09-17, iar rezultatul de mai jos este exact ceea ce a returnat.

Mai întâi, creați o cheie, așa cum este descris în secțiunea [Cheie pentru automatizare](/integrations/#cheie-pentru-automatizare), cu domeniul `chart`.

## 1. Adăugați cheia ca credential

Cheia este stocată în depozitul de credentials n8n, nu în nod, deci nu apare în exportul workflow.

1. Creați în n8n un nou credential de tip **Header Auth**.
2. **Name**: `X-Api-Key`.
3. **Value**: cheia dumneavoastră.
4. Salvați-l sub numele **AstroWay API key**. Workflow-ul de mai jos caută credential tocmai după acest nume.

## 2. Importați workflow

Descărcați [n8n-natal-chart.json](/integrations/n8n-natal-chart.json), deschideți un workflow gol și inserați conținutul fișierului pe panou sau folosiți importul din fișier din meniul workflow.

În interior, patru noduri:

- **Start**, nod Manual Trigger: pornește workflow-ul la testare.
- **Birth data**, nod Edit Fields (Set): `date`, `time`, `timezone`, `latitude` și `longitude` pentru o persoană.
- **AstroWay chart**, nod HTTP Request: apelează `POST /v1/chart`.
- **Big three**, nod Edit Fields (Set): transformă longitudinile în numele semnelor.

## 3. Rulați

Executați workflow-ul. **Big three** returnează:

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

`offset_used` este offset-ul față de UTC pe care serverul l-a găsit pentru `Europe/Kyiv` la 1990-05-15: 4, nu 3, care se scriu de obicei manual.

## Cum este configurat nodul HTTP Request

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

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

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

Corpul este setat ca expresie, deci valorile din orice nod anterior sunt transmise așa cum sunt:

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

## Cum se calculează semnele

Fiecare câmp din **Big three** este o expresie. Semnul este egal cu longitudinea împărțită la 30 și rotunjită în jos, ca index în listă:

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

Pentru Soare și Lună, longitudinea este luată din `$json.data.planets.find(p => p.name === 'Sun').longitude` și la fel cu `'Moon'`.

## Înlocuiți cu datele dumneavoastră

Înlocuiți **Start** și **Birth data** cu trigger-ul pe care îl folosiți cu adevărat: formular, webhook sau rând nou din tabel, și mapați câmpurile cu cele cinci nume de mai sus. Două lucruri de verificat:

- **`timezone` nu poate fi gol.** Un gol valoare este respinsă cu `400`, deci mapați câmpul sau puneți `auto`, dacă coordonatele sunt fiabile.
- **Coordonatele sunt obligatorii.** API-ul nu geocodifică numele orașului; dacă formularul întreabă doar locația, adăugați un pas de geocodare înainte de **AstroWay chart**.

<Aside type="note">
Apelul în afara domeniului cheii oprește execuția cu `403 ENDPOINT_NOT_IN_SCOPE`, iar cheia peste buget cu `429 KEY_BUDGET_EXHAUSTED`. Ambele sunt intenționate: ridicați limita în dashboard, nu repetați cererea.
</Aside>
