> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Apache Kafka

> Sincroniza eventos personalizados desde topics de Apache Kafka a OneSignal para activar Journeys automatizados y campañas de mensajería personalizadas basadas en el comportamiento del usuario en tiempo real.

export const PLATFORM_0 = "Kafka"

export const DATA_TYPE_0 = undefined

export const COLUMN_HEADER_0 = undefined

export const PROPERTIES_DESCRIPTION_0 = undefined

## Resumen

La integración de OneSignal + Apache Kafka permite la sincronización automática de eventos personalizados desde tus topics de Kafka directamente a la API de Eventos personalizados de OneSignal. Esto te permite activar Journeys automatizados y campañas de mensajería personalizadas basadas en el comportamiento del usuario en tiempo real que fluye a través de tu infraestructura de Kafka.

Puedes sincronizar eventos como compras, vistas de productos, cambios de suscripción o cualquier acción de usuario personalizada para activar automáticamente secuencias de incorporación, campañas de reenganche, mensajes transaccionales y promociones dirigidas a través de notificaciones push, email, mensajes in-app y SMS.

***

## Requisitos

* Access to [Event Streams](/docs/en/event-streams) for outbound message events (Plan limitations and overages apply)
* Access to [Custom Events](/docs/en/custom-events) for inbound event syncing (Plan limitations and overages apply)
* [Updated Account Plan](https://onesignal.com/pricing) (not available on free apps)

### Apache Kafka

* **Kafka Cluster** (Apache Kafka, Confluent o gestionado en la nube)
* **Topics** que contienen datos de eventos
* **Credenciales de autenticación** (SASL/SCRAM, SSL o claves API)
* **Acceso de red** a brokers de Kafka
* **Datos de eventos** en formato JSON

***

## Configuración

### Configurar permisos de Kafka

OneSignal necesita consumir eventos de tus topics de Kafka. La configuración exacta depende de tu configuración de Kafka:

<Steps>
  <Step title="Reunir detalles de conexión">
    Recopila la siguiente información sobre tu cluster de Kafka:

    * **Bootstrap Servers**: Endpoints de broker de Kafka
    * **Protocolo de seguridad**: PLAINTEXT, SASL\_PLAINTEXT, SASL\_SSL o SSL
    * **Autenticación**: Usuario/contraseña, certificados o claves API
    * **Nombres de topics**: Lista de topics que contienen datos de eventos
  </Step>

  <Step title="Crear credenciales de consumidor">
    Crea credenciales para que OneSignal acceda a tus topics de Kafka:

    **Para autenticación SASL/SCRAM:**

    ```bash theme={null}
    # Crear un usuario con acceso de lectura a topics de eventos
    kafka-configs --bootstrap-server localhost:9092 \
      --alter --add-config 'SCRAM-SHA-256=[password=onesignal-password]' \
      --entity-type users --entity-name onesignal-consumer
    ```

    **Para autorización basada en ACL:**

    ```bash theme={null}
    # Otorgar acceso de lectura a topics y grupo de consumidor
    kafka-acls --bootstrap-server localhost:9092 \
      --add --allow-principal User:onesignal-consumer \
      --operation Read --topic your-event-topic

    kafka-acls --bootstrap-server localhost:9092 \
      --add --allow-principal User:onesignal-consumer \
      --operation Read --group onesignal-consumer-group
    ```
  </Step>

  <Step title="Verificar acceso al topic">
    Prueba que OneSignal pueda acceder a tus topics de eventos:

    ```bash theme={null}
    kafka-console-consumer --bootstrap-server localhost:9092 \
      --topic your-event-topic \
      --from-beginning \
      --max-messages 5
    ```
  </Step>
</Steps>

### Configurar conexión de Kafka de OneSignal

<Steps>
  <Step title="Navegar a integraciones">
    In OneSignal, go to **Data > Integrations** and click **Add Integration**.
  </Step>

  <Step title="Seleccionar Apache Kafka">
    Elige **Apache Kafka** de la lista de integraciones disponibles.
  </Step>

  <Step title="Ingresar detalles de conexión">
    Proporciona tu información de conexión de Kafka:

    * **Bootstrap Servers**: Endpoints de broker separados por comas
    * **Protocolo de seguridad**: Configuración de seguridad de tu cluster
    * **Usuario/Contraseña**: Credenciales SASL (si aplica)
    * **Nombres de topics**: Topics que contienen tus datos de eventos
    * **Grupo de consumidor**: ID de grupo único para OneSignal
  </Step>

  <Step title="Probar la conexión">
    Haz clic en **Probar conexión** para verificar que OneSignal pueda conectarse a tu cluster de Kafka y consumir eventos.
  </Step>
</Steps>

***

### Event data mapping

Map your {PLATFORM_0} {DATA_TYPE_0} to OneSignal's custom events format:

| OneSignal Field | {COLUMN_HEADER_0} | Description                | Required |
| --------------- | ----------------- | -------------------------- | -------- |
| `name`          | `event_name`      | Event identifier           | Yes      |
| `external_id`   | `user_id`         | User identifier            | Yes      |
| `timestamp`     | `event_timestamp` | When event occurred        | No       |
| `properties`    | `event_data`      | {PROPERTIES_DESCRIPTION_0} | No       |

***

## Esquema de datos de eventos

Tus mensajes de eventos de Kafka deben estar en formato JSON e incluir campos que mapeen a la estructura de eventos personalizados de OneSignal:

| Campo de evento de Kafka | Campo de evento de OneSignal | Descripción |
| ------------------------ | ---------------------------- | ----------- |
| `event_type`             |                              |             |
