Conector PostHog

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ă

ProprietateValoare
PlatformăPostHog
CategorieAnalitica produsului (Personalizat)
Complexitate configurareMedie
Integrare oficialăNu
Date sincronizateEvenimente, Persoane, Fanioane de funcționalități, Cohorte
Metodă de autentificareCheie 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
  3. Cheia API a proiectului (token) din Project Settings
  4. Un cont Brevo cu acces API
  5. Un cont Tajo cu permisiuni de conector

Autentificare

Cheie API personală (Puncte finale private)

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

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ă

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

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 finalMetodăDescriere
{host}/api/projects/{id}/persons/GETListează persoanele
{host}/api/projects/{id}/events/GETListează evenimentele
{host}/api/projects/{id}/cohorts/GETListează cohortele
{host}/api/projects/{id}/feature_flags/GETListează fanioanele de funcționalități
{host}/api/projects/{id}/feature_flags/evaluation/POSTEvaluează fanionele
{host}/api/projects/{id}/insights/GETListează informațiile salvate
{host}/api/projects/{id}/query/POSTExecută interogări HogQL
{host}/i/v0/ePOSTCapturează evenimente (public)
{host}/decide/?v=3POSTDecizii fanioane funcționalități (public)

Exemple de cod

Inițializare conector

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

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

// 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ă

// 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 finalLimităNote
Puncte finale analiză240/min, 1.200/orăGET persoane, evenimente, informații
Punct final interogare2.400/orăHogQL și interogări personalizate
Evaluare fanioane funcționalități600/minPunct final evaluare locală
Puncte finale CRUD480/min, 4.800/orăOperații de creare, actualizare, ștergere
Puncte finale publice (captură)NelimitatCaptură 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 NeautorizatCheie API invalidăVerificați Cheia API personală în setări
400 Proiect invalidID proiect greșitVerificați ID-ul proiectului în URL-ul PostHog
Listă persoane goalăNiciun utilizator identificatAsigurați-vă că posthog.identify() este apelat
Proprietăți lipsăProprietăți nesetateVerificați apelurile $set în SDK-ul client
Limită rată 429Prea multe cereriImplementați backoff, verificați anteturile limitei de rată

Modul de depanare

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

Subscribe to updates

developer-docs

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

auto-detect
Asistent AI

Bună! Întreabă-mă orice despre documentație.