Mostre-nos seus fluxos de trabalho

Continuando a discussão de Uma prévia do novo recurso Workflows:

Estou muito animado com o lançamento dos Workflows. Eu sonhava com esse recurso quando era um gerente de comunidade ativo, procurando maneiras de automatizar processos táticos repetitivos da comunidade.

Estou muito curioso para ver do que vocês estão usando os Workflows (ou o que farão, agora que sabem sobre eles!).

Vou começar — mas vou admitir que tive que delegar a construção real do recurso para @zogstrip e @chapoi, porque não tenho essa habilidade.

Workflow de Lembrete Semanal de Atualização
A única coisa que exigimos da nossa equipe é um check-in semanal para que saibamos que estão saudáveis e felizes. Algumas pessoas não fazem isso (por uma variedade de razões) e é um desperdício de tempo e energia ter que cobrá-las, então temos uma nova solução.

Este workflow verifica se há um tópico de atualização e aplica CSS progressivamente pior para eles, quanto mais tempo deixarem de responder.

É incrível o quanto é eficaz!

11 curtidas

Adoro o CSS :laughing:! Consegue compartilhá-lo, se possível?

2 curtidas

Por favor, não me diga que você… quer o tema mais feio que eu já criei? :sweat_smile:

3 curtidas

Eu realmente :laughing: . Parece muito… criativo :eyes: .

2 curtidas

É realmente incrível. Eu sei disso, porque, ao tentar testar algo não relacionado, acabei me colocando no Grupo 4 sem querer e tive que tentar depurar o problema enquanto tudo na tela continuava flutuando para longe. :laughing: O @zogstrip foi muito paciente.

2 curtidas

não fica super super óbvio na visão geral do fluxo de trabalho, então é assim que funciona

parte 1 - caixa amarela

  • para cada post criado/editado na categoria #updates, verificamos se ele vem do autor do tópico
  • se não for do criador do tópico, nós “desistimos”
  • se for do criador do tópico, passamos o post por um classificador de LLM que retorna algum json indicando se o post é uma atualização semanal real (não exigimos um formato específico) e não uma resposta aleatória a outro post
  • em seguida, armazenamos esse resultado de classificação em uma tabela de dados
  • se o post for classificado como uma atualização semanal, imediatamente removemos o usuário de todos os grupos de “atrasados” (a caixa verde)

parte 2 - caixa azul

  • todos os dias, às 6h (UTC), executamos uma consulta do data explorer que combina todas as férias, feriados e a “última atualização semanal” para colocar as pessoas em um dos quatro grupos de “atrasados”

parte 3 - não mostrado no fluxo de trabalho

  • temos um componente de tema personalizado[1] que verifica se o usuário atual está em um dos grupos de “atrasados” e aplica mais… irritação :sweat_smile:

  1. aplicado a todos os nossos temas ↩︎

5 curtidas

Exigimos que algumas tags sejam usadas, mas os membros têm o hábito de publicar em categorias incorretas, o que significa que é preciso gastar muito tempo movendo tópicos para o lugar certo.

Um fluxo de trabalho muito básico, que é executado na criação do tópico, verifica as tags em uso e, em seguida, altera automaticamente a categoria.

Algo tão simples ajudou a manter alguma estrutura, sem exigir nenhum esforço para isso.

2 curtidas

Retomando um post que fiz no tópico original de fluxos de trabalho. Descobri como fazer o que eu queria. Tudo isso é apenas um teste, claro, mas veja o que ele faz:

Este é um sistema de reengajamento que usa IA para, esperançosamente, gerar discussões e aumentar o reengajamento em momentos em que o site está com menos movimento.

Fase A: Localizar e Resumir

Localizar posts com mais de 30 dias que sejam uma combinação dos seguintes critérios:

- Tópicos populares que não tiveram novos posts há algum tempo.

  • Tópicos que estão recebendo muitas visualizações, mas não tiveram resposta há algum tempo.
  • Tópicos que tiveram alguma atividade no último ano, mas que depois pararam.

Quando encontra um, ele inicia o agente ‘AI Summary’ do Discourse. O agente de IA escreve um resumo. Ele faz isso enviando uma requisição http via POST para o endpoint da API de resumo. Quando o resumo está pronto, ele salva a existência do fluxo de trabalho em uma tabela de dados.

(Isto roda uma vez por hora, mas potencialmente com mais frequência).

Fase B: Avaliar o Resumo para Seguir em Frente

Outro fluxo de trabalho agendado roda de forma independente, no seu próprio cronograma. Ele verifica a tabela de dados em busca de linhas que foram resumidas, mas não avaliadas. Ele pega um tópico da tabela de dados e, em seguida, obtém os 5 a 10 posts mais recentes desse tópico.

Ele passa para um agente de IA que lida com a triagem. Ele faz uma determinação. Este é um tópico que deve ser revivido? Se sim, como? Ele decide se o tópico deve ser impulsionado (bump) ou se deve ser feito um post que reengaje com o tópico: faz uma pergunta, pede um follow-up ou não faz nada.

Ele atualiza a tabela de dados com a decisão.

(Isto deve rodar com a mesma frequência da Fase A; você também pode acioná-lo a partir da Fase A ou combiná-lo com ela.)

Fase C: Reengajar com o Tópico

Outro fluxo de trabalho agendado roda no seu próprio cronograma, com menos frequência. Seu primeiro passo é verificar o quão ativo o fórum tem sido recentemente. Ele faz isso verificando quantos posts foram feitos, em média, por hora, nas últimas 3 horas. Em seguida, ele calcula a média de quão movimentado o fórum tem sido em períodos de 3 horas, no mesmo dia e horário ao longo dos últimos 2 meses. Se o site não estiver tão movimentado quanto o normal para o mesmo horário no mesmo dia, ele dirá ‘podemos fazer um reengajamento agora’.

Em seguida, ele pega até 10 oportunidades de reengajamento disponíveis. Ele envia para um agente de IA e pede para extrair o candidato mais forte para o reengajamento da lista. A IA decide e retorna um topic_id. O classificador na Fase B decidiu entre 3 opções: Impulsionar tópico (Bump topic), postar follow-up, não fazer nada.

O fluxo de trabalho fará um bump, a menos que um follow-up seja designado. Se destinado a um follow-up, ele pegará o id do tópico e obterá os posts mais recentes desse tópico. Ele o entregará a um agente de IA que determinará qual seria a melhor resposta para reengajar com o tópico. Ele tem salvaguardas para garantir uma resposta muito básica, que ainda esteja no tópico e não dê recomendações ou forneça comentários. Ele principalmente apenas pede uma atualização, pergunta se o autor original tem uma atualização sobre algo que aconteceu, etc. Ele publica a resposta e, em seguida, atualiza a tabela de dados com a data de conclusão.

Espero não ter apenas duplicado algum recurso oculto do Discourse do qual eu não sabia! Levou algumas tentativas e erros, mas consegui fazer.

6 curtidas

Aqui estão alguns exemplos para gerar relatórios semanais que estamos usando para manter nossa equipe informada sobre as diversas atividades no Meta. Cada um possui um tópico na categoria de staff onde os resultados são publicados.

Acredito que eles devem ser genéricos, caso você queira experimentá-los no seu próprio site. Você deve apenas precisar alterar o ID do tópico onde os resultados são compartilhados no nó final para um tópico na sua própria categoria de staff.

(Pode ser necessário editar manualmente antes de importar. Eu sobrescrevi manualmente como TOPIC_ID após a exportação para ajudar a evitar acidentes)

relatório semanal de moderação
arquivo: weekly-moderation-report.json (21,4 KB)

  • Inclui tabelas listando:
    • resumo da moderação (contagens de diversas ações de moderação)
    • número de bandeiras tratadas por diferentes usuários
    • número de bandeiras reportadas por diferentes usuários
    • lista de posts sinalizados com metadados associados
    • avisos emitidos
    • notas de usuário adicionadas

relatório semanal de configurações do site
arquivo: weekly-site-settings-report.json (3,3 KB)

  • Inclui tabela listando configurações do site alteradas
    • nome da configuração
    • quem alterou e quando
    • valor antigo, valor novo

relatório semanal de nível de confiança
arquivo: weekly-trust-level-report.json (9,8 KB)

  • Inclui tabelas listando:
    • resumo (número de usuários propostos para cada nível de confiança na última semana)
    • lista de usuários que alcançaram o nível de confiança 2 ou 3
8 curtidas

Atualmente, estamos usando os Workflows bastante extensivamente em nossa comunidade do Discourse, e eles estão se tornando uma parte realmente útil do nosso onboarding e da gestão de eventos.

Nossa comunidade tem mais de 9.000 usuários registrados e muitos grupos diferentes de apoio entre pares, online e locais, então a automação nos ajuda muito.

Aqui estão alguns dos workflows que usamos atualmente:

:waving_hand: Onboarding personalizado

Novos usuários recebem mensagens pessoais automatizadas após o registro.

O conteúdo depende dos interesses que eles selecionaram durante o registro (por exemplo, grupos de apoio entre pares, eventos, nosso café virtual, body doubling ou troca escrita).

Alguns dias depois, eles recebem uma segunda mensagem de verificação com informações adicionais e ajuda para começar.

:date: Lembretes de eventos

Usamos um workflow agendado que verifica a cada 15 minutos eventos que começam em aproximadamente 24 horas.

Usuários que selecionaram Vou ou Interessado recebem um lembrete pessoal com o título do evento, data, horário e um link de volta para o evento.

Também temos alguns grupos com seus próprios workflows de lembrete, então o workflow geral exclui esses usuários para evitar lembretes duplicados.

:laptop: Instruções contextuais do alfaview

Muitos dos nossos grupos online de apoio entre pares se reúnem via alfaview, enquanto outros eventos ocorrem via Zoom ou localmente.

Portanto, verificamos a publicação do evento em busca de um link do alfaview.

Se um link do alfaview estiver presente, o lembrete de 24 horas inclui automaticamente um guia passo a passo expansível explicando como entrar na sala de espera e, em seguida, selecionar a sala de reunião correta, incluindo uma captura de tela.

Se não houver um link do alfaview, o lembrete normal é enviado sem essas instruções.

Isso significa que não precisamos manter listas de grupos “online” e “offline”.

:door: Onboarding de videoconferência

Também usamos workflows de formulário como uma etapa curta de onboarding antes que os usuários acessem nossos salas de videoconferência pela primeira vez.

Os usuários recebem instruções explicando como funciona a estrutura das nossas salas do alfaview. Após lê-las, eles podem escolher se desejam ver as instruções novamente na próxima vez.

Se optarem por não vê-las novamente, o workflow os adiciona a um grupo marcador. Nosso componente de tema então usa essa pertença ao grupo para mostrar o link direto da videoconferência em vez do formulário de onboarding.

:bell: Notificações específicas de grupo

Usamos workflows para notificar membros de grupos específicos sobre novos eventos e reuniões futuras.

Isso é especialmente útil para grupos de apoio entre pares, onde queremos que os membros recebam uma notificação, independentemente de visitarem regularmente o fórum.


O que eu particularmente gosto nos Workflows é que podemos combinar formulários, consultas SQL, grupos, verificações agendadas e mensagens pessoais.

Ainda há algumas coisas que eu adoraria ver no futuro. Um exemplo seria uma melhor integração com calendário: idealmente, quando alguém seleciona Vou para um evento, gostaríamos de enviar automaticamente a eles um e-mail com um arquivo de calendário .ics anexado.

7 curtidas

Caso de uso super interessante, com certeza algo para se pensar @j.jaffeux / @martin / @lindsey

Me pergunto se isso seria feito por meio de fluxos de trabalho ou se seria um recurso nativo nos eventos do Discourse?

4 curtidas

Obrigado por esse ótimo feedback e compartilhamento de experiências. É incrível ler como vocês usam os fluxos de trabalho e como eles resolvem problemas reais para suas comunidades :heart:

O recurso de eventos até parece ser uma funcionalidade básica, mas isso deve ser possível de implementar nesta semana por meio de fluxos de trabalho. Temos algo chegando especificamente para isso.

6 curtidas