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

# Amazon Athena

> Sincronice eventos personalizados desde Amazon Athena a OneSignal para activar Journeys automatizados y campañas de mensajería personalizadas basadas en el comportamiento del usuario.

export const PLATFORM_0 = "Athena"

export const DATA_TYPE_0 = "table columns"

export const COLUMN_HEADER_0 = "Athena Column"

export const PROPERTIES_DESCRIPTION_0 = "Event metadata from S3 data lake"

## Descripción general

La integración de OneSignal + Amazon Athena habilita la sincronización automática de eventos personalizados desde su lago de datos de Athena directamente a la API de eventos personalizados de OneSignal. Esto le permite activar Journeys automatizados y campañas de mensajería personalizadas basadas en el comportamiento real del usuario almacenado en su infraestructura de datos de AWS.

Puede 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 reactivación, mensajes transaccionales y promociones dirigidas a través de notificaciones push, correo electrónico, mensajes en la aplicación 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)

### Amazon Athena

* **Cuenta de AWS** con acceso a Athena
* **Athena Workgroup** configurado (predeterminado: "primary")
* **S3 Query Results Bucket** para salidas de consultas de Athena
* **Permisos IAM** para acceso a Athena, S3 y AWS Glue
* **Datos de eventos** almacenados en S3 y catalogados en AWS Glue

***

## Configuración

### Configurar permisos de AWS

OneSignal necesita permisos específicos para consultar sus datos de eventos a través de Athena. Cree una política IAM con los siguientes permisos:

<Steps>
  <Step title="Crear política IAM">
    Cree una política IAM que incluya estos permisos:

    ```json theme={null}
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "athena:StartQueryExecution",
                    "athena:GetQueryExecution",
                    "athena:GetQueryResultsStream",
                    "athena:GetQueryResults",
                    "athena:CreatePreparedStatement",
                    "athena:DeletePreparedStatement",
                    "glue:GetTable",
                    "glue:GetTables",
                    "glue:GetDatabase",
                    "glue:GetDatabases",
                    "s3:PutObject",
                    "s3:GetObject",
                    "s3:ListBucket",
                    "s3:GetBucketLocation"
                ],
                "Resource": [
                    "arn:aws:glue:<region>:<aws-account-id>:table/<database>/*",
                    "arn:aws:glue:<region>:<aws-account-id>:database/<database>",
                    "arn:aws:glue:<region>:<aws-account-id>:catalog",
                    "arn:aws:athena:<region>:<aws-account-id>:workgroup/<workgroup>",
                    "arn:aws:s3:::<query-results-bucket>",
                    "arn:aws:s3:::<query-results-bucket>/*",
                    "arn:aws:s3:::<event-data-bucket>",
                    "arn:aws:s3:::<event-data-bucket>/*"
                ]
            }
        ]
    }
    ```

    <Info>
      Reemplace los marcadores de posición con su región de AWS real, ID de cuenta, nombre de base de datos, grupo de trabajo y nombres de bucket.
    </Info>
  </Step>

  <Step title="Crear usuario o rol IAM">
    Cree un usuario IAM para OneSignal y adjunte la política creada anteriormente, o prepárese para usar acceso basado en roles.
  </Step>

  <Step title="Anotar detalles de conexión">
    Recopile la siguiente información:

    * **AWS Access Key ID** y **Secret Access Key** (si usa usuario IAM)
    * URL de **S3 Query Results Bucket**
    * **AWS Region**
    * **Athena Workgroup** (predeterminado: "primary")
  </Step>
</Steps>

### Configurar conexión de OneSignal a Athena

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

  <Step title="Seleccionar Amazon Athena">
    Elija **Amazon Athena** de la lista de integraciones disponibles.
  </Step>

  <Step title="Ingresar detalles de conexión">
    Proporcione la información de conexión de Athena:

    * **AWS Access Key ID**: Su clave de acceso de usuario IAM
    * **AWS Secret Access Key**: Su clave secreta de usuario IAM
    * **AWS Region**: Su región de Athena
    * **S3 Query Results Bucket**: URL para salidas de consultas
    * **Athena Workgroup**: Nombre de su grupo de trabajo
  </Step>

  <Step title="Probar la conexión">
    Haga clic en **Test Connection** para verificar que OneSignal puede acceder a su instancia de Athena y ejecutar consultas.
  </Step>
</Steps>

### Alternativa: Acceso basado en roles

Para mayor seguridad, puede usar roles IAM en lugar de claves de acceso:

<Steps>
  <Step title="Habilitar acceso basado en roles">
    En la configuración de conexión de Athena, marque **Use Role** y deje las claves de acceso en blanco.
  </Step>

  <Step title="Crear rol IAM">
    En la consola de AWS, cree un rol IAM con:

    * **Trusted Entity**: Another AWS Account
    * **Account ID**: `341876425553` (cuenta de AWS de OneSignal)
    * **External ID**: El ID mostrado en OneSignal (aparece después del intento de conexión inicial)
    * **Permissions**: La política IAM creada anteriormente
  </Step>

  <Step title="Completar la conexión">
    Ingrese el ARN del rol en OneSignal y pruebe la conexión.
  </Step>
</Steps>

***

## Mapeo de datos de eventos

Una vez conectado, deberá mapear sus tablas de Athena a los campos de eventos personalizados de OneSignal:

<Steps>
  <Step title="Seleccionar tablas de eventos">
    Elija las tablas o vistas que contienen sus datos de eventos que desea sincronizar con OneSignal.
  </Step>

  <Step title="Mapear campos de eventos requeridos">
    Mapee los campos requeridos para eventos personalizados:

    * **Event Name**: Columna que contiene el tipo de evento (por ejemplo, "purchase", "signup")
    * **User Identifier**: Columna de External User ID, Email o Phone Number
    * **Event Timestamp**: Cuándo ocurrió el evento (opcional)
  </Step>

  <Step title="Mapear datos de carga útil del evento">
    Mapee columnas adicionales a propiedades de carga útil del evento:

    * Propiedades de evento personalizadas (product\_id, price, category, etc.)
    * Datos contextuales (source, campaign, etc.)
    * Métricas de comportamiento (value, quantity, etc.)
  </Step>

  <Step title="Configurar ajustes de sincronización">
    Establezca su frecuencia de procesamiento de eventos y preferencias de entrega.
  </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       |

***

## Limitaciones

* **Rendimiento de consultas**: Athena cobra por consulta y datos escaneados: optimice sus tablas de eventos
* **Dependencias de S3**: Requiere buckets S3 y catálogo Glue configurados correctamente
* **Actualización de datos**: La frecuencia de sincronización de eventos depende de la frecuencia con que se actualicen sus datos de S3

***

## Preguntas frecuentes

### ¿Qué sucede si mis consultas de Athena fallan?

OneSignal registrará errores de consulta y reintentará las consultas fallidas. Verifique sus permisos IAM y acceso al bucket de S3 si encuentra fallos persistentes.

### ¿Con qué frecuencia sincroniza OneSignal los eventos?

OneSignal verifica nuevos eventos según su frecuencia de sincronización configurada, con un intervalo mínimo de 15 minutos.

***

## ¿Necesita ayuda?

Contacte a nuestro equipo de soporte en `support@onesignal.com` o use el chat en la aplicación para obtener ayuda con la configuración de su integración de Athena.
