Use Zapier to configure a topic on one Discourse as an activity stream for another Discourse

In order to show the most recent topics from one Discourse instance into another, I utilised a Zapier based integration. It takes the OP from each new topic in the category of interest and posts them as a reply in a topic wherever desired. The destination can be either the same instance or a different one.

This was extremely helpful for working this out:

The process

  1. Setup Webhook in the origin Discourse instance to catch new Posts in the appropriate category.
    • Posts gets much more data than Topics, which is helpful further down
  2. Setup Zap to catch the Webhook
  3. Filter out all except those which have a Post Post Number of 1 and a Post Reads of 0:
    • this ensures that you only catch new topics, and you don’t pick up any subsequent edits (which will give you a duplicate post)
  4. Setup a user in the receiving Discourse instance with Trust Level 4 (to enable posting despite a closed topic) and ensure it has access to the desired category. Setup an API for the user.
  5. In the Zap, use this API to post the content into the desired topic.
  6. Customise the reply, to include links and the like, such as:
  7. Close that topic to prevent others posting.