Discourse
Conecta una comunidad de Discourse a Sift para ingestar temas, respuestas y mensajes privados en una sola bandeja y responder desde ahí - sin que tu equipo tenga que vivir en Discourse.
De un vistazo
| Entrante: Nuevos temas (todas las categorías monitoreadas) | ✅ |
| Entrante: Respuestas + ediciones de temas | ✅ |
| Entrante: Mensajes privados al usuario agente | ✅ |
| Entrante: Cambios de estado (cerrar / archivar / trash) | ✅ |
| Entrante: Whispers / posts solo-staff | ⚠️ visibles solo si el usuario agente los puede ver |
| Saliente: Publicar respuesta en hilo | ✅ |
| Saliente: Cerrar / reabrir un tema | ✅ |
| Saliente: Marcar (flag) un post para moderación | ✅ requiere alcance post_actions |
| Saliente: Editar / eliminar posts existentes | ❌ nunca |
| Enriquecimiento de autor (email, trust level, flag de admin) | ✅ requiere check_emails |
| Múltiples instancias de Discourse por workspace | ✅ |
| Bots de respuesta automática | ✅ |
| Webhook-driven (sin polling) | ✅ |
Configurarlo

Ve a Configuración → Integraciones → Discourse y:
- Crea un usuario "Sift agent" dedicado en Discourse - trust level admin o moderador. Sift vincula la API key a este único usuario, no a "All Users".
- Genera una API key vinculada a ese usuario, con los alcances granulares en Configuración de la API key abajo.
- Agrega un webhook en Discourse (Admin → API → Webhooks) apuntando a
https://api.getsift.ai/integrations/discoursecon los eventos en Webhook abajo. - Pega la API key + URL de la comunidad en Sift y listo - los nuevos temas comienzan a fluir inmediatamente.
Los detalles profundos "para qué es cada alcance" + "cada endpoint que tocamos" están abajo para tu revisión de seguridad.
Lo que puedes hacer
Responde en cualquier tema desde la bandeja - Sift publica de vuelta a Discourse como el usuario agente dedicado. Cierra o reabre un tema desde la bandeja. Marca un post para moderación (spam / fuera de tema / inapropiado / notificar-usuario / notificar-moderadores) si tu API key tiene el alcance post_actions.
Activa workflows según señales del tema (categoría, autor, trust level, keyword, sentimiento). Enruta al equipo correcto automáticamente. Aplica bots de respuesta automática para patrones de FAQ.
El enriquecimiento de autor (email, trust level, flag de admin) se superpone a cada post entrante para que los workflows puedan enrutar diferente para staff vs. cuentas nuevas vs. usuarios de trust level 3.
Configuración de la API key
- Vincúlala a un único usuario dedicado. Crea un usuario "Sift agent" en Discourse y vincula la API key a ese usuario únicamente - no a "All Users". Auditoría limpia, revocación de una sola cuenta.
- Trust level. El usuario agente debe ser administrador o moderador. Requerido para
/admin/users/*, cambios de estado de temas y creación de usuarios, sin importar los alcances granulares de la key. - Atribución. Las respuestas salientes usan el header
Api-Usernamepara atribuir publicaciones al usuario agente (osystemcomo fallback).
Alcances granulares
El conjunto mínimo que Sift necesita:
categories: list, show
topics: read, read_lists, write, status
users: list, show, check_emails, create
post_actions: (gobierna POST /post_actions.json - ver nota sobre Flagging abajo)categories: list para el árbol completo de categorías al configurar + show para paginar temas dentro de una categoría.
topics: read (cada tema ingestado + cada webhook), read_lists (vistas paginadas de categoría), write (publicar respuestas del agente), status (cerrar/reabrir). update/delete/recover/change_owner no se usan - no otorgar.
users: list (verificación de conexión + buscar por email), show (enriquecer cada autor con email, trust level, flag de admin), check_emails (Discourse oculta los emails detrás de este alcance incluso para keys admin), create (una sola vez: provisiona el usuario agente de Sift durante el onboarding). Nada más - sin update, sin log_out, sin suspend, sin delete, sin sync_sso.
posts: ninguno. Las respuestas están cubiertas por topics:write. Sift nunca edita, elimina ni recupera posts.
Flagging - post_actions
Sift llama POST /post_actions.json para marcar posts para moderación (spam / fuera de tema / inapropiado / notificar-usuario / notificar-moderadores) desde la bandeja. Si post_actions no es seleccionable como alcance propio en tu UI de keys, otorga el grupo de alcance que cubra /post_actions.json en tu versión de Discourse, o publica sin flagging - no es ruta crítica.
Lo que Sift nunca toca
Ningún endpoint de AI, automation, badges, data explorer, email-in, groups, invites, logs, revisions, search, solved, tags, uploads, user_status, ni WordPress. Contáctanos si tu revisión de seguridad necesita la lista completa enumerada.
Webhook
En Admin → API → Webhooks, apunta a:
https://api.getsift.ai/integrations/discourseSuscríbete a: topic_created, topic_edited, topic_archived, topic_closed, topic_recovered, topic_trashed, post_created. Recomendado usar webhook secret. Sift deduplica sus propios posts salientes (TTL de 5 min) para que los echoes de respuestas del agente no se re-ingesten.
Referencia de endpoints
Para auditoría:
| Endpoint | Usado para | Alcance |
|---|---|---|
GET /site.json | Onboarding | público |
GET /categories.json | Enumerar categorías | categories:list |
GET /c/{slug}/{id}.json | Listar temas | categories:show + topics:read_lists |
GET /t/{topicId}.json | Tema + posts completos | topics:read |
GET /admin/users/list/{filter}.json | Verificación de conexión, buscar por email | users:list (+ check_emails) |
GET /admin/users/{id}.json | Enriquecimiento de usuario | users:show + check_emails |
GET /u/{username}.json | Búsqueda pública de usuario | users:show |
POST /users.json | Provisionar usuario agente de Sift | users:create |
POST /posts.json | Publicar respuesta del agente | topics:write |
PUT /t/{topicId}/status.json | Cerrar / reabrir tema | topics:status |
POST /post_actions.json | Marcar post | post_actions:* |