Integrations & Automation for Flarum 2
Integration and automation extensions for Flarum 2 — outgoing webhooks with a scoped REST API and rules engine, GitHub release posting, Facebook auto-posting, Battle.net armory data, and an importer for phpBB, XenForo, vBulletin and more.
5 files
-
World of Warcraft armory for Flarum 2 — Battle.net login + character data (gear, stats, talents, raids, PvP, professions)
Install
From your Flarum root:
composer require ernestdefoe/armoryThen enable it in Administration → Extensions.
Source
GitHub repository
Packagist
Free and open source under the MIT licence. Requires Flarum 2.
- Free
- 0 Downloads
-
Listens for GitHub release webhooks and posts a reply to a configured discussion thread.
Install
From your Flarum root:
composer require ernestdefoe/github-release-botThen enable it in Administration → Extensions.
Source
GitHub repository
Packagist
Free and open source under the MIT licence. Requires Flarum 2.
- Free
- 0 Downloads
-
Post new forum posts to Facebook page
Install
From your Flarum root:
composer require ernestdefoe/flarum-facebook-postThen enable it in Administration → Extensions.
Source
GitHub repository
Packagist
Free and open source under the MIT licence. Requires Flarum 2.
- Free
- 0 Downloads
-
Connect for Flarum 2
What it does
Connect covers both directions of automation:
Out of your forum → anywhere. When a discussion is started, a reply is posted, or a user registers, Connect fires a signed webhook to whatever URL you (or a Zap) subscribed. Perfect for Zapier/Make/IFTTT/n8n triggers.
Anywhere → into your forum. A scoped API key lets an external service create discussions and replies as a real user, through Flarum's own API — so every permission and validation rule still applies.
Inside your forum. The built-in Rules engine runs trigger → conditions → actions entirely on your server. No third-party account, no per-task billing, no data leaving the box.
Set it all up without leaving your forum
Connect embeds Zapier's official experience right in your admin panel. Browse 6,000+ apps, pick a recipe — Share new discussions to a Facebook Page, Post to Slack, Add members to Mailchimp — and build or manage Zaps in place. No tab switching, no developer knowledge required.
Connecting takes one API key — there's nothing to register with Zapier and no developer account needed. Connect ships its own Zapier integration that every forum shares; because it authenticates per-site (your forum URL + your key), one integration serves everyone. Admin → Connect has an Open Connect on Zapier button that takes you straight there.
The in-page Zap builder shown above switches itself on once that integration is listed publicly in Zapier's directory — until then you build Zaps in Zapier itself, with everything else working exactly the same.
Prefer Make, n8n, or IFTTT? They all work off the same REST API and webhooks — no Zapier account involved.
Automation rules (no external service needed)
Pick a trigger, add optional conditions, and choose one or more actions. Rules run on a queue, off the request path, so they never slow down the person who triggered them.
Triggers
Event
Fires when
discussion.created
someone starts a new discussion
post.created
someone posts a reply
user.registered
a new member signs up
Conditions — match all or any of a list. Each condition compares a payload field (e.g. title, content, tagList) using one of: is, is not, contains, does not contain, starts with, is greater than, is less than, is empty, is not empty, matches (regex).
Actions
Action
What it does
Post a reply
replies to the discussion the event is about
Add / remove a tag
requires flarum/tags
Add / remove from a group
changes the involved user's groups
Call a webhook
POSTs the event payload to a URL you choose
Connecting Zapier / Make / IFTTT / n8n
In Admin → Connect, create an API key. Give it a label (e.g. Zapier) and the scopes it needs — Read for triggers, Write for actions.
Copy the token (ck_…) and secret (cs_…).
In your automation tool, add a webhook that authenticates with Authorization: Bearer ck_….
To receive forum events, subscribe your tool's catch-hook URL (Zapier does this automatically via REST Hooks — see the API below).
To act on the forum, POST to the action endpoints.
Every outgoing delivery is HMAC-signed so you can verify it really came from your forum:
X-Connect-Signature: sha256=<hex> valid ⇔ signature == 'sha256=' + hmac_sha256(rawRequestBody, keySecret) REST API
All routes are under your forum's API root (/api). Authenticate with Authorization: Bearer ck_….
Method
Endpoint
Purpose
GET
/connect/me
Who this key acts as (auth test)
POST
/connect/hooks
Subscribe: { event, targetUrl } → REST Hook, returns { id }
DELETE
/connect/hooks/{id}
Unsubscribe
GET
/connect/samples/{event}
Recent real items shaped like the payload (Zap setup)
POST
/connect/actions/discussions
Create a discussion { title, content }
POST
/connect/actions/posts
Reply to a discussion { discussionId, content }
A 410 Gone from a subscribed target auto-prunes the subscription — so a Zap you turn off cleans itself up.
Example
# What does this key act as? curl https://your-forum.example/api/connect/me \ -H "Authorization: Bearer ck_live_xxx" # Create a discussion as the key's user curl -X POST https://your-forum.example/api/connect/actions/discussions \ -H "Authorization: Bearer ck_live_xxx" \ -H "Content-Type: application/json" \ -d '{"title":"Posted from Zapier","content":"Hello from an automation!"}'Installation
composer require ernestdefoe/connectThen enable Connect in Admin → Extensions. Make sure a queue worker is running (php flarum queue:work) so webhooks and rule actions are delivered.
The tag actions light up automatically if flarum/tags is installed; everything else works on a stock forum.
Minting a key from the CLI
php flarum connect:key "My key" --scopes=read,writeRequirements
Flarum ^2.0
PHP ^8.3
A running queue worker (recommended — webhooks and rule actions are queued)
License
MIT © Ernest Defoe
- Free
- 0 Downloads
-
Importer / Converter for Flarum 2
Migrate an existing forum into Flarum 2 — from phpBB, vBulletin (3/4/5), XenForo, MyBB, SMF, Vanilla, NodeBB, Invision, Discourse, or Convoro. Everything is driven from the admin panel: pick a platform, connect to its database (or upload a dump), test it, then run the import in small batches with a live progress bar — so even a large forum won't time out.
Runs on shared hosting
No queue worker and no SSH required. The import runs as a loop of small "step" requests straight from your browser, each processing one bounded batch and returning — so it can never hit a web timeout. Progress and the source→Flarum id-maps are persisted in the database, so if the tab is closed or the connection drops, reopen the page and it resumes exactly where it left off. If you do have a queue worker (e.g. fof/redis), the import is handed to it and runs fully in the background instead — either way it's safe.
The admin area
The whole tool lives on the extension's settings page.
1. The wizard
Pick a source platform, then either connect to a database (host, port, database name, username, password, and table prefix) or upload a database file (a mysqldump .sql/.sql.gz, or a SQLite file) for hosts that only hand you a dump. Nothing is written until you start.
2. Test the connection
Test connection validates the credentials, confirms it really is the platform you picked, then reports exactly what it found — here 21 Users, 4 Categories, 30 Topics, 371 Posts — so you know it will pull the right data before committing. Start import only lights up once the test passes.
3. Watch it run
Start import kicks off the batched run and shows a live progress bar with the current phase and running totals — categories, members, topics and posts — updating as it goes.
When it finishes you get a summary of everything imported, and can start another.
Supported sources
Platform
Notes
phpBB 3.x
BBCode posts; bcrypt passwords copied across
vBulletin 3 / 4 · vBulletin 5 / 6
one option covers both — vB5's node schema is auto-detected
XenForo 1.x / 2.x
BBCode posts; XF2 bcrypt passwords copied
MyBB 1.8 · SMF 2.0 / 2.1
BBCode posts
Vanilla · NodeBB
Markdown / mixed formats; NodeBB reads its Redis store (needs the redis PHP extension)
Invision Community (IP.Board)
HTML posts, quotes & mentions cleaned up
Discourse
PostgreSQL source (needs pdo_pgsql)
Convoro
Convoro → Flarum; bcrypt passwords copied, so members keep their logins
Categories are imported as tags (requires flarum/tags); if tags aren't installed, discussions and posts still import, just untagged.
How it works
Timeout-proof — the run is a resumable state machine; each request processes one small batch and returns, so memory stays flat and nothing runs long enough to time out. Works with or without a queue worker.
Resumable — progress, cursors and the source→Flarum id-maps live in the database, so a run survives a closed tab, a reload, or a dropped connection.
Faithful content — post bodies go source → HTML/Markdown → Flarum's formatter, landing in Flarum's native stored format so they render as proper rich text.
Relations preserved — members, tags, discussions, first/last-post pointers, comment counts and participant counts are all rebuilt.
Requirements & tips
Import into a fresh Flarum for the cleanest result.
A queue worker is optional — the import runs from the browser without one. If you have fof/redis + a worker, it runs in the background instead.
There's also a CLI for very large migrations or scripting:
php flarum importer:run --source=phpbb \ --host=127.0.0.1 --database=my_old_forum --username=root --password=secret --prefix=phpbb_ # add --test to only check the connection and show counts- Free
- 0 Downloads