---
title: "PostHog Konektor"
description: "Kompletan vodič za integraciju PostHoga za sinkronizaciju analitike proizvoda, feature zastavica i korisničkih bihevioralnih podataka s Brevom putem Taja."
url: https://tajo.io/hr/docs/connectors/custom/posthog/
markdown: https://tajo.io/hr/docs/connectors/custom/posthog.md
lang: hr-HR
robots: noindex
---

Zatražite rani pristup

Unesite ime i poslovnu adresu e-pošte. Poslat ćemo vam poveznicu za potvrdu zahtjeva za pristup Taju.

# PostHog Konektor

Status konektora: Planirano Još nije izrađeno. Tajo danas ne pokreće ovaj konektor.

| Izvorno polje | Odredišno polje | Primjer vrijednosti |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Povežite PostHog s Brevom putem Taja kako biste sinkronizirali podatke o analitici proizvoda, korisničke bihevioralne događaje i članstva u kohortama za marketinške kampanje temeljene na podacima i personalizirani angažman klijenata.

## Pregled

| Svojstvo | Vrijednost |
| --- | --- |
| **Platforma** | PostHog |
| **Kategorija** | Analitika proizvoda (Prilagođeno) |
| **Složenost postavljanja** | Srednje |
| **Službena integracija** | Ne |
| **Sinkronizirani podaci** | Događaji, Osobe, Feature zastavice, Kohorte |
| **Metoda autentifikacije** | Personal API Key / Project Token |

## Značajke

- **Sinkronizacija događaja** - Prosljeđujte PostHog analitičke događaje u Brevo za bihevioralno ciljanje
- **Sinkronizacija profila osoba** - Sinkronizirajte PostHog svojstva osoba na Brevo atribute kontakata
- **Segmentacija temeljena na kohortama** - Mapirajte PostHog kohorte na Brevo popise kontakata
- **Sinkronizacija feature zastavica** - Segmentirajte kontakte prema omogućenim feature zastavicama
- **Podaci o lijevcima** - Koristite podatke o konverzijskim lijevcima za ciljani ponovni angažman
- **Metapodaci snimke sesije** - Obogatite kontakte metrikama angažmana sesije

## Preduvjeti

Prije nego što počnete, osigurajte da imate:

1. PostHog račun (Cloud ili samo-hostovan)
2. Personal API Key iz [PostHog Postavke](https://app.posthog.com/settings/user-api-keys)
3. Vaš Project API Key (token) iz [Postavke projekta](https://app.posthog.com/project/settings)
4. Brevo račun s API pristupom
5. Tajo račun s dozvolama konektora

## Autentifikacija

### Personal API Key (Privatne krajnje točke)

```bash
# Generirajte na 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  # ili https://eu.posthog.com
export TAJO_API_KEY=your_tajo_api_key
export BREVO_API_KEY=your_brevo_api_key
```

```javascript
// Privatne API krajnje točke koriste Bearer autentifikaciju
const headers = {
  'Authorization': `Bearer ${process.env.POSTHOG_PERSONAL_API_KEY}`,
  'Content-Type': 'application/json'
};

// Javne krajnje točke koriste project token
const publicHeaders = {
  'Content-Type': 'application/json'
};
// Token se prosljeđuje u tijelu zahtjeva za javne krajnje točke
```

Sigurnost API ključa

Personal API ključevi pružaju potpuni pristup računu. Nikada ih ne izlažite u kodu na strani klijenta. Koristite Project API Key (token) za javne krajnje točke poput hvatanja događaja i evaluacije feature zastavica.

## Konfiguracija

### Osnovna konfiguracija

```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 * * *"  # Svakih 3 sata

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

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

### Mapiranje polja

```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
```

## API krajnje točke

| Krajnja točka | Metoda | Opis |
| --- | --- | --- |
| `{host}/api/projects/{id}/persons/` | GET | Popis osoba |
| `{host}/api/projects/{id}/events/` | GET | Popis događaja |
| `{host}/api/projects/{id}/cohorts/` | GET | Popis kohorti |
| `{host}/api/projects/{id}/feature_flags/` | GET | Popis feature zastavica |
| `{host}/api/projects/{id}/feature_flags/evaluation/` | POST | Evaluacija zastavica |
| `{host}/api/projects/{id}/insights/` | GET | Popis pohranjenih uvida |
| `{host}/api/projects/{id}/query/` | POST | Pokretanje HogQL upita |
| `{host}/i/v0/e` | POST | Hvatanje događaja (javno) |
| `{host}/decide/?v=3` | POST | Odluke feature zastavica (javno) |

## Primjeri koda

### Inicijalizacija konektora

```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'
});
```

### Sinkronizacija osoba s Brevom

```javascript
// Paginacija kroz PostHog osobe
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;
}
```

### Sinkronizacija kohorti kao Brevo popisa

```javascript
// Dohvaćanje PostHog kohorti i sinkronizacija članova s Brevo popisima
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) {
  // Dohvaćanje osoba u ovoj kohorti
  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
        }
      });
    }
  }
}
```

### Pokretanje HogQL upita za analitiku

```javascript
// Korištenje HogQL-a za upit analitičkih podataka
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]
    }
  });
}
```

## Ograničenja brzine

| Kategorija krajnje točke | Ograničenje | Napomene |
| --- | --- | --- |
| Analitičke krajnje točke | 240/min, 1.200/sat | GET osobe, događaji, uvidi |
| Krajnja točka upita | 2.400/sat | HogQL i prilagođeni upiti |
| Evaluacija feature zastavica | 600/min | Lokalna evaluacijska krajnja točka |
| CRUD krajnje točke | 480/min, 4.800/sat | Operacije stvaranja, ažuriranja, brisanja |
| Javne krajnje točke (hvatanje) | Neograničeno | Hvatanje događaja, odluke zastavica |

Skupni izvozi

Za izvoz podataka o događajima u velikom opsegu, koristite PostHog funkciju skupnih izvoza umjesto API-ja. Skupni izvozi podržavaju S3, BigQuery, Snowflake i druge destinacije.

## Rješavanje problema

| Problem | Uzrok | Rješenje |
| --- | --- | --- |
| 401 Unauthorized | Nevažeći API ključ | Provjerite Personal API Key u postavkama |
| 400 Invalid project | Pogrešan ID projekta | Provjerite ID projekta u PostHog URL-u |
| Prazan popis osoba | Nema identificiranih korisnika | Osigurajte da se poziva `posthog.identify()` |
| Nedostaju svojstva | Svojstva nisu postavljena | Provjerite `$set` pozive u klijentskom SDK-u |
| Ograničenje brzine 429 | Previše zahtjeva | Implementirajte povratak, provjerite zaglavlja ograničenja brzine |

### Način otklanjanja grešaka

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

## Preporučene prakse

1. **Identificirajte korisnike** - Uvijek pozivajte `posthog.identify()` s e-mailom za omogućavanje sinkronizacije osoba
2. **Koristite kohorte za segmentaciju** - Iskoristite PostHog bihevioralne kohorte za Brevo popise
3. **Skupni API zahtjevi** - Koristite paginaciju i skupnu obradu za velike skupove podataka
4. **Koristite HogQL za složene upite** - Izvlačite prilagođenu analitiku s SQL-sličnim upitima
5. **Postavite skupne izvoza** - Za velike volumene podataka, preferirajte skupne izvoza nad API anketiranjem
6. **Filtrirajte relevantne događaje** - Sinkronizirajte samo marketinški relevantne događaje za smanjenje šuma

## Sigurnost

- **Personal API Key** - Opsežna Bearer token autentifikacija
- **Project token** - Javni token samo za operacije na strani klijenta
- **Samo HTTPS** - Sve krajnje točke zahtijevaju TLS enkripciju
- **IP dopuštanje** - Dostupno za samo-hostovane instance
- **Opseženje ključeva** - Stvarajte API ključeve s određenim opsezima dozvola
- **GitHub skeniranje tajni** - PostHog partnerira s GitHubom za otkrivanje procurjelih ključeva

## Povezani resursi

- [Optimizely Konektor](https://tajo.io/hr/docs/connectors/custom/optimizely)
- [Segment Konektor](https://tajo.io/hr/docs/connectors/custom/segment)
- [Snowflake Konektor](https://tajo.io/hr/docs/connectors/custom/snowflake)
- [PostHog API dokumentacija](https://posthog.com/docs/api)
