He estado pensando en esto y leyendo la documentación de la API de chat.postMessage de Slack, y creo que puedo resumir mi muro de palabras en algo mucho más sencillo.
Solo watch y no follow tiene la capacidad de elegir respuestas en hilos, mediante un mecanismo que aún estoy tratando de determinar. Alternativamente, @david, ¿qué te parecería un nuevo filtro de regla thread con la precedencia mute thread watch follow, y conectar la regla a trigger_notification para habilitar un comportamiento sensible a las reglas?
-
Si
watchestá configurado para usar hilos (o, alternativamente, se define una reglathread), al enviar una notificación de nueva publicación a un canal de Slack, si el tema de la publicación tiene untsde Slack asociado, publica en ese hilo de Slack estableciendothread_tscon el valortsproporcionado por Slack. -
Al enviar una notificación de nueva publicación a un canal de Slack, y el tema de la publicación no tiene un
tsasociado, guarda eltsde la respuesta devuelta para el tema (para que las publicaciones futuras sobre el tema puedan organizarse en hilos siwatchestá configurado para usar hilos). -
Al usar el comando
post thread :thread_url, guarda eltsdel hilo en el tema que se crea, el cual será utilizado únicamente por las reglas dewatchen hilos.
Estas son mis reflexiones y preocupaciones actuales:
-
Cómo determinar si se debe publicar en hilos en función de cada regla. Por ahora, un nuevo filtro me parece la opción más sencilla, pero quizás me esté perdiendo algo.
-
Transmitir la URL original de la publicación en Slack y el ID del hilo a través del flujo de transcripción es lo que más me resulta opaco en este momento. Esto parece requerir que agregue un ID de hilo específico por proveedor en algún lugar y lo preserve hasta guardar la publicación. Lo implementaría solo para el
tsde Slack, pero presumiblemente no será la única integración de chat con hilos. -
Para la publicación, creo que necesito guardar el
tsde Slack en un campo personalizado específico de Slack en Topic, no en un campo de hilo general deDiscourseChat.