# Calling Webhook

***

En este tutorial de caso de uso, vamos a crear una herramienta personalizada que podrá llamar a un endpoint webhook y pasar los parámetros necesarios en el cuerpo del webhook. Usaremos [Make.com](https://www.make.com/en) para crear el flujo de trabajo webhook.

## Make

Dirígete a Make.com, después de registrar una cuenta, crea un flujo de trabajo que tenga un módulo Webhook y un módulo Discord, que se vea como abajo:

<figure><img src="https://4068692976-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUiD7nOmFRK805sNuiieJ%2Fuploads%2Fgit-blob-8f78243b4a5dbd5eb546edb81928d8213f683f80%2Fscreely-1691756705932.png?alt=media" alt=""><figcaption></figcaption></figure>

Desde el módulo Webhook, deberías poder ver una URL webhook:

<figure><img src="https://4068692976-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUiD7nOmFRK805sNuiieJ%2Fuploads%2Fgit-blob-a817d39dba471d21c9d4d37c733a659242e93912%2Fimage%20(46).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

Desde el módulo Discord, estamos pasando el cuerpo `message` del Webhook como el mensaje para enviar al canal de Discord:

<figure><img src="https://4068692976-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUiD7nOmFRK805sNuiieJ%2Fuploads%2Fgit-blob-98ee4c120a783fd6312ce30ad4f6c871a9bb2d83%2Fimage%20(47).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

Para probarlo, puedes hacer clic en Run once en la esquina inferior izquierda y enviar una solicitud POST con un cuerpo JSON

```json
{
    "message": "Hello Discord!"
}
```

<figure><img src="https://4068692976-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUiD7nOmFRK805sNuiieJ%2Fuploads%2Fgit-blob-4f264640c8e6e79202f2366dc78c3a28ce502fe6%2Fimage%20(48).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

Podrás ver un mensaje de Discord enviado al canal:

<figure><img src="https://4068692976-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUiD7nOmFRK805sNuiieJ%2Fuploads%2Fgit-blob-c57ce0db23f97057f2290b8e32ad28a4dc4911d5%2Fimage%20(49).png?alt=media" alt="" width="249"><figcaption></figcaption></figure>

¡Perfecto! Hemos configurado exitosamente un flujo de trabajo que puede pasar un mensaje y enviarlo al canal de Discord [🎉 ](https://emojiterra.com/party-popper/)[🎉](https://emojiterra.com/party-popper/)

## Flowise

En Flowise, vamos a crear una herramienta personalizada que pueda hacer la solicitud POST al Webhook, con el cuerpo del mensaje.

Desde el dashboard, haz clic en **Tools**, luego haz clic en **Create**

<figure><img src="https://4068692976-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUiD7nOmFRK805sNuiieJ%2Fuploads%2Fgit-blob-f86ad79d452adc854137baadb5d2f16b67564b98%2Fscreely-1691758397783.png?alt=media" alt=""><figcaption></figcaption></figure>

Luego podemos llenar los siguientes campos (siéntete libre de cambiarlos según tus necesidades):

* **Tool Name**: make\_webhook (debe estar en snake\_case)
* **Tool Description**: Útil cuando necesitas enviar mensajes a Discord
* **Tool Icon Src**: <https://github.com/FlowiseAI/Flowise/assets/26460777/517fdab2-8a6e-4781-b3c8-fb92cc78aa0b>
* **Input Schema**:

<figure><img src="https://4068692976-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUiD7nOmFRK805sNuiieJ%2Fuploads%2Fgit-blob-e902eef21dc089bcf38b11a8aea0fb188e366ef8%2Fimage%20(167).png?alt=media" alt=""><figcaption></figcaption></figure>

* **JavaScript Function**:

```javascript
const fetch = require('node-fetch');
const webhookUrl = 'https://hook.eu1.make.com/abcdef';
const body = {
	"message": $message
};
const options = {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json'
    },
    body: JSON.stringify(body)
};
try {
    const response = await fetch(webhookUrl, options);
    const text = await response.text();
    return text;
} catch (error) {
    console.error(error);
    return '';
}
```

Haz clic en **Add** para guardar la herramienta personalizada, y ahora deberías poder verla:

<figure><img src="https://4068692976-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUiD7nOmFRK805sNuiieJ%2Fuploads%2Fgit-blob-8ab2351e70085c882452a7227ebb420fe2576b5e%2Fimage%20(51).png?alt=media" alt="" width="279"><figcaption></figcaption></figure>

Ahora, crea un nuevo canvas con los siguientes nodos:

* **Buffer Memory**
* **ChatOpenAI**
* **Custom Tool** (selecciona la herramienta make\_webhook que acabamos de crear)
* **OpenAI Function Agent**

Debería verse como abajo después de conectarlos:

<figure><img src="https://4068692976-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUiD7nOmFRK805sNuiieJ%2Fuploads%2Fgit-blob-b1a367fd5d953eb886261219b21fddcacbf41fb7%2Fscreely-1691758990676.png?alt=media" alt=""><figcaption></figcaption></figure>

¡Guarda el chatflow y comienza a probarlo!

Por ejemplo, podemos hacer preguntas como *"cómo cocinar un huevo"*

<figure><img src="https://4068692976-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUiD7nOmFRK805sNuiieJ%2Fuploads%2Fgit-blob-4cb1b4a98278daeaaef49c474587d11158267f2f%2Fimage%20(52).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

Luego pide al agente que envíe todo esto a Discord:

<figure><img src="https://4068692976-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUiD7nOmFRK805sNuiieJ%2Fuploads%2Fgit-blob-98f95c279f33dcac01c0f3ed506a4210b00e8c34%2Fimage%20(53).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

Ve al canal de Discord, y podrás ver el mensaje:

<figure><img src="https://4068692976-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUiD7nOmFRK805sNuiieJ%2Fuploads%2Fgit-blob-73793197f0e0e1a3a60543b3378b1a7e9738ab9a%2Fimage%20(54).png?alt=media" alt=""><figcaption></figcaption></figure>

¡Eso es todo! OpenAI Function Agent será capaz de determinar automáticamente qué pasar como mensaje y enviarlo a Discord. Este es solo un ejemplo rápido de cómo activar un flujo de trabajo webhook con cuerpo dinámico. La misma idea se puede aplicar a flujos de trabajo que tienen un webhook y Gmail, GoogleSheets, etc.

Puedes leer más sobre cómo pasar información del chat como `sessionId`, `flowid` y `variables` a una herramienta personalizada - [https://github.com/FlowiseAI/FlowiseDocs/blob/main/esp/integrations/langchain/tools/custom-tool.md#additional](https://github.com/FlowiseAI/FlowiseDocs/blob/main/esp/integrations/langchain/tools/custom-tool.md#additional "mention")

## Tutoriales

* Mira un video de instrucciones paso a paso sobre el uso de Webhooks con herramientas personalizadas de Flowise.

{% embed url="<https://youtu.be/_K9xJqEgnrU>" %}

* Mira cómo conectar Flowise a Google Sheets usando webhooks

{% embed url="<https://youtu.be/fehXLdRLJFo>" %}

* Mira cómo conectar Flowise a Microsoft Excel usando webhooks

{% embed url="<https://youtu.be/cB2GC8JznJc>" %}
