> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.drimify.com/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Configuración de las Integraciones De Webhook en Drimify

## Configuración de Integraciones en Drimify (Webhooks & Correos)

Las integraciones de Drimify te permiten enviar automáticamente datos de los participantes a servicios externos cada vez que un usuario interactúa con tu aplicación. Puedes conectar con una API Personalizada, HubSpot o Salesforce — y para cada integración, puedes especificar exactamente qué campos de datos se transmiten.

## Comenzando

| Ve a Mi Cuenta → Integraciones.

Si aún no has configurado ninguna integración, verás la pantalla de marcador de posición "No hay integraciones de webhook todavía" o "No hay integraciones de servidor de correo electrónico todavía".
Haz clic en **+ Añadir Nueva Integración** (disponible tanto en la parte superior derecha como en el centro de la página) para abrir el selector de integración.

# Integraciones de Webhook

## Selección de un Tipo de Integración

Aparecerá una ventana modal titulada **"Seleccionar Integración de Webhook"**.
Puedes filtrar por categoría usando el menú desplegable (por defecto está en **Todas**). Las tres integraciones disponibles son:

* API Personalizada — para cualquier punto final REST de la API que controlas
* HubSpot — para automatización de CRM y Marketing a través de HubSpot
* Salesforce — para CRM de Salesforce

Haz clic en la tarjeta de integración que deseas configurar.

# Integración de API Personalizada

## Autenticación

Después de seleccionar **API Personalizada**, el panel **Añadir Integración** se abre con los siguientes campos:

* **Nombre de la Integración**: Una etiqueta para tu propia referencia (por defecto: "Integración API Personalizada"). Puedes renombrarla a algo más descriptivo.
* **Punto Final de API**: La URL completa de tu receptor de webhook (por ejemplo: `https://api.example.com/webhook`). Debe ser un punto final HTTPS.
* **Método HTTP**: 

Selecciona el método HTTP usado para enviar la solicitud de webhook a tu punto final.
Opciones disponibles:

* **POST** — Recomendado para la mayoría de los casos (crea un nuevo recurso o envía datos)
* **PUT** — Reemplaza completamente un recurso existente
* **PATCH** — Actualiza parcialmente un recurso existente

Elige el método que coincida con cómo tu API espera recibir datos.

* **Tipo de Autenticación**: Elige el método de autenticación usado por tu punto final.

| Opción | Descripción |
| ---- |
| Ninguno | No se envía un encabezado de autenticación |
| clave API (X-API-KEY) | Envía la clave en un encabezado `X-API-KEY` |
| Token Bearer | Envía la clave como `Authorization: Bearer <token>` |
| Autenticación Básica | Envía un encabezado `Authorization: Basic` creado desde tu Usuario y Contraseña |
| Encabezado Personalizado | Te permite definir tu propio nombre de encabezado (por ejemplo `X-Custom-Auth`) |

* Cuando se selecciona **Autenticación Básica**, aparecen dos campos: **Acceso** (nombre de usuario) y **Contraseña**. Introdúcelos tal cual — Drimify construye el encabezado `Authorization: Basic` por ti automáticamente. No necesitas codificar nada por ti mismo.
* Cuando se selecciona **Encabezado Personalizado**, aparece un campo adicional **Nombre de Encabezado Personalizado** donde puedes introducir el nombre de clave del encabezado.
* **Clave API**: El valor secreto enviado usando el método de autenticación seleccionado.
* **Verificar Conexión**: Haz clic en este botón para probar si Drimify puede alcanzar con éxito tu punto final usando las credenciales proporcionadas antes de guardar.

## Obtención del token desde un punto final de autenticación (pre-llamada)

Algunas APIs requieren que te autentiques primero: llamas a un punto final de autenticación con tus credenciales, recibes un token y usas ese token en la llamada real del webhook. Drimify soporta esto automáticamente.

Cuando el tipo de Autenticación es **Clave API**, **Token Bearer**, o **Encabezado Personalizado**, aparece una casilla **"Obtén este token desde un punto final de autenticación"**. Cuando se marca, el campo de credenciales estáticas es reemplazado por los ajustes de pre-llamada a continuación (para Encabezado Personalizado, el campo de nombre del encabezado permanece visible — el token obtenido se envía en ese encabezado).

El token obtenido se coloca de acuerdo con tu tipo de Autenticación:

* Token Bearer → `Authorization: Bearer <token>`
* clave API → `X-API-KEY: <token>`
* Encabezado Personalizado → `<nombre de tu encabezado>: <token>`### Elige uno de los tres métodos

**OAuth2 (client_credentials)** — para servidores estándar de OAuth2 (por ejemplo, Keycloak).

* Campos: **Token URL**, **ID de Cliente**, **Secreto de Cliente**, **Alcance** (opcional)
* Drimify envía una solicitud estándar de client_credentials de OAuth2 y lee el token desde `access_token`. La duración del token se toma desde `expires_in` del servidor.

**Login JSON** — para acceder a endpoints que reciben un cuerpo JSON y devuelven un token.

* Campos: **URL de Autenticación**, **Cuerpo** (lista clave/valor), **Ruta del Token**
* Drimify envía un `POST` con un cuerpo JSON construido desde tus filas clave/valor (por ejemplo, las filas `email = a@b.com` y `password = secret` generan `{"email":"a@b.com","password":"secret"}`).
* **Ruta del Token** indica a Drimify dónde está el token en la respuesta JSON, usando notación de punto — por ejemplo, `data.access_token`, o simplemente `token` si está a nivel superior.

**Personalizado** — para cualquier cosa que no encaje en los dos métodos anteriores.

* Campos: **URL de Autenticación**, **Método HTTP** (`POST` o `GET`), **Encabezados** (lista clave/valor), **Cuerpo** (lista clave/valor), **Codificación del Cuerpo** (JSON o form-urlencoded), **Ruta del Token**
* Con el método `GET`, no hay cuerpo de solicitud — pasa los parámetros a través de los Encabezados o la URL de Autenticación.
* Si añades un encabezado `Content-Type` por ti mismo, tendrá prioridad sobre el implícito por la codificación del cuerpo.

### Listas clave/valor (Cuerpo y Encabezados)

Cada fila tiene una **clave**, un **valor**, y una casilla **"sensible"** (marcada por defecto). Las filas se pueden añadir y eliminar, pero no editar en su lugar — para cambiar una fila, elimina y añade de nuevo. La bandera sensible solo se puede establecer al añadir una fila. Los valores sensibles se enmascaran después de guardarlos y nunca se exponen de nuevo, ni en el formulario ni en registros.

### Caché de tokens y reintentos

* Los tokens de OAuth2 se almacenan en caché durante la duración indicada por `expires_in`.
* Para Acceder JSON y Personalizado, fija la **Validez del Token (minutos)** — por defecto es **60 minutos** si se deja vacío.
* Los tokens en caché se mantienen por un máximo de 7 días.
* Si tu endpoint retorna **401** mientras usas un token en caché, Drimify desecha el token, se reautentica, y reintenta la llamada una vez.
* Si la llamada previa falla (error, tiempo de espera, o no se encuentra el token en la Ruta del Token), el webhook **no** se envía sin autenticar — la entrega falla, se registra y se reintenta por la cola de entrega como de costumbre.

### Verificar Conexión con una llamada previa

El botón **Verificar Conexión** admite completamente la llamada previa: primero se autentica contra tu endpoint de autenticación, luego ejecuta la llamada de prueba con el token obtenido.

# Integración con HubSpot

Al seleccionar **HubSpot**, el panel muestra:
* **Nombre de Integración**: Por Defecto: "Integración con HubSpot".
* **API Clave / Token de Acceso**: Pega aquí tu HubSpot Token de Acceso de App Privada. HubSpot retiró las claves de API antiguas en 2022, por lo que debes usar un token de App Privada generado desde tu cuenta HubSpot en: **Configuración → Integraciones → Apps Privadas**
* **Verificar Conexión**: Prueba el token contra la API de HubSpot antes de guardar.

# Integración con Salesforce

Al seleccionar **Salesforce**, el panel muestra:

* **Nombre de Integración**: Por Defecto: "Integración con Salesforce".
* **Dominio de Salesforce**: La URL de tu instancia de Salesforce (por ejemplo: `yourcompany.my.salesforce.com`).
* **Clave de Consumidor and Secreto de Consumidor**: Obtenidos desde una Aplicación Conectada configurada en Salesforce en: **Configuración → Administrador de Aplicaciones → Nueva Aplicación Conectada** Drimify usa el flujo de credenciales de cliente OAuth 2.0.
* **Nombre del campo id Externo:** El nombre API del campo usado para igualar (upsert) registros — típicamente algo como `Email_External_Id__c` o un campo id externo personalizado en el objeto Contacto o Lead. Este campo debe estar marcado como un **ID Externo** en Salesforce.
* **Fuente de ID Externo**: Un desplegable que te permite seleccionar qué campo de datos de Drimify se debe usar como clave de coincidencia (por ejemplo: Email).
* **Verificar Conexión:** Prueba la conexión OAuth de Salesforce antes de guardar.## ⚠️ Campos Requeridos en Salesforce

Salesforce impone campos requeridos a nivel de objeto. Si vas a hacer upsert de Clientes Potenciales, Salesforce requiere como mínimo:

* `lastName` — necesario para la creación del Lead 

Si vas a hacer upsert de Contactos, Salesforce requiere:

* `lastName` — necesario para la creación del Contacto

Aunque Email no es obligatorio en el esquema predeterminado de Salesforce, casi siempre es necesario como ID Externo para poder hacer correctamente la coincidencia y eliminar duplicados durante los upserts. Sin una coincidencia confiable de ID Externo, Salesforce podría crear registros duplicados o devolver un error.

### Mejor Práctica
Siempre mapea al menos:

* Apellido
* Email

cuando te conectes a Salesforce. Omitir Apellido hará que el webhook falle y el registro no se creará ni se actualizará.

# Mapeo de Campos

Disponible para los tres tipos de integración, **Map Fields** te permite especificar exactamente qué campos de datos de Drimify se envían a tu integración, y bajo qué nombres de clave. Haz clic en **+ Añadir Campo** para añadir una fila de mapeo.

Cada fila consta de:

* **Campo webhook (izquierda)** — el nombre clave que aparecerá en el payload saliente (definido por ti para que cumpla con los requisitos de tu integración)
* **→ Campo fuente (desplegable a la derecha)** — el valor fuente para este campo. Puedes:
  * Seleccionar un **campo de datos de Drimify** (por ejemplo, Referencia De La App, Email, Score) para enviar un valor dinámico recogido del participante
  * Seleccionar **valor estático** para enviar un valor fijo y codificado cada vez que se dispare el webhook. Aparecerá un campo de texto adicional donde introducirás el valor (ej., `My_Value`). Útil para pasar constantes como el nombre de un evento, un identificador de fuente o una etiqueta de entorno.

## Campos Fuente de Drimify Disponibles

| Nombre para Mostrar | Campo Clave |
| ---- |
| Dirección Postal | `address` |
| app id | `appId` |
| Referencia De La App | `appReference` |
| Código | `code` |
| Nombre De La Empresa | `companyName` |
| País De Conexión | `connectionCountry` |
| País | `country` |
| Código De País | `countryCode` |
| Casilla De Verificación Personalizada | `customCheckbox` |
| Formato Personalizado | `customFormat` |
| Campo De Texto Personalizado | `customText` |
| Fecha | `date` |
| fecha de nacimiento | `dob` |
| Fecha Con Zona Horaria | `dateWithTimezone` |
| Email | `email` |
| Nombre | `firstName` |
| Género | `gender` |
| ID | `id` |
| Idunic | `idunic` |
| dirección ip | `ipAddress` |
| Apellido | `lastName` |
| Levels Jugó | `levelsPlayed` |
| Local | `locale` |
| Newsletter Opt-In | `optinNewsletter` |
| Número De Teléfono | `phoneNumber` |
| Jugó | `played` |
| Código Postal | `cp` |
| Perfil | `profil` |
| Perfil UID | `profilUid` |
| Referencia Del Premio | `prizeRef` |
| Título Del Premio | `prizeTitle` |
| premio uid | `prizeUid` |
| Referencia | `referral` |
| Puntuación | `score` |
| Seleccionar Valor | `selectValue` |
| Seleccionar Valor 2 | `selectValue2` |
| id sesión | `sessionId` |
| Tiempo Tomado | `timeTaken` |
| Ciudad | `town` |
| Actualizado En | `updatedAt` |
| Actualizado En Timestamp | `updatedAtTimeStamp` |
| Nombre De Usuario | `username` |
| Página Web Dirección | `website` |

Puedes añadir tantos mapeos como necesites. Para eliminar un mapeo, haz clic en el icono de la papelera en el lado derecho de la fila.

# Disponible en Espacio de Trabajo

Al final del formulario de integración, la sección **Available in Workspaces** te permite usar el interruptor junto a cada espacio de trabajo para controlar qué espacio de trabajo puede usar la integración. Haz clic en **Seleccionar Todo** para habilitar la integración para todos los espacios de trabajo a la vez.

# Guardar y Gestionar Integraciones

Una vez completados todos los campos, haz clic en **Guardar Cambios** para crear la integración. La integración aparecerá entonces en la lista principal de Integraciones. Puedes editar o borrar integraciones existentes desde esta lista en cualquier momento. Haz clic en **Cancelar** para descartar los cambios no guardados.

---

# Integraciones de Servidor de Correo Electrónico

Las integraciones de servidor de correo electrónico te permiten enviar correos electrónicos transaccionales (como confirmaciones, resultados o seguimientos) directamente desde tus experiencias de Drimify usando tu proveedor de correo preferido.### Añadir una Integración de Servidor de Correo Electrónico

1. Ve a **Integrations → Servidor de Correo Electrónico Integrations**
2. Haz clic en **Add Servidor de Correo Electrónico Integration**
3. Elige tu proveedor:
* Amazon SES
* Brevo
* Drimify
* Mailgun
* Mailjet
* Mandrill
* SendGrid
* Tipimail
* SMTP Personalizado

### Configurar tu Integración de Servidor de Correo Electrónico

#### Ajustes Generales

Todos los proveedores comparten los siguientes ajustes generales:

* **Integration Name** – Nombre interno para identificar tu integración
* **Sender Name** – Nombre que se muestra como remitente del correo electrónico
* **Sender Email** – Dirección de correo electrónico utilizada para enviar emails (no aplicable para Drimify — ver más abajo)
* **BCC Email** *(opcional)* – Añadir una dirección de correo electrónico para recibir una copia de todos los emails enviados

#### Autenticación

Cada proveedor requiere credenciales específicas. Consulta la sección de configuración del proveedor para más detalles.

#### Prueba Tu Conexión

Tras ingresar tus credenciales, haz clic en **Send Test Email** para verificar que tu integración funciona correctamente. Una confirmación de "Correo de prueba enviado con éxito" aparecerá si la conexión es válida.

||| ⚠️ La integración debe pasar la prueba de conexión antes de poder ser utilizada. Si se omite o falla la prueba, el servidor de correo electrónico no estará disponible para su uso en tus experiencias.

#### Campos de Parámetros de Plantilla

Asocia los campos de datos de Drimify con las variables de plantilla de tu proveedor de correo electrónico. Esta sección está disponible para proveedores que soportan plantillas de email dinámicas: **Brevo, Mailgun, Mailjet, Mandrill, SendGrid y Tipimail**.

* **Parameter name** – El nombre de variable esperado en tu plantilla de email
* **Field** – El dato de Drimify correspondiente (p. ej., Nombre, Email, Puntuación, etc.)

Haz clic en **Add Field** para crear mapeos adicionales.

| 💡 Esto te permite personalizar emails de manera dinámica usando los datos de jugadores recopilados en tu experiencia.

#### Disponible en espacio de trabajo

Selecciona qué espacio de trabajo puede usar esta integración del servidor de correo electrónico.### Configuración Específica del Proveedor

#### Amazon SES

Lo que necesitas:

* Un usuario de AWS IAM con permisos `ses:SendEmail`
* Clave de Acceso API y Clave Privada API (desde AWS IAM)
* Tu región de AWS (por ejemplo, `eu-west-1`, `us-east-1`)
* Token de Sesión *(solo si utilizas credenciales temporales/STS)*
* Un correo del remitente o dominio verificado en Amazon SES

Pasos:

1. En AWS IAM, crea un usuario con permisos de envío SES y genera un par de claves de acceso
2. En Drimify, introduce tu **Clave de Acceso API**, **Clave Privada API** y **Región**
3. Si utilizas credenciales temporales, también introduce el **Token de Sesión**
4. Asegúrate de que tu correo del remitente o dominio está verificado en Amazon SES
5. Haz clic en **Enviar Correo de Prueba** hasta validar la conexión
6. Guarda tu integración

#### Brevo

Lo que necesitas:

* Una clave api de Brevo

Pasos:

1. En tu cuenta Brevo, genera una clave api en **Configuración → Claves API**
2. Pégala en el campo **Clave API** en Drimify
3. Haz clic en **Enviar Correo de Prueba** hasta validar la conexión
4. Guarda tu integración

#### Drimify

No se requiere autenticación. Los correos se envían a través de la infraestructura de correo interno de Drimify ([notification@digitaservice.com](mailto:notification@digitaservice.com)).
Lo que necesitas:

* Un nombre del remitente
* Una dirección de correo de respuesta (por ejemplo, [contact@yourcompany.com](mailto:contact@yourcompany.com))
* Opcionalmente, una dirección de correo BCC

Pasos:

1. Selecciona **Drimify** como tu proveedor
2. Introduce tu **Nombre del Remitente** y **Correo de Respuesta**
3. Opcionalmente añade un **Correo BCC**
4. Selecciona el espacio de trabajo que debe usar esta integración y guarda

| 💡 Usa esta opción si no tienes un proveedor de correo externo o quieres empezar rápidamente sin configuración externa.

#### Mailgun

Lo que necesitas:

* Una clave api de Mailgun
* Tu dominio de envío registrado en Mailgun
* Tu región API (US o EU)

Pasos:

1. En tu cuenta de Mailgun, recupera tu clave de api y dominio de envío
2. En Drimify, introduce tu **Clave API**, **Dominio API** y **Región API**
3. Haz clic en **Enviar Correo de Prueba** hasta validar la conexión
4. Guarda tu integración

#### Mailjet

Lo que necesitas:

* Una Clave de Acceso API y Clave Privada API de Mailjet

Pasos:

1. En tu cuenta de Mailjet, ve a **Configuración de Cuenta → REST API → Gestión de Claves API**
2. Copia tu **Clave de Acceso API** y **Clave Privada API**
3. Introduce ambas en Drimify
4. Haz clic en **Enviar Correo de Prueba** hasta validar la conexión
5. Guarda tu integración

#### Mandrill

Lo que necesitas:

* Una clave api de Mandrill *(Mandrill es un complemento de correo transaccional de Mailchimp)*

Pasos:

1. En tu cuenta de Mandrill, ve a **Configuración → Claves API** y genera una clave
2. Pega la **Clave API** en Drimify
3. Haz clic en **Enviar Correo de Prueba** hasta validar la conexión
4. Guarda tu integración

#### SendGrid

Lo que necesitas:

* Una clave api de SendGrid con permisos de Envío de Correo

Pasos:

1. En tu cuenta de SendGrid, ve a **Configuración → Claves API** y crea una clave con permisos **Envío de Correo**
2. Pega la **Clave API** en Drimify
3. Haz clic en **Enviar Correo de Prueba** hasta validar la conexión
4. Guarda tu integración

#### Tipimail

Lo que necesitas:

* Un usuario API y clave api de Tipimail *(Tipimail es el servicio de correo transaccional de Sarbacane)*

Pasos:

1. En tu cuenta de Tipimail, ve a **Configuración → SMTP & APIs** y recupera tu **Usuario API** y **Clave API**
2. Introduce ambos en Drimify
3. Haz clic en **Enviar Correo de Prueba** hasta validar la conexión
4. Guarda tu integración

| 💡 Tipimail admite plantillas de correo electrónico dinámicas: referencia tu plantilla por su nombre y usa la sección Campos De Parámetros De La Plantilla para mapear los datos de Drimify a las variables de tu plantilla.

#### SMTP Personalizado

Lo que necesitas:

* El nombre de host de tu servidor SMTP
* Puerto SMTP (típicamente `587` para TLS, `465` para SSL)
* Acceso SMTP (usualmente tu dirección de correo electrónico)
* Contraseña SMTP

Pasos:

1. Recupera tus credenciales SMTP de tu proveedor de hosting de correo o la configuración del servidor
2. En Drimify, introduce tu **Host**, **Puerto**, **Usuario** y **Contraseña**
3. Haz clic en **Enviar Correo de Prueba** hasta validar la conexión
4. Guarda tu integración