Opcionalmente encadeando posts ao tópico principal na integração do Slack

Tenho pensado sobre isso e li a documentação da API chat.postMessage do Slack, e acredito que posso resumir meu texto extenso em algo muito mais simples.

Apenas watch, e não follow, tem a capacidade de escolher respostas em threads, por meio de um mecanismo que ainda estou tentando determinar. Alternativamente, @david, o que você acha de um novo filtro de regra thread com precedência mute thread watch follow, e encaminhar essa regra até trigger_notification para habilitar comportamentos sensíveis à regra?

  1. Se watch estiver configurado para threads (ou, alternativamente, se uma regra thread for definida), ao enviar uma notificação de nova postagem para um canal do Slack, se o tópico da postagem tiver um ts do Slack associado a ele, poste nessa thread do Slack definindo thread_ts com o valor de ts fornecido pelo Slack.

  2. Ao enviar uma notificação de nova postagem para um canal do Slack, e o tópico da postagem não tiver um ts associado a ele, armazene o ts retornado na resposta para o tópico (para que futuras postagens sobre o tópico possam ser threadadas, caso watch esteja configurado para threads).

  3. Ao usar o comando post thread :thread_url, armazene o ts da thread no tópico criado, que será utilizado apenas por regras watch em threads.

Aqui estão meus pensamentos e preocupações atuais:

  1. Como determinar se deve postar em threads com base em cada regra. Um novo filtro parece ser a opção mais fácil para mim no momento, mas talvez eu esteja perdendo algo.

  2. O fluxo do URL original da postagem no Slack e do ID da thread através do fluxo de transcrição é o que mais me parece opaco atualmente. Parece que realmente preciso adicionar um ID de thread específico por provedor em algum lugar e preservá-lo até salvar a postagem. Eu implementaria isso apenas para o ts do Slack, mas presumivelmente não será a única integração de chat com threads.

  3. Para postagem, acho que preciso armazenar o ts do Slack em um campo personalizado específico do Slack no Tópico, e não em um campo de thread genérico DiscourseChat.

1 curtida