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) Database machtigingen valideren
  5. 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:

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)

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.

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

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

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 toe voor het aanmaken of de laatste update per rij (bijv. inserted_at, updated_at, modified_at). Gebruik een kolom TIMESTAMP of TIMESTAMPTZ met 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 SELECT werkt voor de Klaviyo-gebruiker.

Verbind Redshift en maak een profielsynchronisatie

  1. Navigeer in Klaviyo naar Geavanceerd > Gegevensbeheer > Synchroniseren.
  2. 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.
  3. Selecteer Gegevens importeren uit je datawarehouse.
  4. Kies Amazon Redshift.
  5. 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. 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

  1. 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.
  2. Voer een unieke syncnaam in bij Naam, selecteer je tabel of weergave onder Databron en selecteer Profielen onder Gegevenstype objecten.
  3. Selecteer onder Cadans de optie Uitvoering plannen. Kies het interval onder Elke en stel daarna Startdatum, Starttijd en Tijdzone in. Klik op Volgende.
  4. 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.
  5. 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_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. 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 USAGE alleen 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

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