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

# Microsoft Fabric

> Sincroniza eventos personalizados desde Microsoft Fabric a OneSignal para activar Journeys automatizados y campañas de mensajería personalizadas basadas en comportamiento de usuario.

export const PLATFORM_0 = "Microsoft Fabric"

export const DATA_TYPE_0 = "columnas de tabla"

export const COLUMN_HEADER_0 = "Columna de Fabric"

export const PROPERTIES_DESCRIPTION_0 = "Objeto JSON con metadatos de evento"

## Resumen

La integración de OneSignal + Microsoft Fabric permite la sincronización automática de eventos personalizados desde tu lakehouse o warehouse de Fabric a OneSignal para activar campañas de mensajería automatizadas y Journeys basados en comportamiento de usuario.

Microsoft Fabric es una plataforma de análisis unificada que reúne ingeniería de datos, ciencia de datos, análisis en tiempo real e inteligencia de negocios en un solo entorno.

***

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

### Microsoft Fabric

* **Capacidad de Microsoft Fabric** con acceso a workspace
* **Service Principal** con permisos apropiados
* **SQL Endpoint** (Warehouse o Lakehouse) que contenga datos de eventos
* **Acceso a API externa** habilitado en configuración de tenant

***

## Configuración

<Steps>
  <Step title="Crear service principal en Azure">
    Crea un nuevo service principal para que OneSignal acceda a tus recursos de Fabric:

    1. Inicia sesión en el portal de Azure
    2. Navega a **Microsoft Entra ID** > **App registrations**
    3. Haz clic en **+ New registration**
    4. Ingresa el nombre: "OneSignal Fabric Integration"
    5. Selecciona **Accounts in this organizational directory only**
    6. Haz clic en **Register**
    7. Anota el **Application (client) ID** y el **Directory (tenant) ID**
    8. En **Certificates & secrets**, crea un nuevo client secret
    9. Anota el **client secret value**
  </Step>

  <Step title="Configurar ajustes de tenant de Fabric">
    Habilita el acceso externo para service principals:

    1. En Microsoft Fabric, haz clic en **Settings** > **Admin portal**
    2. Ve a **Tenant settings**
    3. En **Developer settings**, habilita **Service principals can use Fabric APIs**
    4. En **OneLake settings**, habilita **Users can access data stored in OneLake with apps external to Fabric**
  </Step>

  <Step title="Otorgar acceso a workspace">
    Agrega el service principal a tu workspace de Fabric:

    1. Navega a tu workspace (crea workspace compartido si usas "My Workspace")
    2. Haz clic en **Manage Access** > **+ Add people or groups**
    3. Selecciona tu service principal
    4. Establece el rol a **Contributor**
  </Step>

  <Step title="Obtener SQL endpoint">
    Obtén la cadena de conexión SQL para tu fuente de datos:

    1. En tu workspace, pasa el cursor sobre tu warehouse/lakehouse
    2. Haz clic en **...** > **Settings**
    3. Copia la **SQL connection string** (este es tu hostname)
  </Step>

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

    Selecciona **Microsoft Fabric** y proporciona:

    * **Hostname:** SQL endpoint del Paso 4
    * **Database/Catalog:** Nombre de tu lakehouse o warehouse
    * **Tenant ID:** Directory ID del Paso 1
    * **Client ID:** Application ID del Paso 1
    * **Client Secret:** Secret value del Paso 1
  </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       |

### Ejemplo de esquema de tabla de eventos

```sql theme={null}
-- Example Fabric table structure
CREATE TABLE user_events (
    event_name STRING,
    user_id STRING,
    event_time TIMESTAMP,
    properties JSON,
    session_id STRING,
    device_type STRING
);
```

***

## Modos de procesamiento

### Modo de consulta SQL

Escribe consultas SQL personalizadas para transformar tus datos de Fabric antes de sincronizar:

```sql theme={null}
SELECT
    event_name,
    user_id,
    event_time,
    TO_JSON(STRUCT(
        session_id,
        device_type,
        product_id
    )) as properties
FROM user_events
WHERE event_time >= CURRENT_DATE - INTERVAL 7 DAYS
```

### Modo de tabla

Sincroniza tablas completas o vistas directamente desde tu workspace de Fabric. OneSignal mapeará automáticamente las columnas a campos de eventos.

***

## Limitaciones

* Requiere capacidad de Fabric (no disponible en prueba)
* Los SQL endpoints deben ser accesibles para servicios externos
* Conjuntos de resultados grandes pueden impactar el rendimiento de sincronización

***

## Preguntas frecuentes

### ¿Cómo optimizo el rendimiento de consultas?

Usa particionamiento e indexación en tus tablas de Fabric. Considera crear vistas materializadas para datos de eventos consultados frecuentemente.

### ¿Puedo sincronizar desde lakehouses y warehouses?

Sí, OneSignal soporta cualquier recurso de Fabric que exponga un SQL endpoint, incluyendo lakehouses, warehouses y SQL analytics endpoints.

***
