Connettore OpenAI

Collega OpenAI a Brevo tramite Tajo per sfruttare generazione di contenuti AI-powered, analisi del sentiment, segmentazione intelligente e analytics predittive nei tuoi flussi di marketing automation.

Panoramica

ProprietàValore
PiattaformaOpenAI
CategoriaAI / ML (Custom)
Complessità di setupMedia
Integrazione ufficialeNo
Dati sincronizzatiContenuti, Embeddings, Insight, Predizioni
Metodo di autenticazioneAPI Key (Bearer Token)

Funzionalità

  • Generazione contenuti AI - Genera oggetti email, corpo del messaggio e CTA con i modelli GPT
  • Analisi sentiment clienti - Analizza ticket di supporto e feedback per calcolare sentiment score
  • Segmentazione smart - Usa embeddings per raggruppare i clienti per pattern di comportamento
  • Analytics predittive - Prevedi churn, LTV e propensione all’acquisto
  • Contenuti multilingua - Genera contenuti marketing in qualsiasi lingua supportata
  • Generazione immagini - Crea visual per campagne con l’integrazione DALL-E

Prerequisiti

Prima di iniziare, assicurati di avere:

  1. Un account OpenAI con accesso API
  2. Una API key dalla dashboard OpenAI
  3. Un account Brevo con accesso API
  4. Un account Tajo con permessi sui connettori
  5. Crediti API OpenAI sufficienti per l’uso previsto

Autenticazione

Autenticazione con API Key

OpenAI usa l’autenticazione Bearer token per tutte le richieste API:

Terminal window
# Imposta le tue API key
export OPENAI_API_KEY=sk-your-api-key
export TAJO_API_KEY=your_tajo_api_key
export BREVO_API_KEY=your_brevo_api_key
// Tutte le richieste richiedono l'header Authorization
const headers = {
'Authorization': `Bearer ${process.env.OPENAI_API_KEY}`,
'Content-Type': 'application/json'
};
// Per accesso con scope di organizzazione
const orgHeaders = {
...headers,
'OpenAI-Organization': process.env.OPENAI_ORG_ID,
'OpenAI-Project': process.env.OPENAI_PROJECT_ID
};

Sicurezza dell'API key

Non esporre mai la tua API key OpenAI in codice client-side. Usa sempre variabili d’ambiente e richieste server-side. Ruota periodicamente le chiavi tramite la dashboard OpenAI.

Configurazione

Setup di base

connectors:
openai:
enabled: true
model: "gpt-4o"
embedding_model: "text-embedding-3-small"
image_model: "dall-e-3"
features:
content_generation: true
sentiment_analysis: true
smart_segmentation: true
predictive_analytics: true
limits:
max_tokens_per_request: 4096
max_requests_per_minute: 60
temperature: 0.7

Template di generazione contenuti

templates:
email_subject:
model: "gpt-4o"
system_prompt: |
Sei un esperto di email marketing. Genera oggetti
efficaci che aumentino il tasso di apertura.
max_tokens: 100
temperature: 0.8
email_body:
model: "gpt-4o"
system_prompt: |
Genera contenuti email personalizzati basati sui dati
cliente e sugli obiettivi della campagna.
max_tokens: 2048
temperature: 0.7

Endpoint API

EndpointMetodoDescrizione
https://api.openai.com/v1/responsesPOSTCrea risposte AI (Responses API)
https://api.openai.com/v1/chat/completionsPOSTGenera completion di testo
https://api.openai.com/v1/embeddingsPOSTCrea embedding di testo
https://api.openai.com/v1/images/generationsPOSTGenera immagini
https://api.openai.com/v1/audio/speechPOSTGenerazione text-to-speech
https://api.openai.com/v1/audio/transcriptionsPOSTTrascrizione speech-to-text
https://api.openai.com/v1/moderationsPOSTModerazione contenuti
https://api.openai.com/v1/modelsGETElenca i modelli disponibili

Esempi di codice

Inizializzare il connettore

import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
brevoApiKey: process.env.BREVO_API_KEY
});
await tajo.connectors.connect('openai', {
apiKey: process.env.OPENAI_API_KEY,
defaultModel: 'gpt-4o'
});

Generare contenuti email

// Genera oggetti email personalizzati
const response = await fetch('https://api.openai.com/v1/chat/completions', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.OPENAI_API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'gpt-4o',
messages: [
{
role: 'system',
content: 'Genera 5 oggetti email efficaci per il lancio di un prodotto.'
},
{
role: 'user',
content: `Prodotto: ${product.name}. Target: ${segment.description}.`
}
],
max_tokens: 200,
temperature: 0.8
})
});
const result = await response.json();
const subjectLines = result.choices[0].message.content;

Analisi del sentiment cliente

// Analizza il sentiment del feedback cliente
const sentimentAnalysis = await fetch(
'https://api.openai.com/v1/chat/completions',
{
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.OPENAI_API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'gpt-4o',
messages: [
{
role: 'system',
content: 'Analizza il sentiment. Restituisci JSON: {score: -1 a 1, label: string, topics: string[]}'
},
{ role: 'user', content: customerFeedback }
],
response_format: { type: 'json_object' },
max_tokens: 150
})
}
);
const sentiment = await sentimentAnalysis.json();
await tajo.contacts.update(email, {
attributes: { SENTIMENT_SCORE: JSON.parse(sentiment.choices[0].message.content).score }
});

Segmentazione smart con embeddings

// Genera embeddings per il clustering dei clienti
const embeddingResponse = await fetch(
'https://api.openai.com/v1/embeddings',
{
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.OPENAI_API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'text-embedding-3-small',
input: customerDescriptions,
dimensions: 256
})
}
);
const embeddings = await embeddingResponse.json();
// Usa gli embedding per il clustering clienti basato sulla similarità

Limiti di rate

ModelloRPM (Richieste/Min)TPM (Token/Min)RPD (Richieste/Giorno)
gpt-4o50030.00010.000
gpt-4o-mini500200.00010.000
text-embedding-3-small5001.000.00010.000
dall-e-35N/A200

Header del rate limit

Monitora gli header del rate limit (x-ratelimit-remaining-requests, x-ratelimit-remaining-tokens) nelle risposte API per implementare throttling proattivo ed evitare errori 429.

Risoluzione dei problemi

ProblemaCausaSoluzione
401 UnauthorizedAPI key non validaVerifica la key nella dashboard OpenAI
429 Rate LimitedTroppe richiesteImplementa exponential backoff
500 Server ErrorOutage OpenAIControlla status.openai.com e riprova
Risposta troncatamax_tokens troppo bassoAumenta il parametro max_tokens
Qualità contenuti scarsaTemperature troppo altaAbbassa la temperature per coerenza

Modalità debug

connectors:
openai:
debug: true
log_level: verbose
log_prompts: false # Non loggare i prompt in produzione
log_usage: true

Best practice

  1. Memorizza in cache le risposte - Archivia i contenuti generati per ridurre chiamate API e costi
  2. Usa output strutturati - Richiedi risposte JSON per un parsing affidabile
  3. Implementa logica di retry - Gestisci i rate limit con exponential backoff
  4. Monitora l’uso dei token - Traccia il consumo per controllare i costi
  5. Usa modelli appropriati - Usa gpt-4o-mini per task semplici, gpt-4o per quelli complessi
  6. Valida gli output - Valida sempre i contenuti generati dall’AI prima di inviarli ai clienti

Sicurezza

  • Autenticazione Bearer token - API key trasmesse tramite header Authorization
  • Solo server-side - Non esporre mai le API key in codice client-side
  • Rotazione chiavi - Ruota regolarmente le API key tramite la dashboard OpenAI
  • Monitoraggio dell’uso - Imposta limiti di spesa nelle impostazioni di fatturazione OpenAI
  • Moderazione dei contenuti - Usa la Moderations API per filtrare contenuti non sicuri
  • Privacy dei dati - Rivedi le policy di utilizzo dati di OpenAI per il tuo caso d’uso

Risorse correlate

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
Assistente AI

Ciao! Chiedimi qualsiasi cosa sulla documentazione.