# GoHighLevel

> Conecta GoHighLevel a tu Cademí: el ID del producto, el aviso de gateway en beta y el workflow con los webhooks de pago recibido y de reembolso.

Conecta GoHighLevel a tu Cademí para que cada compra aprobada libere el acceso del alumno por sí sola y el reembolso lo retire. Necesitarás el ID del producto y un workflow en GoHighLevel que avise a Cademí por webhook. GoHighLevel no pide token.

## 1. Crea la entrega en Cademí

1. En el panel de Cademí, abre **Ventas > Entregas** y agrega una entrega.
2. En **Seleccione un Gateway**, elige **GoHighLevel**. La pantalla muestra el aviso **Este gateway está en fase de implementación beta, pero ya puedes usarlo**: sigue normalmente.
3. En **Nombre de la Entrega**, escribe un nombre que te ayude a reconocerla después.
4. **Modalidad de Venta** muestra solo **Venta única**: la entrega de GoHighLevel no tiene la opción **Suscripción**.
5. El bloque **Conexión con la pasarela** muestra el campo **ID del producto** y la **URL de Postback**.

Deja la entrega abierta: vuelves a ella en los próximos pasos.

## 2. Encuentra el ID del producto

1. En el panel de GoHighLevel, haz clic en **Payments** en el menú lateral y después en **Products**.
2. Haz clic en el producto y, en la sección **Additional Information**, copia el valor de **Internal Product Id**.
3. Pega el ID en **ID del producto**, en la entrega de Cademí.

## 3. Crea el workflow

El workflow escucha los pagos de GoHighLevel: el pago aprobado libera el acceso del alumno, y el reembolso quita el acceso.

1. En el menú lateral, haz clic en **Automation** y, en la esquina superior derecha, en **Create Workflow**.
2. Elige **Start from Scratch** y ponle al workflow el nombre "Cademí".
3. Haz clic en **Add New Trigger**, elige el evento **Payment Received** y, en **Filters**, define **Payment Status** **is** **Success**. Guarda el disparador.
4. Haz clic de nuevo en **Add New Trigger**, elige el evento **Refund** y, en **Filters**, define **Status** **is** **Success**. Guarda el disparador.
5. Debajo de los disparadores, haz clic en **+** y agrega la acción **Condition**, que verifica el campo **Workflow Trigger**.
6. En la condición, crea dos caminos: **Approved**, cuando el disparador sea **Payment Received**, y **Canceled**, cuando sea **Refund**. El camino **None**, cuando no es ninguno de los dos, queda sin acción.

## 4. Agrega los webhooks

Los webhooks son las acciones que avisan a Cademí. Sin ellos, el workflow corre en GoHighLevel y Cademí no recibe nada.

En el camino **Approved**:

1. Haz clic en **+** debajo del camino y elige la acción **Webhook**.
2. En **Action Name**, escribe "Approved". En **Method**, elige **POST**. En **URL**, pega la **URL de Postback** de la entrega.
3. Deja **Custom Data** y **Headers** en blanco y haz clic en **Save Action**.

En el camino **Canceled**:

1. Haz clic en **+** debajo del camino y elige la acción **Custom Webhook**.
2. En **Action Name**, escribe "Canceled". En **Event**, elige **CUSTOM**; en **Method**, **POST**; en **URL**, pega la **URL de Postback** de la entrega; en **Authorization**, **None**.
3. Deja **Headers** y **Query Parameters** en blanco. En **Content-Type**, elige `application/json`.
4. En **Raw Body**, selecciona **Custom Values** y pega exactamente este código:

```json
{
  "payment_status": "canceled",
  "transaction_id": "{{refund.transaction.id}}",
  "user_email": "{{contact.email}}",
  "user_name": "{{contact.name}}"
}
```

5. Haz clic en **Save Action**.

Por último, haz clic en **Publish** para publicar el workflow y, en Cademí, guarda la entrega.

**Atención:** un workflow en borrador no envía nada. Si no lo publicas, Cademí no recibe las ventas.
