Konektor PostHog

Propojte PostHog s Brevo přes Tajo pro synchronizaci dat produktové analytiky, událostí chování uživatelů a členství v kohortách pro marketingové kampaně řízené daty a personalizované zapojení zákazníků.

Přehled

VlastnostHodnota
PlatformaPostHog
KategorieProduktová analytika (Vlastní)
Složitost nastaveníStřední
Oficiální integraceNe
Synchronizovaná dataUdálosti, Osoby, Příznaky funkcí, Kohorty
Metoda ověřeníOsobní API klíč / Token projektu

Funkce

  • Synchronizace událostí – Přeposílejte analytické události PostHog do Brevo pro behaviorální cílení
  • Synchronizace profilů osob – Synchronizujte vlastnosti osob PostHog na atributy kontaktů Brevo
  • Segmentace na základě kohort – Mapujte kohorty PostHog na seznamy kontaktů Brevo
  • Synchronizace příznaků funkcí – Segmentujte kontakty podle povolených příznaků funkcí
  • Data funnelů – Používejte data konverzního funnelu pro cílené opětovné zapojení
  • Metadata přehrávání relací – Obohacujte kontakty o metriky zapojení relací

Předpoklady

Než začnete, ujistěte se, že máte:

  1. Účet PostHog (Cloud nebo self-hosted)
  2. Osobní API klíč z Nastavení PostHog
  3. API klíč projektu (token) z Nastavení projektu
  4. Účet Brevo s přístupem k API
  5. Účet Tajo s oprávněními ke konektoru

Ověření

Osobní API klíč (Soukromé koncové body)

Terminal window
# Vygenerujte 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 # nebo https://eu.posthog.com
export TAJO_API_KEY=your_tajo_api_key
export BREVO_API_KEY=your_brevo_api_key
// Soukromé API koncové body používají Bearer ověření
const headers = {
'Authorization': `Bearer ${process.env.POSTHOG_PERSONAL_API_KEY}`,
'Content-Type': 'application/json'
};
// Veřejné koncové body používají token projektu
const publicHeaders = {
'Content-Type': 'application/json'
};
// Token se předává v těle požadavku pro veřejné koncové body

Bezpečnost API klíče

Osobní API klíče poskytují plný přístup k účtu. Nikdy je nezveřejňujte v klientském kódu. Používejte API klíč projektu (token) pro veřejné koncové body jako zachytávání událostí a vyhodnocení příznaků funkcí.

Konfigurace

Základní nastavení

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 * * *" # Každé 3 hodiny
event_filters:
- "$pageview"
- "purchase_completed"
- "signup_completed"
- "feature_used"
lists:
all_users: 25
active_users: 26
power_users: 27

Mapování polí

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

Koncové body API

Koncový bodMetodaPopis
{host}/api/projects/{id}/persons/GETVýpis osob
{host}/api/projects/{id}/events/GETVýpis událostí
{host}/api/projects/{id}/cohorts/GETVýpis kohort
{host}/api/projects/{id}/feature_flags/GETVýpis příznaků funkcí
{host}/api/projects/{id}/feature_flags/evaluation/POSTVyhodnocení příznaků
{host}/api/projects/{id}/insights/GETVýpis uložených přehledů
{host}/api/projects/{id}/query/POSTSpouštění HogQL dotazů
{host}/i/v0/ePOSTZachytávání událostí (veřejné)
{host}/decide/?v=3POSTRozhodnutí o příznacích funkcí (veřejné)

Příklady kódu

Inicializace konektoru

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

Synchronizace osob do Brevo

// Stránkování přes osoby PostHog
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;
}

Synchronizace kohort jako seznamů Brevo

// Získání kohort PostHog a synchronizace členů do seznamů Brevo
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) {
// Získání osob v této kohortě
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
}
});
}
}
}

Spouštění HogQL dotazů pro analytiku

// Použití HogQL pro dotazování analytických dat
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]
}
});
}

Omezení rychlosti

Kategorie koncového boduLimitPoznámky
Analytické koncové body240/min, 1 200/hodGET osoby, události, přehledy
Koncový bod dotazů2 400/hodHogQL a vlastní dotazy
Vyhodnocení příznaků funkcí600/minKoncový bod lokálního vyhodnocení
CRUD koncové body480/min, 4 800/hodOperace vytvoření, aktualizace, smazání
Veřejné koncové body (zachytávání)NeomezenoZachytávání událostí, rozhodnutí o příznacích

Dávkové exporty

Pro exporty dat událostí ve velkém měřítku používejte funkci dávkových exportů PostHog místo API. Dávkové exporty podporují S3, BigQuery, Snowflake a další cílové destinace.

Řešení problémů

ProblémPříčinaŘešení
401 UnauthorizedNeplatný API klíčOvěřte osobní API klíč v nastavení
400 Invalid projectNesprávné ID projektuZkontrolujte ID projektu v URL PostHog
Prázdný seznam osobŽádní identifikovaní uživateléZajistěte, aby bylo voláno posthog.identify()
Chybějící vlastnostiVlastnosti nejsou nastavenyOvěřte volání $set v klientském SDK
Limit rychlosti 429Příliš mnoho požadavkůImplementujte zpětné odběrání, zkontrolujte hlavičky limitu rychlosti

Režim ladění

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

Osvědčené postupy

  1. Identifikujte uživatele – Vždy volejte posthog.identify() s e-mailem pro povolení synchronizace osob
  2. Používejte kohorty pro segmentaci – Využívejte behaviorální kohorty PostHog pro seznamy Brevo
  3. Dávkujte API požadavky – Používejte stránkování a dávkové zpracování pro velké datové sady
  4. Používejte HogQL pro složité dotazy – Extrahujte vlastní analytiku pomocí SQL-like dotazů
  5. Nastavte dávkové exporty – Pro velké objemy dat upřednostňujte dávkové exporty před pollováním API
  6. Filtrujte relevantní události – Synchronizujte pouze marketingově relevantní události pro snížení šumu

Zabezpečení

  • Osobní API klíč – Ověřování Bearer tokenem s omezeným rozsahem
  • Token projektu – Veřejný token pouze pro operace na straně klienta
  • Pouze HTTPS – Všechny koncové body vyžadují šifrování TLS
  • Whitelisting IP – Dostupné pro self-hosted instance
  • Rozsah klíčů – Vytvářejte API klíče s konkrétními rozsahy oprávnění
  • Skenování tajných klíčů GitHub – PostHog spolupracuje s GitHubem na detekci uniklých klíčů

Související zdroje

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
AI asistent

Ahoj! Zeptejte se mě na dokumentaci.