---
title: "Konektor OpenAI"
description: "Panduan integrasi OpenAI lengkap untuk pembuatan konten bertenaga AI, insight pelanggan, dan otomatisasi pemasaran cerdas dengan Brevo melalui Tajo."
url: https://tajo.io/in/docs/connectors/custom/openai/
markdown: https://tajo.io/in/docs/connectors/custom/openai.md
lang: id-ID
robots: noindex
---

Ajukan akses awal

Masukkan nama depan dan alamat email kerja Anda. Kami akan mengirim tautan untuk mengonfirmasi permintaan akses Tajo.

# Konektor OpenAI

Status konektor: Direncanakan Belum dibangun. Tajo belum menjalankan konektor ini.

| Field sumber | Field tujuan | Nilai contoh |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Hubungkan OpenAI ke Brevo melalui Tajo untuk memanfaatkan pembuatan konten bertenaga AI, analisis sentimen pelanggan, segmentasi cerdas, dan analitik prediktif bagi alur kerja otomatisasi pemasaran Anda.

## Ikhtisar

| Properti | Nilai |
| --- | --- |
| **Platform** | OpenAI |
| **Kategori** | AI / ML (Custom) |
| **Kompleksitas setup** | Sedang |
| **Integrasi resmi** | Tidak |
| **Data yang disinkronkan** | Konten, embedding, insight, prediksi |
| **Metode autentikasi** | API Key (Bearer Token) |

## Fitur

- **Pembuatan konten AI** - Hasilkan subject line email, isi pesan, dan CTA dengan model GPT
- **Analisis sentimen pelanggan** - Analisis tiket dukungan dan masukan untuk penilaian sentimen
- **Segmentasi cerdas** - Gunakan embedding untuk mengelompokkan pelanggan berdasarkan pola perilaku
- **Analitik prediktif** - Perkirakan churn, LTV, dan kecenderungan pembelian
- **Konten multibahasa** - Hasilkan konten pemasaran dalam bahasa apa pun yang didukung
- **Pembuatan gambar** - Buat visual kampanye dengan integrasi DALL-E

## Prasyarat

Sebelum memulai, pastikan Anda memiliki:

1. Akun OpenAI dengan akses API
2. API key dari [dasbor OpenAI](https://platform.openai.com/api-keys)
3. Akun Brevo dengan akses API
4. Akun Tajo dengan izin konektor
5. Kredit API OpenAI yang cukup untuk perkiraan penggunaan Anda

## Autentikasi

### Autentikasi API key

OpenAI menggunakan autentikasi Bearer token untuk seluruh permintaan API:

```bash
# 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
```

```javascript
// 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
};
```

Keamanan API key

Jangan pernah mengekspos API key OpenAI Anda dalam kode sisi klien. Selalu gunakan environment variable dan permintaan sisi server. Rotasi key secara berkala melalui dasbor OpenAI.

## Konfigurasi

### Setup dasar

```yaml
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 pembuatan konten

```yaml
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
```

## Endpoint API

| Endpoint | Metode | Deskripsi |
| --- | --- | --- |
| `https://api.openai.com/v1/responses` | POST | Membuat respons AI (Responses API) |
| `https://api.openai.com/v1/chat/completions` | POST | Menghasilkan penyelesaian teks |
| `https://api.openai.com/v1/embeddings` | POST | Membuat embedding teks |
| `https://api.openai.com/v1/images/generations` | POST | Menghasilkan gambar |
| `https://api.openai.com/v1/audio/speech` | POST | Pembuatan text-to-speech |
| `https://api.openai.com/v1/audio/transcriptions` | POST | Transkripsi speech-to-text |
| `https://api.openai.com/v1/moderations` | POST | Moderasi konten |
| `https://api.openai.com/v1/models` | GET | Menampilkan model yang tersedia |

## Contoh kode

### Inisialisasi konektor

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

### Menghasilkan konten email

```javascript
// 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;
```

### Analisis sentimen pelanggan

```javascript
// 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 }
});
```

### Segmentasi cerdas dengan embedding

```javascript
// 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
```

## Batas rate

| Model | RPM (permintaan/menit) | TPM (token/menit) | RPD (permintaan/hari) |
| --- | --- | --- | --- |
| gpt-4o | 500 | 30.000 | 10.000 |
| gpt-4o-mini | 500 | 200.000 | 10.000 |
| text-embedding-3-small | 500 | 1.000.000 | 10.000 |
| dall-e-3 | 5 | Tidak tersedia | 200 |

Header batas rate

Pantau header batas rate (`x-ratelimit-remaining-requests`, `x-ratelimit-remaining-tokens`) pada respons API untuk menerapkan throttling proaktif dan menghindari error 429.

## Pemecahan masalah

| Masalah | Penyebab | Solusi |
| --- | --- | --- |
| 401 Unauthorized | API key tidak valid | Periksa key di dasbor OpenAI |
| 429 Rate Limited | Terlalu banyak permintaan | Terapkan exponential backoff |
| 500 Server Error | Gangguan pada OpenAI | Periksa status.openai.com lalu coba lagi |
| Respons terpotong | max\_tokens terlalu kecil | Naikkan parameter max\_tokens |
| Kualitas konten buruk | Temperature terlalu tinggi | Turunkan temperature demi konsistensi |

### Mode debug

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

## Praktik terbaik

1. **Cache respons** - Simpan konten yang dihasilkan untuk mengurangi panggilan API dan biaya
2. **Gunakan structured output** - Minta respons JSON agar parsing lebih andal
3. **Terapkan logika retry** - Tangani batas rate dengan exponential backoff
4. **Pantau penggunaan token** - Lacak konsumsi untuk mengendalikan biaya
5. **Gunakan model yang sesuai** - Pakai gpt-4o-mini untuk tugas sederhana, gpt-4o untuk yang kompleks
6. **Validasi keluaran** - Selalu validasi konten hasil AI sebelum dikirim ke pelanggan

## Keamanan

- **Autentikasi bearer token** - API key dikirim melalui header Authorization
- **Hanya sisi server** - Jangan pernah mengekspos API key dalam kode sisi klien
- **Rotasi key** - Rotasi API key secara berkala melalui dasbor OpenAI
- **Pemantauan penggunaan** - Tetapkan batas pengeluaran di pengaturan billing OpenAI
- **Moderasi konten** - Gunakan Moderations API untuk menyaring konten yang tidak aman
- **Privasi data** - Tinjau kebijakan penggunaan data OpenAI untuk kasus penggunaan Anda

## Sumber daya terkait

- [Konektor Brevo](https://tajo.io/in/docs/connectors/marketing/brevo)
- [Skill Customer Sync](https://tajo.io/in/docs/skills/data-sync/customer-sync)
- [Skill Email Marketing](https://tajo.io/in/docs/skills/email-marketing)
- [Referensi OpenAI API](https://platform.openai.com/docs/api-reference)
