Klaviyo en Redshift verbinden
Advanced Klaviyo Data Platform is niet inbegrepen in Klaviyo’s standaard marketingtoepassing en je hebt een abonnement nodig om toegang te krijgen tot de bijbehorende functionaliteit. Ga naar onze factureringsgids om te lezen hoe je dit abonnement kunt aanschaffen.

Overzicht
Deze handleiding begeleidt Redshift-beheerders bij het voorbereiden van Amazon Redshift voor Klaviyo, het verlenen van de minimaal vereiste toegang en het voltooien van de verbinding, zodat je profielgegevens volgens een planning kunt importeren. Je leert hoe je:
- Maak de schema's
KLAVIYO_TMPenKLAVIYO_IMPORT_FROM_DWHaan - Maak een speciale servicegebruiker aan voor Klaviyo
- Verleen machtigingen met het principe van minimale rechten
- (Optioneel) Database machtigingen valideren
- Verbind Redshift met Klaviyo en maak een geplande profielsynchronisatie
Voor achtergrondinformatie over hoe import uit datawarehouse werkt — inclusief ondersteunde objecten en best practices voor tabelstructuur — zie Inzicht in import uit datawarehouse in Klaviyo.
Vereiste schema's maken
Maak 2 schema’s aan in de Redshift-database die je voor Klaviyo gaat gebruiken:
-- Run as a Redshift DB admin or a role with CREATE SCHEMA
CREATE SCHEMA IF NOT EXISTS klaviyo_import_from_dwh;
CREATE SCHEMA IF NOT EXISTS klaviyo_tmp;KLAVIYO_IMPORT_FROM_DWH– Plaats hier je definitieve, klaar-om-te-synchroniseren tabellen of weergaven. Tijdens de setup toont Klaviyo objecten in dit schema waar je uit kunt kiezen, dus neem alleen de tabellen op die je wilt importeren.KLAVIYO_TMP– Wordt uitsluitend door Klaviyo gebruikt voor tijdelijke/staging-tabellen tijdens synchronisatietaken. Wijzig hier geen gegevens—Klaviyo beheert en ruimt dit schema automatisch op.
Maak de Klaviyo Service-gebruiker aan
Maak een speciale databasegebruiker voor Klaviyo aan met een sterk wachtwoord dat je onafhankelijk kunt roteren.
-- Replace with your own names and a strong password
CREATE USER klaviyo_data_transfer_user WITH PASSWORD 'REPLACE_WITH_STRONG_PASSWORD';Maak een rol aan om machtigingen voor de servicegebruiker te beheren:
CREATE ROLE klaviyo_data_transfer_role;
GRANT ROLE klaviyo_data_transfer_role TO klaviyo_data_transfer_user;Sla de gebruikersnaam en het wachtwoord veilig op—je gebruikt ze wanneer je Klaviyo met Redshift verbindt.
Vereiste machtigingen verlenen (minimale bevoegdheden)
Voer deze statements uit als Redshift-beheerder in de database die je hebt voorbereid. Deze grants zijn van toepassing op bestaande tabellen en weergaven. Verleen toegang tot nieuwe brontabellen of weergaven voordat je ze aan een sync toevoegt.
-- 1) Permissions on the staging schema Klaviyo manages
GRANT USAGE ON SCHEMA klaviyo_tmp TO ROLE klaviyo_data_transfer_role;
GRANT CREATE ON SCHEMA klaviyo_tmp TO ROLE klaviyo_data_transfer_role;
-- 2) Read-only access to existing tables and views in your import schema
GRANT USAGE ON SCHEMA klaviyo_import_from_dwh TO ROLE klaviyo_data_transfer_role;
GRANT SELECT ON ALL TABLES IN SCHEMA klaviyo_import_from_dwh TO ROLE klaviyo_data_transfer_role;
-- Remember to grant access to new tables and views in the future
-- Alternatively, grant SELECT on each specific source table or view:
-- GRANT SELECT ON TABLE klaviyo_import_from_dwh.example_view_name TO ROLE klaviyo_data_transfer_role;(Optioneel) Verifieer je installatie
Maak verbinding met de database die je hebt voorbereid als gebruiker van de Klaviyo Service en voer vervolgens deze controles uit. Vervang EXAMPLE_TABLE door een brontabel of -weergave die je wilt synchroniseren. Deze controles vervangen de stap Verbinding testen in Klaviyo niet.
-- 1) Validate create/read access in KLAVIYO_TMP
-- Use a new test table name if klaviyo_permission_check already exists
CREATE TABLE klaviyo_tmp.klaviyo_permission_check (id INT);
INSERT INTO klaviyo_tmp.klaviyo_permission_check VALUES (1);
SELECT COUNT(*) FROM klaviyo_tmp.klaviyo_permission_check; -- expect 1
DROP TABLE klaviyo_tmp.klaviyo_permission_check;
-- 2) Confirm visibility of source tables and views
SELECT DISTINCT table_name FROM information_schema.columns
WHERE table_schema = 'klaviyo_import_from_dwh'
ORDER BY table_name
LIMIT 25;
-- 3) Confirm SELECT on a source table or view
SELECT * FROM klaviyo_import_from_dwh.EXAMPLE_TABLE LIMIT 1;Netwerktoegang
Klaviyo moet je Redshift-eindpunt kunnen bereiken.
- Openbaar Redshift-eindpunt: zet de statische IP-adressen van Klaviyo op de positieve lijst in je firewall of beveiligingsgroep.
- Privé-eindpunt (bijv. PrivateLink): zorg voor connectiviteit via je interne netwerkpad en beveiligingsbeleid.
Als je beveiligingsgroepen gebruikt, sta je inkomende toegang toe op je Redshift-poort (standaard 5439) voor de IP-bereiken van Klaviyo:
184.72.183.187/32
52.206.71.52/32
3.227.146.32/32
44.198.39.11/32
35.172.58.121/32
3.228.37.244/32
54.88.219.8/32
3.214.211.176/32Bereid je importtabellen voor (structuur en prestaties)
Zorg ervoor dat alle tabellen die je wilt importeren deze conventies volgen voor nauwkeurige, efficiënte incrementele synchronisaties:
- Tijdstempelkolom: Voeg een tijdstempel toe voor het aanmaken of de laatste update per rij (bijv.
inserted_at,updated_at,modified_at). Gebruik een kolomTIMESTAMPofTIMESTAMPTZmet een waarde voor elke rij. Tekst- en DATE-kolommen zijn niet beschikbaar voor wijzigingsdetectie. - Monotone updates: de tijdstempel moet toenemen telkens wanneer een rij verandert.
- Tijdzone: gebruik UTC of voeg tijdzone-informatie toe. Als dit ontbreekt, gaat Klaviyo uit van UTC.
- Consistente identificatiegegevens: Voeg minimaal 1 profiel-id toe (
email,phone,external_id, enz.). Gebruik consistente identificatiegegevens in alle importtabellen om dubbele profielen te voorkomen. - Toestemmingsindelingen: Volg bij het synchroniseren van toestemmingsgegevens dezelfde geldige waarden/indelingen als die worden gebruikt bij bestands- of SFTP-uploads.
- Prestaties: Overweeg een sort key op je timestamp-kolom voor efficiënte incrementele reads.
- Weergaven: Je kunt importeren uit tabellen of weergaven, zolang een eenvoudige
SELECTwerkt voor de Klaviyo-gebruiker.
Verbind Redshift en maak een profielsynchronisatie
- Navigeer in Klaviyo naar Geavanceerd > Gegevensbeheer > Synchroniseren.
- Als je al een verbinding hebt geconfigureerd, klik je op Synchronisatie maken. Als dit je eerste verbinding is, ga je verder met de volgende stap.
- Selecteer Gegevens importeren uit je datawarehouse.
- Kies Amazon Redshift.
- Klik op Verbinding maken met Redshift en voer de volgende verbindingsgegevens in:
Veld | Beschrijving |
|---|---|
Naam | Voer een naam in, zoals de naam van je Redshift-database. |
Host-URL | Je Redshift-eindpunt (bijv. |
Poort | 5439 (of je aangepaste poort) |
Database | De database met |
Gebruikersnaam / wachtwoord | De inloggegevens van de Klaviyo Service-gebruiker |
- Klik op Volgende om Verbinding testen te openen en klik vervolgens op Testen. Klaviyo controleert je verbinding, vereiste schema's en stagingmachtigingen en geeft vervolgens de toegankelijke tabellen en weergaven weer in
klaviyo_import_from_dwh. Je moet minimaal 1 bron beschikbaar hebben om door te gaan. Als de test is geslaagd en er een bron beschikbaar is, klik je op Volgende. - Voer een unieke syncnaam in bij Naam, selecteer je tabel of weergave onder Databron en selecteer Profielen onder Gegevenstype objecten.
- Selecteer onder Cadans de optie Uitvoering plannen. Kies het interval onder Elke en stel daarna Startdatum, Starttijd en Tijdzone in. Klik op Volgende.
- Selecteer in Eigenschappen toewijzen je timestampkolom onder Wijzigingen detecteren > Detectie van nieuwe rijen. Wijs minimaal 1 profiel-ID en de profieleigenschappen toe die je wilt importeren. Verwijder toewijzingen voor kolommen die je niet wilt importeren. Je kunt de kolom voor wijzigingsdetectie niet ook toewijzen aan een profieleigenschap.
- Klik op Klaar om de koppeling op te slaan en te synchroniseren. Klaviyo brengt je terug naar Synchroniseren en de synchronisatie wordt uitgevoerd volgens het schema dat je hebt geselecteerd.
Tips voor probleemoplossing
Verbindingstest mislukt
- Controleer of firewall- of beveiligingsgroepsregels Klaviyo's IP's toestaan om je Redshift-eindpunt te bereiken via de juiste poort.
- Bevestig de SSL-instellingen en dat je het juiste eindpunt (cluster vs. workgroup), de juiste regio en poort gebruikt.
Tabellen worden niet weergegeven
- Zorg dat tabellen in
klaviyo_import_from_dwhstaan. - Bevestig dat de Klaviyo-gebruiker
USAGEheeft op het schema enSELECTop de tabellen of weergaven.
Geen nieuwe rijen worden gesynchroniseerd
- Controleer of je tijdstempelkolom wordt bijgewerkt bij rijwijzigingen en UTC gebruikt of tijdzone-informatie bevat.
Machtigingsfouten tijdens runtime
- Voer de validatie-SQL opnieuw uit als de Klaviyo-gebruiker.
- Verleen indien nodig opnieuw rechten of standaardprivileges.
Beveiliging en onderhoud
- Wijzig het wachtwoord van de servicegebruiker regelmatig en na personeelswisselingen. Nadat je het wachtwoord in Redshift hebt gewijzigd, werk je het bij in het tabblad Configuratie van je Klaviyo-verbinding en klik je op Opslaan.
- Beperk de Klaviyo-gebruiker tot de 2 schema's hierboven en geef
USAGEalleen waar nodig toegang. - Houd een eenvoudig runbook bij waarin je je exacte
GRANT-instructies en de IP-bereiken die je op de allowlist hebt gezet documenteert.
Veelgestelde vragen
Kan ik importeren vanuit meerdere Redshift-databases?
Ja. Maak de 2 schema’s en verleen toegang in elke database. Maak daarna in Klaviyo voor elke database een aparte Redshift-verbinding. Voeg aparte syncs toe voor de brontabellen of -views binnen elke verbinding.
Kan ik gematerialiseerde weergaven gebruiken?
Ja. Verleen SELECT op de gematerialiseerde weergave aan de Klaviyo-gebruiker.
Bijlage: voorbeeld-DDL voor een eenvoudige importtabel
CREATE TABLE klaviyo_import_from_dwh.profile_base (
external_id VARCHAR(128),
email VARCHAR(320),
phone VARCHAR(32),
first_name VARCHAR(128),
last_name VARCHAR(128),
country VARCHAR(64),
inserted_at TIMESTAMP
);
-- ensure monotonically increasing timestamp on inserts/updates
-- (use your ETL/ELT to set inserted_at = GETDATE() at load time)