# 1 de novembro de 2026

> Os níveis da comunidade passam a ser configuráveis, com nome, imagem, pontos mínimos e atividade na semana. O perfil mostra o que falta esta semana para continuar ou subir, e os workflows ganham os gatilhos Subiu de nível, Desceu de nível e Atingiu N pontos. Na Monetização, o novo cartão Receita mostra o bruto, os reembolsos, as contestações e o líquido do período. As campanhas escolhem o público por campo customizado, cada espaço escolhe como mostra os itens, e uma publicação pode ter os comentários desligados.

## Novidades

### Níveis configuráveis com requisitos de atividade por semana

**O que é.** A comunidade monta a sua própria escada de níveis: de 2 a 20, cada um com **nome**, **pontos mínimos**, uma **imagem** opcional e, se quiser, **atividade na semana**, como *"pelo menos 3 publicações na semana"* ou *"2 comentários no espaço Apresente-se"*. Assim o nível mostra quem participa agora, e não só quem acumulou pontos um dia.

**Como funciona.** Para subir, a pessoa precisa dos pontos e de cumprir os requisitos do nível na semana, e a subida vale de imediato. Para continuar, conta a semana anterior completa: quem não cumpriu desce na segunda-feira às 00:00, no fuso horário da comunidade. Ao guardar, a pré-visualização mostra quantas pessoas sobem e quantas descem.

**Onde fica.** Em **Membros › Gamificação**, separador **Níveis**, para o proprietário e o administrador. O nome e a imagem do nível aparecem no ranking, no pódio, em **O meu envolvimento**, no perfil e na página do membro.

**Para quem não mexer.** A comunidade continua com os 9 níveis de sempre, de **Iniciante** a **Lenda**, sem requisitos: nada muda no nível de ninguém. Ver [Gamificação › Níveis](/membros/gamificacao#niveis).

### O que falta esta semana, no perfil

Quando o nível tem requisitos, o perfil mostra o progresso da semana: cada requisito com o que já foi feito (*2 de 3*) e, por baixo, o que falta para subir ao nível seguinte. Veem este bloco a própria pessoa e a equipa (proprietário, administrador, moderador e financeiro). Ver [Gamificação › O que falta esta semana](/membros/gamificacao#o-que-falta-esta-semana).

### Gatilhos de nível e pontos nos workflows

O bloco **Níveis e pontos** traz os gatilhos **Subiu de nível**, **Desceu de nível** (com o **Motivo**) e **Atingiu N pontos**, e a **Condição** ganha as regras de nível e de pontos. Exemplo: *"Desceu de Kernel → sair do grupo Kernel"*. Ver [Workflows › Níveis e pontos](/notificacoes/workflows#niveis-e-pontos).

Nas [campanhas de e-mail](/notificacoes/campanhas-de-email), `{{nivel}}` passa a ser o nome do nível que a comunidade deu, e `{{nivel_numero}}` traz o número.

### Receita na Monetização

**O que é.** Um cartão **Receita** na secção **Geral** da Monetização, com as vendas do período pela data do pagamento: **Bruto** (com o número de vendas), **Reembolsos** e **Contestações** (valor e quantidade) e o **Líquido de estornos**, o bruto menos reembolsos e contestações. Os valores são antes da taxa da plataforma.

**Por que importa.** Até agora, um reembolso não aparecia ao lado das vendas que desfez. Agora vê, no mesmo sítio, quanto entrou, quanto voltou e quanto sobrou.

**Onde fica.** Em **Administração › Monetização › Geral**, entre o saldo e as últimas transações, para o proprietário, o administrador e o financeiro. O período vai de **Últimos 7 dias** a **Últimos 12 meses** (o padrão é 30 dias); quando a comunidade vende em mais de uma moeda, um seletor escolhe a moeda.

**Exemplo.** Em 30 dias: Bruto R$ 1.299,40 (9 vendas), Reembolsos R$ 99,90 (1 reembolso), Contestações R$ 0,00, Líquido de estornos R$ 1.199,50. No Dashboard, o indicador passa a chamar-se **Receita bruta**, com a mesma fonte. Ver [A receita do período](/monetizacao/visao-geral#a-receita-do-periodo).

### Aviso de cookies nas comunidades com Google Analytics

Aviso de cookies nas comunidades com Google Analytics: a medição só começa depois de a pessoa aceitar. Quem entra pela primeira vez vê **Cookies nesta comunidade**, com **Recusar**, **Aceitar** e **Personalizar**; a escolha vale por 12 meses, e **Cookies**, no rodapé do menu lateral e no painel do avatar, abre o aviso outra vez. Uma comunidade sem Google Analytics não mostra aviso. Ver [O aviso de cookies](/configuracoes/google-analytics#o-aviso-de-cookies).

### Espaços e secções podem abrir para quem tem um badge

Espaços e secções podem abrir para quem tem um badge. Em **Quem tem acesso**, o badge fica ao lado dos grupos, produtos e planos: quem o ganha entra de imediato, com um aviso no sino, e quem o perde sai no acesso seguinte. No ecrã, **+ Badges** em **Quem tem acesso**; quem ainda não o tem vê o cadeado com *"Ganhe o badge Mentor"* (um badge privado aparece só como *"Um badge especial"*), e remover um badge avisa quantos espaços e secções ele abre. Também pela API e pelo assistente. Ver [Visibilidade e acesso](/conceitos/visibilidade-e-acesso#privada-a-lista-quem-tem-acesso) e [O que um badge abre](/membros/engajamento#o-que-um-badge-abre).

### Espaços e secções que abrem por nível

Em **Quem tem acesso**, um nível mínimo do envolvimento: quem está nele ou acima entra, quem desce sai no acesso seguinte. Quem ainda não chegou vê o nível e quanto falta, com os pontos e a atividade da semana. Em **Quem tem acesso**, o botão **+ Nível**; o cadeado mostra *"Disponível a partir do nível 9 · Lenda"* e, para o membro, a atividade do nível nesta semana e **Ver o meu progresso**. Também pela API e pelo assistente. Ver [Visibilidade e acesso](/conceitos/visibilidade-e-acesso#privada-a-lista-quem-tem-acesso).

### Badges concedidos automaticamente

Um badge pode conceder-se sozinho por uma regra: uma ação ou um momento (concluir curso, check-in, quiz, formulário…), quantas vezes, em que espaço e em que período, sem workflow. A contagem começa quando a regra é criada. Pela API e pelo assistente; o ecrã está a chegar ao painel. Ver [Conceder automaticamente](/membros/engajamento#conceder-automaticamente).

### Limite diário de pontos por ação

Cada ação pode ter um máximo de vezes por dia que dá pontos; acima dele, a ação acontece sem pontos e não conta para os badges. Ver [Limite diário por ação](/membros/gamificacao#limite-diario-por-acao).

### Chamadas assinadas no Chamar webhook

Com o segredo de assinatura gerado, cada chamada do **Chamar webhook** sai com `X-Memberfy-Signature`, para o destino provar que veio da Memberfy. Ver [A assinatura das chamadas](/notificacoes/workflows#a-assinatura-das-chamadas).

### Público de campanha por campo customizado

O público de uma [campanha de e-mail](/notificacoes/campanhas-de-email) pode incluir ou excluir pessoas por um campo customizado de escolha: *"Cidade é Lisboa ou Porto"*, *"Interesses contém qualquer de Dados, IA"*, *"Aceita contacto comercial é sim"*. Até 10 condições por campanha; um campo fechado ou sensível não pode ser usado. Pela API e pelo assistente; o ecrã está a chegar ao painel.

### Exibição por espaço, com calendário de Eventos

Em seis módulos (Conteúdo, Eventos, Cursos, Downloads, Classificados e Galeria), o proprietário e o administrador escolhem como os itens aparecem para todos: **Feed**, **Cartões**, **Lista**, **Compacto**, **Grade** ou **Calendário**. No espaço de Eventos, o **Calendário** mostra o mês ou a semana, com os eventos sem data à parte. Sem escolha, nada muda. Fica no campo **Exibição**, ao editar o espaço e no **Criar Espaço**; também pela API e pelo assistente. Ver [Exibição](/conceitos/espacos#exibicao).

### Desligar comentários por publicação

O autor, o proprietário, o administrador e o moderador podem desligar os comentários de uma publicação: ninguém comenta, nem a equipa, e o que já existe mantém-se. Pela API; a opção no menu da publicação está a chegar ao painel. Ver [Desligar comentários](/espacos/feed#desligar-comentarios).

### Feed por atividade

O feed pode ser ordenado por **Com atividade**: os fixados primeiro e, depois, o que teve comentário ou resposta mais recente, para uma publicação antiga com conversa nova voltar para cima. Pela API; a escolha no feed está a chegar ao painel. Ver [Recentes ou Com atividade](/espacos/feed#recentes-ou-com-atividade).

## Melhorias

- **Novos controlos de segurança.**
- **Pesquisas mais precisas.** Um `%` ou um `_` escrito numa pesquisa passa a ser procurado como texto: antes, o `%` listava tudo e o `_` valia por qualquer carácter.
- Ligações para o site e para a comunidade no topo da Central de Ajuda.
- **Envolvimento no site.** A página [Envolvimento](https://www.memberfy.net/pt-pt/plataforma/modulos/envolvimento) do site da Memberfy agora mostra os distintivos (à mão, por workflow e automáticos no curso, no check-in e no Networking) e os níveis com atividade na semana, com os gatilhos de nível e de pontos.
- A sua comunidade passa a aparecer melhor nos motores de busca e nas IAs: robots.txt, sitemap e llms.txt automáticos em cada comunidade. Ver [A sua comunidade nos motores de busca e nas IAs](/configuracoes/buscadores-e-ias).
- **Poupe X%, uma só regra.** O selo de poupança compara o valor por mês de cada opção com o do mensal sem contrato, pelo preço que o comprador paga (com a taxa da plataforma, quando é o comprador a pagá-la), arredondado ao inteiro. A opção mensal não leva selo, e ele não aparece sem poupança ou sem opção mensal para comparar. Ver [O selo de desconto](/pagamentos/checkout#o-selo-de-desconto).
- **Requisito num espaço a que não tem acesso.** No perfil, o requisito de nível ligado a um espaço que a pessoa não abre mostra *"num espaço a que não tem acesso"* no lugar do nome. Ver [O que falta esta semana](/membros/gamificacao#o-que-falta-esta-semana).
- **Rascunhos e publicações a aguardar moderação** ficam visíveis só para quem escreveu e para a equipa, também nas contagens do feed. Ver [Conteúdo › A lista e a página](/espacos/conteudo#a-lista-e-a-pagina).
- A quota de chamadas pelo IP fixo renova à meia-noite no fuso horário da comunidade. Ver [IPs fixos](/api/ips-fixos).
- O papel financeiro passa a ver os planos de preço da comunidade. Ver [Papéis e permissões](/conceitos/papeis-e-permissoes).
- Quem respondeu SAIR por SMS ou WhatsApp vê no ecrã que parou e pode reativar por lá. Ver [Parado por SAIR: ver e reativar](/notificacoes/avisos-por-sms-e-whatsapp#parado-por-sair-ver-e-reativar).
- **Para a equipa: o Google Analytics mede menos.** Com o aviso de cookies, o GA4 conta as visitas só de quem aceita, por isso os números ficam mais baixos do que antes. Ver [Google Analytics](/configuracoes/google-analytics#o-aviso-de-cookies).
- **Verificação nos motores de busca.** Em **Definições › Busca e divulgação**, cole o código do Google Search Console ou do Bing Webmaster Tools para provar que a comunidade é sua, também no endereço `.memberfy.net`. O sitemap e o `llms.txt` passam a listar os cursos abertos, as chamadas com inscrições abertas e os certificados que o titular deixou indexar (com **Acesso de Visitantes** desativado, só a página inicial). Ver [A sua comunidade nos motores de busca e nas IAs](/configuracoes/buscadores-e-ias).

## Correções

- **Ranking sem quem saiu.** A posição no ranking deixou de contar quem saiu da comunidade e passa a ser a mesma no perfil e nos relatórios. Ver [Ranking](/espacos/ranking#os-periodos).
- **Membro sem nome.** Quem não tem nome registado aparece como *"Membro sem nome"* no ranking, na galeria, nos comentários e no chat.
- **Filtro de moeda repetido.** Pedir a Monetização com a moeda repetida devolve um erro de validação, em vez de um erro interno.
- **Compras eliminadas fora da receita.** Uma compra eliminada deixou de entrar nos números de receita da Monetização, do Dashboard e dos relatórios.
- **Valores nos workflows.** A condição de valor nos workflows escreve o dinheiro na moeda e no formato da comunidade, e não sempre em reais. Ver [Condição "Variável"](/notificacoes/workflows#condicao-variavel).
- **Teste gratuito sem aviso de venda.** A comunidade deixa de receber o aviso de nova venda quando alguém começa um teste gratuito sem cobrança; quem subscreve continua a receber a confirmação.
- Os relatórios de vendas e de subscrições arredondam o meio cêntimo como o extrato.
- A pesquisa encontra espaços públicos dentro de secções para membros, para quem já tem acesso a eles.
- Confirmar presença num evento responde no idioma de quem o usa.
- **Troca de plano por boleto que não compensou.** Se o boleto da troca não compensa até ao dia útil seguinte ao vencimento, a troca é desfeita: o boleto é cancelado, a pessoa recebe o aviso de pagamento não concluído e a renovação segue no plano atual. Depois disso, é possível pedir outra troca.

## Para programadores

### API

- `GET` e `PUT /api/gamification/levels` (proprietário e administrador): a escada de níveis com os requisitos; `dryRun` devolve quantos sobem e descem sem guardar.
- `GET /api/gamification/levels/progress`: o progresso da semana no nível atual e no seguinte, para a própria pessoa e a equipa; no perfil, em `engagement.levelProgress`.
- Campos novos e opcionais: `levelId`, `levelName` e `levelImageUrl` no ranking e no perfil. Ver [Gamificação › Na API](/membros/gamificacao#na-api).
- Webhooks: os eventos `member.level_changed` e `member.points_changed`, num total de 97. Ver [Webhooks](/api/webhooks).

- `GET /api/dashboard/monetization` vem do extrato e traz, em `metrics.totalRevenue`, `refunds`, `chargebacks` e `net`, além de `currency` e `currencies`; o parâmetro `currency` escolhe a moeda, e repeti-lo devolve 400. Ver a [referência](/api/referencia/dashboard/get-dashboard-monetization).
- `GET /api/vault`: `outbound.month` passa a ser o mês no fuso horário da comunidade, e o novo campo opcional `outbound.resetsAt` indica quando a contagem do IP fixo recomeça.
- `GET /api/communities/plans` e `GET /api/communities/plans/{id}` aceitam o papel financeiro; criar, editar e remover continuam com o proprietário e o administrador.
- `GET /api/members/me/notice-preferences`: o campo opcional novo `globalOptOut`, em `channels.sms` e `channels.whatsapp`, mostra a paragem por SAIR; o `PUT` com `enabled: true` reativa em todas as comunidades. Ver [Na API](/notificacoes/avisos-por-sms-e-whatsapp#na-api).
- `access.badgeIds` em `POST`/`PUT` de espaços e secções (ausente mantém os badges; `[]` retira). O 403 de uma área fechada por badge traz `reason: "badge"`, a ação `earnBadge`, `badges` (só os públicos) e `hasHiddenBadge`. `space.access_granted` ganha `source: "badge"`, e `GET /api/badges` traz `unlocks`. Ver [Visibilidade e acesso › Na API](/conceitos/visibilidade-e-acesso#na-api).
- `PUT /api/communities/{id}` aceita `googleSiteVerification` e `bingSiteVerification`, e `GET /api/public/community-summary` lista, sem sessão, os cursos abertos, as chamadas com inscrições abertas e os certificados que o titular deixou indexar (vazio com **Acesso de Visitantes** desativado). Ver [Na API](/configuracoes/buscadores-e-ias#na-api).
- `access.minLevelId`/`access.minLevel` em espaços e secções; o 403 com `reason: "level"`, `earnPoints` e `progress`; `409` `gamification.levels.inUse` com os espaços e secções; `space.access_granted` com `source: "level"`. `rule` em `POST`/`PATCH /api/badges`, `dailyCaps` em `PUT /api/gamification/config` e `GET`/`POST`/`DELETE /api/vault/signing-secret`.
- Campanhas: `fields` (`oneOf`, `containsAny`, `containsAll`, `isTrue`, `isFalse`; até 10 condições), `audienceWarnings`, `fieldWarnings`. Ver [Campanhas de e-mail › Na API](/notificacoes/campanhas-de-email#na-api).
- Espaços: `layout` (`POST`/`PUT /api/spaces` e na leitura), `layouts` por módulo em `GET /api/spaces/modules`; `GET /api/events` com `from`/`to`, `undated`, `truncated`, `undatedCount`. Ver [Exibição](/conceitos/espacos#exibicao).
- Publicações: `commentsDisabled` (`POST`/`PUT /api/content`, `/api/status`; comentar numa publicação desligada: `403` `comments_closed`); `sort=recent|activity` (`GET /api/feed`), com `lastActivityAt` em cada item. Ver [Feed › Na API](/espacos/feed#na-api).

### MCP: detalhes técnicos

- Ferramentas novas: `get_ranking_levels`, `update_ranking_levels` (pede confirmação, com a pré-visualização de quem sobe e desce) e `get_level_progress`. São 927 ferramentas. Ver [Ferramentas · Conteúdo](/mcp/ferramentas-conteudo#get-ranking-levels).
- Os workflows pelo assistente aceitam os gatilhos `member.level_changed` e `member.points_changed` e as regras `levelAtLeast` e `pointsAtLeast`.
- O assistente passa a responder à Monetização em qualquer moeda em que a comunidade vende, com o bruto, os reembolsos, as contestações e o líquido separados.
- `get_sales_summary` aceita `currency` (uma moeda) e devolve `refunds`, `chargebacks`, `net` e `currencies`. Ver [Ferramentas · Financeiro](/mcp/ferramentas-financeiro#get-sales-summary).
- `get_my_notice_preferences` mostra a paragem por SAIR (`global_opt_out`), e `update_my_notice_preferences` reativa o canal, com confirmação que diz que vale para todas as comunidades.
- `update_space_access` e `update_section` aceitam `badge_ids`; cada lista enviada substitui só a sua. Ferramenta nova `get_space_access` (equipa), e `delete_badge` avisa o que deixa de abrir. Ver [`get_space_access`](/mcp/ferramentas-comunidade#get-space-access).
- `min_level` em `update_space_access` e `update_section`; `rule` em `create_badge` e `update_badge`; `daily_caps` em `update_ranking_rules`; ferramentas novas `get_signing_secret`, `create_signing_secret` e `delete_signing_secret`; receita **Jornada de boas-vindas com badges**.
- `create_campaign`, `update_campaign`, `preview_campaign_audience` aceitam `fields` no público e na exclusão (`one_of`, `contains_any`, `contains_all`, `is_true`, `is_false`); os avisos voltam em `field_warnings`.
- `create_space`, `update_space` aceitam `layout`; `list_space_modules` traz `layouts`; `list_events` aceita `from`/`to` e `undated`, com `truncated` e `undated_count`.
