# Crea un chatbot de IA para OnlyFans con la API: webhook, LLM y mensajes

> Crea un chatbot de IA para OnlyFans: conecta el webhook messages.received a un LLM y a OnlyFansAPI para respuestas automáticas escalables basadas en eventos.

**En resumen**

- Escucha el webhook `messages.received` (desde el plan Basic) para activar una respuesta automática cada vez que un fan envía un mensaje.
- Devuelve de inmediato un estado HTTP 200 OK para evitar que el webhook agote el tiempo de espera y luego procesa la solicitud al LLM en una cola de tareas en segundo plano.
- Suscríbete a los eventos `users.typing` y añade un retardo de debounce de 5 a 10 segundos para no interrumpir a los fans antes de que terminen de escribir.
- Adjunta un encabezado `Idempotency-Key` único al enviar el mensaje final para evitar entregas duplicadas durante los reintentos de red.
- Envía mensajes de pago fijando el `price` entre 3 y 200 e incluyendo `mediaFiles`, a menos que `lockedText` sea true.

Crear un chatbot de IA para OnlyFans requiere configurar un webhook (desde el plan Basic) para recibir los mensajes de los fans casi en tiempo real, enviar el texto a un modelo de lenguaje grande (LLM) para procesarlo y despachar la respuesta generada a través de una API REST. Los desarrolladores conectan este pipeline automatizado suscribiéndose al webhook `messages.received` y enviando las respuestas de vuelta por el endpoint `POST /api/{account}/chats/{chat_id}/messages` con [OnlyFansAPI](https://onlyfansapi.com).

**Puntos clave**

- Escucha el webhook `messages.received` (desde el plan Basic) para activar una respuesta automática cada vez que un fan envía un mensaje.
- Devuelve de inmediato un estado HTTP 200 OK para evitar que el webhook agote el tiempo de espera y luego procesa la solicitud al LLM en una cola de tareas en segundo plano.
- Suscríbete a los eventos `users.typing` y añade un retardo de debounce de 5 a 10 segundos para no interrumpir a los fans antes de que terminen de escribir.
- Adjunta un encabezado `Idempotency-Key` único al enviar el mensaje final para evitar entregas duplicadas durante los reintentos de red.
- Envía mensajes de pago fijando el `price` entre 3 y 200 e incluyendo `mediaFiles`, a menos que `lockedText` sea true.

## Cómo crear un chatbot de IA para OnlyFans

Para crear un chatbot de IA para OnlyFans, los desarrolladores deben conectar un webhook entrante `messages.received` a una cola en segundo plano, generar una respuesta acorde al contexto con un LLM y enviar la respuesta a través del endpoint de la API `POST /api/{account}/chats/{chat_id}/messages`. Esta arquitectura basada en eventos gestiona el tráfico entrante casi en tiempo real y le da al LLM tiempo suficiente para generar una respuesta contextual. Nuestra documentación recorre el mismo pipeline en la [guía del chatbot de IA](https://docs.onlyfansapi.com/onlyfans-ai/build-ai-chatbot-for-onlyfans). Para ver todos los eventos a los que puedes suscribirte, consulta la [guía de webhooks de OnlyFans](/es/blog/guia-webhooks-onlyfans).

Entre los [precios de OnlyFansAPI](https://onlyfansapi.com/pricing), los planes a partir de Basic ($69/mes) ofrecen la infraestructura lista para producción que impulsa este pipeline. El plan Basic incluye acceso a más de 320 endpoints, webhooks y un proxy de IP móvil dedicada por cada cuenta conectada, en EE. UU. o el Reino Unido. OnlyFansAPI mantiene un 99,98 % de disponibilidad, ha procesado más de 300 millones de solicitudes, lo usan más de 1.100 empresas y no registra ningún baneo de cuentas en más de 5 años.

### ¿Cómo capturan los webhooks los mensajes casi en tiempo real?

Los webhooks envían datos a tu servidor casi en tiempo real después de que un fan realiza una acción. Abre el panel de webhooks y suscribe tu endpoint HTTPS al evento `messages.received`. Este evento incluye el texto del mensaje del fan y su identificador. El cliente de webhooks calcula una firma con el algoritmo HMAC SHA256, usando tu secreto de firma como clave. Tu endpoint debe verificar esta firma y devolver un estado 200 OK dentro del tiempo de espera de 10 segundos de la solicitud. Envía el payload a una cola en segundo plano antes de generar la respuesta de IA.

### Debounce de las ráfagas de escritura de los fans

Los fans suelen enviar varios mensajes cortos seguidos. Responder al instante al primer mensaje puede interrumpir su hilo de pensamiento. Para resolverlo, suscríbete al webhook `users.typing`. Cuando llegue un evento `messages.received`, programa la tarea de IA en segundo plano para que espere de 5 a 10 segundos. Si se dispara otro evento `users.typing` para ese chat, reinicia el temporizador. Este periodo de debounce agrupa las ráfagas cortas de texto en un único prompt para tu LLM.

### Simular el indicador de escritura

En cuanto el LLM empiece a generar una respuesta, avisa al fan de que viene una respuesta. Llama al [endpoint Start Typing Indicator](https://docs.onlyfansapi.com/api-reference/chats/start-typing-indicator) mediante `POST https://app.onlyfansapi.com/api/{account}/chats/{chat_id}/typing`. El fan ve el aviso «Model is typing...» durante unos 4 segundos; vuelve a llamar al endpoint si tu LLM sigue trabajando.

### Enviar el mensaje de chat de IA

Cuando el LLM termine de redactar la respuesta, envíasela al fan. Haz una solicitud al [endpoint Send Message](https://docs.onlyfansapi.com/api-reference/chat-messages/send-message) en `POST https://app.onlyfansapi.com/api/{account}/chats/{chat_id}/messages`. Incluye tu clave de API en el encabezado `Authorization: Bearer YOUR_API_KEY` y usa tu ID de cuenta, que empieza por `acct_`.

Si el mensaje incluye contenido de pago, fija el `price` entre 3 y 200. Un precio distinto de cero requiere `mediaFiles` para bloquear el contenido multimedia tras un muro de pago, a menos que `lockedText` sea true.

### Automatizar los seguimientos tras la compra

Cuando un fan compra el contenido de pago, se dispara el evento de webhook `messages.ppv.unlocked`. Extrae del payload el importe de la compra y el ID del usuario, y luego pide al LLM que envíe un mensaje de agradecimiento natural. Este ciclo mantiene a los fans comprometidos después de una compra.

## Implementación en Node.js del webhook y la mensajería

Este código TypeScript muestra cómo verificar las firmas de los webhooks, activar un indicador de escritura y enviar una respuesta de texto generada por IA. Los webhooks requieren el plan Basic o superior. El código lee el ID de cuenta `acct_` del campo `account_id` de cada evento.

```typescript
import express, { Request, Response } from 'express';
import crypto from 'crypto';

const app = express();
app.use(express.json({ verify: (req: any, _res, buf) => { req.rawBody = buf; } }));

const OFAPI_KEY = process.env.ONLYFANS_API_KEY!;
const SIGNING_SECRET = process.env.OFAPI_WEBHOOK_SECRET!;
const API_BASE = 'https://app.onlyfansapi.com/api';

app.post('/api/webhooks/onlyfans', async (req: Request, res: Response) => {
  const signature = req.headers['signature'] as string;
  if (!signature) {
    return res.status(401).send('Invalid signature');
  }

  const hmac = crypto.createHmac('sha256', SIGNING_SECRET);
  const digest = hmac.update((req as any).rawBody).digest('hex');
  if (signature.length !== digest.length || !crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(digest))) {
    return res.status(401).send('Invalid signature');
  }

  const { event, account_id, payload } = req.body;

  // Devolver 200 OK de inmediato para evitar tiempos de espera agotados
  res.status(200).json({ received: true });

  if (event === 'messages.received') {
    const { fromUser, text, id: messageId } = payload;

    try {
      // Iniciar el indicador de escritura
      await fetch(`${API_BASE}/${account_id}/chats/${fromUser.id}/typing`, {
        method: 'POST',
        headers: {
          'Authorization': `Bearer ${OFAPI_KEY}`,
          'Content-Type': 'application/json',
        },
      });

      // Simular el tiempo de generación del LLM
      await new Promise((resolve) => setTimeout(resolve, 3000));

      const aiReply = `Hey ${fromUser.name}, thanks for the message!`;

      // Enviar la respuesta
      await fetch(`${API_BASE}/${account_id}/chats/${fromUser.id}/messages`, {
        method: 'POST',
        headers: {
          'Authorization': `Bearer ${OFAPI_KEY}`,
          'Content-Type': 'application/json',
          'Idempotency-Key': `reply_${messageId}`,
        },
        body: JSON.stringify({ text: aiReply }),
      });
    } catch (error) {
      console.error('Error sending reply:', error);
    }
  }
});

app.listen(3000, () => console.log('Webhook server running'));
```

## ¿Qué salvaguardas gestionan los sistemas de chat automatizados?

Los sistemas de chat automatizados necesitan salvaguardas técnicas para evitar mensajes duplicados y gestionar las relaciones de alto valor. Incluye siempre un encabezado `Idempotency-Key` en cada solicitud `POST` para enviar un mensaje. Este encabezado evita entregas duplicadas si un tiempo de espera de red agotado te obliga a reintentar la misma solicitud.

Para los fans VIP con un gasto acumulado alto, las agencias envían los mensajes a una cola de revisión humana en lugar de enviar directamente la salida del LLM. Puedes leer el gasto acumulado del fan en el payload del webhook (`fanData.spending.total`) o en el endpoint List Chats (`GET /api/{account}/chats`, `subscribedOnData.totalSumm`) para decidir cuándo detener las respuestas automáticas y avisar a un chatter humano.

## Alternativas de automatización para agencias

Las agencias que quieren operaciones con IA sin escribir código de API a medida pueden desplegar [FansBot](https://onlyfansapi.com/fansbot) directamente en Telegram, Slack o Discord. FansBot es un empleado de IA para agencias de OnlyFans. No suplanta a los creadores, no automatiza las conversaciones con los fans ni envía mensajes a los fans. En cambio, se encarga de tareas de back-office como los resúmenes diarios de ingresos, las auditorías de calidad de los turnos de chatters y la preparación del reparto de nóminas. FansBot se conecta con más de 3.000 aplicaciones desde el primer momento y ofrece $69 en créditos gratuitos para empezar.

Para comparar los tipos de bots de OnlyFans, desde chatbots que hablan con los fans hasta compañeros de trabajo de IA como FansBot, consulta nuestra guía sobre [herramientas de bots de IA para OnlyFans](/es/blog/bots-herramientas-ia-onlyfans).