Advanced Klaviyo Data Platform non è incluso nell'applicazione di marketing standard di Klaviyo e per accedere alle funzionalità associate è necessario un abbonamento. Visita la nostra guida alla fatturazione per scoprire come acquistare questo piano.

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

Panoramica

Questa guida accompagna gli amministratori di Redshift nella preparazione di Amazon Redshift per Klaviyo, nella concessione dell'accesso minimo necessario e nel completamento della connessione, così puoi importare i dati del profilo in base a una pianificazione. Scoprirai come:

  1. Crea gli schemi KLAVIYO_TMP e KLAVIYO_IMPORT_FROM_DWH
  2. Crea un utente di servizio dedicato per Klaviyo
  3. Concedi autorizzazioni con il minimo privilegio
  4. (Facoltativo) Convalida autorizzazioni e connettività
  5. Collega Redshift a Klaviyo e inizia a creare sincronizzazioni

Per maggiori informazioni su come funziona l'importazione del magazzino dati, inclusi gli oggetti supportati e le best practice per la struttura delle tabelle, consulta Comprendere l'importazione del magazzino dati in Klaviyo.

Crea schemi obbligatori

Crea due schemi nel database che Redshift userà per 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 – Inserisci qui le tabelle o le viste finali, pronte per la sincronizzazione. Durante la configurazione, Klaviyo elenca gli oggetti in questo schema tra cui puoi scegliere, quindi includi solo le tabelle che intendi importare.
  • KLAVIYO_TMP – Utilizzato esclusivamente da Klaviyo per tabelle temporanee/di staging durante i processi di sincronizzazione. Non modificare i dati qui: Klaviyo gestisce e ripulisce automaticamente questo schema.

Crea l’utente Klaviyo Service

Crea un utente database dedicato per Klaviyo con una password sicura che puoi ruotare in modo indipendente.

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

Crea un ruolo per gestire le autorizzazioni per l'utente del servizio:

auto
CREATE ROLE klaviyo_data_transfer_role;
GRANT ROLE klaviyo_data_transfer_role TO klaviyo_data_transfer_user;

Conserva nome utente e password in modo sicuro: li userai quando collegherai Klaviyo a Redshift.

Concedi le autorizzazioni necessarie (privilegio minimo)

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;

(Facoltativo) Verifica la configurazione

Esegui alcuni rapidi controlli come utente Klaviyo per confermare che le autorizzazioni siano corrette.

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;

Accesso alla rete

Klaviyo deve poter raggiungere il tuo endpoint Redshift.

  • Endpoint Redshift pubblico: inserisci nella lista consentita gli IP statici di Klaviyo nel firewall o nel gruppo di sicurezza.
  • Endpoint privato (ad es., PrivateLink): assicurati della connettività tramite il percorso di rete interno e i criteri di sicurezza.

Se utilizzi gruppi di sicurezza, consenti l'accesso in entrata sulla tua porta Redshift (impostazione predefinita 5439) per gli intervalli IP di 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

Prepara le tue tabelle di importazione (struttura e prestazioni)

Assicurati che tutte le tabelle che intendi importare rispettino queste convenzioni per sincronizzazioni incrementali accurate ed efficienti:

  • Colonna timestamp: includi un timestamp di creazione o dell’ultimo aggiornamento per riga (ad es. inserted_at, updated_at, modified_at).
  • Aggiornamenti monotoni: la marca temporale dovrebbe aumentare ogni volta che una riga cambia.
  • Fuso orario: usa UTC o includi le informazioni sul fuso orario. Se mancano, Klaviyo presume UTC.
  • Identificatori coerenti: utilizza gli stessi identificatori del profilo (email, phone, external_id e così via) nelle tabelle di importazione per evitare duplicati.
  • Formati di consenso: quando sincronizzi i dati di consenso, segui gli stessi valori/formati validi usati nei caricamenti di file o SFTP.
  • Prestazioni: prendi in considerazione le chiavi sort o dist nella colonna timestamp per letture incrementali efficienti.
  • Viste: puoi importare da tabelle o viste, purché per l’utente Klaviyo funzioni un semplice SELECT.

Collega Redshift a Klaviyo

  1. In Klaviyo, apri la barra laterale sinistra e vai su Avanzate → Sincronizzazione.
  2. Clicca su Crea sincronizzazione.
  3. Seleziona Importa i dati dal tuo magazzino dati.
  4. Scegli Redshift.
  5. Fai clic su Collega a Redshift e inserisci i seguenti dettagli di connessione:

Campo

Descrizione

Host

Il tuo endpoint Redshift (ad es., example-cluster.abc123.us-east-1.redshift.amazonaws.com)

Porta

5439 (o la tua porta personalizzata)

Database

Il database contenente klaviyo_tmp e klaviyo_import_from_dwh

Nome utente/Password

Le credenziali utente del Klaviyo Service

Dopo la connessione, Klaviyo testerà le tue credenziali e la connettività di rete. Una volta verificato, puoi creare sincronizzazioni e selezionare tabelle o viste da klaviyo_import_from_dwh.

Suggerimenti per la risoluzione dei problemi

Il test di connessione non riesce

  • Verifica che le regole del firewall o del gruppo di sicurezza consentano agli IP di Klaviyo di raggiungere l'endpoint Redshift sulla porta corretta.
  • Conferma le impostazioni SSL e che stai usando l’endpoint corretto (cluster vs. workgroup), l’area geografica e la porta.

Le tabelle non vengono visualizzate

  • Assicurati che le tabelle siano in klaviyo_import_from_dwh.
  • Conferma che l’utente Klaviyo disponga di USAGE nello schema e di SELECT nelle tabelle o nelle viste.

Nessuna nuova riga in sincronizzazione

  • Verifica che la colonna del timestamp si aggiorni quando cambiano le righe e che usi UTC o includa informazioni sul fuso orario.

Errori di autorizzazione in fase di esecuzione

  • Esegui di nuovo l’SQL di convalida come utente Klaviyo.
  • Se necessario, applica di nuovo le autorizzazioni o i privilegi predefiniti.

Sicurezza e manutenzione

  • Ruota regolarmente la password dell’utente di servizio e dopo i cambiamenti del personale.
  • Limita l'utente Klaviyo ai due schemi sopra e concedi USAGE solo dove richiesto.
  • Mantieni un runbook semplice che documenti le tue esatte istruzioni GRANT e gli intervalli IP che hai inserito nell'allowlist.

Domande frequenti

Posso importare da più database Redshift?
Sì. Crea i due schemi in ogni database e collega gli oggetti di ciascuno come sincronizzazioni separate.

Posso usare le viste materializzate?
Sì. Concedi SELECT sulla vista materializzata all'utente Klaviyo.

Appendice: esempio di DDL per una semplice tabella di importazione

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)
Questo articolo è stato utile?
Usa questo modulo solo per il feedback sull'articolo. Scopri come contattare l'assistenza.

Esplora altri contenuti di Klaviyo

Community
Entra in contatto con altre aziende simili, partner ed esperti di Klaviyo per trovare ispirazione, condividere approfondimenti e ottenere risposte a tutte le tue domande.
Partner
Assumi un esperto certificato Klaviyo per aiutarti con un compito specifico o per la gestione continua del marketing.
Assistenza

Accedi all'assistenza tramite il tuo account.

Assistenza via e-mail (prova gratuita e account a pagamento) Disponibile 24 ore su 24, 7 giorni su 7

Chat/assistente virtuale
La disponibilità può variare in base alla località e al tipo di piano