PostHog Connector

Poveži PostHog z Brevo prek Tajo za sinhronizacijo podatkov produktne analitike, vedenjskih événements uporabnikov in členstev v kohortah za marketinške kampanje, ki temeljijo na podatkih, in personalizirano angažiranje strank.

Pregled

LastnostVrednost
PlatformaPostHog
KategorijaProduktna analitika (po meri)
Zahtevnost nastavitveSrednja
Uradna integracijaNe
Sinhronizirani podatkiDogodki, osebe, zastavice funkcij, kohorte
Metoda avtentikacijeOsebni API ključ / projektni žeton

Funkcionalnosti

  • Sinhronizacija événements – posreduj analitične événements PostHog v Brevo za vedenjsko ciljanje
  • Sinhronizacija profilov oseb – sinhronizacija lastnosti oseb PostHog v atribute stikov Brevo
  • Segmentacija na osnovi kohort – preslikaj kohorte PostHog na sezname stikov Brevo
  • Sinhronizacija zastavic funkcij – segmentiraj stike glede na omogočene zastavice funkcij
  • Podatki o lijakih – za ciljano ponovno angažiranje uporabi podatke o konverzijskem lijaku
  • Metapodatki posnetkov sej – obogati stike z meritvami angažiranosti seje

Predpogoji

Preden začneš, se prepričaj, da imaš:

  1. Račun PostHog (Cloud ali gostovan sam)
  2. Osebni API ključ iz Nastavitev PostHog
  3. Projektni API ključ (žeton) iz Nastavitev projekta
  4. Brevo račun z dostopom do API
  5. Tajo račun z dovoljenji za konektorje

Avtentikacija

Osebni API ključ (zasebne končne točke)

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

Varnost API ključa

Osebni API ključi zagotavljajo popoln dostop do računa. Nikoli jih ne izpostavljaj v kodi na strani odjemalca. Za javne končne točke, kot sta zajemanje événements in ocenjevanje zastavic funkcij, uporabi projektni API ključ (žeton).

Konfiguracija

Osnovna nastavitev

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

Preslikava polj

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

Končne točke API

Končna točkaMetodaOpis
{host}/api/projects/{id}/persons/GETSeznam oseb
{host}/api/projects/{id}/events/GETSeznam événements
{host}/api/projects/{id}/cohorts/GETSeznam kohort
{host}/api/projects/{id}/feature_flags/GETSeznam zastavic funkcij
{host}/api/projects/{id}/feature_flags/evaluation/POSTOceni zastavice
{host}/api/projects/{id}/insights/GETSeznam shranjenih vpogledov
{host}/api/projects/{id}/query/POSTIzvajaj poizvedbe HogQL
{host}/i/v0/ePOSTZajemi événements (javno)
{host}/decide/?v=3POSTOdločitve zastavic funkcij (javno)

Primeri kode

Inicializacija konektorja

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

Sinhronizacija oseb z Brevo

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

Sinhronizacija kohort kot seznamov Brevo

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

Izvajanje poizvedb HogQL za analitiko

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

Omejitve hitrosti

Kategorija končnih točkOmejitevOpombe
Analitične končne točke240/min, 1.200/uroGET osebe, événements, vpogledi
Končna točka poizvedbe2.400/uroHogQL in poizvedbe po meri
Ocenjevanje zastavic funkcij600/minLokalna končna točka za ocenjevanje
CRUD končne točke480/min, 4.800/uroUstvarjanje, posodabljanje, brisanje
Javne končne točke (zajem)NeomejenoZajem événements, odločitve zastavic

Paketni izvozi

Za izvoz podatkov o événements v velikem obsegu namesto API-ja uporabi funkcijo paketnih izvozov PostHog. Paketni izvozi podpirajo S3, BigQuery, Snowflake in druge destinacije.

Odpravljanje težav

TežavaVzrokRešitev
401 UnauthorizedNeveljaven API ključPotrdi Osebni API ključ v nastavitvah
400 Invalid projectNapačen ID projektaPreveri ID projekta v URL PostHog
Prazen seznam osebNi identificiranih uporabnikovZagotovi, da se kliče posthog.identify()
Manjkajo lastnostiLastnosti niso nastavljenePreveri klice $set v SDK odjemalca
Omejitev hitrosti 429Preveč zahtevkovImplementiraj odlog, preveri glave omejitev hitrosti

Način odpravljanja napak

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

Najboljše prakse

  1. Identificiraj uporabnike – vedno pokliči posthog.identify() z e-mailom za omogočanje sinhronizacije oseb
  2. Za segmentacijo uporabi kohorte – izkoristi vedenjske kohorte PostHog za sezname Brevo
  3. Paketni API zahtevki – za velike nabore podatkov uporabi paginacijo in paketno obdelavo
  4. Za kompleksne poizvedbe uporabi HogQL – z SQL-podobnimi poizvedbami ekstrahiraj analitiko po meri
  5. Nastavi paketne izvoze – za velike obsege podatkov daj prednost paketnim izvozom pred anketiranjem API
  6. Filtriraj relevantne événements – sinhronizacija samo marketinško relevantnih événements za zmanjšanje šuma

Varnost

  • Osebni API ključ – avtentikacija z žetonom prinosnika z omejenim obsegom
  • Projektni žeton – javni žeton samo za operacije na strani odjemalca
  • Samo HTTPS – vse končne točke zahtevajo šifriranje TLS
  • Dovoljeni IP-ji – na voljo za samogostovane instance
  • Obseg ključev – ustvari API ključe s specifičnimi obsegi dovoljenj
  • Odkrivanje skrivnosti GitHub – PostHog sodeluje z GitHub pri odkrivanju uhajajočih ključev

Povezani viri

Subscribe to updates

developer-docs

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

auto-detect
AI pomočnik

Živjo! Vprašajte me o dokumentaciji.