Advanced Klaviyo Data Platform n’est pas inclus dans l’application marketing standard de Klaviyo, et un abonnement est nécessaire pour accéder aux fonctionnalités associées. Consultez notre guide de facturation pour savoir comment acheter cet abonnement.

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

Vue d’ensemble

Ce guide accompagne les administrateurs Redshift dans la préparation d’Amazon Redshift pour Klaviyo, l’octroi des accès minimum requis et la finalisation de la connexion afin que vous puissiez importer des données de profils selon un calendrier. Vous découvrirez comment :

  1. Créer les schémas KLAVIYO_TMP et KLAVIYO_IMPORT_FROM_DWH
  2. Créez un utilisateur de service dédié pour Klaviyo
  3. Accorder des autorisations basées sur le principe du moindre privilège
  4. (Facultatif) Validez les autorisations et la connectivité
  5. Connecter Redshift à Klaviyo et commencer à créer des synchronisations

Pour en savoir plus sur le fonctionnement de l’importation depuis un entrepôt de données — y compris les objets pris en charge et les bonnes pratiques relatives à la structure des tables —, consultez Comprendre l’importation depuis un entrepôt de données dans Klaviyo.

Créer les schémas requis

Créez deux schémas dans la base de données que Redshift utilisera pour 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 – Placez ici vos tables ou vues finales, prêtes à être synchronisées. Lors de la configuration, Klaviyo répertorie les objets de ce schéma afin que vous puissiez choisir parmi eux ; n’incluez donc que les tables que vous prévoyez d’importer.
  • KLAVIYO_TMP – Utilisé exclusivement par Klaviyo pour les tables temporaires/de préproduction pendant les tâches de synchronisation. Ne modifiez pas les données ici : Klaviyo gère et nettoie automatiquement ce schéma.

Créer l’utilisateur de service Klaviyo

Créez un utilisateur de base de données dédié pour Klaviyo, avec un mot de passe robuste que vous pouvez faire tourner indépendamment.

auto
-- Replace with your own names and a strong password
CREATE USER klaviyo_data_transfer_user WITH PASSWORD 'REPLACE_WITH_STRONG_PASSWORD';

Créez un rôle pour gérer les autorisations pour l’utilisateur de service :

auto
CREATE ROLE klaviyo_data_transfer_role;
GRANT ROLE klaviyo_data_transfer_role TO klaviyo_data_transfer_user;

Stockez le nom d’utilisateur et le mot de passe en toute sécurité : vous en aurez besoin lors de la connexion de Klaviyo à Redshift.

Accordez les autorisations requises (principe du moindre privilège)

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;

(Facultatif) Vérifiez votre configuration

Effectuez quelques vérifications rapides en tant qu’utilisateur Klaviyo pour confirmer que les autorisations sont correctes.

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;

Accès au réseau

Klaviyo doit pouvoir atteindre le point de terminaison Redshift.

  • Point de terminaison Redshift public : ajoutez les adresses IP statiques de Klaviyo à la liste d’autorisation dans votre pare-feu ou votre groupe de sécurité.
  • Points de terminaison privé (p. ex., PrivateLink) : assurez la connectivité via le chemin de votre réseau interne et vos règles de sécurité.

Si vous utilisez des groupes de sécurité, autorisez l’accès entrant sur votre port Redshift (par défaut 5439) pour les plages d’adresses IP de 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

Préparez vos tableaux d’importation (structure et performances)

Assurez-vous que tous les tableaux que vous prévoyez d’importer respectent ces conventions pour des synchronisations incrémentielles précises et efficaces :

  • Colonne d’horodatage : incluez, pour chaque ligne, un horodatage de création ou de dernière mise à jour (p. ex., inserted_at, updated_at, modified_at).
  • Mises à jour monotones : l’horodatage doit augmenter chaque fois qu’une ligne change.
  • Fuseau horaire : utilisez UTC ou incluez des informations sur le fuseau horaire. Si ce paramètre est manquant, Klaviyo suppose UTC.
  • Identifiants cohérents : utilisez les mêmes identifiants de profil (email, phone, external_id, etc.) dans l’ensemble des tableaux d’importation afin d’éviter les doublons.
  • Formats de consentement : Lors de la synchronisation des données de consentement, suivez les mêmes valeurs/formats valides que ceux utilisés dans les chargements de fichiers ou SFTP.
  • Performances : envisagez des clés de tri ou de distribution sur votre colonne d’horodatage pour des lectures incrémentielles efficaces.
  • Vues: Vous pouvez importer à partir de tableaux ou de vues, tant qu’un simple SELECT fonctionne pour l’utilisateur Klaviyo.

Connecter Redshift à Klaviyo

  1. Dans Klaviyo, ouvrez la barre latérale gauche et accédez à Avancé → Synchronisation.
  2. Cliquez sur Créer une synchronisation.
  3. Sélectionnez Importer les données depuis votre entrepôt de données.
  4. Choisissez Redshift.
  5. Cliquez sur Se connecter à Redshift et saisissez les informations de connexion suivantes :

Champ

Description

Hôte

Votre point de terminaison Redshift (p. ex., example-cluster.abc123.us-east-1.redshift.amazonaws.com)

Port

5439 (ou votre port personnalisé)

Base de données

La base de données contenant klaviyo_tmp et klaviyo_import_from_dwh

Nom d’utilisateur/Mot de passe

Les identifiants d’utilisateur du Klaviyo Service

Après vous être connecté, Klaviyo testera vos identifiants et la connectivité du réseau. Une fois la vérification effectuée, vous pouvez créer des synchronisations et sélectionner des tables ou des vues depuis klaviyo_import_from_dwh.

Résolution de problèmes

Échec du test de connexion

  • Vérifiez que les règles de pare-feu ou de groupe de sécurité autorisent les IP de Klaviyo à atteindre vos points de terminaison Redshift sur le bon port.
  • Confirmez les paramètres SSL et que vous utilisez le bon points de terminaison (cluster vs workgroup), la région et le port.

Les tableaux n’apparaissent pas

  • Assurez-vous que les tableaux sont dans klaviyo_import_from_dwh.
  • Vérifiez que l’utilisateur Klaviyo dispose de USAGE sur le schéma et de SELECT sur les tableaux ou les vues.

Aucune nouvelle ligne en cours de synchronisation

  • Vérifiez que votre colonne d’horodatage se met à jour lors des modifications de ligne et qu’elle utilise l’UTC ou inclut les informations de fuseau horaire.

Erreurs d’autorisation au moment de l’exécution

  • Réexécutez la validation SQL en tant qu’utilisateur Klaviyo.
  • Réappliquez les autorisations ou les privilèges par défaut si nécessaire.

Sécurité et maintenance

  • Faites régulièrement tourner le mot de passe de l’utilisateur de service et après les changements de personnel.
  • Limitez l’utilisateur Klaviyo aux deux schémas ci-dessus, et accordez USAGE uniquement lorsque cela est nécessaire.
  • Conservez un runbook simple documentant vos instructions GRANT exactes et les plages d’IP que vous avez ajoutées à la liste d’autorisation.

FAQ

Puis-je importer depuis plusieurs bases de données Redshift ?
Oui. Créez les deux schémas dans chaque base de données et connectez des objets depuis chacune d’elles en tant que synchronisations distinctes.

Puis-je utiliser des vues matérialisées ?
Oui. Accordez SELECT sur la vue matérialisée à l’utilisateur Klaviyo.

Annexe : exemple de DDL pour une table d’importation simple

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)
Cet article vous a-t-il été utile ?
Utilisez ce formulaire uniquement pour nous faire part de vos commentaires sur cet article. Comment contacter l’assistance.

Explorer d’autres contenus Klaviyo

Communauté
Contactez des membres de votre secteur, des partenaires et des experts Klaviyo pour trouver de l’inspiration, partager des informations et obtenir des réponses à toutes vos questions.
Partenaires
Engagez un expert certifié Klaviyo pour vous aider avec une tâche spécifique ou pour la gestion continue du marketing.
Assistance

Accédez à l’assistance par l’intermédiaire de votre compte.

Assistance par e-mail (essai gratuit et comptes payants) Disponible 24 h/24, 7 j/7

Assistance par chat/virtuelle
La disponibilité varie selon la localisation et le type d’abonnement.