# Entrada basada en API

<Aside type="caution" icon="setting" title="Se necesita la ayuda de un desarrollador">
 Necesitará la ayuda de su equipo de desarrollo para configurar un journey de entrada basada en API. Por favor, comparta esta guía con ellos.
</Aside>

## Cómo funciona

La entrada basada en API le permite iniciar un customer journey en el momento en que ocurre un evento de negocio específico. Para iniciar una campaña, debe enviar una solicitud de API especial.

Aquí hay algunos casos de uso para una entrada basada en API:

* Informar a los clientes cuando los productos vuelven a estar en stock
* Avisar a los usuarios que el precio de un producto popular ha bajado
* Notificar a los suscriptores cuando se publique un nuevo episodio de podcast

A diferencia de los Events regulares, todos estos eventos de negocio pueden ocurrir fuera de la aplicación. Por ejemplo, la disponibilidad de un producto solo se puede verificar en una base de datos externa. Aquí es donde una entrada basada en API es útil: puede configurar el envío de una solicitud para iniciar un journey cada vez que ocurran ciertos cambios fuera de la aplicación (por ejemplo, en su base de datos externa).

<img src="/shared-33.webp" alt="Elemento de entrada basada en API en el lienzo del journey"/>

Funciona de la siguiente manera:

1. Cree un journey con una entrada basada en API. En la configuración de la entrada, encontrará la plantilla de la solicitud que inicia el journey.
2. Añada condiciones de segmentación a la solicitud usando el [Lenguaje de segmentación](/es/developer/api-reference/segmentation-filters-api/segmentation-language). También puede añadir marcadores de posición de contenido a la solicitud para cambiar el contenido del mensaje dependiendo del contexto.
3. Automatice la solicitud si es necesario. Por ejemplo, la información sobre un cambio de precio puede enviarse inmediatamente desde la base de datos al webhook. Una vez que esto suceda, el webhook debería enviar automáticamente la solicitud para iniciar el journey. También puede enviar la solicitud manualmente si no necesita automatización.

Puede enviar la solicitud un número ilimitado de veces para cambiar las condiciones de segmentación o el contenido del mensaje.

Para más detalles, siga las instrucciones a continuación.

## Configurar un journey con entrada basada en API

1. Cree un journey con una entrada basada en API:

<video src="/journey-elements-api-based-entry-1.webm" title="Crear un nuevo journey y seleccionar la entrada basada en API" autoplay loop muted playsinline />

2. Haga doble clic en el paso de entrada basada en API. Se abrirá la ventana de configuración de la entrada.

3. Puede modificar el contenido de los push y los emails cada vez que se inicie el journey utilizando marcadores de posición de contenido. El valor de cada marcador de posición se puede cambiar en la solicitud. Si no necesita esta opción, puede omitir este paso.

> Por ejemplo, está creando un journey para notificar a los suscriptores cuando se lance un nuevo episodio de podcast. Usando un marcador de posición de contenido, puede cambiar el título del podcast cada vez que inicie el journey.

Primero, añada los nombres de los marcadores de posición en la ventana de configuración de la entrada basada en API. Puede usar cualquier nombre que le resulte conveniente.

<img src="/journey-elements-api-based-entry-2.webp" alt="Añadir nombres de marcadores de posición de contenido en la ventana de configuración de la entrada basada en API"/>

Ahora, cree un [preset de push](/es/product/content/push-presets) o un [contenido de email](/es/product/content/email-content/) e inserte el marcador de posición en lugar del texto que desea modificar. El marcador de posición debe estar en uno de los siguientes formatos dependiendo de sus necesidades:

* `{placeholder_name|format_modifier|}` – si el valor del marcador de posición no se especifica al iniciar la campaña, los usuarios verán un espacio vacío en su lugar.
* `{placeholder_name|format_modifier}` – si el valor del marcador de posición no se especifica y no ha sido asignado previamente a un usuario (en caso de que haya usado un Tag como marcador de posición), el mensaje no se enviará.

<details>

<summary>Modificadores de formato</summary>

* **CapitalizeFirst** – pone en mayúscula la primera letra del valor de un marcador de posición
* **CapitalizeAllFirst** – pone en mayúscula las primeras letras de todas las palabras en el valor de un marcador de posición
* **UPPERCASE** – convierte todas las letras a mayúsculas
* **lowercase** – convierte todas las letras a minúsculas
* **regular** – inserta el valor de un marcador de posición exactamente como se especifica en la solicitud

</details>

<img src="/journey-elements-api-based-entry-3.webp" alt="Insertar un marcador de posición en un preset de push para contenido dinámico"/>

<Aside type="tip">
También puede usar un nombre de [Tag existente](/es/product/audience-data-and-segmentation/user-data-tags/) en lugar de un nombre de marcador de posición. En este caso, tiene que configurar la sobreescritura del valor de este Tag por el valor especificado en la solicitud como se describe a continuación.
</Aside>

Al configurar el elemento Push o Email en su journey, seleccione el preset creado y active la opción **Personalizar mensaje con atributos de evento**. 

Seleccione los marcadores de posición que desea modificar en la solicitud al iniciar el journey. Elija la **Entrada basada en API** como origen y el nombre del marcador de posición como atributo dinámico:

<video src="/journey-elements-api-based-entry-4.webm" title="Personalizar mensaje con atributos de evento desde la entrada basada en API" autoplay loop muted playsinline />

Haga clic en **Aplicar** para guardar los cambios.

4. En la ventana de configuración de la entrada, copie la plantilla de la solicitud para modificarla:

<img src="/journey-elements-api-based-entry-5.webp" alt="Copiar plantilla de solicitud desde la ventana de configuración de la entrada basada en API"/>
<Aside> 
Para iniciar un journey a través de la API, debe incluir un token de autorización válido en el encabezado de Autorización.

**Formato de encabezado requerido**

  ```http
  Authorization: Api <your_api_token>
  ```
  **Ejemplo**

  ```http
  Authorization: Api c8dc6435-xxxxxxxxxxxxxxx
  ```
  
 </Aside>


5. Añada filtros de audiencia al parámetro `"filter"` usando el [Lenguaje de segmentación](/es/developer/api-reference/segmentation-filters-api/segmentation-language) o [copie el lenguaje de segmentación](/es/product/audience-data-and-segmentation/segmentation/#copy-segment-logic) de sus segmentos. Configure los [Tags](/es/product/audience-data-and-segmentation/user-data-tags/tags) necesarios con antelación.

Por ejemplo, para dirigirse a los usuarios que añadieron el artículo _Socks_ a su _Wishlist_, el valor de `"filter"` debe ser el siguiente:

`"filter": "A(\"12345-12345\") * "T(\"Wishlist\", EQ, \"Socks\")"`

En este ejemplo, debe tener un Tag _Wishlist_ configurado en su aplicación.

<Aside type="note">
El código de su aplicación se añade automáticamente al parámetro `"filter"` en el formato `A(\"12345-12345\")`. No lo elimine ni lo modifique.

Además, tenga en cuenta que las comillas ("") y las barras invertidas (\\) deben escaparse con una barra invertida (\\) en las consultas JSON.
</Aside>

<Aside type="tip">
También puede dirigirse a dispositivos o usuarios específicos directamente pasando un array de HWIDs en el parámetro `"hwids"` o de User IDs en el parámetro `"users"` en lugar de usar filtros:

```json
"users": ["user_id_1", "user_id_2", ...],
"hwids": ["hwid_1", "hwid_2", ...]
```
</Aside>

6. Si ha configurado marcadores de posición, especifique el contenido deseado como sus valores:

<img src="/journey-elements-api-based-entry-6.webp" alt="Especificar valores de marcadores de posición en la solicitud de API para iniciar el journey"/>


7. Si planea reiniciar su campaña con frecuencia y no quiere que los mismos usuarios entren en el journey varias veces, establezca [Límites de entrada a la campaña](/es/product/customer-journey/journey-settings#campaign-entry-limit).

> Por ejemplo, ha creado una campaña para notificar a los usuarios sobre una reducción de precio de un producto específico. Quiere relanzar el journey varias veces enviando varias solicitudes con diferentes filtros de audiencia. En este caso, puede añadir Límites de entrada a la campaña para que la notificación no se envíe repetidamente a los usuarios que coincidan con múltiples filtros.

8. Si quiere que un journey se inicie cada vez que ocurra un determinado evento de negocio, automatice la solicitud utilizando el webhook. Una vez que ocurra el evento, el webhook debería enviar automáticamente la solicitud para iniciar el journey.

También puede enviar la solicitud manualmente si no necesita automatización.

<Aside type="note">
* Si cambia las condiciones de segmentación al enviar una nueva solicitud, esto no afectará a los usuarios que ya hayan entrado en el journey.
* Si cambia el contenido del mensaje al enviar una nueva solicitud, todos los usuarios recibirán la nueva versión del mensaje (incluidos aquellos que ya entraron en el journey pero que aún no han recibido este mensaje).
</Aside>