OpenAI-connector

Verbind OpenAI met Brevo via Tajo om gebruik te maken van AI-gestuurde contentgeneratie, klant-sentimentanalyse, intelligente segmentatie en voorspellende analyses voor je marketingautomatiseringsworkflows.

Overzicht

EigenschapWaarde
PlatformOpenAI
CategorieAI / ML (Custom)
SetupcomplexiteitGemiddeld
Officiële integratieNee
Gesynchroniseerde dataContent, Embeddings, Inzichten, Voorspellingen
Auth-methodeAPI Key (Bearer Token)

Functies

  • AI-contentgeneratie - Genereer e-mailonderwerpregels, body-copy en CTA’s met GPT-modellen
  • Klant-sentimentanalyse - Analyseer supporttickets en feedback voor sentimentscoring
  • Slimme segmentatie - Gebruik embeddings om klanten te clusteren op gedragspatronen
  • Voorspellende analyses - Voorspel churn, LTV en aankoopkans
  • Meertalige content - Genereer marketingcontent in elke ondersteunde taal
  • Beeldgeneratie - Maak campagnevisuals met DALL-E-integratie

Vereisten

Voordat je begint, zorg dat je beschikt over:

  1. Een OpenAI-account met API-toegang
  2. Een API key uit het OpenAI dashboard
  3. Een Brevo-account met API-toegang
  4. Een Tajo-account met connector-rechten
  5. Voldoende OpenAI API-credits voor je verwachte gebruik

Authenticatie

API Key-authenticatie

OpenAI gebruikt Bearer-token-authenticatie voor alle API-requests:

Terminal window
# Set your API keys
export OPENAI_API_KEY=sk-your-api-key
export TAJO_API_KEY=your_tajo_api_key
export BREVO_API_KEY=your_brevo_api_key
// All requests require the Authorization header
const headers = {
'Authorization': `Bearer ${process.env.OPENAI_API_KEY}`,
'Content-Type': 'application/json'
};
// For organization-scoped access
const orgHeaders = {
...headers,
'OpenAI-Organization': process.env.OPENAI_ORG_ID,
'OpenAI-Project': process.env.OPENAI_PROJECT_ID
};

API key-beveiliging

Gebruik je OpenAI API key nooit in client-side code. Werk altijd met environment variables en server-side requests. Roteer keys regelmatig via het OpenAI-dashboard.

Configuratie

Basisinstelling

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

Templates voor contentgeneratie

templates:
email_subject:
model: "gpt-4o"
system_prompt: |
You are an expert email marketer. Generate compelling
subject lines that drive open rates.
max_tokens: 100
temperature: 0.8
email_body:
model: "gpt-4o"
system_prompt: |
Generate personalized email content based on customer
data and campaign objectives.
max_tokens: 2048
temperature: 0.7

API-endpoints

EndpointMethodBeschrijving
https://api.openai.com/v1/responsesPOSTAI-responses aanmaken (Responses API)
https://api.openai.com/v1/chat/completionsPOSTTekstcompletions genereren
https://api.openai.com/v1/embeddingsPOSTTekstembeddings aanmaken
https://api.openai.com/v1/images/generationsPOSTAfbeeldingen genereren
https://api.openai.com/v1/audio/speechPOSTTekst-naar-spraakgeneratie
https://api.openai.com/v1/audio/transcriptionsPOSTSpraak-naar-teksttranscriptie
https://api.openai.com/v1/moderationsPOSTContentmoderatie
https://api.openai.com/v1/modelsGETBeschikbare modellen opvragen

Codevoorbeelden

Connector initialiseren

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'
});

E-mailcontent genereren

// Generate personalized email subject lines
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: 'Generate 5 compelling email subject lines for a product launch.'
},
{
role: 'user',
content: `Product: ${product.name}. Target: ${segment.description}.`
}
],
max_tokens: 200,
temperature: 0.8
})
});
const result = await response.json();
const subjectLines = result.choices[0].message.content;

Klant-sentimentanalyse

// Analyze customer feedback sentiment
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: 'Analyze sentiment. Return JSON: {score: -1 to 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 }
});

Slimme segmentatie met embeddings

// Generate embeddings for customer clustering
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();
// Use embeddings for similarity-based customer clustering

Rate limits

ModelRPM (Requests/Min)TPM (Tokens/Min)RPD (Requests/Dag)
gpt-4o50030.00010.000
gpt-4o-mini500200.00010.000
text-embedding-3-small5001.000.00010.000
dall-e-35N.v.t.200

Rate limit-headers

Monitor rate limit-headers (x-ratelimit-remaining-requests, x-ratelimit-remaining-tokens) in API-responses om proactieve throttling te implementeren en 429-fouten te voorkomen.

Probleemoplossing

ProbleemOorzaakOplossing
401 UnauthorizedOngeldige API keyVerifieer key in OpenAI-dashboard
429 Rate LimitedTe veel requestsImplementeer exponentiële backoff
500 Server ErrorOpenAI-storingCheck status.openai.com en probeer opnieuw
Afgekapte responsemax_tokens te laagVerhoog de max_tokens-parameter
Slechte contentkwaliteitTemperature te hoogVerlaag temperature voor consistentie

Debugmodus

connectors:
openai:
debug: true
log_level: verbose
log_prompts: false # Don't log prompts in production
log_usage: true

Best practices

  1. Cache responses - Sla gegenereerde content op om API-calls en kosten te beperken
  2. Gebruik gestructureerde outputs - Vraag JSON-responses aan voor betrouwbare parsing
  3. Implementeer retry-logica - Behandel rate limits met exponentiële backoff
  4. Monitor token-gebruik - Volg consumptie om kosten te beheersen
  5. Gebruik passende modellen - Gebruik gpt-4o-mini voor eenvoudige taken, gpt-4o voor complexe
  6. Valideer outputs - Valideer altijd AI-gegenereerde content voordat je deze naar klanten stuurt

Beveiliging

  • Bearer token-auth - API keys verzonden via Authorization-header
  • Alleen server-side - Stel API keys nooit bloot in client-side code
  • Key-rotatie - Roteer API keys regelmatig via OpenAI-dashboard
  • Gebruiksmonitoring - Stel uitgavenlimieten in via OpenAI-billing settings
  • Contentmoderatie - Gebruik de Moderations API om onveilige content te filteren
  • Dataprivacy - Bekijk OpenAI’s data usage policies voor je use case

Gerelateerde bronnen

Subscribe to updates

developer-docs

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

auto-detect
AI-assistent

Hallo! Stel me vragen over de documentatie.