Vuoi utilizzare i Webhook di Discourse per attivare un’attività tramite Zapier? Iniziamo!
Suggerimento: Zapier ora dispone di un’integrazione ufficiale con Discourse con trigger e azioni integrati (ad esempio “Nuovo post”, “Crea post”). Per i casi d’uso comuni, questa soluzione è più semplice rispetto alla configurazione manuale dei webhook generici. La guida seguente illustra l’approccio manuale dei webhook, che offre maggiore flessibilità e accesso a tutti i tipi di eventi di Discourse.
Zapier richiede un trigger e un’azione. In questa guida, il trigger sarà un Webhook di Discourse e l’azione sarà l’invio di un’email.
Invia un’email per qualsiasi evento utente
Ora configuriamo uno Zap per inviare un’email in caso di qualsiasi evento utente (ad esempio, quando un utente viene creato, approvato, aggiornato, effettuato l’accesso, disconnesso, sospeso e altro). Per attivare un evento utente specifico, consulta la sezione Attiva su un evento utente specifico qui sotto.
Crea un Webhook di Discourse
-
Crea un nuovo Webhook di Discourse per l’evento utente
Aggiorniamo l’URL del payload una volta generato l’URL del webhook nei passaggi successivi.
Crea un nuovo Zap
Cerca questo pulsante nella dashboard di Zapier: ![]()
Configura il Trigger
-
Seleziona Webhook come Trigger. Cerca:
-
Scegli il Trigger
Devi selezionare “Catch Hook”
-
Puoi saltare il passaggio “Configura Webhooks by Zapier Hook”.
Premi semplicemente “Continua”.
-
Testa il Trigger
Copia l’URL del webhook personalizzato generato e incollalo nella sezione “Payload URL” del Webhook di Discourse creato in precedenza.

Ora prova a creare/aggiornare/approvare un utente sulla tua istanza di Discourse.
Se hai seguito correttamente tutti i passaggi e hai creato/aggiornato/approvato un utente, vedrai un messaggio di successo su Zapier:
Cliccando sul collegamento ipertestuale “visualizza il tuo hook” verranno mostrati i dati analizzati.
Configura l’Azione su Zapier
-
Seleziona Email come Azione. Cerca:
-
Premi “Salva + Continua”
-
Configura il modello di email
Modifica ulteriormente il modello di email in base alle tue esigenze. Tieni presente che puoi utilizzare il pulsante
+per aggiungere più dati analizzati tramite la risposta JSON.Ora testa l’azione: dovresti ricevere un’email da Zapier.
Attiva lo Zap
È tutto: ora riceverai un’email per ogni evento utente. L’elenco completo degli eventi utente che possono attivare un webhook è:
| Nome evento | Descrizione |
|---|---|
user_created |
Viene creato un nuovo account utente |
user_approved |
Un utente viene approvato |
user_updated |
Il profilo di un utente viene aggiornato |
user_logged_in |
Un utente effettua l’accesso |
user_logged_out |
Un utente effettua la disconnessione |
user_confirmed_email |
Un utente conferma la propria email |
user_destroyed |
Un account utente viene eliminato |
user_suspended |
Un utente viene sospeso |
user_unsuspended |
Un utente viene riabilitato |
user_anonymized |
Un account utente viene anonimizzato |
![]()
Attiva su un evento utente specifico
Vuoi inviare email solo per un evento utente specifico, ad esempio solo alla creazione dell’account ma non all’aggiornamento? Utilizza il trigger “Catch Raw Hook”.
- Clicca su “mostra opzioni meno comuni”
- Clicca su “Catch Raw Hook”
- Segui i passaggi rimanenti per configurare il trigger normalmente.
Una volta configurato il trigger, aggiungi un filtro.
- Clicca su “Aggiungi un passaggio”
- Clicca su “Filtro”
- Clicca su “Salva e continua”
- Seleziona “Headers Http X Discourse Event” dal primo menu a discesa.
- Seleziona “(Testo) Corrisponde esattamente” dal secondo menu a discesa.
- Inserisci l’header completo per cui vuoi filtrare (ad esempio,
user_logged_out). - Se vuoi che Zapier venga eseguito su più header, clicca su “+OR” e aggiungili come il primo.
- Clicca su “Testa e continua”
- Rivedi il test del filtro, quindi clicca su “Continua”
Una volta configurato il filtro, configura l’azione preferita.
Utilizzare l’header completo del Webhook
Per accedere all’header, segui i passaggi precedenti: seleziona “Catch Raw Hook” e aggiungi un filtro. Configura il filtro in modo che continui solo se Headers Http X Discourse Event corrisponde all’evento che stai cercando.
La difficoltà qui è che Catch Raw Hook passa il corpo grezzo del webhook. L’azione finale che sto utilizzando richiede dati analizzati dal corpo. Ciò che funziona per me è aggiungere un’azione Codice dopo il filtro. Nella finestra modale Azione Codice, seleziona “Esegui Javascript”:
Zapier creerà un oggetto inputData a cui puoi aggiungere proprietà denominate. Aggiungi un nome per la tua proprietà nella colonna di sinistra. Dalla colonna di destra, seleziona “Catch Raw Hook” dal menu a discesa e poi seleziona “Raw Body”:
Scorri la pagina verso il basso per vedere un input di codice:
Dovrai quindi sostituire il codice di esempio con un codice che analizza il Raw Body e restituisce un oggetto contenente i valori necessari per la tua azione finale. Ecco il codice che sto utilizzando. L’oggetto restituito viene utilizzato dall’integrazione Salesforce. Salesforce richiede un cognome, quindi se non esiste un cognome, viene restituito un errore:
const parsed = JSON.parse(inputData.raw);
if (parsed.user) {
const user = parsed.user,
name = user.name,
userFields = user.user_fields;
let firstName,
lastName,
company;
if (name) {
const splitName = name.split(' ');
firstName = splitName[0];
lastName = splitName[1]
}
if (userFields) {
company = userFields['10'];
}
if (lastName) {
return {id: user.id,
username: user.username,
lastName: lastName,
firstName: firstName,
email: user.email,
company: company
};
} else {
return {error: "Missing last name"}
}
} else {
return {error: "A user object was not returned"};
}
Per evitare di effettuare una richiesta fallita nell’azione finale, è possibile aggiungere un altro filtro Zapier. Imposta quel filtro in modo che continui solo se il campo errore restituito dal javascript non esiste:
Puoi quindi aggiungere la tua azione finale. Per selezionare i campi da utilizzare nell’azione finale, utilizza le proprietà restituite dall’azione Esegui Javascript.























