A API do Discourse pode ser usada para automatizar o envio de e-mails de convite do seu fórum quando uma ação é realizada em uma aplicação externa. Para muitas aplicações, você pode usar o Zapier para configurar isso sem ter que escrever nenhum código.
Um caso de uso comum para isso é convidar usuários para o seu fórum quando eles compram um produto ou se inscrevem em um serviço externo. Para o exemplo neste tópico, usarei a integração Zapier WordPress para acionar o envio de um convite do Discourse quando um novo usuário se inscreve em um site WordPress.
Configurar uma etapa de gatilho (trigger) no Zapier
Vá para o seu painel do Zapier e pesquise pela aplicação que você gostaria que acionasse o e-mail de convite. Nas capturas de tela abaixo, selecionei o WordPress como o gatilho.
A única configuração necessária para isso é conectar o Zap do WordPress a uma conta do WordPress e selecionar o evento New User (Novo Usuário) para acionar o Zap.
Configurar uma etapa de ação (action) para enviar o convite
Clique no botão Add a Step (Adicionar uma Etapa) e, em seguida, clique em Action/Search (Ação/Pesquisa) no menu suspenso.
Digite ‘webhook’ no menu de pesquisa e selecione Webhooks by Zapier no menu de ações. A etapa de ação Webhook será adicionada à barra lateral do seu Zap, e um formulário será aberto que permite escolher que tipo de requisição você gostaria que o webhook executasse.
Selecione POST no formulário e clique em Continue (Continuar).
O formulário que se abre permite configurar a requisição POST feita para o Discourse. No campo URL, insira a URL base do seu fórum, seguida por /invites. Por exemplo, a URL base do meu fórum é https://demo.scossar.com, então o link completo para a rota de convites é https://demo.scossar.com/invites.
Agora você precisa configurar as seções Payload Type (Tipo de Carga Útil), Data (Dados) e Headers (Cabeçalhos) do formulário. Todas as outras seções do formulário podem ser deixadas com seus valores padrão.
O Payload Type informa ao Zapier em qual formato enviar a carga útil. Ele deve ser definido como Json.
A seção Data é usada para informar ao Discourse qual endereço de e-mail enviar o convite, e para definir uma lista opcional de nomes de grupos e uma mensagem personalizada. Para convidar um usuário sem adicioná-lo a grupos ou incluir uma mensagem personalizada, insira o texto email como uma Chave de dados (Key) e, em seguida, clique no ícone ‘Insert a Field’ (Inserir um Campo) para abrir o menu suspenso do campo. Role para baixo na lista até ver o valor que foi passado do seu aplicativo de gatilho que contém o e-mail do usuário. Ao usar o WordPress como aplicativo de gatilho, a seção Data completa deve ser parecida com esta:
Para adicionar automaticamente usuários a grupos quando eles aceitarem o convite, clique no ícone
da seção Data para adicionar um novo campo. Defina a Chave (Key) do campo como group_names. Defina o Valor (Value) do campo como uma lista de nomes de grupos separados por vírgulas para os quais você gostaria que os usuários fossem adicionados. Para incluir uma mensagem personalizada no e-mail de convite, crie outro campo com sua Chave definida como custom_message e seu valor definido como a mensagem que você gostaria de enviar.
Nota: adicionando uma etapa de Código após a etapa de gatilho do seu Zap, deve ser possível definir dinamicamente nomes de grupos e uma mensagem personalizada para usuários específicos.
A seção Headers é usada para autenticar sua requisição. Para configurar o campo Headers, você precisará gerar uma chave de API no seu site Discourse. Para fazer isso, vá para a página Admin / API do seu site Discourse e clique no botão “New API Key” (Nova Chave de API). Ao criar a chave, atribua-a a um usuário da equipe (staff user) e defina o escopo como Global, ou use um escopo Granular com a caixa Invites > Create (Convites > Criar) marcada.
Agora, na seção Headers do Zap, insira os seguintes pares de chave/valor. Substitua quaisquer valores que incluí entre colchetes por valores apropriados para o seu site. A capitalização dos nomes das chaves é importante.
Api-Username: <o nome de usuário da equipe que você deseja enviar os convites>
Api-Key: <a Chave de API que você gerou>
Content-Type: application/json
O formulário agora deve se parecer com a captura de tela abaixo, mas com seu Api-Username e Api-Key:
Clique no botão Continue (Continuar).
Agora você poderá testar a integração clicando no botão ‘Send Test To Webhooks by Zapier’ (Enviar Teste para Webhooks por Zapier). O teste será realizado com os dados que você configurou na etapa de gatilho. Você verá uma mensagem de sucesso se tudo estiver configurado corretamente, e se o usuário que você configurou na etapa de gatilho ainda não existir no seu fórum Discourse, um e-mail de convite será enviado e você verá uma mensagem de Sucesso no Zapier. Assim que a etapa de teste estiver passando, clique no botão Finish (Finalizar) e ative seu Zap.
Para detalhes sobre como fazer outros tipos de requisições à API do Discourse com o Zapier, veja Make requests to the Discourse API with Zapier.












