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

> Sincronize eventos personalizados de tópicos Apache Kafka para o OneSignal para acionar Journeys automatizadas e campanhas de mensagens personalizadas baseadas no comportamento do usuário em tempo real.

export const PLATFORM_0 = "Kafka"

export const DATA_TYPE_0 = undefined

export const COLUMN_HEADER_0 = undefined

export const PROPERTIES_DESCRIPTION_0 = undefined

## Visão geral

A integração OneSignal + Apache Kafka permite a sincronização automática de eventos personalizados dos seus tópicos Kafka diretamente para a API de Eventos Personalizados do OneSignal. Isso permite que você acione Journeys automatizadas e campanhas de mensagens personalizadas baseadas no comportamento do usuário em tempo real transmitido através da sua infraestrutura Kafka.

Você pode sincronizar eventos como compras, visualizações de produtos, mudanças de assinatura ou quaisquer ações personalizadas do usuário para acionar automaticamente sequências de onboarding, campanhas de re-engajamento, mensagens transacionais e promoções direcionadas através de notificações push, email, mensagens in-app e 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

* **Cluster Kafka** (Apache Kafka, Confluent ou gerenciado na nuvem)
* **Tópicos** contendo dados de evento
* **Credenciais de autenticação** (SASL/SCRAM, SSL ou chaves de API)
* **Acesso de rede** aos brokers Kafka
* **Dados de evento** em formato JSON

***

## Configuração

### Configurar permissões do Kafka

O OneSignal precisa consumir eventos dos seus tópicos Kafka. A configuração exata depende da sua configuração do Kafka:

<Steps>
  <Step title="Coletar detalhes de conexão">
    Colete as seguintes informações sobre seu cluster Kafka:

    * **Bootstrap Servers**: Endpoints do broker Kafka
    * **Protocolo de Segurança**: PLAINTEXT, SASL\_PLAINTEXT, SASL\_SSL ou SSL
    * **Autenticação**: Nome de usuário/senha, certificados ou chaves de API
    * **Nomes de Tópicos**: Lista de tópicos contendo dados de evento
  </Step>

  <Step title="Criar credenciais de consumidor">
    Crie credenciais para o OneSignal acessar seus tópicos Kafka:

    **Para autenticação SASL/SCRAM:**

    ```bash theme={null}
    # Create a user with read access to event topics
    kafka-configs --bootstrap-server localhost:9092 \
      --alter --add-config 'SCRAM-SHA-256=[password=onesignal-password]' \
      --entity-type users --entity-name onesignal-consumer
    ```

    **Para autorização baseada em ACL:**

    ```bash theme={null}
    # Grant read access to topics and consumer group
    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 acesso ao tópico">
    Teste se o OneSignal pode acessar seus tópicos de evento:

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

### Configurar conexão do OneSignal Kafka

<Steps>
  <Step title="Navegar até integrações">
    In OneSignal, go to **Data > Integrations** and click **Add Integration**.
  </Step>

  <Step title="Selecionar Apache Kafka">
    Escolha **Apache Kafka** da lista de integrações disponíveis.
  </Step>

  <Step title="Inserir detalhes de conexão">
    Forneça suas informações de conexão Kafka:

    * **Bootstrap Servers**: Endpoints de broker separados por vírgula
    * **Protocolo de Segurança**: Configuração de segurança do seu cluster
    * **Nome de Usuário/Senha**: Credenciais SASL (se aplicável)
    * **Nomes de Tópicos**: Tópicos contendo seus dados de evento
    * **Grupo de Consumidor**: ID de grupo único para o OneSignal
  </Step>

  <Step title="Testar a conexão">
    Clique em **Testar Conexão** para verificar se o OneSignal pode conectar ao seu cluster Kafka e 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 Dados de Evento

Suas mensagens de evento Kafka devem estar em formato JSON e incluir campos que mapeiam para a estrutura de evento personalizado do OneSignal:

| Campo de Evento Kafka | Campo de Evento OneSignal | Descrição |
| --------------------- | ------------------------- | --------- |
| `event_type`          |                           |           |
