---
title: "Conector de OpenAI"
description: "Guía completa de integración con OpenAI para generar contenido con IA, obtener insights de clientes y automatizar marketing inteligente con Brevo a través de Tajo."
url: https://tajo.io/es/docs/connectors/custom/openai/
markdown: https://tajo.io/es/docs/connectors/custom/openai.md
lang: es-ES
robots: noindex
---

Solicita acceso anticipado

Escribe tu nombre y dirección de correo de trabajo. Te enviaremos un enlace para confirmar tu solicitud de acceso a Tajo.

# Conector de OpenAI

Estado del conector: Planificado Aún no está construido. Tajo no ejecuta este conector hoy.

| Campo de origen | Campo de destino | Valor de ejemplo |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Conecta OpenAI con Brevo a través de Tajo para aprovechar la generación de contenido con IA, el análisis de sentimiento de clientes, la segmentación inteligente y la analítica predictiva en tus flujos de automatización de marketing.

## Resumen

| Propiedad | Valor |
| --- | --- |
| **Plataforma** | OpenAI |
| **Categoría** | IA / ML (Personalizada) |
| **Complejidad de configuración** | Media |
| **Integración oficial** | No |
| **Datos sincronizados** | Contenido, Embeddings, Insights, Predicciones |
| **Método de autenticación** | API Key (Bearer Token) |

## Funcionalidades

- **Generación de contenido con IA** - Genera asuntos de email, cuerpo y CTAs con modelos GPT
- **Análisis de sentimiento de clientes** - Analiza tickets de soporte y feedback con puntuación de sentimiento
- **Segmentación inteligente** - Usa embeddings para agrupar clientes por patrones de comportamiento
- **Analítica predictiva** - Predice churn, LTV y propensión de compra
- **Contenido multilenguaje** - Genera contenido de marketing en cualquier idioma admitido
- **Generación de imágenes** - Crea visuales para campañas con la integración de DALL-E

## Requisitos previos

Antes de empezar, asegúrate de tener:

1. Una cuenta de OpenAI con acceso a la API
2. Una API key desde el [panel de OpenAI](https://platform.openai.com/api-keys)
3. Una cuenta de Brevo con acceso a la API
4. Una cuenta de Tajo con permisos de conector
5. Créditos suficientes en la API de OpenAI para tu uso previsto

## Autenticación

### Autenticación con API Key

OpenAI usa autenticación por Bearer token en todas las peticiones a la 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
};
```

Seguridad de la API Key

Nunca expongas tu API key de OpenAI en código del lado del cliente. Usa siempre variables de entorno y peticiones del lado del servidor. Rota las claves periódicamente desde el panel de OpenAI.

## Configuración

### Configuración básica

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

### Plantillas de generación de contenido

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

## Endpoints de la API

| Endpoint | Método | Descripción |
| --- | --- | --- |
| `https://api.openai.com/v1/responses` | POST | Crear respuestas de IA (Responses API) |
| `https://api.openai.com/v1/chat/completions` | POST | Generar completions de texto |
| `https://api.openai.com/v1/embeddings` | POST | Crear embeddings de texto |
| `https://api.openai.com/v1/images/generations` | POST | Generar imágenes |
| `https://api.openai.com/v1/audio/speech` | POST | Generación de texto a voz |
| `https://api.openai.com/v1/audio/transcriptions` | POST | Transcripción de voz a texto |
| `https://api.openai.com/v1/moderations` | POST | Moderación de contenido |
| `https://api.openai.com/v1/models` | GET | Listar los modelos disponibles |

## Ejemplos de código

### Inicializar el conector

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

### Generar contenido de 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;
```

### Análisis de sentimiento de clientes

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

### Segmentación inteligente con embeddings

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

## Límites de velocidad

| Modelo | RPM (Peticiones/min) | TPM (Tokens/min) | RPD (Peticiones/día) |
| --- | --- | --- | --- |
| 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 | N/A | 200 |

Cabeceras de límite de velocidad

Monitoriza las cabeceras de rate limit (`x-ratelimit-remaining-requests`, `x-ratelimit-remaining-tokens`) en las respuestas de la API para aplicar throttling proactivo y evitar errores 429.

## Resolución de problemas

| Problema | Causa | Solución |
| --- | --- | --- |
| 401 Unauthorized | API key no válida | Verifica la clave en el panel de OpenAI |
| 429 Rate Limited | Demasiadas peticiones | Aplica exponential backoff |
| 500 Server Error | Caída de OpenAI | Comprueba status.openai.com y reintenta |
| Respuesta truncada | max\_tokens demasiado bajo | Aumenta el parámetro max\_tokens |
| Calidad de contenido baja | Temperature demasiado alta | Reduce la temperature para mayor consistencia |

### Modo depuración

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

## Buenas prácticas

1. **Cachea las respuestas** - Almacena el contenido generado para reducir llamadas a la API y costes
2. **Usa salidas estructuradas** - Solicita respuestas JSON para un parsing fiable
3. **Implementa lógica de reintentos** - Gestiona los rate limits con exponential backoff
4. **Monitoriza el uso de tokens** - Rastrea el consumo para controlar los costes
5. **Usa los modelos adecuados** - Usa gpt-4o-mini para tareas simples y gpt-4o para las complejas
6. **Valida las salidas** - Valida siempre el contenido generado por IA antes de enviarlo a los clientes

## Seguridad

- **Autenticación por Bearer token** - API keys transmitidas en la cabecera Authorization
- **Solo del lado del servidor** - Nunca expongas las API keys en código del lado del cliente
- **Rotación de claves** - Rota las API keys con regularidad desde el panel de OpenAI
- **Monitorización del uso** - Establece límites de gasto en la configuración de facturación de OpenAI
- **Moderación de contenido** - Usa la API de Moderations para filtrar contenido no seguro
- **Privacidad de datos** - Revisa las políticas de uso de datos de OpenAI para tu caso de uso

## Recursos relacionados

- [Conector de Brevo](https://tajo.io/es/docs/connectors/marketing/brevo)
- [Skill de sincronización de clientes](https://tajo.io/es/docs/skills/data-sync/customer-sync)
- [Skills de marketing por email](https://tajo.io/es/docs/skills/email-marketing)
- [Referencia de la API de OpenAI](https://platform.openai.com/docs/api-reference)
