- Home
- Resources
- Integrations
- Discourse
Discourse n8n integrationAutomate Discourse with n8n.
Every new signup deserves a forum account, and nobody wants to create them by hand. The Discourse n8n integration exposes 16 operations across 5 resources: categories, groups, posts, users and user groups. Discourse ships no trigger node, so a Schedule or a Webhook starts the run.
Verified Trustpilot reviews · AI, automation & growth agency
What does the Discourse n8n integration actually do?
The Discourse node ships inside n8n and talks to the API of the forum instance you host. It covers 5 resources, categories, groups, posts, users and user groups, for a total of 16 operations. In practice, a workflow can open a category, publish a topic, register an account or move somebody into a group without anyone touching the admin panel.
Start with the case every community hits first: someone signs up in a payment tool or a form and has to exist on the forum too. Create a user fills in Name, Email, Username and Password, then Add a user to a group drops that account into the right group, so the members-only space opens by itself. A short message in Slack at the end tells the community manager it went through.
Publishing is the second one. Create a post takes the Content field, and its Additional Fields decide where the message lands: Category Name or ID for a fresh topic, Topic ID or Reply To Post Number to hang it under an existing thread. Release notes drafted in Google Sheets can go out on the day they ship, and Update a post rewrites them later with an Edit Reason that stays readable in the edit history.
Reporting closes the list. Get many users with Return All switched on returns the whole member list, Flag narrows it to the active, staff or suspended accounts, and the Options group adds Show Emails and Stats when the export needs them. Pair that with Get many groups and you hold a membership picture worth handing to Mautic for a segmented campaign.
Anything outside those 16 operations goes through the HTTP Request node, which calls any endpoint of the Discourse API and reuses the same credential through its predefined authentication. Two habits save time here. Return All left off stops a listing at Limit, so an export that looks short is usually a Limit question rather than a broken workflow. And the update operations expect an identifier, Category ID, Group ID or Post ID, never the name shown on screen.
One last thing about how the workflow begins. Discourse has no trigger node in n8n, so the first block comes from elsewhere: a Schedule Trigger on a fixed interval, an n8n Webhook, which is a URL another service calls, or the trigger of a tool you already run. If you want the wider picture first, the n8n review covers the platform itself, and the n8n training walks through building these workflows step by step.
How do you connect Discourse to n8n?
- 01
Check you are admin on the instance
Two things have to be true before n8n can talk to the forum. The Discourse instance is hosted and running, and the account you use on it is an admin. The key creation screen sits in the admin panel, so a regular member account will not get you there. Sort that out first, because every field of the credential depends on it.
- 02
Create the API key in the admin panel
Open the admin panel of your instance and create an API key, specifying the username it acts as. Copy the value while it is on screen, because that string is what n8n stores in its credential, the reusable connection object you fill in once. Discourse documents the screen in its own help pages, article
230124on its community forum. - 03
Fill the Discourse credential in n8n
In n8n, open the Credentials menu and add a Discourse entry. Three fields to fill: URL, the address of your instance, for example
https://community.n8n.io, then API Key, the value from the admin panel, then Username, your own name,system, or another user. Saved once, that credential shows up in the dropdown of every Discourse node you add afterwards.
What can the Discourse node do?
The Discourse node exposes 16 operations across 5 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.
| Resource | Create | Get | Get Many | Update | Add | Remove |
|---|---|---|---|---|---|---|
| Category | ✓ | ✓ | ✓ | |||
| Group | ✓ | ✓ | ✓ | ✓ | ||
| Post | ✓ | ✓ | ✓ | ✓ | ||
| User | ✓ | ✓ | ✓ | |||
| User Group | ✓ | ✓ |
Operations index
Category
3 operationsCreate a category
category.createWhat you see in n8n
Notes & use cases
Adds a category to the forum, the container that holds topics and the posts inside them.
Key parameters
- Name: the label members see in the category list.
- Color: the badge color, chosen in the color field of the node.
- Text Color: the color of the label itself, so the badge stays readable on its background.
Get many categories
category.getAllWhat you see in n8n
Notes & use cases
Pulls the category list back into the workflow, one item per category, ready for the next node.
Key parameters
- Return All: switched on, n8n walks every page of the category list; switched off, it stops at Limit.
- Limit: the maximum number of categories a single run brings back.
Update a category
category.updateWhat you see in n8n
Notes & use cases
Rewrites a category that already exists, instead of leaving two near duplicates side by side.
Key parameters
- Category ID: the identifier of the category, not the label displayed on the forum.
- Name: the new label, which replaces the current one.
- Color and Text Color (Update Fields): optional, they repaint the badge in the same run.
Group
4 operationsCreate a group
group.createWhat you see in n8n
Notes & use cases
Opens a group, the object Discourse uses to bundle members together and treat them as one audience.
Key parameters
- Name: the name of the group, which is also how later operations will call it up.
Get a group
group.getWhat you see in n8n
Notes & use cases
Reads one group back so the workflow can look at it before deciding what happens next.
Key parameters
- Name: the name of the group you want. This operation works from the name, which saves you a lookup when the name is what your other tool stores.
Get many groups
group.getAllWhat you see in n8n
Notes & use cases
Lists the groups of the forum and hands them over as items, one per group.
Key parameters
- Return All: on, every page of the group list is fetched; off, the run stops once Limit is reached.
- Limit: how many groups come back when Return All stays off.
Update a group
group.updateWhat you see in n8n
Notes & use cases
Changes the name of a group already in place, without touching who belongs to it.
Key parameters
- Group ID: the identifier of the group to update, typically
{{ $json.field }}from whichever node fetched it. - Name: the new name of the group.
Post
4 operationsCreate a post
post.createWhat you see in n8n
Notes & use cases
Publishes a message on the forum, either as a new topic or as a reply inside an existing one.
Key parameters
- Content: the body of the message, the only required field.
- Title: optional, the title the topic carries.
- Category Name or ID, Topic ID, Reply To Post Number (Additional Fields): where the message lands, a category for a new topic, a topic or a post number to reply underneath.
Get a post
post.getWhat you see in n8n
Notes & use cases
Fetches a single post so its content is available to the rest of the workflow.
Key parameters
- Post ID: the identifier of the post, which usually comes from an earlier node as an expression, the n8n syntax that reads a value from the incoming item.
Get many posts
post.getAllWhat you see in n8n
Notes & use cases
Walks through the forum's posts and passes them on, one item per post.
Key parameters
- Return All: on, n8n keeps requesting the next page until the posts run out; off, it stops at Limit.
- Limit: the ceiling applied to a single run when Return All is off.
Update a post
post.updateWhat you see in n8n
Notes & use cases
Edits a message already published, which is how you fix a typo or refresh outdated information in place.
Key parameters
- Post ID: the post to edit.
- Content: the new body. HTML is supported here.
- Edit Reason and Cooked (Update Fields): the reason attached to the edit, and whether the content is handled as already rendered.
User
3 operationsCreate a user
user.createWhat you see in n8n
Notes & use cases
Registers an account on the forum from data your workflow already holds.
Key parameters
- Name, Email, Username, Password: all four are required, so an empty one stops the node.
- Active and Approved (Additional Fields): two switches that decide the state the account arrives in.
Get a user
user.getWhat you see in n8n
Notes & use cases
Looks up one member, by username or by the identifier your single sign-on system uses.
Key parameters
- By: pick
usernameorexternalId, which decides which of the next two fields you fill. - Username: the username of the member to return.
- SSO External ID: the Discourse SSO external ID, handy when your own product is the source of identity.
Get many users
user.getAllWhat you see in n8n
Notes & use cases
Exports the member list, with enough knobs to get the exact slice you need.
Key parameters
- Flag: filters on
active,blocked,new,staff,suspectorsuspended. - Return All and Limit: the whole list page after page, or a capped sample.
- Order, Ascending, Show Emails, Stats (Options): sort by
created,postsortrust_level, and add emails or stats to the output.
new, sorted by created, feeds the welcome sequence.User Group
2 operationsAdd a user to a group
userGroup.addWhat you see in n8n
Notes & use cases
Puts members into a group, which is how access to a private space is granted on the forum.
Key parameters
- Usernames: one username, or several separated by commas, which lets a single node handle a whole batch.
- Group ID: the identifier of the group they join.
Remove a user from a group
userGroup.removeWhat you see in n8n
Notes & use cases
Takes members out of a group, the closing move of any access workflow.
Key parameters
- Usernames: the usernames to remove, comma separated when there are several.
- Group ID: the identifier of the group to remove them from.
Need help automating Discourse with n8n?
A person reads every message.

