Σύνδεσμος PostHog
Συνδέστε το 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
- Δεδομένα χωνιού - Χρήση δεδομένων χωνιού μετατροπής για στοχευμένη επανα-αφοσίωση
- Μεταδεδομένα αναπαραγωγής συνεδρίας - Εμπλουτισμός επαφών με μετρικές αφοσίωσης συνεδρίας
Προαπαιτούμενα
Πριν ξεκινήσετε, βεβαιωθείτε ότι διαθέτετε:
- Λογαριασμό PostHog (Cloud ή self-hosted)
- Personal API Key από τις Ρυθμίσεις PostHog
- Κλειδί Project API (token) από τις Ρυθμίσεις Project
- Λογαριασμό Brevo με πρόσβαση API
- Λογαριασμό Tajo με δικαιώματα συνδέσμου
Πιστοποίηση
Personal API Key (Ιδιωτικά Endpoints)
# Generate at https://app.posthog.com/settings/user-api-keysexport POSTHOG_PERSONAL_API_KEY=phx_your_personal_api_keyexport POSTHOG_PROJECT_TOKEN=phc_your_project_tokenexport POSTHOG_HOST=https://us.posthog.com # or https://eu.posthog.comexport TAJO_API_KEY=your_tajo_api_keyexport BREVO_API_KEY=your_brevo_api_key// Private API endpoints use Bearer authenticationconst headers = { 'Authorization': `Bearer ${process.env.POSTHOG_PERSONAL_API_KEY}`, 'Content-Type': 'application/json'};
// Public endpoints use the project tokenconst 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.
Διαμόρφωση
Βασική Ρύθμιση
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Αντιστοίχιση Πεδίων
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_COHORTSEndpoints 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 (δημόσιο) |
Παραδείγματα Κώδικα
Αρχικοποίηση Συνδέσμου
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
// Paginate through PostHog personslet 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
// Get PostHog cohorts and sync members to Brevo listsconst 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 για Ανάλυση
// Use HogQL to query analytics dataconst 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 ορίου ρυθμού |
Λειτουργία Εντοπισμού Σφαλμάτων
connectors: posthog: debug: true log_level: verbose log_queries: true log_sync: trueΒέλτιστες Πρακτικές
- Αναγνωρίστε χρήστες - Καλείτε πάντα
posthog.identify()με email για ενεργοποίηση συγχρονισμού ατόμων - Χρησιμοποιήστε cohorts για τμηματοποίηση - Αξιοποιήστε τα συμπεριφορικά cohorts PostHog για λίστες Brevo
- Ομαδοποιήστε αιτήματα API - Χρησιμοποιήστε σελιδοποίηση και ομαδική επεξεργασία για μεγάλα σύνολα δεδομένων
- Χρησιμοποιήστε HogQL για σύνθετα ερωτήματα - Εξάγετε προσαρμοσμένες αναλύσεις με ερωτήματα τύπου SQL
- Ρυθμίστε batch exports - Για μεγάλους όγκους δεδομένων, προτιμήστε batch exports έναντι polling API
- Φιλτράρετε σχετικές εκδηλώσεις - Συγχρονίστε μόνο εκδηλώσεις σχετικές με marketing για μείωση θορύβου
Ασφάλεια
- Personal API Key - Πιστοποίηση Bearer token με εύρος
- Project token - Δημόσιο token μόνο για λειτουργίες πλευράς client
- Μόνο HTTPS - Όλα τα endpoints απαιτούν κρυπτογράφηση TLS
- Allowlisting IP - Διαθέσιμο για self-hosted instances
- Εύρος κλειδιών - Δημιουργία κλειδιών API με συγκεκριμένα εύρη δικαιωμάτων
- Σάρωση μυστικών GitHub - Το PostHog συνεργάζεται με GitHub για ανίχνευση διαρροών κλειδιών