---
title: "Conector PostHog"
description: "Ghid complet de integrare PostHog pentru sincronizarea analizei produselor, fanionelor de funcționalități și datelor de comportament al utilizatorilor cu Brevo prin Tajo."
url: https://tajo.io/ro/docs/connectors/custom/posthog/
markdown: https://tajo.io/ro/docs/connectors/custom/posthog.md
lang: ro-RO
robots: noindex
---

Solicită acces anticipat

Introduceți prenumele și adresa de e-mail profesională. Vă vom trimite un link pentru a confirma cererea de acces la Tajo.

# Conector PostHog

Starea conectorului: Planificat Încă neconstruit. Tajo nu rulează astăzi acest conector.

| Câmp sursă | Câmp destinație | Valoare exemplu |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Conectați PostHog la Brevo prin Tajo pentru a sincroniza datele de analiză a produselor, evenimentele de comportament ale utilizatorilor și apartenența la cohorte pentru campanii de marketing bazate pe date și implicare personalizată a clienților.

## Prezentare generală

| Proprietate | Valoare |
| --- | --- |
| **Platformă** | PostHog |
| **Categorie** | Analitica produsului (Personalizat) |
| **Complexitate configurare** | Medie |
| **Integrare oficială** | Nu |
| **Date sincronizate** | Evenimente, Persoane, Fanioane de funcționalități, Cohorte |
| **Metodă de autentificare** | Cheie API personală / Token proiect |

## Funcționalități

- **Sincronizare evenimente** - Transmiteți evenimentele de analiză PostHog la Brevo pentru targetare comportamentală
- **Sincronizare profil persoane** - Sincronizați proprietățile persoanelor PostHog la atributele de contact Brevo
- **Segmentare bazată pe cohorte** - Mapați cohortele PostHog la listele de contacte Brevo
- **Sincronizare fanioane funcționalități** - Segmentați contactele după fanioanele de funcționalități activate
- **Date de pâlnie** - Utilizați datele de pâlnie de conversie pentru re-angajare targetată
- **Metadate replay sesiune** - Îmbogățiți contactele cu metrici de implicare în sesiune

## Cerințe preliminare

Înainte de a începe, asigurați-vă că aveți:

1. Un cont PostHog (Cloud sau self-hosted)
2. O Cheie API personală din [PostHog Settings](https://app.posthog.com/settings/user-api-keys)
3. Cheia API a proiectului (token) din [Project Settings](https://app.posthog.com/project/settings)
4. Un cont Brevo cu acces API
5. Un cont Tajo cu permisiuni de conector

## Autentificare

### Cheie API personală (Puncte finale private)

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

Securitate cheie API

Cheile API personale oferă acces complet la cont. Nu le expuneți niciodată în codul client. Utilizați Cheia API a proiectului (token) pentru punctele finale publice precum captura de evenimente și evaluarea fanionelor de funcționalități.

## Configurare

### Configurare de bază

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

### Mapare câmpuri

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

## Puncte finale API

| Punct final | Metodă | Descriere |
| --- | --- | --- |
| `{host}/api/projects/{id}/persons/` | GET | Listează persoanele |
| `{host}/api/projects/{id}/events/` | GET | Listează evenimentele |
| `{host}/api/projects/{id}/cohorts/` | GET | Listează cohortele |
| `{host}/api/projects/{id}/feature_flags/` | GET | Listează fanioanele de funcționalități |
| `{host}/api/projects/{id}/feature_flags/evaluation/` | POST | Evaluează fanionele |
| `{host}/api/projects/{id}/insights/` | GET | Listează informațiile salvate |
| `{host}/api/projects/{id}/query/` | POST | Execută interogări HogQL |
| `{host}/i/v0/e` | POST | Capturează evenimente (public) |
| `{host}/decide/?v=3` | POST | Decizii fanioane funcționalități (public) |

## Exemple de cod

### Inițializare conector

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

### Sincronizare persoane cu 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;
}
```

### Sincronizare cohorte ca liste 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
        }
      });
    }
  }
}
```

### Executare interogări HogQL pentru analiză

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

## Limite de rată

| Categorie punct final | Limită | Note |
| --- | --- | --- |
| Puncte finale analiză | 240/min, 1.200/oră | GET persoane, evenimente, informații |
| Punct final interogare | 2.400/oră | HogQL și interogări personalizate |
| Evaluare fanioane funcționalități | 600/min | Punct final evaluare locală |
| Puncte finale CRUD | 480/min, 4.800/oră | Operații de creare, actualizare, ștergere |
| Puncte finale publice (captură) | Nelimitat | Captură evenimente, decizii fanioane |

Exporturi în lot

Pentru exporturi de date de evenimente la scară largă, utilizați funcția de exporturi în lot a PostHog în loc de API. Exporturile în lot suportă S3, BigQuery, Snowflake și alte destinații.

## Depanare

| Problemă | Cauză | Soluție |
| --- | --- | --- |
| 401 Neautorizat | Cheie API invalidă | Verificați Cheia API personală în setări |
| 400 Proiect invalid | ID proiect greșit | Verificați ID-ul proiectului în URL-ul PostHog |
| Listă persoane goală | Niciun utilizator identificat | Asigurați-vă că `posthog.identify()` este apelat |
| Proprietăți lipsă | Proprietăți nesetate | Verificați apelurile `$set` în SDK-ul client |
| Limită rată 429 | Prea multe cereri | Implementați backoff, verificați anteturile limitei de rată |

### Modul de depanare

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

## Bune practici

1. **Identificați utilizatorii** - Apelați întotdeauna `posthog.identify()` cu e-mail pentru a activa sincronizarea persoanelor
2. **Utilizați cohortele pentru segmentare** - Valorificați cohortele comportamentale PostHog pentru listele Brevo
3. **Grupați cererile API** - Utilizați paginare și procesare în lot pentru seturi de date mari
4. **Utilizați HogQL pentru interogări complexe** - Extrageți analize personalizate cu interogări de tip SQL
5. **Configurați exporturi în lot** - Pentru volume mari de date, preferați exporturile în lot față de interogarea API
6. **Filtrați evenimentele relevante** - Sincronizați doar evenimentele relevante pentru marketing pentru a reduce zgomotul

## Securitate

- **Cheie API personală** - Autentificare cu token Bearer cu scop limitat
- **Token proiect** - Token public numai pentru operații pe client
- **Numai HTTPS** - Toate punctele finale necesită criptare TLS
- **Allowlisting IP** - Disponibil pentru instanțe self-hosted
- **Limitare scop cheie** - Creați chei API cu scopuri de permisiuni specifice
- **Scanare secrete GitHub** - PostHog colaborează cu GitHub pentru detectarea cheilor scurse

## Resurse conexe

- [Conector Optimizely](https://tajo.io/ro/docs/connectors/custom/optimizely)
- [Conector Segment](https://tajo.io/ro/docs/connectors/custom/segment)
- [Conector Snowflake](https://tajo.io/ro/docs/connectors/custom/snowflake)
- [Documentație API PostHog](https://posthog.com/docs/api)
