Skip to content

Releases

Community levels are now configurable, with a name, an image, minimum points and weekly activity. The profile shows what is left this week to stay or move up, and workflows get the Moved up a level, Moved down a level and Reached N points triggers. In Monetization, the new Revenue card shows the period's gross, refunds, chargebacks and net. Campaigns pick their audience by custom field, each space chooses how it shows its items, and a post can have its comments turned off.

What's new

Configurable levels with weekly activity requirements

What it is. The community builds its own level ladder: 2 to 20 levels, each with a name, minimum points, an optional image and, if you want, weekly activity, such as "at least 3 posts a week" or "2 comments in the Introduce yourself space". The level shows who is taking part now, not just who piled up points once.

How it works. To move up, a person needs the points and the level's requirements met this week, and the move is immediate. To stay, the full previous week counts: whoever did not meet them moves down on Monday at 00:00, in the community's time zone. When you save, the preview shows how many people move up and how many move down.

Where it is. In Members › Gamification, Levels tab, for the owner and the admin. The level's name and image show on the ranking, the podium, My engagement, the profile and the member page.

If you change nothing. The community keeps the usual 9 levels, from Newcomer to Legend, with no requirements: nobody's level changes. See Gamification › Levels.

What is left this week, on the profile

When the level has requirements, the profile shows the week's progress: each requirement with how much is done (2 of 3) and, below, what is left to move up to the next level. The person and the team (owner, admin, moderator and finance) see this block. See Gamification › What is left this week.

Level and points triggers in workflows

The Levels and points block brings the Moved up a level, Moved down a level (with the Reason) and Reached N points triggers, and the Condition gets level and points rules. Example: "Moved down from Kernel → remove from the Kernel group". See Workflows › Levels and points.

In e-mail campaigns, {{level}} is now the name the community gave the level, and {{level_number}} brings its number.

Revenue in Monetization

What it is. A Revenue card in Monetization's Dashboard section, with the period's sales by payment date: Gross (with the number of sales), Refunds and Chargebacks (amount and count) and Net of refunds, the gross minus refunds and chargebacks. Amounts are before the platform fee.

Why it matters. Until now, a refund didn't show up next to the sales it undid. Now you see, in one place, what came in, what went back and what's left.

Where it lives. In Administration › Monetization › Dashboard, between the balance and the latest transactions, for the owner, admin and finance. The period goes from Last 7 days to Last 12 months (30 days by default); when the community sells in more than one currency, a picker chooses the currency.

Example. Over 30 days: Gross US$ 1,299.40 (9 sales), Refunds US$ 99.90 (1 refund), Chargebacks US$ 0.00, Net of refunds US$ 1,199.50. On the Dashboard, the indicator is now called Gross revenue, with the same source. See Revenue for the period.

Cookie notice in communities with Google Analytics: measurement only starts after the person accepts. Whoever comes in for the first time sees Cookies in this community, with Reject, Accept and Customize; the choice lasts 12 months, and Cookies, at the foot of the side menu and in the avatar panel, opens the notice again. A community without Google Analytics shows no notice. See The cookie notice.

Spaces and sections can open for whoever holds a badge

Spaces and sections can open for whoever holds a badge. In Who gets in, the badge sits next to groups, products and plans: whoever earns it gets in at once, with a bell notice, and whoever loses it is out on the next visit. On screen, + Badges in Who gets in; whoever does not have it yet sees the padlock with "Earn the Mentor badge" (a private badge shows only as "A special badge"), and removing a badge warns how many spaces and sections it opens. Also through the API and the assistant. See Visibility and access and What a badge unlocks.

Spaces and sections that open by level

In Who gets in, a minimum engagement level: whoever is at it or above gets in, whoever drops is out on the next visit. Whoever has not reached it sees the level and what is left, with the points and the week's activity. In Who gets in, the + Level button; the padlock shows "Available from level 9 · Legend" and, for members, the level's activity this week and See my progress. Also through the API and the assistant. See Visibility and access.

Badges awarded automatically

A badge can award itself by a rule: an action or a moment (course completed, check-in, quiz, form…), how many times, in which space and in which period, with no workflow. Counting starts when the rule is created. Through the API and the assistant; the screen is coming to the dashboard. See Award automatically.

Daily points cap per action

Each action can have a most-times-a-day that gives points; over it, the action happens with no points and does not count for badges. See Daily cap per action.

Signed calls in Call webhook

With the signing secret generated, every Call webhook call carries X-Memberfy-Signature, so the destination can prove it came from Memberfy. See Signed calls.

Campaign audience by custom field

An e-mail campaign's audience can include or exclude people by a choice custom field: "City is São Paulo or Campinas", "Interests contains any of Data, AI", "Accepts sales contact is yes". Up to 10 conditions per campaign; a closed or sensitive field cannot be used. Through the API and the assistant; the screen is coming to the dashboard.

Display per space, with an Events calendar

In six modules (Content, Events, Courses, Downloads, Classifieds and Gallery), the owner and the admin choose how items show for everyone: Feed, Cards, List, Compact, Grid or Calendar. In an Events space, the Calendar shows the month or the week, with undated events set apart. Without a choice, nothing changes. Through the API and the assistant; the screen is coming to the dashboard. See Display.

Turn off comments per post

The author, the owner, the admin and the moderator can turn off a post's comments: nobody comments, the team included, and existing ones stay. Through the API; the option in the post menu is coming to the dashboard. See Turn off comments.

Feed by activity

The feed can be sorted by Active: pinned posts first, then whatever had the latest comment or reply, so an old post with a new conversation comes back up. Through the API; the choice in the feed is coming to the dashboard. See Recent or Active.

Improvements

  • New security controls.
  • More precise searches. A % or _ typed in a search is now matched as text: before, % listed everything and _ matched any character.
  • Links to the website and to the community at the top of the Help Center.
  • Engagement on the website. The Engagement page on the Memberfy website now covers badges (by hand, by workflow and automatic from a course, a check-in and Networking) and levels with weekly activity, with the level and point triggers.
  • Your community now shows up better in search engines and AI: automatic robots.txt, sitemap and llms.txt in every community. See Your community in search engines and AI.
  • Save X%, one rule. The savings tag compares each option's price per month with the monthly option without a contract, at the price the buyer pays (with the platform fee when the buyer pays it), rounded to a whole number. The monthly option has no tag, and the tag does not show when there is no saving or no monthly option to compare with. See The savings tag.
  • Requirement in a space you cannot access. On the profile, a level requirement tied to a space the person does not open shows "in a space you cannot access" in place of the name. See What is left this week.
  • Drafts and posts awaiting moderation are visible only to whoever wrote them and to the team, in the feed counts too. See Content › The list and the page.
  • The fixed-IP call quota now renews at midnight in the community's time zone. See Fixed IPs.
  • The finance role can now view the community's pricing plans. See Roles and permissions.
  • Whoever replied STOP by SMS or WhatsApp sees on screen that it stopped and can turn it back on there. See Stopped by a STOP reply.
  • For the team: Google Analytics measures less. With the cookie notice, GA4 counts visits only for those who accept, so the numbers are lower than before. See Google Analytics.
  • Search engine verification. Under Settings › Search and discovery, paste the Google Search Console or Bing Webmaster Tools code to prove the community is yours, also on the .memberfy.net address. The sitemap and llms.txt now list the open courses, the calls with submissions open and the certificates their holders let be indexed (with Guest Access off, only the home page). See Your community in search engines and AI.

Fixes

  • Leaderboard without people who left. The leaderboard position no longer counts people who left the community, and it's now the same on the profile and in the reports. See Ranking.
  • Unnamed member. People with no name on file show as "Unnamed member" on the leaderboard, in the gallery, in comments and in chat.
  • Repeated currency filter. Asking Monetization for the same currency twice returns a validation error instead of an internal error.
  • Deleted purchases out of revenue. A deleted purchase no longer counts in the revenue numbers of Monetization, the Dashboard and the reports.
  • Amounts in workflows. The amount condition in workflows writes money in the community's currency and format, not always in reais. See The "Variable" condition.
  • Free trial without a sale notice. The community no longer gets the new sale notice when someone starts a free trial with no charge; the subscriber still gets the confirmation.
  • Sales and subscription reports round the half cent the same way as the statement.
  • Search finds public spaces inside members-only sections, for people who already have access to them.
  • Confirming attendance at an event answers in the language of whoever uses it.
  • Plan change by boleto that did not clear. If the plan change boleto does not clear by the business day after it is due, the change is given up: the boleto is canceled, the person gets the payment-not-completed notice, and the renewal goes ahead on the current plan. After that, another change can be requested.

For developers

API

  • GET and PUT /api/gamification/levels (owner and admin): the level ladder with its requirements; dryRun returns how many move up and down without saving.

  • GET /api/gamification/levels/progress: the week's progress for the current and the next level, for the person and the team; on the profile, in engagement.levelProgress.

  • New optional fields: levelId, levelName and levelImageUrl on the ranking and the profile. See Gamification › In the API.

  • Webhooks: the member.level_changed and member.points_changed events, 97 in total. See Webhooks.

  • GET /api/dashboard/monetization comes from the statement and carries refunds, chargebacks and net in metrics.totalRevenue, plus currency and currencies; the currency parameter picks the currency, and repeating it returns 400. See the reference.

  • GET /api/vault: outbound.month is now the month in the community's time zone, and the new optional field outbound.resetsAt says when the fixed-IP count restarts.

  • GET /api/communities/plans and GET /api/communities/plans/{id} accept the finance role; creating, editing and removing stay with the owner and admin.

  • GET /api/members/me/notice-preferences: the new optional globalOptOut field, in channels.sms and channels.whatsapp, shows the stop by a STOP reply; the PUT with enabled: true turns it back on in every community. See In the API.

  • access.badgeIds on POST/PUT of spaces and sections (absent keeps the badges; [] removes them). The 403 of an area closed by a badge carries reason: "badge", the earnBadge action, badges (public ones only) and hasHiddenBadge. space.access_granted gains source: "badge", and GET /api/badges brings unlocks. See Visibility and access › In the API.

  • PUT /api/communities/{id} accepts googleSiteVerification and bingSiteVerification, and GET /api/public/community-summary lists, without a session, the open courses, the calls with submissions open and the certificates their holders let be indexed (empty with Guest Access off). See In the API.

  • access.minLevelId/access.minLevel on spaces and sections; the 403 with reason: "level", earnPoints and progress; 409 gamification.levels.inUse with the spaces and sections; space.access_granted with source: "level". rule on POST/PATCH /api/badges, dailyCaps on PUT /api/gamification/config and GET/POST/DELETE /api/vault/signing-secret.

  • Campaigns: fields (oneOf, containsAny, containsAll, isTrue, isFalse; up to 10 conditions), audienceWarnings, fieldWarnings. See E-mail campaigns › In the API.

  • Spaces: layout (POST/PUT /api/spaces and when reading), layouts per module in GET /api/spaces/modules; GET /api/events with from/to, undated, truncated, undatedCount. See Display.

  • Posts: commentsDisabled (POST/PUT /api/content, /api/status; commenting on a post with comments off: 403 comments_closed); sort=recent|activity (GET /api/feed), with lastActivityAt on every item. See Feed › In the API.

MCP: technical details

  • New tools: get_ranking_levels, update_ranking_levels (asks for confirmation, with the preview of who moves up and down) and get_level_progress. 927 tools in total. See Tools · Content.
  • Workflows through the assistant accept the member.level_changed and member.points_changed triggers and the levelAtLeast and pointsAtLeast rules.
  • The assistant now answers Monetization in any currency the community sells in, with gross, refunds, chargebacks and net shown separately.
  • get_sales_summary takes currency (one currency) and returns refunds, chargebacks, net and currencies. See Tools · Finance.
  • get_my_notice_preferences shows the stop by a STOP reply (global_opt_out), and update_my_notice_preferences turns the channel back on, with a confirmation saying it applies to every community.
  • update_space_access and update_section take badge_ids; each list sent replaces only its own. New get_space_access tool (team), and delete_badge warns what stops opening. See get_space_access.
  • min_level on update_space_access and update_section; rule on create_badge and update_badge; daily_caps on update_ranking_rules; new tools get_signing_secret, create_signing_secret and delete_signing_secret; the Welcome journey with badges recipe.
  • create_campaign, update_campaign, preview_campaign_audience accept fields in the audience and the exclusion (one_of, contains_any, contains_all, is_true, is_false); warnings come back in field_warnings.
  • create_space, update_space accept layout; list_space_modules returns layouts; list_events accepts from/to and undated, with truncated and undated_count.

Subscribe via feed (Atom)