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.

Screenshot 2025-11-09 at 12.41.47 PM.png
Screenshot 2025-11-09 at 12.41.47 PM.png

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:

  1. Maak de schema's KLAVIYO_TMP en KLAVIYO_IMPORT_FROM_DWH aan
  2. Maak een speciale servicegebruiker aan voor Klaviyo
  3. Verleen machtigingen met het principe van minimale rechten
  4. (Optioneel) Valideer machtigingen en connectiviteit
  5. Verbind Redshift met Klaviyo en begin met het maken van synchronisaties

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 in de database die Redshift zal gebruiken voor Klaviyo:

auto
-- 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.

auto
-- 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:

auto
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)

auto
-- 1) Allow temporary tables
GRANT TEMPORARY ON DATABASE your_database TO ROLE klaviyo_data_transfer_role;

-- 2) 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;

-- 3) Read-only access to 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 in the future

-- 3a) Grant SELECT on specific views (repeat as needed)
GRANT SELECT ON VIEW klaviyo_import_from_dwh.example_view_name TO ROLE klaviyo_data_transfer_role;

(Optioneel) Verifieer je installatie

Voer een paar snelle controles uit als de Klaviyo-gebruiker om te bevestigen dat de machtigingen correct zijn.

auto
-- Switch to the target database
SET search_path TO klaviyo_tmp;

-- 4.1 Validate create/read in KLAVIYO_TMP
CREATE TABLE IF NOT EXISTS permission_check (id INT);
INSERT INTO permission_check VALUES (1);
SELECT COUNT(*) FROM permission_check;  -- expect 1
DROP TABLE permission_check;

-- 4.2 Confirm visibility of import tables
SET search_path TO klaviyo_import_from_dwh;
SELECT tablename FROM pg_table_def
WHERE schemaname = 'klaviyo_import_from_dwh'
LIMIT 25;

-- 4.3 Confirm SELECT on a source table or view
SELECT * FROM klaviyo_import_from_dwh.EXAMPLE_TABLE;

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:

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

Bereid 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 voor aanmaak of laatste update per rij toe (bijv. inserted_at, updated_at, modified_at).
  • 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 identificatiecodes: Gebruik dezelfde profiel-ID's (email, phone, external_id, enz.) in alle importtabellen om duplicaten te voorkomen.
  • Toestemmingsindelingen: Volg bij het synchroniseren van toestemmingsgegevens dezelfde geldige waarden/indelingen als die worden gebruikt bij bestands- of SFTP-uploads.
  • Prestaties: Overweeg sort- of dist-keys op je timestampkolom voor efficiënte incrementele reads.
  • Weergaven: Je kunt importeren uit tabellen of weergaven, zolang een eenvoudige SELECT werkt voor de Klaviyo-gebruiker.

Redshift verbinden met Klaviyo

  1. Open in Klaviyo de linkerzijbalk en ga naar Geavanceerd → Synchroniseren.
  2. Klik op Synchronisatie aanmaken.
  3. Selecteer Gegevens importeren uit je datawarehouse.
  4. Kies Redshift.
  5. Klik op Verbinding maken met Redshift en voer de volgende verbindingsgegevens in:

Veld

Beschrijving

Host

Je Redshift-eindpunt (bijv. example-cluster.abc123.us-east-1.redshift.amazonaws.com)

Poort

5439 (of je aangepaste poort)

Database

De database met klaviyo_tmp en klaviyo_import_from_dwh

Gebruikersnaam / wachtwoord

De inloggegevens van de Klaviyo Service-gebruiker

Nadat je verbinding hebt gemaakt, test Klaviyo je inloggegevens en netwerkconnectiviteit. Zodra dit is geverifieerd, kun je synchronisaties maken en tabellen of weergaven selecteren uit klaviyo_import_from_dwh.

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_dwh staan.
  • Bevestig dat de Klaviyo-gebruiker USAGE heeft op het schema en SELECT op 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.
  • Beperk de Klaviyo-gebruiker tot de twee bovenstaande schema's en verleen USAGE alleen waar nodig.
  • 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 uit meerdere Redshift-databases importeren?
Ja. Maak de twee schema's in elke database en koppel objecten uit elke database als afzonderlijke synchronisaties.

Kan ik gematerialiseerde weergaven gebruiken?
Ja. Verleen SELECT op de gematerialiseerde weergave aan de Klaviyo-gebruiker.

Bijlage: voorbeeld-DDL voor een eenvoudige importtabel

auto
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)
Was dit artikel nuttig?
Gebruik dit formulier alleen voor feedback op artikelen. Meer informatie over hoe je contact opneemt met support.

Ontdek meer van Klaviyo

Community
Maak contact met collega's, partners en Klaviyo-experts om inspiratie op te doen, inzichten te delen en antwoorden te krijgen op al je vragen.
Partners
Huur een Klaviyo-gecertificeerde expert in om je te helpen met een specifieke taak of voor doorlopend marketingbeheer.
Support

Krijg ondersteuning via je account.

E-mailsupport (gratis proefperiodes en betaalde accounts) 24/7 beschikbaar

Chat-/virtuele assistentie
Beschikbaarheid varieert per locatie en type abonnement