# n8n

चार नोड्स वाला वर्कफ़्लो: इनपुट में जन्म डेटा, बीच में API से नेटल चार्ट, आउटपुट में सूर्य, चंद्रमा और असेंडेंट के संकेत। इसे n8n 2.39.7 में इम्पोर्ट किया गया और प्रोडक्शन पर 2026-09-17 को चलाया गया, और नीचे दिया गया परिणाम वही है जो इसने लौटाया।

पहले एक कुंजी बनाओ, जैसा कि सेक्शन [कुंजी ऑटोमेशन के लिए](/integrations/#ключ-для-автоматизації) में बताया गया है, `chart` क्षेत्र के साथ।

## 1. कुंजी को credential के रूप में जोड़ो

कुंजी को credentials n8n के स्टोरेज में रखा जाता है, न कि नोड में, इसलिए यह एक्सपोर्टेड वर्कफ़्लो में नहीं आती।

1. n8n में नया credential बनाओ टाइप **Header Auth** का।
2. **Name**: `X-Api-Key`।
3. **Value**: तुम्हारी कुंजी।
4. इसे **AstroWay API key** नाम से सेव करो। नीचे वाला वर्कफ़्लो इस नाम से credential ढूँढेगा।

## 2. वर्कफ़्लो इम्पोर्ट करो

[n8n-natal-chart.json](/integrations/n8n-natal-chart.json) डाउनलोड करो, एक खाली वर्कफ़्लो खोलो और फ़ाइल की सामग्री को कैनवास पर पेस्ट करो या वर्कफ़्लो मेन्यू में फ़ाइल इम्पोर्ट का उपयोग करो।

भीतर चार नोड्स हैं:

- **Start**, Manual Trigger नोड: टेस्ट के दौरान वर्कफ़्लो शुरू करता है।
- **Birth data**, Edit Fields (Set) नोड: एक व्यक्ति के `date`, `time`, `timezone`, `latitude` और `longitude`।
- **AstroWay chart**, HTTP Request नोड: `POST /v1/chart` को कॉल करता है।
- **Big three**, Edit Fields (Set) नोड: लंबाई को संकेतों के नाम में बदलता है।

## 3. चलाओ

वर्कफ़्लो चलाओ। **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**: enabled।
- **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>
