# Zapier

Το Zap, που παίρνει την ημερομηνία, την ώρα, τη ζώνη και τις συντεταγμένες γέννησης από το trigger, ζητά από το API το χάρτη και μετατρέπει το Ascendant σε όνομα ζώδιου. Το παρακάτω αίτημα έχει σταλεί σε παραγωγή ακριβώς όπως το δημιουργεί το βήμα· τα βήματα στο Zapier είναι γραμμένα σύμφωνα με την τεκμηρίωση του Zapier όπως στις 2026-09-17.

<Aside type="caution" title="Потрібен платний тариф Zapier">
Το API by Zapier, τα Webhooks by Zapier και το Formatter είναι premium‑εφαρμογές. Η τεκμηρίωση του Zapier σημειώνει και τα τρία ως μη διαθέσιμα στο πακέτο Free, ενώ το βήμα Lookup Table απαιτεί το πακέτο Professional ή υψηλότερο. Στο Free χρησιμοποίησε το [Make](/integrations/make/) ή το [n8n](/integrations/n8n/).
</Aside>

Πρώτα δημιούργησε ένα κλειδί, όπως περιγράφεται στην ενότητα [Κλειδί για αυτοματοποίηση](/integrations/#ключ-для-автоматизації), με περιοχή `chart`.

## 1. Τοποθέτησε το κλειδί στη σύνδεση

Οι κεφαλίδες που εισάγονται στο βήμα Webhooks by Zapier αποθηκεύονται στο ίδιο το βήμα και τις βλέπουν όλοι όσοι έχουν πρόσβαση στο Zap. Το API by Zapier τις κρατά στη σύνδεση.

1. Στη σελίδα **Apps** πάτησε **+ Add connection** και επίλεξε **API by Zapier**.
2. **Authentication type**: Static Headers (API key).
3. **Headers**: `X-Api-Key: ` και μετά το κλειδί σου, σε μία γραμμή.
4. **Domain filter**: `api.astroway.info`, ώστε η σύνδεση να μην μπορεί να κατευθυνθεί κάπου αλλού.

## 2. Κάλεσε το χάρτη

Πρόσθεσε ενέργεια, επίλεξε **API by Zapier**, το γεγονός **API Request** και τη σύνδεση.

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

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

- **Body**: JSON παρακάτω με τα πεδία του trigger αντί για τιμές.

```json
{
  "date": "1990-05-15",
  "time": "14:30:00",
  "timezone": "Europe/Kyiv",
  "latitude": "50.45",
  "longitude": "30.52"
}
```

Αντικατέστησε κάθε τιμή με το αντίστοιχο πεδίο του trigger και κράτησε τα εισαγωγικά γύρω από κάθε τιμή, επίσης και τους αριθμούς. Το Zapier εισάγει το αντιστοιχισμένο πεδίο ως απλό κείμενο και δεν προσθέτει εισαγωγικά, ενώ το API δέχεται `"50.45"` ως αριθμό. Μην προσθέσεις το κλειδί στα Headers του βήματος: το προσθέτει η σύνδεση.

Δοκίμασε το βήμα. Η σωστή απάντηση αρχίζει με `"ok": true`, και το `data.input.timezoneOffset` για παράδειγμα είναι `4`: η μετατόπιση που είχε το Κίεβο εκείνη τη μέρα.

## 3. Μετατρέψτε το Ascendant σε ζώδιο

Δύο βήματα Formatter.

**Formatter, γεγονός Numbers, μετατροπή Spreadsheet-Style Formula.** Τύπος:

```
FLOOR(ASCENDANT / 30)
```

όπου αντί για `ASCENDANT` έχει τοποθετηθεί `data.houses.ascendant` από το βήμα 2. Για παράδειγμα το αποτέλεσμα είναι `5`.

**Formatter, γεγονός Utilities, μετατροπή Lookup Table.** Το Lookup Key είναι το αποτέλεσμα του τύπου. Πίνακας:

| Key | Value |
|---|---|
| 0 | Aries |
| 1 | Taurus |
| 2 | Gemini |
| 3 | Cancer |
| 4 | Leo |
| 5 | Virgo |
| 6 | Libra |
| 7 | Scorpio |
| 8 | Sagittarius |
| 9 | Capricorn |
| 10 | Aquarius |
| 11 | Pisces |

Για παράδειγμα το αποτέλεσμα είναι `Virgo`. Για να πάρεις ελληνικά ονόματα, βάλε τα στη στήλη Value.

Ο Ήλιος και η Σελήνη υπολογίζονται με τον ίδιο τρόπο. Αυτά είναι η πρώτη και η δεύτερη εγγραφή στο `data.planets`, η καθεμία με τη δική της `longitude`: για παράδειγμα 54.34 (Ταύρος) και 296.39 (Αιγόκερως).

## Αν χρησιμοποιείς Webhooks by Zapier

Λειτουργεί, αλλά το κλειδί βρίσκεται στο βήμα, όχι στη σύνδεση. Για το χάρτη επίλεξε το γεγονός **Custom Request**: στέλνει το πεδίο Data ακριβώς όπως έχει εισαχθεί, έτσι το JSON παραπάνω θα περάσει χωρίς αλλαγές. Θέσε **Method** `POST`, και στα **Headers** πρόσθεσε τόσο το `X-Api-Key` με το κλειδί σου, όσο και το `Content-Type` με την τιμή `application/json`.

## Όταν το βήμα αποτυγχάνει

- **`400 INVALID_FIELD` με `timezone` στα `details`**: η αντιστοιχισμένη ζώνη είναι κενή, είναι μια συντομογραφία όπως `EST` ή όχι όνομα ζώνης.
- **`400` με `date` ή `time` στα `details`**: η μορφή του trigger δεν είναι `YYYY-MM-DD` / `HH:MM:SS`; πρόσθεσε πριν από την κλήση ένα βήμα Formatter για την ημερομηνία.
- **`403 ENDPOINT_NOT_IN_SCOPE`**: στην περιοχή του κλειδιού δεν υπάρχει `chart`.
- **`429 KEY_BUDGET_EXHAUSTED`**: το κλειδί εξάντλησε τον δικό του προϋπολογισμό· αυξήστε το στον πίνακα ελέγχου.

Το API δεν κάνει γεωκωδικοποίηση. Αν το trigger έχει μόνο το όνομα του τόπου, οι συντεταγμένες πρέπει να προέρχονται από το ίδιο το trigger ή από υπηρεσία γεωκωδικοποίησης στην οποία έχεις κλειδί.
