PostHog-kobling

Koble PostHog til Brevo gjennom Tajo for å synkronisere produktanalysedata, brukeratferdshendelser og kohortmedlemskap for datadrevne markedsføringskampanjer og personalisert kundeengasjement.

Oversikt

EgenskapVerdi
PlattformPostHog
KategoriProduktanalyse (Custom)
OppsettskompleksitetModerat
Offisiell integrasjonNei
Synkroniserte dataHendelser, personer, feature flags, kohorter
AutentiseringsmetodePersonlig API-nøkkel / Project Token

Funksjoner

  • Hendelsessynkronisering - Videresend PostHog-analysehendelser til Brevo for atferdsmålretting
  • Synkronisering av personprofiler - Synkroniser PostHog-personegenskaper til Brevo-kontaktattributter
  • Kohortbasert segmentering - Mapp PostHog-kohorter til Brevo-kontaktlister
  • Feature flag-synkronisering - Segmenter kontakter etter aktiverte feature flags
  • Trakt-data - Bruk konverteringstraktdata for målrettet re-engasjement
  • Metadata for økt-replay - Berik kontakter med metrikker for øktengasjement

Forutsetninger

Før du begynner, sørg for at du har:

  1. En PostHog-konto (Cloud eller selvhostet)
  2. En personlig API-nøkkel fra PostHog Settings
  3. Din Project API Key (token) fra Project Settings
  4. En Brevo-konto med API-tilgang
  5. En Tajo-konto med konnektor-rettigheter

Autentisering

Personlig API-nøkkel (private endepunkter)

Terminal window
# Generer på 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 # eller https://eu.posthog.com
export TAJO_API_KEY=your_tajo_api_key
export BREVO_API_KEY=your_brevo_api_key
// Private API-endepunkter bruker Bearer-autentisering
const headers = {
'Authorization': `Bearer ${process.env.POSTHOG_PERSONAL_API_KEY}`,
'Content-Type': 'application/json'
};
// Offentlige endepunkter bruker Project Token
const publicHeaders = {
'Content-Type': 'application/json'
};
// Tokenet sendes i forespørselsbody for offentlige endepunkter

API-nøkkelsikkerhet

Personlige API-nøkler gir full kontotilgang. Eksponer dem aldri i klientside-kode. Bruk Project API Key (token) for offentlige endepunkter som hendelsesfangst og feature flag-evaluering.

Konfigurasjon

Grunnleggende oppsett

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 * * *" # Hver 3. time
event_filters:
- "$pageview"
- "purchase_completed"
- "signup_completed"
- "feature_used"
lists:
all_users: 25
active_users: 26
power_users: 27

Feltmapping

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

EndepunktMetodeBeskrivelse
{host}/api/projects/{id}/persons/GETList personer
{host}/api/projects/{id}/events/GETList hendelser
{host}/api/projects/{id}/cohorts/GETList kohorter
{host}/api/projects/{id}/feature_flags/GETList feature flags
{host}/api/projects/{id}/feature_flags/evaluation/POSTEvaluer flags
{host}/api/projects/{id}/insights/GETList lagrede insights
{host}/api/projects/{id}/query/POSTKjør HogQL-spørringer
{host}/i/v0/ePOSTFang opp hendelser (offentlig)
{host}/decide/?v=3POSTFeature flag-beslutninger (offentlig)

Kodeeksempler

Initialiser kobling

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

Synkroniser personer til Brevo

// Paginer gjennom PostHog-personer
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;
}

Synkroniser kohorter som Brevo-lister

// Hent PostHog-kohorter og synkroniser medlemmer til Brevo-lister
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) {
// Hent personer i denne kohorten
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
}
});
}
}
}

Kjør HogQL-spørringer for analyse

// Bruk HogQL for å spørre om analysedata
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]
}
});
}

Ratebegrensninger

EndepunktskategoriGrenseMerknader
Analyseendepunkter240/min, 1 200/timeGET personer, hendelser, insights
Query-endepunkt2 400/timeHogQL og egendefinerte spørringer
Feature flag-evaluering600/minLokalt evalueringsendepunkt
CRUD-endepunkter480/min, 4 800/timeOpprett, oppdater, slett-operasjoner
Offentlige endepunkter (capture)UbegrensetHendelsesfangst, flag-beslutninger

Batch-eksport

For storskala eksport av hendelsesdata, bruk PostHogs batch export-funksjon i stedet for API-et. Batch-eksport støtter S3, BigQuery, Snowflake og andre destinasjoner.

Feilsøking

ProblemÅrsakLøsning
401 UnauthorizedUgyldig API-nøkkelVerifiser personlig API-nøkkel i innstillinger
400 Invalid projectFeil prosjekt-IDSjekk prosjekt-ID i PostHog-URL
Tom personlisteIngen identifiserte brukereSørg for at posthog.identify() kalles
Manglende egenskaperEgenskaper ikke sattVerifiser $set-kall i klient-SDK
Ratebegrensning 429For mange forespørslerImplementer backoff, sjekk ratebegrensningsheadere

Feilsøkingsmodus

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

Beste praksis

  1. Identifiser brukere - Kall alltid posthog.identify() med e-post for å muliggjøre personsynkronisering
  2. Bruk kohorter for segmentering - Utnytt PostHogs atferdskohorter for Brevo-lister
  3. Batch API-forespørsler - Bruk paginering og batch-prosessering for store datasett
  4. Bruk HogQL for komplekse spørringer - Trekk ut egendefinert analyse med SQL-lignende spørringer
  5. Sett opp batch-eksport - For store datavolumer, foretrekk batch-eksport fremfor API-polling
  6. Filtrer relevante hendelser - Synkroniser kun markedsføringsrelevante hendelser for å redusere støy

Sikkerhet

  • Personlig API-nøkkel - Avgrenset Bearer-tokenautentisering
  • Project token - Offentlig token kun for klientside-operasjoner
  • Kun HTTPS - Alle endepunkter krever TLS-kryptering
  • IP-hviteliste - Tilgjengelig for selvhostede instanser
  • Nøkkelscoping - Opprett API-nøkler med spesifikke rettighetsscoper
  • GitHub-hemmelighetsskanning - PostHog samarbeider med GitHub for deteksjon av lekkede nøkler

Relaterte ressurser

Subscribe to updates

developer-docs

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

auto-detect
AI-assistent

Hei! Spør meg om dokumentasjonen.