SiftDocs
Integrations

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

La página de configuración de Discourse en Sift, mostrando cuentas conectadas (nombres de cuenta redactados para los docs).
Configuración de Discourse en Sift - gestiona las cuentas conectadas aquí.

Ve a Configuración → Integraciones → Discourse y:

  1. 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".
  2. Genera una API key vinculada a ese usuario, con los alcances granulares en Configuración de la API key abajo.
  3. Agrega un webhook en Discourse (Admin → API → Webhooks) apuntando a https://api.getsift.ai/integrations/discourse con los eventos en Webhook abajo.
  4. 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-Username para atribuir publicaciones al usuario agente (o system como 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/discourse

Suscrí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:

EndpointUsado paraAlcance
GET /site.jsonOnboardingpúblico
GET /categories.jsonEnumerar categoríascategories:list
GET /c/{slug}/{id}.jsonListar temascategories:show + topics:read_lists
GET /t/{topicId}.jsonTema + posts completostopics:read
GET /admin/users/list/{filter}.jsonVerificación de conexión, buscar por emailusers:list (+ check_emails)
GET /admin/users/{id}.jsonEnriquecimiento de usuariousers:show + check_emails
GET /u/{username}.jsonBúsqueda pública de usuariousers:show
POST /users.jsonProvisionar usuario agente de Siftusers:create
POST /posts.jsonPublicar respuesta del agentetopics:write
PUT /t/{topicId}/status.jsonCerrar / reabrir tematopics:status
POST /post_actions.jsonMarcar postpost_actions:*

On this page