# n8n

Workflow із чотирьох вузлів: на вході дані народження, посередині натальна карта з API, на виході знаки Сонця, Місяця й Асцендента. Його імпортовано в n8n 2.39.7 і запущено проти продакшену 2026-09-17, а результат нижче саме той, що він повернув.

Спершу створіть ключ, як описано в розділі [Ключ для автоматизації](/integrations/#ключ-для-автоматизації), з областю `chart`.

## 1. Додайте ключ як credential

Ключ зберігається в сховищі credentials n8n, а не у вузлі, тож не потрапляє в експортований workflow.

1. Створіть у n8n новий credential типу **Header Auth**.
2. **Name**: `X-Api-Key`.
3. **Value**: ваш ключ.
4. Збережіть його під назвою **AstroWay API key**. Workflow нижче шукає credential саме за цією назвою.

## 2. Імпортуйте workflow

Завантажте [n8n-natal-chart.json](/integrations/n8n-natal-chart.json), відкрийте порожній workflow і вставте вміст файлу на полотно або скористайтеся імпортом із файлу в меню workflow.

Усередині чотири вузли:

- **Start**, вузол Manual Trigger: запускає workflow під час тесту.
- **Birth data**, вузол Edit Fields (Set): `date`, `time`, `timezone`, `latitude` і `longitude` однієї людини.
- **AstroWay chart**, вузол HTTP Request: викликає `POST /v1/chart`.
- **Big three**, вузол Edit Fields (Set): перетворює довготи на назви знаків.

## 3. Запустіть

Виконайте workflow. **Big three** повертає:

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

`offset_used` це зсув від UTC, який сервер знайшов для `Europe/Kyiv` на 1990-05-15: 4, а не 3, яке зазвичай пишуть вручну.

## Як налаштований вузол 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**: увімкнено.
- **Body Content Type**: JSON.
- **Specify Body**: Using JSON.

Тіло задане виразом, тож значення з будь-якого попереднього вузла передаються як є:

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

## Як рахуються знаки

Кожне поле в **Big three** це вираз. Знак дорівнює довготі, поділеній на 30 і округленій донизу, як індекс у списку:

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

Для Сонця й Місяця довгота береться з `$json.data.planets.find(p => p.name === 'Sun').longitude` і так само з `'Moon'`.

## Підставте свої дані

Замініть **Start** і **Birth data** тригером, яким ви справді користуєтеся: формою, webhook чи новим рядком таблиці, і зіставте його поля з п'ятьма назвами вище. Дві речі варто перевірити:

- **`timezone` не може бути порожнім.** Порожнє значення відхиляється з `400`, тож зіставте поле або поставте `auto`, якщо координати надійні.
- **Координати обов'язкові.** API не геокодує назву міста; якщо форма питає лише місце, додайте крок геокодування перед **AstroWay chart**.

<Aside type="note">
Виклик поза областю ключа зупиняє запуск із `403 ENDPOINT_NOT_IN_SCOPE`, а ключ понад бюджет із `429 KEY_BUDGET_EXHAUSTED`. Обидва саме для цього: підніміть ліміт у дашборді, а не повторюйте запит.
</Aside>
