# 1 novembre 2026

> 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. The community gets a welcome on the first visit, with First steps, posts can be scheduled, and groups can have an end date. Dark mode also arrives, enabled by Memberfy community by community, and, in My Account › Privacy, each person downloads their own data in a ZIP file and requests the deletion of their account on screen.

## 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](/membros/gamificacao#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](/membros/gamificacao#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](/notificacoes/workflows#levels-and-points).

In [e-mail campaigns](/notificacoes/campanhas-de-email), `{{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](/monetizacao/visao-geral#revenue-for-the-period).

### Cookie notice in communities with Google Analytics

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](/configuracoes/google-analytics#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](/conceitos/visibilidade-e-acesso#private-the-who-gets-in-list) and [What a badge unlocks](/membros/engajamento#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](/conceitos/visibilidade-e-acesso#private-the-who-gets-in-list).

### 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. In the badge window, under **Award automatically**; also through the API and the assistant. See [Award automatically](/membros/engajamento#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](/membros/gamificacao#daily-cap-per-action). On screen, it is the **Max per day** column in **Points 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](/notificacoes/workflows#signed-calls). The secret is generated in **Variables and keys**, in the **Signing secret** block.

### Campaign audience by custom field

An [e-mail campaign](/notificacoes/campanhas-de-email)'s audience can include or exclude people by a choice custom field, in the **Fields** section of **Choose the audience** and of **Exclude**: *"City is one of São Paulo, Campinas"*, *"Interests contains any of Data, AI"*, *"Accepts sales contact: Yes"*. Up to 10 conditions per campaign; a closed or sensitive field cannot be used. If the field is deleted, closed, changes type or loses an option, the condition warns. See [The audience](/notificacoes/campanhas-de-email#the-audience).

### 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. It is the **Display** field, when editing the space and in **Create Space**; also through the API and the assistant. See [Display](/conceitos/espacos#display).

### Turn off comments per post

The author, the owner, the admin and the moderator can turn off a post's comments, in the post's **…** menu (**Turn off comments** / **Turn on comments**) or with the **Turn off comments** box when creating and editing: nobody comments, the team included, and existing ones stay. *"Comments are turned off"* shows in place of the comment box. See [Turn off comments](/espacos/feed#turn-off-comments).

### Feed by activity

At the top of the feed, **Sort** chooses between **Recent** and **Active**: pinned posts first, then whatever had the latest comment or reply, so an old post with a new conversation comes back up. See [Recent or Active](/espacos/feed#recent-or-active).

### Welcome and First steps

**What it is.** Screens a new person sees on their first visit, before the community: 1 to 5, with text, video (uploaded, which can require watching to the end, or a YouTube or Vimeo link), the rules to accept with **I have read and accept the rules** (the acceptance is recorded with the date and the text) and the profile fields the community wants to know. After them, the **First steps** card, with up to 6 missions that complete themselves through use (completing the profile, posting in a space, answering a form, registering for an event, completing a course), each with points and a badge, and a final badge.

**Why it matters.** The new person arrives knowing the rules, with the profile filled in and a clear path to start taking part.

**Where it is.** In **Settings › Welcome**, for the owner and the admin. The mode is **Required** or **Can skip**, and **View as member** shows the screens as a new member sees them. The team never goes through the welcome.

**How to start.** 1) Build **Screen 1** and, if you want, more screens. 2) Turn on **Welcome on** and decide whether it also applies to existing members. 3) Turn on **First steps** and add the missions.

**Example.** Maria joins, watches the video, accepts the rules and fills in *Job title*. In the Feed, the card *First steps · 0 of 3*; she posts her introduction, and within about a minute the card shows *1 of 3*. In the **Members** list, the **Welcome** filter shows who is pending, and workflows get **Completed the welcome** and **Completed the first steps**. See [Community welcome](/membros/boas-vindas).

### Scheduled posts

**What it is.** When creating a post or a status, **Schedule post** picks the date and time it goes out, up to 1 year ahead. Until then, it only shows in the **Scheduled** list, for the author and the team; at that time, it goes out once, with the e-mail notice, the points and the new-post workflows.

**Where it is.** In the posting box and in the create-post window. The **Scheduled** list is in the arrow menu next to **New Status**, in the Feed, and in the confirmation's **See scheduled** link, with **Edit**, **Reschedule**, **Publish now** and **Cancel**. The owner, the admin, the moderator and finance manage everyone's scheduled posts; each person, their own. If the author loses access to the space by then, the post does not go out, and they and whoever scheduled it are notified. See [Scheduling a post](/espacos/conteudo#scheduling-a-post).

### Groups with an end date

Each of a person's groups can have a **Valid until**: at the end of that day, in the community's time zone, they leave the group by themselves (within 10 minutes) and lose the access the group gave, without being told; the exit goes to the Logs. It is in the person's **Place in the organization**, shows in the **Members** list (*until 12/31/2026*), in the import (the **Groups: valid until** column) and in the workflows' **Add to a group** step (**No end date**, **For N days** or **Until a date**). Changing someone's groups now belongs only to the owner and the admin, because a group can open spaces. See [Valid until](/membros/grupos-e-organograma#valid-until).

### Reason when removing a member

When removing someone, the team can write the **Reason (only the team sees it)**. It stays only in the [Logs](/membros/registros-de-atividades), which only the owner and the admin read; the person never gets the reason. See [Remove from the community](/membros/gerenciar-membros#remove-from-the-community).

### Member referrals

Each member gets a referral link; whoever joins through it counts as referred, once, with points for the **Refer a member** action and the **Referred someone** trigger in workflows. The owner and the admin turn it on in **Settings › Access and sign-up**, **Referrals** card; the member gets the link in **My Account › Refer** (**Refer the community**, with **Copy**); the team sees who brought whom in **Members › Referrals**, with **Download CSV**, and the **Referred by** card on the member's page. See [Member referrals](/membros/indicacao-de-membros).

### Videos from Bunny Stream, Cloudflare Stream, Panda Video and HLS

Video lessons and posts take these providers' links, with their player. If the Bunny library or the Cloudflare account requires a token, the owner and the admin add the signing key in **Settings › Video integrations** (**Save key**, **Verify**), and the video goes out signed, valid for 6 hours. If the provider refuses the key, viewers see *"Video unavailable"*, and the team gets a bell notice. See [Video integrations](/integracoes/integracoes-de-video).

### Points in the Store

Points become a currency: a product can have a points price, and the person redeems it with their balance, without going through payment. Spending never lowers points or level, only the balance. The owner and the admin turn it on in **Members › Gamification**, **Points balance** card (**The currency name**, **How the balance starts**); each product picks **How it is paid** (**Money**, **Points** or **Points or money**) and the **Points price**. The Store shows *"or N points"*, **Redeem with points** and *"N points missing"*, and each person sees their balance and statement in **My Account › My points**. See [Points in the Store](/monetizacao/pontos-na-loja).

### Sending through your Resend account

On the Business plan or above, the community's e-mails can go out through its own Resend account, with its domain and without the plan's recipient quotas. It is in **Settings › Sending through your Resend account**: **Connect the Resend account**, with the key, the webhook secret, the sender and the **Data notice**; the **Webhook address** with **Copy**; the status (**Pending**, **Active**, **Error** or **Paused by the plan**) and the **Verify**, **Change** and **Disconnect** buttons. See [Sending through your Resend account](/notificacoes/envio-pela-sua-conta-resend).

### Badges and points in the member import

To bring the history of people coming from another platform: the import gets the **Badges** and **Initial points** destinations. In the summary, each badge not in the catalog has **Create badge** and **Ignore**, and **The level people will land on** shows up. See [Migrating from another platform](/primeiros-passos/migrar-de-outra-plataforma).

### Dark mode

**What it is.** The community can show a **Light** background (the default), **Dark**, or **Automatic**, which follows each person's device theme. It applies to the whole app, Administration included. E-mails, certificates and the recognition art stay light.

**Where it is.** In **Settings › Brand and appearance**, **Theme** card, for the owner and the admin. Memberfy enables the dark theme community by community: without it, only **Light** shows. Once it is enabled, also upload the **Logo for dark backgrounds** (ideally a PNG with a transparent background); without it, the logo sits on a light plate. Each person can pick their own theme in **My Account › Appearance**: **Follow the community**, **Light**, **Dark** or **Device**, a choice that applies only to that browser and that community. See [Dark mode](/configuracoes/modo-escuro).

### Deleting your own account

**What it is.** A member requests the deletion of their account in a community, with their password. The deletion happens on the **effective date**: whichever comes last between 30 days and the end of the period already paid. Anyone with paid access keeps it until then; without paid access, the account is deactivated at once. After the effective date, the person's posts and comments show as **Removed member**; the subscription runs to the end of the period, with no refund.

**Where it is.** In **My Account › Privacy**, the **Delete my account** card. With the deletion scheduled, a banner at the top of the app shows the date, with **Cancel deletion** and **Details**; someone without paid access who tries to sign in sees **Account deletion scheduled**, with **Cancel deletion and sign in**. The e-mail's **Cancel the deletion** button cancels at once.

**For the team.** The owner and the admin handle the request of someone with a role below their own, including someone without a password: in the member's edit window, **Delete this person's data**, with the reason and the word **DELETE**. This deletion cannot be withdrawn. See [Delete your account](/membros/excluir-sua-conta) and [Handle an erasure request](/membros/atender-um-pedido-de-exclusao).

### Download your data

**What it is.** A ZIP file with what the community keeps about the person: profile, purchases, subscriptions, registrations, posts, messages, answers and the files they uploaded, with a `README` in their language.

**How it works.** In **My Account › Privacy**, **Download my data**, with the password. When the file is ready, an e-mail arrives; to download, the person signs in with their own account, and each download creates a link valid for 5 minutes. The file exists for 72 hours, and attachments too large for the ZIP come as 72-hour links. One request at a time, and a new one only 24 hours later.

**For the team.** The owner and the admin request it on the person's behalf, with a reason, in **Export this person's data**, in the member's edit window. The file goes only to their e-mail: the team cannot download it. See [Download your data](/membros/baixar-seus-dados).

### Data retention period

The data of guests and of parcels already closed, in Attendance and Parcels spaces, now has a retention period per space, from 6 to 60 months (12 by default), after which it is anonymized; a parcel waiting for pickup never is. The team's activity log loses the before-and-after detail of changes after 2 years. Automatic anonymization arrives in communities in the next few days. See [How long data is kept](/conceitos/guarda-dos-dados).

The period changes in **Configure space**, in the **Retention period (months)** field, by the owner and the admin only: before saving, the **Change the retention period?** window shows how many records would be anonymized, and a reduction only applies 7 days later.

### Minimum age

In **Settings › Access and sign-up**, the owner sets the **Minimum age to have an account** (16 to 99) and whether **This community serves minors**. Sign-up, the request to join and setting the password from an invitation ask for **I confirm I am 16 or older** (or the community's age), and a paid checkout asks for the declaration of being 18 or older, or authorized by a legal guardian. See [Minimum age](/membros/cadastro-e-entrada#minimum-age).

### Circle alternatives guide on the website

On the Memberfy website, the [Circle alternatives](https://www.memberfy.net/en-us/alternatives/circle) guide compares eight platforms side by side (published price, fee per sale, app, API and AI), with sources and the date they were checked, and opens the new [Alternatives](https://www.memberfy.net/en-us/alternatives) section.

## Improvements

- **New security controls.**
- **Terms of use updated on November 1.** They now cover the minimum age to have an account, exporting and deleting data by the person themselves, and retention periods. See [Terms of use](/conceitos/termos-de-uso).
- **Privacy policy updated** with minimum age, downloading your data, account deletion and retention periods. See [Privacy policy](https://www.memberfy.net/privacidade).
- **Dates in the community's time zone.** E-mail deadlines and dates (payment, cancellation, plan change, sign-in and password notices, events) and the sale timeline are shown in the community's time zone, with the time zone abbreviation (*"22:00 - 23:30 BRT"*); before, some came out in the server's time. A community without business information uses the time zone of its language's region. See [The community's time zone](/configuracoes/configuracoes-gerais#the-community-s-time-zone).
- **The space-unlocked notice arrives by push**, in the achievements category, as well as in the bell.
- **More precise searches.** A `%` or `_` typed in a search is now matched as text: before, `%` listed everything and `_` matched any character.
- **Liking from the feed earns points**, like liking on the post itself: before, a like given in the feed earned nothing.
- **Undoing an action takes its points back.** Unliking, deleting a post or a comment and dropping out of an event remove the points the action gave, and it no longer counts for badge rules and level requirements.
- **The assistant takes the Google and Bing verification.** Ask it to add the Google Search Console or Bing Webmaster Tools code to the community. See [Verify the community on Google and Bing](/configuracoes/buscadores-e-ias#verify-the-community-on-google-and-bing).
- **The assistant's log without personal data in plain view.** The record of what the assistant did in the community keeps e-mails, phones, CPF numbers and names masked (*m\*\*\*@memberfy.net*), keeping who did what and when.
- Links to the website and to the community at the top of the Help Center.
- **Engagement on the website.** The [Engagement](https://www.memberfy.net/en-us/platform/modules/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.
- Website: the “Request access” button is now “Create account”.
- 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](/configuracoes/buscadores-e-ias).
- **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](/pagamentos/checkout#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](/membros/gamificacao#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](/espacos/conteudo#the-list-and-the-page).
- The fixed-IP call quota now renews at midnight in the community's time zone. See [Fixed IPs](/api/ips-fixos).
- The finance role can now view the community's pricing plans. See [Roles and permissions](/conceitos/papeis-e-permissoes).
- 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](/notificacoes/avisos-por-sms-e-whatsapp#stopped-by-a-stop-reply-see-it-and-turn-it-back-on).
- **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](/configuracoes/google-analytics#the-cookie-notice).
- **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](/configuracoes/buscadores-e-ias).

## 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](/espacos/ranking#the-periods).
- **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](/notificacoes/workflows#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.
- **Points price on edit.** Editing a points product shows the points price, and so does the product list. See [Points in the Store](/monetizacao/pontos-na-loja#the-points-price).
- Creating a product with the name of a deleted one no longer fails.
- **Space-unlocked notice.** The notice says whether a level or a badge opened the space or section: *"Your level opened the … space"* or *"Your badge opened the … space"*.

## 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](/membros/gamificacao#in-the-api).
- Webhooks: the `member.level_changed` and `member.points_changed` events, 97 in total. See [Webhooks](/api/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](/api/referencia/dashboard/get-dashboard-monetization).
- `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](/notificacoes/avisos-por-sms-e-whatsapp#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](/conceitos/visibilidade-e-acesso#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](/configuracoes/buscadores-e-ias#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](/notificacoes/campanhas-de-email#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](/conceitos/espacos#display).
- Welcome: `GET`/`PUT /api/welcome/settings` (screens, mode, First steps with `missions`), `GET /api/welcome`, `POST /api/welcome/progress` and `/skip`, `GET /api/welcome/missions` and `POST .../dismiss` and `.../celebrated`; `welcomePending` in `GET /auth/me`, `welcome=pending|completed|skipped` in `GET /api/members`. See [Welcome › In the API](/membros/boas-vindas#in-the-api).
- Scheduled posts: `publishAt` in `POST /api/content` and `/api/status` (and in `PUT`, to reschedule), `schedule` in the response, `GET /api/scheduled-posts` and `POST /api/scheduled-posts/{type}/{id}/publish`; finance manages scheduled posts like the rest of the team. See [Content › In the API](/espacos/conteudo#in-the-api).
- Members: `reason` in `DELETE /api/members/{id}` (Logs only); `groupExpirations` in `PUT /api/hierarchy/members/{id}` and `groups[].expiresAt`; changing someone's groups now belongs only to the owner and the admin; the `groupsExpireAt` target in the import; `expiresInDays`/`expiresAt` in the `addToGroup` step. Import: the `badges` and `points` targets. See [Groups and org chart › In the API](/membros/grupos-e-organograma#in-the-api).
- Referrals: `/api/referrals/settings`, `/me` and `/report`; `referralCode` and `referralSeenAt` at sign-up; `referredBy` in `GET /api/members/{id}`. See [Member referrals](/membros/indicacao-de-membros#in-the-api).
- Points in the Store: `/api/points/settings`, `/me` and `/members/{memberId}`; `pricingMode` and `pointsPrice` on the product; `POST /api/storefront/products/{productId}/redeem`. See [Points in the Store](/monetizacao/pontos-na-loja#in-the-api).
- Sending through the Resend account: `GET`/`PUT`/`DELETE /api/email-provider` and `POST /api/email-provider/verify`. See [Sending through your Resend account](/notificacoes/envio-pela-sua-conta-resend#in-the-api).
- Video: the video lesson accepts Bunny Stream, Cloudflare Stream, Panda Video and HLS, with `videoEmbed` in `GET /api/courses/{identifier}`; signing keys in `/api/video-integrations`. See [Courses › With the API](/espacos/cursos#with-the-api).
- Time zone: `timezone` on sales and refunds, `atText` on each timeline event; an event's `timezone` must be a valid IANA time zone (otherwise `400`). See [Sales](/pagamentos/vendas).
- Webhooks: the `member.welcome_completed`, `member.onboarding_completed` and `member.referred` events, 100 in total; `member.group_left` with `reason: "expired"`; `purchase.completed` with `pointsPaid` and `purchase.refunded` with `paymentMethod: "POINTS"` and `pointsReturned`, only on points purchases. See [Webhooks](/api/webhooks).
- 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](/espacos/feed#in-the-api).
- Dark mode: `appearance` (`mode`, `effectiveMode`, `darkLogoUrl`, `darkModeAllowed`) in the community reads, `PATCH /api/communities/appearance` and the logo upload with `variant=dark`, which does not replace the regular logo. See [Dark mode](/configuracoes/modo-escuro).
- Account deletion: `GET`/`POST`/`DELETE /api/privacy/erasure`, `POST /api/privacy/erasure/cancel` (the e-mail link, or e-mail and password) and `POST /api/privacy/members/{memberId}/erasure` (owner and admin, with a reason); with a scheduled deletion and no paid access, the login answers `403` with `code: ERASURE_SCHEDULED`. See [Delete your account](/membros/excluir-sua-conta).
- Data export: `GET`/`POST /api/privacy/exports`, `GET /api/privacy/exports/{exportId}/download` (5-minute signed link, the person only) and `POST /api/privacy/members/{memberId}/exports` (owner and admin, with a reason); `409` with one being built, `429` before the 24 hours. See [Download your data](/membros/baixar-seus-dados#in-the-api).
- Retention period: `moduleConfig.attendance.retentionMonths` and `moduleConfig.parcels.retentionMonths` on spaces; anonymized visits, guests and parcels carry `anonymized: true`. See [How long data is kept](/conceitos/guarda-dos-dados#in-the-api).
- Minimum age: `minimumAge` and `servesMinors` in the community settings (owner only), `ageConfirmed` on sign-up and `ageDeclaration` at checkout. See [Sign-up and access › Minimum age](/membros/cadastro-e-entrada#minimum-age).

### MCP: technical details

- Privacy through the assistant: `export_my_data`, `get_my_data_export` and `export_member_data` (the export arrives **by e-mail only**: the assistant does not hand over the file or the link); `delete_my_account`, `get_my_account_deletion`, `cancel_my_account_deletion` and `erase_member_data` (requesting the deletion disconnects the assistant); `minimum_age` and `serves_minors` in `get_community_settings` and `update_community_settings` (owner only); `retention_months` in `create_space` and `update_space`, with the count of what would be anonymized in the confirmation. Every action that deletes or exports asks for confirmation. See [Download your data](/membros/baixar-seus-dados) and [Delete your account](/membros/excluir-sua-conta).
- `update_group_members` now requires the admin role: only the owner and the admin change someone's groups.
- 20 new tools, 951 in total: welcome ([`get_welcome_settings`](/mcp/ferramentas-membros#get-welcome-settings), `update_welcome_settings`), referrals ([`get_my_referral`](/mcp/ferramentas-membros#get-my-referral), `get_referral_report`, `get_referral_settings`, `update_referral_settings`), points in the Store ([`get_member_points`](/mcp/ferramentas-conteudo#get-member-points), `get_points_settings`, `update_points_settings`, [`redeem_product_with_points`](/mcp/ferramentas-vendas#redeem-product-with-points)), scheduled posts ([`list_scheduled_posts`](/mcp/ferramentas-conteudo#list-scheduled-posts), `publish_scheduled_post`), sending through the Resend account ([`get_email_provider`](/mcp/ferramentas-comunidade#get-email-provider), `update_email_provider`, `verify_email_provider`, `disconnect_email_provider`; the key never goes through the assistant) and video signing keys ([`list_video_keys`](/mcp/ferramentas-comunidade#list-video-keys), `update_video_key`, `verify_video_key`, `delete_video_key`).
- Dark mode through the assistant: [`update_community_appearance`](/mcp/ferramentas-comunidade#update-community-appearance) (owner and admin, with confirmation) changes the theme and the logo for dark backgrounds, and `get_community_settings` shows `appearance`. With it, there are 952 tools.
- Also changed: `publish_at` in `create_post`, `create_short_post` and `update_post`; `reason` in `remove_member`; `expires_at` in `update_group_members`; `welcome` and `referredBy` in `list_members` and `get_member`; badges and points in the member import; `pricing_mode` and `points_price` on products; refunding a points purchase; Bunny Stream, Cloudflare Stream, Panda Video and HLS in lessons; and sale dates in the community's time zone.

- 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](/mcp/ferramentas-conteudo#get-ranking-levels).
- 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](/mcp/ferramentas-financeiro#get-sales-summary).
- `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`](/mcp/ferramentas-comunidade#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`.
- `create_post`, `create_short_post` and `update_post` take `comments_disabled`; commenting on a closed post returns `comments_closed`; `list_posts` takes `sort` (`recent`, `activity`) and returns `last_activity_at`.
- `update_community_settings` takes `google_site_verification` and `bing_site_verification`, and `get_community_settings` shows both.
- The assistant's audit log (`GET /api/oauth/audit`) returns the arguments with personal data masked.
