Ich habe darüber nachgedacht und die chat.postMessage Slack-API-Dokumentation gelesen, und ich glaube, ich kann meine Wortflut auf etwas viel Einfacheres reduzieren.
Nur watch und nicht follow hat die Möglichkeit, Thread-Antworten zu wählen, durch einen Mechanismus, den ich noch herausfinden muss. Alternativ, @david, was hältst du von einem neuen thread-Regelfilter mit der Priorität mute thread watch follow und dem Durchreichen der Regel über trigger_notification, um regelabhängiges Verhalten zu ermöglichen?
-
Wenn
watchso konfiguriert ist, dass es Threads erstellt (alternativ, wenn einethread-Regel definiert ist), wird beim Senden einer neuen Post-Benachrichtigung an einen Slack-Kanal, falls das Post-Thema eine Slack-ts(Timestamp) zugeordnet hat, in diesen Slack-Thread gepostet, indemthread_tsauf den bereitgestelltents-Wert von Slack gesetzt wird. -
Beim Senden einer neuen Post-Benachrichtigung an einen Slack-Kanal, falls das Post-Thema keine
tszugeordnet hat, wird die zurückgegebene Antwort-tsfür das Thema gespeichert (damit zukünftige Posts zum Thema in Threads gepostet werden können, wennwatchfür Threads konfiguriert ist). -
Beim Verwenden des Befehls
post thread :thread_urlwird die Thread-tsim erstellten Thema gespeichert, das nur von Thread-watch-Regeln verwendet wird.
Hier sind meine aktuellen Gedanken und Bedenken:
-
Wie man entscheidet, ob auf Thread-Ebene pro Regel gepostet werden soll. Ein neuer Filter erscheint mir im Moment am einfachsten, aber vielleicht übersehe ich etwas.
-
Das Durchreichen der ursprünglichen Slack-Post-URL und der Thread-ID durch den Transcript-Flow ist mir derzeit am undurchsichtigsten. Das sieht so aus, als müsste ich wirklich eine pro-Provider-Thread-ID irgendwo hinzufügen und sie bis zum Speichern des Posts erhalten. Ich würde dies nur für Slack-
tsimplementieren, aber wahrscheinlich wird es nicht die einzige Chat-Integration mit Threads sein. -
Für das Posten denke ich, dass ich die Slack-
tsin einem slack-spezifischen benutzerdefinierten Feld im Topic speichern muss, nicht in einem allgemeinenDiscourseChat-benutzerdefinierten Thread-Feld.