# Discourse integrations: topics and posts

> Update a topic, create a post and create a category in Discourse, and start a workflow when Discourse sends “Topic created”.

**Canonical page:** https://tray.ai/connectors/discourse-integrations/
**Categories:** Marketing
**Connects through:** HTTP Connector

## Overview

Discourse is open-source community forum software, hosted or self-run, where members discuss topics in categories and moderators manage users, groups, and badges. Tray.ai connects to Discourse through the HTTP Connector, so your workflows can call the Discourse API alongside the rest of your stack.

## Use cases

### Topics

Read, update, and delete topics in Discourse from any Tray.ai workflow. The Discourse API covers calls such as get latest topics and get a topic.

- Get latest topics
- Get a topic
- Update a topic

### Posts

Read, create, update, and delete posts in Discourse from any Tray.ai workflow. The Discourse API covers calls such as list latest posts and create a post.

- List latest posts
- Create a post
- Update a post

### Categories

Read, create, and update categories in Discourse from any Tray.ai workflow. The Discourse API covers calls such as list categories and create a category.

- List categories
- Create a category
- Update a category

### Users

Read, create, update, and delete users in Discourse from any Tray.ai workflow. The Discourse API covers calls such as list users and create a user.

- List users
- Create a user
- Update a user

### Groups

Read, create, and delete groups in Discourse from any Tray.ai workflow. The Discourse API covers calls such as list groups and create a group.

- List groups
- Create a group
- Add group members

### Badges

Read and create badges in Discourse from any Tray.ai workflow. The Discourse API covers calls such as list badges and create a badge.

- List badges
- Create a badge
- Grant a badge to a user

## Challenges Tray.ai solves

### Keeping Discourse credentials out of logs

A raw API call usually means pasting a key or token into the request, where it ends up in step inputs, logs, and screenshots.

**How Tray.ai helps:** Store Discourse credentials once as a Tray.ai authentication and reference them from the HTTP Connector. Tray.ai masks authentication values in logs, so the secret never shows up in a step's input or output.

### Going from the Discourse API docs to a working call

Translating an example request from API docs into a workflow step means copying the method, URL, headers, and body by hand.

**How Tray.ai helps:** Paste a cURL example from the Discourse API docs into the HTTP Connector and Tray.ai fills in the method, URL, headers, and body for you.

### Handling files and non-JSON responses

Not every API answers in JSON. Some return XML, files, or binary data, or expect a multipart upload.

**How Tray.ai helps:** The HTTP Connector parses JSON and XML responses, returns files you can pass to the next step, and sends multipart form data for uploads.

## Frequently asked questions

### Does Tray.ai connect to Discourse?

Yes. Tray.ai connects to Discourse through the HTTP Connector, which calls the Discourse API directly. Any call the Discourse API documents can run as a step in a Tray.ai workflow.

### How does Tray.ai authenticate with Discourse?

The Discourse API uses an API key in a request header. You save it once as a Tray.ai authentication, and the HTTP Connector adds it to every request.

### Can I get a dedicated Discourse connector?

Discourse runs through the HTTP Connector rather than a dedicated connector. If your team wants one, the Tray.ai connector SDK can build a dedicated Discourse connector from the Discourse API.

## Learn more

- Intelligent Integration: https://tray.ai/platform/intelligent-ipaas/
- Merlin Agent Builder: https://tray.ai/platform/merlin-agent-builder/
- Agent Gateway for MCP: https://tray.ai/platform/agent-gateway/
- Book a demo: https://tray.ai/contact/
