Beantrage frühzeitigen Zugang

Gib deinen Vornamen und deine geschäftliche E-Mail-Adresse ein. Wir senden dir einen Link, mit dem du deine Anfrage für den Tajo-Zugang bestätigst.

PostHog Connector

Connector-Status: Geplant Noch nicht gebaut. Tajo betreibt diesen Connector heute nicht.

Illustration · Beispieldaten

Sync-Beispiel

Einen Datensatz prüfen

Quelle

PostHog

Connector-Status: Geplant

Ziel

Ihr anderes Tool

Connector-Status: Eigenes Tool

QuellfeldZielfeldBeispielwert
record.id source_id record_1042
record.updated_at updated_at 2026-10-18T08:00:00Z
record.value value sample_value
  1. Entwerfen
  2. Einen Datensatz prüfen
  3. Diese Version freigeben

Der Status gilt für einzelne Connectoren und garantiert nicht, dass dieser Sync bereit ist. Felder zur Veranschaulichung. Prüfen Sie vor dem Sync das tatsächliche Schema und die Berechtigungen.

Verbinde PostHog über Tajo mit Brevo, um Produktanalyse-Daten, Nutzerverhaltens-Events und Cohort-Mitgliedschaften für datengetriebene Marketingkampagnen und personalisiertes Customer Engagement zu synchronisieren.

Überblick

EigenschaftWert
PlattformPostHog
KategorieProduct Analytics (Custom)
EinrichtungsaufwandMittel
Offizielle IntegrationNein
Synchronisierte DatenEvents, Persons, Feature Flags, Cohorts
AuthentifizierungPersonal API Key / Project Token

Funktionen

  • Event-Synchronisation - Leite PostHog-Analyse-Events an Brevo für verhaltensbasiertes Targeting weiter
  • Person-Profil-Synchronisation - Synchronisiere PostHog-Person-Eigenschaften als Brevo-Kontaktattribute
  • Cohort-basierte Segmentierung - Mappe PostHog-Cohorts auf Brevo-Kontaktlisten
  • Feature-Flag-Synchronisation - Segmentiere Kontakte nach aktivierten Feature Flags
  • Funnel-Daten - Nutze Conversion-Funnel-Daten für zielgerichtetes Re-Engagement
  • Session-Replay-Metadaten - Reichere Kontakte mit Session-Engagement-Metriken an

Voraussetzungen

Bevor du beginnst, stelle sicher, dass du Folgendes hast:

  1. Ein PostHog-Konto (Cloud oder selbst gehostet)
  2. Einen Personal API Key aus den PostHog-Einstellungen
  3. Deinen Project API Key (Token) aus den Projekt-Einstellungen
  4. Ein Brevo-Konto mit API-Zugriff
  5. Ein Tajo-Konto mit Connector-Berechtigungen

Authentifizierung

Personal API Key (Private Endpoints)

Terminal window
# 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
// 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-Schlüssel-Sicherheit

Personal API Keys bieten vollständigen Kontozugriff. Lege sie niemals in Client-seitigem Code offen. Nutze den Project API Key (Token) für öffentliche Endpoints wie Event-Capture und Feature-Flag-Evaluation.

Konfiguration

Grundeinrichtung

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

Feld-Mapping

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

EndpointMethodeBeschreibung
{host}/api/projects/{id}/persons/GETPersons auflisten
{host}/api/projects/{id}/events/GETEvents auflisten
{host}/api/projects/{id}/cohorts/GETCohorts auflisten
{host}/api/projects/{id}/feature_flags/GETFeature Flags auflisten
{host}/api/projects/{id}/feature_flags/evaluation/POSTFlags evaluieren
{host}/api/projects/{id}/insights/GETGespeicherte Insights auflisten
{host}/api/projects/{id}/query/POSTHogQL-Queries ausführen
{host}/i/v0/ePOSTEvents erfassen (öffentlich)
{host}/decide/?v=3POSTFeature-Flag-Decisions (öffentlich)

Code-Beispiele

Connector initialisieren

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

Persons mit Brevo synchronisieren

// 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 als Brevo-Listen synchronisieren

// 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-Queries für Analysen ausführen

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

Rate Limits

Endpoint-KategorieLimitHinweise
Analytics-Endpoints240/Min, 1.200/StdGET persons, events, insights
Query-Endpoint2.400/StdHogQL und Custom Queries
Feature-Flag-Evaluation600/MinLokaler Evaluation-Endpoint
CRUD-Endpoints480/Min, 4.800/StdCreate-, Update-, Delete-Operationen
Öffentliche Endpoints (Capture)UnbegrenztEvent-Capture, Flag-Decisions

Batch Exports

Nutze für umfangreiche Event-Daten-Exporte das Batch-Export-Feature von PostHog statt der API. Batch Exports unterstützen S3, BigQuery, Snowflake und weitere Ziele.

Fehlerbehebung

ProblemUrsacheLösung
401 UnauthorizedUngültiger API-SchlüsselPersonal API Key in den Einstellungen prüfen
400 Invalid projectFalsche Projekt-IDProjekt-ID in der PostHog-URL prüfen
Leere Persons-ListeKeine identifizierten Nutzer:innenSicherstellen, dass posthog.identify() aufgerufen wird
Fehlende PropertiesProperties nicht gesetzt$set-Aufrufe im Client-SDK prüfen
Rate Limit 429Zu viele AnfragenBackoff implementieren, Rate-Limit-Header prüfen

Debug-Modus

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

Best Practices

  1. Nutzer:innen identifizieren - Rufe immer posthog.identify() mit E-Mail auf, um Person-Synchronisation zu ermöglichen
  2. Cohorts zur Segmentierung nutzen - Nutze die verhaltensbasierten Cohorts von PostHog für Brevo-Listen
  3. API-Anfragen bündeln - Nutze Pagination und Batch-Verarbeitung für große Datensätze
  4. HogQL für komplexe Queries nutzen - Extrahiere Custom Analytics mit SQL-ähnlichen Queries
  5. Batch Exports einrichten - Bei großen Datenmengen Batch Exports gegenüber API-Polling bevorzugen
  6. Relevante Events filtern - Synchronisiere nur marketingrelevante Events, um Rauschen zu reduzieren

Sicherheit

  • Personal API Key - Gescoptes Bearer-Token zur Authentifizierung
  • Project Token - Öffentlicher Token nur für Client-seitige Operationen
  • Nur HTTPS - Alle Endpoints erfordern TLS-Verschlüsselung
  • IP-Allowlisting - Verfügbar für selbst gehostete Instanzen
  • Key-Scoping - Erstelle API-Schlüssel mit spezifischen Berechtigungs-Scopes
  • GitHub Secret Scanning - PostHog arbeitet mit GitHub zur Erkennung durchgesickerter Schlüssel zusammen

Verwandte Ressourcen

Beantrage frühzeitigen Zugang

Gib deinen Vornamen und deine geschäftliche E-Mail-Adresse ein. Wir senden dir einen Link, mit dem du deine Anfrage für den Tajo-Zugang bestätigst.

AI-Assistent

Hallo! Fragen Sie mich alles über die Dokumentation.

Diese Seite als Markdown: posthog.md

Markdown wird geladen …
In Claude öffnen In ChatGPT öffnen