> For the complete documentation index, see [llms.txt](https://docs-agents-api.boolfy.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs-agents-api.boolfy.com/documents/deeplink.md).

# Deeplink

El deeplink permite la integración de Boolfy Agents tanto en ambientes WinForm como en WebApps de manera directa, segura y transparente para el usuario final.

A continuación, detallamos como se visualiza un Deeplink embebido en una pagina de un tercero.

<figure><img src="/files/ljcMzbESSSqKv5M4WnW0" alt=""><figcaption></figcaption></figure>

Para integrar el deeplink existen dos esquemas diferentes.&#x20;

### WinForm

En aplicaciones WinForm se puede abrir una instancia de navegador con la URL del deeplink.

### WebApp

En aplicaciones Web puedes crear un IFRAME con la URL del deeplink.&#x20;

{% hint style="info" %}
Recuerda contactar con el equipo de integraciones de Boolfy para que habilitemos a tu dominio a embeber nuestros Deeplinks.
{% endhint %}

```html

<iframe src="Deeplink Url" style="height:700px;width:1500px;"></iframe>

```

En los entornos WebApp te puedes suscribir a la mensajeria de Boolfy Agents para recibir notificaciones de las acciones del usuario. Estas pueden ser:

* **Update**: El usuario actualizó el documento. En este caso recomendamos volver a ejecutar el método [GetInfo](/documents/getinfo.md) para obtener las actualizaciones.
* **Cancel**: El usuario hizo click en el botón de cancelar.
* **404**: El link no es válido.

Para recibir estas notificaciones, simplemente debes suscribirte a la mensajería que emite Boolfy Agents. Aquí tienes un código de ejemplo para la suscripción.

```javascript
window.addEventListener("message", (event) => {
	if (event.data != null && event.data.type != null) {
		if (event.data.type == "boolfy:navigate") {
			if (event.data.action == "updated") {
				//El usuario actualizó el documento
			} else if (event.data.action == "cancel") {
				//El usuario canceló la acción;
			} else if (event.data.action == "404") {
				//Deeplink no válido;
			}
		} else if (event.data.type == "boolfy:rule_not_pass") {
			if (event.data.action == QAId) {
				//Los QAId dependen de cada modelo
			}
		}
	}
});

```

Así mismo, implementamos un mecanismo que permite ejecutar todas las reglas sin necesidad de intervención humana:

```javascript
IFRAME.contentWindow.postMessage({ 
                                    type: "boolfy:rules", 
                                    action: "refresh" 
                                 }, 
                                 "enterprise.com");
```
