# Pipeline de datos

> Cómo fluyen los eventos desde su aplicación hacia los destinos: streams, funciones y enrutamiento en tiempo real

Source: https://docs.graph8.com/es/developers/data-pipeline/

graph8 incluye una plataforma de datos de clientes (CDP) integrada, basada en ClickHouse y PostgreSQL. Cada evento que envíe se almacena, se procesa y queda disponible de inmediato: contactos, empresas, enriquecimiento, secuencias y campañas funcionan desde el primer momento. No se requiere configurar un almacén.

**De forma opcional**, puede enrutar una copia de sus eventos hacia su propio almacén (BigQuery, Snowflake, etc.) u otras herramientas. Esto resulta útil para equipos que desean tener los datos de graph8 junto con sus demás fuentes de datos.

> **Tip: CDP incluido, almacenes opcionales**
> A diferencia de Segment, donde es obligatorio configurar un destino para almacenar datos, el CDP de graph8 almacena todo de forma predeterminada. Agregar BigQuery o Snowflake es opcional, pensado para equipos que también quieren los datos en su propio almacén.

## Flujo de datos

```
Your App (SDK / API)
    │
    ▼
  Streams (collect events)
    │
    ▼
  Functions (transform, filter, enrich)
    │
    ├──→ graph8 CDP (automatic - contacts, enrichment, sequences, campaigns)
    │
    └──→ Your warehouse (optional - BigQuery, Snowflake, Postgres, ...)
         + analytics (GA4, Amplitude, Mixpanel)
         + CRM (HubSpot)
```

Cada llamada `g8.track()`, `g8.identify()` y `g8.page()` ingresa automáticamente al CDP de graph8. Si ha configurado destinos adicionales, los eventos se distribuyen también a todos ellos de forma simultánea.

## Streams

Un stream es una fuente de datos: su sitio web, aplicación móvil o servidor. Cada stream tiene:

| Componente | Propósito |
|-----------|---------|
| **Browser key** (write key) | Clave pública para el [SDK de JavaScript](https://docs.graph8.com/developers/sdk/) |
| **Server key** | Clave privada para el seguimiento del lado del servidor |
| **Domains** | Dominios de origen permitidos (CORS) |

Al configurar graph8, se crea automáticamente un stream "Website" predeterminado. Utilice la write key al inicializar su SDK:

```typescript
g8.init({ writeKey: 'YOUR_BROWSER_KEY' });
```

Gestione los streams en **Connections > Sites** desde su panel de graph8.

## Funciones

Las funciones son código JavaScript que se ejecuta en cada evento antes de que llegue a los destinos. Úselas para:

- **Filtrar** tráfico de pruebas o bots
- **Transformar** la estructura de eventos para que coincida con los esquemas de los destinos
- **Enriquecer** eventos con datos externos (llamadas a API, consultas al almacén)
- **Enrutar** eventos a tablas o destinos específicos

Consulte la [guía completa de Funciones](https://docs.graph8.com/developers/functions/) para referencias de API y ejemplos de código.

## Destinos

Los eventos se enrutan a todos los destinos conectados en tiempo real. No se necesita código adicional: configúrelo una vez en el panel y cada evento fluye automáticamente.

**Destinos compatibles:**

**Almacenes de datos**

    BigQuery, Snowflake, ClickHouse, Redshift, Postgres, MySQL, S3

**Analítica y marketing**

    Google Analytics 4, Amplitude, Mixpanel, Facebook Conversion API

**CRM y ventas**

    HubSpot, además de cualquier API HTTP mediante destinos webhook

**graph8 CDP**

    Contactos, empresas, enriquecimiento, secuencias y campañas (automático)

Consulte la [guía completa de Destinos](https://docs.graph8.com/developers/destinations/) para ver las instrucciones de configuración.

## Depurador de eventos en vivo

Visualice los eventos que llegan en tiempo real. Después de instalar el SDK, abra **Connections > Live Events** para verificar que los datos fluyen correctamente.

- Filtre por stream, destino o tipo de evento
- Inspeccione los payloads completos de los eventos
- Consulte los resultados de ejecución de las funciones
- Depure la entrega a destinos

Consulte la [guía de Live Events](https://docs.graph8.com/developers/live-events/) para más detalles.

## Gestión de esquemas

graph8 gestiona automáticamente los esquemas de bases de datos para los destinos de almacén:

- **Creación automática de tablas** cuando llegan nuevos tipos de eventos
- **Adición automática de columnas** cuando los eventos contienen nuevas propiedades
- **Inferencia de tipos** de JSON a tipos SQL (string, integer, timestamp, etc.)

No se requiere DDL. Envíe los eventos y graph8 se encarga del esquema.

## Replay

Al agregar un nuevo destino, puede reproducir los eventos históricos para completar los datos de forma retroactiva. Todos los eventos se almacenan en el data lake y pueden reproducirse con filtros por fecha.

## Qué reemplaza graph8

| Antes | Después |
|--------|-------|
| Segment (tracking + destinos) | `g8.track()` + Connections |
| Clearbit (enriquecimiento) | `g8.enrich.person()` |
| Outreach (secuencias) | `g8.sequences.add()` |
| Calendly (reservas) | `g8.calendar.show()` |
| Intercom (chat + copilot) | `g8.chat.open()` + `g8.copilot.open()` |
| Typeform (formularios) | `g8.forms.lookup()` |
| HubSpot CRM | Contactos, empresas, listas y oportunidades integrados |

Una plataforma. Un SDK. Una sola factura.
