---
title: "Σύνδεσμος PostHog"
description: "Πλήρης οδηγός ενσωμάτωσης PostHog για συγχρονισμό δεδομένων προϊοντικής ανάλυσης, feature flags και συμπεριφοράς χρηστών με το Brevo μέσω Tajo."
url: https://tajo.io/gr/docs/connectors/custom/posthog/
markdown: https://tajo.io/gr/docs/connectors/custom/posthog.md
lang: el-GR
robots: noindex
---

Ζητήστε πρώιμη πρόσβαση

Συμπληρώστε το μικρό σας όνομα και την επαγγελματική διεύθυνση email. Θα σας στείλουμε σύνδεσμο για να επιβεβαιώσετε το αίτημα πρόσβασης στο Tajo.

# Σύνδεσμος PostHog

Κατάσταση συνδέσμου: Προγραμματισμένο Δεν έχει κατασκευαστεί ακόμη. Το Tajo δεν εκτελεί σήμερα αυτόν τον σύνδεσμο.

| Πεδίο πηγής | Πεδίο προορισμού | Ενδεικτική τιμή |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Συνδέστε το PostHog με το Brevo μέσω Tajo για συγχρονισμό δεδομένων προϊοντικής ανάλυσης, εκδηλώσεων συμπεριφοράς χρηστών και συμμετοχών σε cohort για καμπάνιες marketing βάσει δεδομένων και εξατομικευμένη αφοσίωση πελατών.

## Επισκόπηση

| Ιδιότητα | Τιμή |
| --- | --- |
| **Πλατφόρμα** | PostHog |
| **Κατηγορία** | Προϊοντική Ανάλυση (Προσαρμοσμένο) |
| **Πολυπλοκότητα Ρύθμισης** | Μεσαία |
| **Επίσημη Ενσωμάτωση** | Όχι |
| **Δεδομένα που Συγχρονίζονται** | Εκδηλώσεις, Άτομα, Feature Flags, Cohorts |
| **Μέθοδος Πιστοποίησης** | Personal API Key / Project Token |

## Χαρακτηριστικά

- **Συγχρονισμός εκδηλώσεων** - Προώθηση εκδηλώσεων ανάλυσης PostHog στο Brevo για στόχευση βάσει συμπεριφοράς
- **Συγχρονισμός προφίλ ατόμου** - Συγχρονισμός ιδιοτήτων ατόμων PostHog σε χαρακτηριστικά επαφών Brevo
- **Τμηματοποίηση βάσει cohort** - Αντιστοίχιση cohorts PostHog σε λίστες επαφών Brevo
- **Συγχρονισμός feature flag** - Τμηματοποίηση επαφών βάσει ενεργοποιημένων feature flags
- **Δεδομένα χωνιού** - Χρήση δεδομένων χωνιού μετατροπής για στοχευμένη επανα-αφοσίωση
- **Μεταδεδομένα αναπαραγωγής συνεδρίας** - Εμπλουτισμός επαφών με μετρικές αφοσίωσης συνεδρίας

## Προαπαιτούμενα

Πριν ξεκινήσετε, βεβαιωθείτε ότι διαθέτετε:

1. Λογαριασμό PostHog (Cloud ή self-hosted)
2. Personal API Key από τις [Ρυθμίσεις PostHog](https://app.posthog.com/settings/user-api-keys)
3. Κλειδί Project API (token) από τις [Ρυθμίσεις Project](https://app.posthog.com/project/settings)
4. Λογαριασμό Brevo με πρόσβαση API
5. Λογαριασμό Tajo με δικαιώματα συνδέσμου

## Πιστοποίηση

### Personal API Key (Ιδιωτικά Endpoints)

```bash
# Generate at https://app.posthog.com/settings/user-api-keys
export POSTHOG_PERSONAL_API_KEY=phx_your_personal_api_key
export POSTHOG_PROJECT_TOKEN=phc_your_project_token
export POSTHOG_HOST=https://us.posthog.com  # or https://eu.posthog.com
export TAJO_API_KEY=your_tajo_api_key
export BREVO_API_KEY=your_brevo_api_key
```

```javascript
// Private API endpoints use Bearer authentication
const headers = {
  'Authorization': `Bearer ${process.env.POSTHOG_PERSONAL_API_KEY}`,
  'Content-Type': 'application/json'
};

// Public endpoints use the project token
const publicHeaders = {
  'Content-Type': 'application/json'
};
// Token is passed in the request body for public endpoints
```

Ασφάλεια Κλειδιού API

Τα Personal API keys παρέχουν πλήρη πρόσβαση λογαριασμού. Μην τα εκθέτετε ποτέ σε κώδικα πλευράς client. Χρησιμοποιήστε το Project API Key (token) για δημόσια endpoints όπως καταγραφή εκδηλώσεων και αξιολόγηση feature flag.

## Διαμόρφωση

### Βασική Ρύθμιση

```yaml
connectors:
  posthog:
    enabled: true
    host: "${POSTHOG_HOST}"
    personal_api_key: "${POSTHOG_PERSONAL_API_KEY}"
    project_token: "${POSTHOG_PROJECT_TOKEN}"
    project_id: "12345"

    sync:
      persons: true
      events: true
      cohorts: true
      feature_flags: true
      schedule: "0 */3 * * *"  # Every 3 hours

    event_filters:
      - "$pageview"
      - "purchase_completed"
      - "signup_completed"
      - "feature_used"

    lists:
      all_users: 25
      active_users: 26
      power_users: 27
```

### Αντιστοίχιση Πεδίων

```yaml
field_mapping:
  email: email
  $name: FIRSTNAME
  $browser: BROWSER
  $os: OS
  $initial_referrer: REFERRAL_SOURCE
  total_events: EVENT_COUNT
  last_seen: LAST_ACTIVE_DATE
  signup_date: SIGNUP_DATE
  plan: SUBSCRIPTION_PLAN
  company: COMPANY
  cohort_names: POSTHOG_COHORTS
```

## Endpoints API

| Endpoint | Μέθοδος | Περιγραφή |
| --- | --- | --- |
| `{host}/api/projects/{id}/persons/` | GET | Λίστα ατόμων |
| `{host}/api/projects/{id}/events/` | GET | Λίστα εκδηλώσεων |
| `{host}/api/projects/{id}/cohorts/` | GET | Λίστα cohorts |
| `{host}/api/projects/{id}/feature_flags/` | GET | Λίστα feature flags |
| `{host}/api/projects/{id}/feature_flags/evaluation/` | POST | Αξιολόγηση flags |
| `{host}/api/projects/{id}/insights/` | GET | Λίστα αποθηκευμένων insights |
| `{host}/api/projects/{id}/query/` | POST | Εκτέλεση ερωτημάτων HogQL |
| `{host}/i/v0/e` | POST | Καταγραφή εκδηλώσεων (δημόσιο) |
| `{host}/decide/?v=3` | POST | Αποφάσεις feature flag (δημόσιο) |

## Παραδείγματα Κώδικα

### Αρχικοποίηση Συνδέσμου

```javascript
import { TajoClient } from '@tajo/sdk';

const tajo = new TajoClient({
  apiKey: process.env.TAJO_API_KEY,
  brevoApiKey: process.env.BREVO_API_KEY
});

await tajo.connectors.connect('posthog', {
  host: process.env.POSTHOG_HOST,
  personalApiKey: process.env.POSTHOG_PERSONAL_API_KEY,
  projectToken: process.env.POSTHOG_PROJECT_TOKEN,
  projectId: '12345'
});
```

### Συγχρονισμός Ατόμων στο Brevo

```javascript
// Paginate through PostHog persons
let nextUrl = `${posthogHost}/api/projects/${projectId}/persons/?` +
  new URLSearchParams({ limit: '100' });

while (nextUrl) {
  const response = await fetch(nextUrl, {
    headers: {
      'Authorization': `Bearer ${process.env.POSTHOG_PERSONAL_API_KEY}`
    }
  });

  const data = await response.json();

  for (const person of data.results) {
    const email = person.properties.$email || person.properties.email;
    if (!email) continue;

    await tajo.contacts.sync({
      email,
      attributes: {
        FIRSTNAME: person.properties.$name || person.properties.name,
        LAST_ACTIVE_DATE: person.properties.$last_seen,
        SIGNUP_DATE: person.created_at,
        EVENT_COUNT: person.properties.$event_count,
        BROWSER: person.properties.$browser,
        OS: person.properties.$os,
        REFERRAL_SOURCE: person.properties.$initial_referrer
      },
      listIds: [25]
    });
  }

  nextUrl = data.next;
}
```

### Συγχρονισμός Cohorts ως Λίστες Brevo

```javascript
// Get PostHog cohorts and sync members to Brevo lists
const cohortsResponse = await fetch(
  `${posthogHost}/api/projects/${projectId}/cohorts/`,
  {
    headers: {
      'Authorization': `Bearer ${process.env.POSTHOG_PERSONAL_API_KEY}`
    }
  }
);

const { results: cohorts } = await cohortsResponse.json();

for (const cohort of cohorts) {
  // Get persons in this cohort
  const personsResponse = await fetch(
    `${posthogHost}/api/projects/${projectId}/cohorts/${cohort.id}/persons/`,
    {
      headers: {
        'Authorization': `Bearer ${process.env.POSTHOG_PERSONAL_API_KEY}`
      }
    }
  );

  const { results: persons } = await personsResponse.json();

  for (const person of persons) {
    const email = person.properties.$email || person.properties.email;
    if (email) {
      await tajo.contacts.update(email, {
        attributes: {
          POSTHOG_COHORTS: cohort.name
        }
      });
    }
  }
}
```

### Εκτέλεση Ερωτημάτων HogQL για Ανάλυση

```javascript
// Use HogQL to query analytics data
const queryResponse = await fetch(
  `${posthogHost}/api/projects/${projectId}/query/`,
  {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${process.env.POSTHOG_PERSONAL_API_KEY}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      query: {
        kind: 'HogQLQuery',
        query: `
          SELECT
            properties.$email AS email,
            count() AS event_count,
            max(timestamp) AS last_event
          FROM events
          WHERE event = 'purchase_completed'
            AND timestamp > now() - interval 30 day
          GROUP BY email
          HAVING event_count > 3
          ORDER BY event_count DESC
          LIMIT 1000
        `
      }
    })
  }
);

const queryResult = await queryResponse.json();

for (const row of queryResult.results) {
  await tajo.contacts.update(row[0], {
    attributes: {
      PURCHASE_COUNT_30D: row[1],
      LAST_PURCHASE: row[2]
    }
  });
}
```

## Όρια Ρυθμού

| Κατηγορία Endpoint | Όριο | Σημειώσεις |
| --- | --- | --- |
| Analytics endpoints | 240/λεπτό, 1.200/ώρα | GET persons, events, insights |
| Query endpoint | 2.400/ώρα | Ερωτήματα HogQL και προσαρμοσμένα |
| Αξιολόγηση feature flag | 600/λεπτό | Endpoint τοπικής αξιολόγησης |
| CRUD endpoints | 480/λεπτό, 4.800/ώρα | Λειτουργίες δημιουργίας, ενημέρωσης, διαγραφής |
| Δημόσια endpoints (καταγραφή) | Απεριόριστο | Καταγραφή εκδηλώσεων, αποφάσεις flag |

Batch Exports

Για εξαγωγές δεδομένων εκδηλώσεων μεγάλης κλίμακας, χρησιμοποιήστε τη λειτουργία batch exports του PostHog αντί για το API. Τα batch exports υποστηρίζουν S3, BigQuery, Snowflake και άλλους προορισμούς.

## Αντιμετώπιση Προβλημάτων

| Πρόβλημα | Αιτία | Λύση |
| --- | --- | --- |
| 401 Unauthorized | Μη έγκυρο API key | Επαληθεύστε το Personal API Key στις ρυθμίσεις |
| 400 Invalid project | Λανθασμένο project ID | Ελέγξτε το project ID στο URL PostHog |
| Κενή λίστα ατόμων | Δεν υπάρχουν αναγνωρισμένοι χρήστες | Βεβαιωθείτε ότι καλείται `posthog.identify()` |
| Λείπουν ιδιότητες | Οι ιδιότητες δεν έχουν οριστεί | Επαληθεύστε τις κλήσεις `$set` στο client SDK |
| Όριο ρυθμού 429 | Υπερβολικά πολλά αιτήματα | Εφαρμόστε backoff, ελέγξτε headers ορίου ρυθμού |

### Λειτουργία Εντοπισμού Σφαλμάτων

```yaml
connectors:
  posthog:
    debug: true
    log_level: verbose
    log_queries: true
    log_sync: true
```

## Βέλτιστες Πρακτικές

1. **Αναγνωρίστε χρήστες** - Καλείτε πάντα `posthog.identify()` με email για ενεργοποίηση συγχρονισμού ατόμων
2. **Χρησιμοποιήστε cohorts για τμηματοποίηση** - Αξιοποιήστε τα συμπεριφορικά cohorts PostHog για λίστες Brevo
3. **Ομαδοποιήστε αιτήματα API** - Χρησιμοποιήστε σελιδοποίηση και ομαδική επεξεργασία για μεγάλα σύνολα δεδομένων
4. **Χρησιμοποιήστε HogQL για σύνθετα ερωτήματα** - Εξάγετε προσαρμοσμένες αναλύσεις με ερωτήματα τύπου SQL
5. **Ρυθμίστε batch exports** - Για μεγάλους όγκους δεδομένων, προτιμήστε batch exports έναντι polling API
6. **Φιλτράρετε σχετικές εκδηλώσεις** - Συγχρονίστε μόνο εκδηλώσεις σχετικές με marketing για μείωση θορύβου

## Ασφάλεια

- **Personal API Key** - Πιστοποίηση Bearer token με εύρος
- **Project token** - Δημόσιο token μόνο για λειτουργίες πλευράς client
- **Μόνο HTTPS** - Όλα τα endpoints απαιτούν κρυπτογράφηση TLS
- **Allowlisting IP** - Διαθέσιμο για self-hosted instances
- **Εύρος κλειδιών** - Δημιουργία κλειδιών API με συγκεκριμένα εύρη δικαιωμάτων
- **Σάρωση μυστικών GitHub** - Το PostHog συνεργάζεται με GitHub για ανίχνευση διαρροών κλειδιών

## Σχετικοί Πόροι

- [Σύνδεσμος Optimizely](https://tajo.io/gr/docs/connectors/custom/optimizely)
- [Σύνδεσμος Segment](https://tajo.io/gr/docs/connectors/custom/segment)
- [Σύνδεσμος Snowflake](https://tajo.io/gr/docs/connectors/custom/snowflake)
- [Τεκμηρίωση API PostHog](https://posthog.com/docs/api)
