Moderators guide
Everything a workspace owner or moderator has control over. Tenant-wide concerns (billing, custom domains, API keys) live in the Admins guide; this one is scoped to running a single workspace day-to-day.
Who this is for
Two roles fit here: workspace owner (the person who created the workspace or had ownership transferred to them) and moderator (delegated by the owner via the role picker in Manage members). Functionally they’re close — both can edit workspace settings, manage channels, moderate content, and run the membership roster. The two meaningful differences:
- Only owners can delete the workspace itself or transfer ownership. Moderators can do everything else.
- Only owners can change the workspace’s visibility (public ↔ private ↔ hidden) and the join policy. Moderators see those settings as read-only.
A tenant admin (see Admins guide) can do all of the above on any workspace regardless of their workspace role — they have spaces:update at the tenant scope.
Workspace settings
Open the Settings menu (bottom of the channel sidebar) and pick Workspace settings. The settings page is grouped into four tabs:
- Identity. Name, slug, description, logo, cover image, industry. The slug controls part of the URL (
/w/<slug>); changing it breaks existing links so we recommend leaving it alone after launch. - Visibility & access. Owner-only.
- Public — listed in the tenant’s discover page and indexable by search engines. Anonymous visitors can read public-channel content; member actions still require sign-in.
- Private — discoverable in the tenant’s workspace directory for signed-in members, content is members-only.
- Hidden — invisible everywhere except to existing members. Use this for incubating or internal workspaces.
- Engagement. Toggles for DMs, weekly highlights email, anniversary pings. The DMs toggle is the most consequential — disabling it removes the Messages icon and 1:1 chat from every member’s sidebar.
- Theme. Pick from 10 free + 5 premium industry themes (premium gated on tier). The chosen theme drives accent colours and background gradients across the workspace.

Welcome flow & guidelines
Two pieces of long-form copy live under Workspace settings → Engagement:
- Welcome message. Surfaces on the workspace home for first-time visitors. Markdown supported. Use it for the elevator pitch — what this workspace is, who it’s for, what to do first.
- Community guidelines. Lives at
/w/<slug>/guidelines. Anonymous-readable on public workspaces. Use it for code-of-conduct and posting rules; link to it from your welcome message and any moderation actions.
The Home target setting picks which surface new members land on by default — typically the Feed, but for tightly- scoped workspaces a single channel often works better.
Channel administration
Channel settings live behind the gear icon in any channel header. The modal handles both creation and edit of these properties:
- Name + description. Description shows in Browse channels + as a tooltip.
- Visibility:
- Public auto-join — every workspace member sees it in their sidebar and can post. Default for new workspaces.
- Public opt-in — listed in Browse channels but members have to click Join to add it to their sidebar. Use this for noisier channels or special-interest rooms where you want low-friction discovery but voluntary membership.
- Private — invisible to non-members. Roster is managed via Channel settings → Members.
- Read-only. When set, only owners + moderators can post; everyone else can read and react. Good for announcements channels.
- Paid access. See the next section.
- AI agent. See AI agents.
To delete a channel: open the gear → bottom of the modal →Delete channel. Messages are soft-deleted and recoverable for 30 days through the moderation queue; after that they’re gone.

Paid channels
A paid channel is a regular channel that members must subscribe to before they can read or post. Three settings to combine for this to work end-to-end:
- Visibility: Public opt-in. The only combination that makes the channel discoverable in Browse and gates entry behind payment. Auto-join skips the paywall, private hides it from browse entirely.
- Pricing model + price + currency. Choose monthly or yearly, set the amount in smallest unit (cents for USD, paise for INR), pick USD or INR. The frontend will validate.
- Payment provider connected. The tenant admin needs Stripe (USD) or Razorpay (INR) wired under Admin → Payouts first. If it’s not connected, the Save button will be disabled and the modal will tell you so.
Once configured, the channel shows up in Browse with a price chip (e.g. $9 / mo). Clicking it routes non-subscribers to/w/<slug>/c/<channel>/join — the paywall page with the Subscribe button. On successful payment a ChannelMember row is created and the subscriber is routed into the channel. Cancellations continue access until the end of the current billing period.
To migrate a free channel to paid: pause new posts, give existing members a heads-up, set the pricing model. Existing ChannelMember rows are preserved — your current members keep access without paying. Only new joiners go through checkout.

Members & roles
Settings menu → Manage members opens the per-workspace member directory. Each row shows display name, username, role chip, and join date. From this page you can:
- Change a member’s workspace role. The four roles are
owner,moderator,member,guest. Only owners can promote someone to owner; moderators can promote up to moderator. - Remove from workspace. Revokes feed and channel access. The user keeps their account in the tenant — they can re-request to join if the workspace allows it.
- Mute (silences notifications they trigger), warn (issues a logged warning with a reason string), or ban (revokes access and prevents re-joining). Bans can be timed (24h, 7d, 30d, permanent) and include a reason that’s logged in the audit trail.
- Filter and search by role, status, join date.
Guests are restricted to channels they’re explicitly added to — the workspace feed, channel list, and member directory are hidden from them. Use this for vendors or partners who should only see one specific channel.

Invitations
Three ways to bring new people in:
- Open the workspace URL. Easiest for public workspaces — anyone with the link can sign up and join (subject to the join policy).
- Email invitations. Tenant admins set this up via Admin → Community invites. Auth0 sends a magic-link email that drops the recipient straight into the workspace after signup with their tenant role pre-assigned.
- Bulk invitation CSV. Upload a CSV of email + role. Useful for migrating an existing community in. Same magic- link delivery as single invites.
A pending invitation expires after 7 days by default; you can re-send from the same admin page.
Moderation queue
Settings menu → Moderation opens a three-tab queue:
- Reports. Content that members flagged. Each item shows the reporter, reason, snippet, and the full context one click away. Actions: dismiss (keep content, mark report handled), remove (soft-delete content, optionally notify the author), warn / mute / ban the author.
- Hidden. Content auto-hidden by spam filters or previously removed. Restore or permanently delete.
- Recent actions. Audit log of who moderated what and when — useful for staff coordination.
Beyond the queue, moderators can act directly on any post / message:
- Pin / unpin a post or message.
- Lock a thread or post (no new comments or replies).
- Edit someone else’s post (rare — used for typo fixes; the edit is attributed to you in the audit log).
- Delete any content; the row is soft-deleted and recoverable from the Hidden tab for 30 days.
Bulk operations: in the moderation queue, select multiple rows and apply one action to all at once — useful for spam waves.

Scheduled content
Every primary content type (post, article, question, poll, resource) supports scheduled publishing. Look for the Schedule button in the composer; pick a future date + time and the row stays hidden from everyone except you until the scheduled moment, when a background task flips it live and fires the realtime feed broadcast.
- Author-only visibility. Scheduled rows don’t appear in the public feed or channel until they go live; the author sees them with a banner.
- Per-type scheduled lists. Composer → Scheduled shows your queued items per content type. Edit or cancel any of them before they fire.
- Chat scheduled messages work the same way — pickSchedule send in the composer; the message lands at the scheduled time. Useful for off-hours announcements.
Pinning & featured content
Three tiers of promotion:
- Pin. Per-channel or per-feed. Pinned items sort to the top regardless of recency. There’s a per-channel pin limit (5) to keep the surface usable.
- Featured. Featured articles and questions get a highlight chip on the feed and surface in the workspace home’s featured tile. Used sparingly.
- Editor’s pick. Article-only, sets theEditor’s pick badge. Useful for highlighting high-quality long-form for crawlers.
Members can also pin and unpin channels in their own sidebar — that per-user pin is independent of the workspace-level pin above.
AI agents (per channel)
Each channel can host its own AI agent. Members @-mention it like any other user and the agent reads a window of recent messages, generates a reply, and posts as the bot user with a distinct ✦ avatar and an AI · agent badge.
Setup (per channel):
- Open the channel as owner / moderator → settings gear.
- Scroll to AI agent.
- Pick a provider:
- Fireworks AI — uses the operator-level
FIREWORKS_API_KEY(set in env by the tenant admin). Token usage is counted against the tenant’s monthly cap. - Anthropic Claude — paste a Claude API key here; encrypted at rest, only the last 4 chars shown after save. You pay Anthropic directly; no token cap.
- Fireworks AI — uses the operator-level
- Handle. What members @-mention to invoke the agent. Default
assistant— change it if you want a persona (support,research, etc.). - Model (optional). Defaults to a sensible model per provider.
- Click Connect agent.
Pause / Resume / Remove buttons appear after the first save. The agent only responds when @-mentioned — it doesn’t auto-reply to every message. Per-tenant Fireworks token caps: Free / Starter 0, Creators 100k / month, Growth 500k, Professional+ unlimited. When the cap hits, the agent posts a one-line soft-fail instead of a real reply.

Catch me up (AI summaries) setup
The Catch me up button at the top of a channel asks the workspace’s AI to summarize what a member missed since they last opened it. This is a separate feature from channel agents and uses a per-workspace key (not the operator env).
Setup:
- Workspace requires Growth tier or above.
- Open Workspace settings → AI.
- Pick a provider, paste an API key, optionally pin a model.Save.
The button will then appear at the top of every channel for every member. Summaries are personal — they don’t post anywhere public. Token cost lands on the key you provided.
Linked feeds (RSS / YouTube)
Workspace settings → Linked feeds lets you ingest external content into the workspace feed. Two source types supported today:
- RSS / Atom / JSON Feed — paste any feed URL. The ingester polls every 30 minutes and posts new entries to the Feed’s Posts tab with a source-attribution chip.
- YouTube channel. Paste the channel URL or handle. New uploads land as inline embedded videos.
Ingested entries are member-gated (anonymous viewers don’t see them, regardless of workspace visibility) and show a small source badge so members can tell organic from ingested content. To pause ingestion, toggle the source off; to remove past entries, delete the source.
LinkedIn isn’t supported (no public RSS); Substack and Medium work via their public RSS feeds.

Webhooks
Settings menu → Webhooks ships event payloads to a URL you control. Each webhook subscribes to one or more event types and fires asynchronously via Celery.
- Event types include:
post.created,message.created,article.published,question.answered,member.joined,member.left,ticket.created,ticket.updated, and more. - Signing. Each request includes an
X-Arythmatic-Signatureheader — an HMAC of the body with the secret you set when creating the webhook. Verify it before trusting the payload. - Retries. Failed deliveries (non-2xx) retry with exponential backoff for 24 hours.
- Delivery log. Each webhook has a log tab showing the last 100 deliveries with status code and latency.
Gamification & leaderboards
Points accrue automatically from member actions — posting, commenting, reacting, accepted answers, daily login, profile completion. The leaderboard sums them and ranks members.
- Per-workspace reputation. Each workspace has its own leaderboard. Switch the leaderboard view between All workspaces and a specific workspace via the dropdown at the top of the leaderboard page.
- Streaks. Daily-login streaks show as the flame chip in the top bar and contribute extra points; longest streak is shown on member profiles.
- Badges. Earned for milestones (first post, 100 reactions received, first accepted answer, etc.). Tenant admins can mint custom badges and award them manually.
- Tune the rules. Tenant-level — Admin → Gamification. Per-action point values, badge unlock conditions, and the daily cap on each action.
Analytics
Settings menu → Analytics. Workspace-scoped dashboards:
- Members. New joins per week, total members, retention cohorts (week-1, week-4, week-12).
- Content. Posts, articles, questions, messages created per week, with breakdowns by channel.
- Engagement. Reactions, comments, bookmarks per week. Top-N reactors / commenters.
- Channels. Most-active channels, abandoned channels (no activity in 30 days), top-growing channels.
- Monetisation (when paid features are on). Active subscribers, MRR, churn, new vs renewing per period.
Dashboards are cached for an hour. CSV export is available on Growth tier and above via the download icon on each chart.

Troubleshooting
Frequent issues and their fixes:
- A member can’t see a channel. Check the channel’s visibility (private requires explicit membership; opt-in requires them to click Join in Browse). If it’s paid, confirm they have an active subscription.
- Member reports they didn’t get a notification. Have them open Notification preferences; check both the per-workspace and per-channel settings, and whether they have push enabled.
- Agent didn’t reply to an @mention. Confirm the agent is Active (not Paused), the message contains the configured handle as a substring, and (for Fireworks) the tenant hasn’t hit its monthly token cap.
- Webhook isn’t firing. Open the webhook’s delivery log — failed deliveries surface their status code and response body. The most common cause is a slow endpoint timing out (we wait 10 seconds).
- Paid channel won’t save. Confirm a payment provider is connected at the tenant level (Admin → Payouts) and the tenant is on Creators tier or above.
Still stuck? Email support@arythmatic.cloud or ask in community.arythmatic.cloud.

