# 11 octobre 2026

> Owners and admins can now create and build a course in the app, with a Students tab, and Courses spaces get a single-course mode. Whoever completes a course now gets the certificate by email on their own.

Today community staff can build courses without leaving the app.

## Build the course in the app

**What it is.** Owners and admins create the course under **New course** (title, address, description, level, tags and cover), add video, text, link or image lessons to modules, reorder with up and down buttons, and use the **Manage course** bar to publish, go back to draft, archive or delete. The **Students** tab shows who started the course, the progress percentage, the last activity and who finished; moderators see it too, read-only.

**Why it matters.** Before, only the assistant or the API could build a course. Now staff does it all on screen, with warnings before publishing an empty course and before deleting something students have progress in.

**Where it is.** In the **Courses** space, **New course**; then the course page, with the **Content** and **Students** tabs.

**How to start.**
1. Click **New course**, fill in the **General** tab and create it. It starts as a draft.
2. Under **Content**, add the modules and lessons.
3. Under **Manage course**, click **Publish**.

**Example.** A school builds *Excel from Scratch* with 3 modules, checks the **Students** tab the next week and sees who is past the halfway mark. See [Courses](/espacos/cursos#building-the-course).

## "A single course" space

**What it is.** When you create a Courses space, under **How the space works**, choose **List of courses** (the default) or **A single course**. With the second, whoever opens the space lands straight on the course, with no list. The space and the course are created together, with the course as a draft. You can change the mode later under **Edit space**.

**Why it matters.** For a mentorship or a program with just one course, members skip a list with one item.

**Example.** A 90-day mentorship becomes a space with one course. See [Courses](/espacos/cursos#courses-in-a-single-course-mode).

## Certificate when the course is completed

**What it is.** In **Edit course** (or **New course**), on the **Certificate** tab, the owner or admin turns on **Issue a certificate?**, picks a template from the Certificates module (the **Platform default** comes selected) and adjusts the text. Whoever completes the course after that gets the certificate by email and finds it in **My certificates**.

**Why it matters.** The team no longer issues them one by one. It is one certificate per person per course, the workload comes from the sum of the lesson durations, and people who completed before it was turned on do not get one (no retroactive issuing).

**Example.** The school turns on the certificate for *Excel from Scratch* with the brand template; each student who finishes the last lesson sees "Your certificate is being generated" and, within seconds, the **View certificate** button. See [Courses](/espacos/cursos#certificate-on-completion).

## Certificate for attending events

**What it is.** In the event form, the owner or admin turns on **Issue a certificate?**, picks the template (the **Platform default** comes selected) and adjusts the text, which now also accepts the event date. Whoever confirmed attendance with **Going** gets the certificate by email about 1 hour after the event ends and finds it in **My certificates**.

**Why it matters.** The team does not have to issue them one by one after every event. There is no check-in yet: someone who confirmed and did not go also gets it, and the team can revoke theirs. An event that ended before the switch was turned on does not issue.

**Where it is.** In the create and edit event forms; the event needs an end date and time. See [Events](/espacos/eventos#attendance-certificate).

## Classifieds

**What it is.** A new kind of space where members post ads for jobs, services or items for sale, with a category, up to 6 images and a term, and other members show interest with a message. The advertiser and the team see who is interested, with the account's email and phone, and mark each interest as seen or answered. The ad disappears on its own when the term ends.

**Why it matters.** The community's informal exchange (a job, a service, something for sale) gets a category, a term and a contact funnel, instead of getting lost in the feed. The platform does not intermediate sales, payments or negotiations: the value is information only.

**Where it is.** When creating a space, choose the **Classifieds** module and set categories, terms, whether it shows value and whether it requires approval. Approval is optional, and the term counts from the first approval. See [Classifieds](/espacos/classificados).

## Lessons in sequence and module release

**What it is.** On the course's **Publication** tab, **Require sequence** makes the student open a lesson only after completing the previous one. On each module, **Release** sets a **fixed date** or **days after enrollment**: the module opens at midnight in the community's time zone, and leaving the course and coming back does not restart the count.

**Why it matters.** Guided courses, for cohorts or on a weekly rhythm, without the team opening module by module. The student sees when each module opens, and the team previews everything.

**Where it is.** On the course, in the tab and buttons above. See [Courses](/espacos/cursos#lessons-in-sequence-and-release-by-date).

## E-mail campaigns

**What it is.** A new area, under **Administration**, where the team writes an announcement by e-mail and sends it to the community. Build the e-mail with text, button and image blocks, choose the audience (everyone, or groups, tags and people), check the preview of who receives it and who is left out, send yourself a test and, at the end, **Send now**. The whole team creates drafts and tests; only the owner and admins send.

**Why it matters.** Notify the cohort or the whole community without leaving Memberfy, with care: each community has a sending quota (2 per day, 14 per week), someone who unsubscribed never returns to an audience, and the delivery, open and click numbers appear as totals, with nobody's name. Security e-mails, receipts and legal notices always arrive.

**Where it is.** **Administration › Campaigns**. Each person chooses what to receive under **E-mails from this community**, in **My Account**. See [E-mail campaigns](/notificacoes/campanhas-de-email).

## The community around the course

**What it is.** The course gained a **Course discussion** and a **Lesson discussion**, with replies and the seven reactions; **Leave course** (progress is kept); the **Instructor** and **What you will learn** on the page; the **Saved** filter; the student count (from 10); and the **Course leaderboard**, which the team turns on in the form.

**Why it matters.** Students ask questions to the cohort inside the lesson, see who teaches the course and follow their own progress, without leaving the platform.

**Where it is.** On the course page and in each lesson; the team sets the instructor and leaderboard in the course form. See [Courses](/espacos/cursos#the-community-around-the-course).

## Scheduling and automatic campaigns

**What it is.** E-mail campaigns can now be **scheduled**: once, every day or on weekdays, in the community's time zone, with **Pause**, **Resume** and **Cancel campaign**. The report shows numbers only (delivered, opens, clicks, bounces and complaints). There are new blocks with the community's content (**Latest posts**, **Upcoming events**, **New courses**, **New classifieds**, **A course**, **An event**, **A product**) and **Upload image**. The **Automatic** tab comes with **Weekly updates** ready, switched off: the owner or an admin turns it on after confirming.

**Why it matters.** The team builds the notice once and it goes out on its own. Only what the whole audience can see goes in, and a week with nothing new sends no e-mail. To protect the e-mail reputation, a community's first sends are limited to 500 people and a campaign with many invalid addresses or complaints pauses by itself, warning the owners. Scheduled, repeated and automatic sends count toward the sending quota.

**Where it is.** **Administration › Campaigns**, **Campaigns** and **Automatic** tabs. See [E-mail campaigns](/notificacoes/campanhas-de-email).

## Quizzes in courses

**What it is.** A **Quiz** lesson, with single-answer questions, a **Passing score (%)** and **Attempts allowed** (unlimited if empty). Options are shuffled on every attempt, the best score counts, and passing completes the lesson; when the attempts run out, the lesson stays as not passed and the student moves on. The course gains a **Final grade** (the average of the quizzes) and, optionally, a **Minimum grade for the certificate (%)**: whoever falls below sees why. Whoever fails sees only the score; the correct answers appear after passing. The team tests in **Team preview**, recording nothing.

**Why it matters.** It gives the course a test with automatic grading, with no one on the team grading, and lets you tie the certificate to performance.

**Where it is.** When adding a lesson, **Lesson type › Quiz**. See [Courses](/espacos/cursos#quiz-lessons).

## Hosted video and files in lessons

**What it is.** The **Video** lesson now accepts, besides the YouTube, Vimeo or Loom link, a **hosted video** uploaded from your computer (MP4, WebM or MOV, up to 500 MB), and there is a new lesson type, **File** (PDF, Word, Excel, PowerPoint, ZIP or image, up to 50 MB). You can create the lesson without the file, as **Content coming soon**, and publish the course earlier; replacing and removing also work.

**Why it matters.** Paid content stays private: only the enrolled student, with the lesson unlocked, and the team reach the file, through temporary links (1 hour for video, 5 minutes for files).

**Where it is.** When adding a lesson, **Lesson type › Video** or **File**. See [Hosted video and file](/espacos/cursos#hosted-video-and-file).

## Video on the platform page

The Memberfy site has a new video section: video hosted in courses already plays inside the community itself, with no account on a third-party video service. Adaptive streaming, from 240p to 4K, is in invite-only beta and is not yet available to all communities. It is also mentioned on the Communities and HR pages.

## Product kinds, free products and waitlist

**What it is.** Every product now has a **kind** (Digital, Physical, Course, Event or Download); courses, events and downloads are created with their own product, as a draft and free, and you can sell **a course** or **an event** without selling the whole space. A zero price creates a **free product** (and a zero-price billing option creates a **free subscription**), with no payment and no fee, and a 100% coupon on a one-off product turns into a free purchase. When the seats run out, the member joins the **waitlist**: when a seat opens up, the next person gets a 24-hour offer by email. A plan can **include products**, and access can have a **deadline**. Finance can also edit price, seats and publication.

**Why it matters.** The team sells courses, events and one-off files, with limited seats and a queue, and delivers free content with the same purchase flow. The **My purchases** block shows members what they bought or got for free.

**Where it is.** **Monetization › Products**, at the top of the **General** tab. See [Products](/monetizacao/produtos#product-types).

## Downloads

**What it is.** A new space module for sharing files (spreadsheets, e-books, PDFs, templates) in a repository or as a single file, free, sold through a product or included in a plan. The team organizes them by category, members can upload items (with optional approval), and each item shows its download stats. For PDFs, you can turn on **stamping**: the downloaded file carries the name of whoever downloaded it.

**Why it matters.** Paid or exclusive material stays in a private area, with a temporary link (5 minutes) per download, and the stamp discourages sharing.

**Where it is.** When creating a space, choose the **Downloads** module. See [Downloads](/espacos/downloads).

## Hosted video in posts, events, gallery and classifieds

**What it is.** Posts accept **hosted video** (MP4, WebM or MOV, up to 2 GB), events keep their hosted **recording**, and gallery and classifieds images are stored in a **private area**, with a thumbnail, and shown through a temporary link. Uploads show their progress, with **Cancel upload**.

**Why it matters.** Video plays inside the community, with no account on a third-party service, and paid content doesn't leak through a link.

**Where it is.** In the post, event, gallery and ad forms. See [Content](/espacos/conteudo), [Events](/espacos/eventos) and [Gallery](/espacos/galeria).

## Adaptive streaming (invite-only beta)

Hosted video is now delivered in adaptive quality, from **240p to 4K**, with a quality selector in the player. It is in **invite-only beta**: talk to us to join.

## Improvements

- New security controls.
- The lesson duration can be filled in on any lesson type (text, video, link or image).
- The certificate prints the workload with its unit ("2 hours", "0.36 hour").
- Each student's progress bar now counts only the lessons that exist, and deleting a lesson or module warns how many students have progress there.
- Before you delete a course certificate that would be issued again (the person is still entitled to it), the app warns that a new certificate goes out on its own within 15 minutes, with an email to them. To avoid that, remove the person from the course requirements first.
- Before you delete a Courses space, the app warns that its courses are deleted too: they leave the list, students lose access, and certificates already issued stay valid.
- The AI assistant shows the same warnings before you confirm the deletion.
- Confirming attendance closes when the event ends: after the end, only "Not going" is accepted.
- The event end must be after its start.
- The platform default certificate template is now simply called "Certificate", because it serves courses and events.
- The AI assistant turns on the event certificate and lists the events of every Events space.
- Moderators and finance read the course lessons without enrolling, including in a course of a paid space.
- Removing a post's cover or an event's image now works.
- You can replace the image of a gallery photo while keeping its title and tags (the image goes back to moderation).
- Login and sign-up e-mails go ahead in the sending queue, even during a large campaign.
- Each person chooses, in their profile, what to receive from each community (everything, only notices, or nothing besides security e-mails and receipts).
- Finance becomes part of the team: where the moderator acts as team (moderation, events, content, members, groups and tags, certificates, reports), finance acts too. Money, community settings, editing courses and spaces, sending campaigns and assigning roles remain with the owner and admins only.
- On mobile, the **Administration** menu opens and closes, and starts closed.
- Login and sign-up e-mails go out faster, even during a large campaign.
- The owner sees the video and file storage usage under **Settings › General**, with a warning from 80% of the limit. The limits only warn and never block an upload.
- Finance can now edit products (Monetization and **Price and sale** of courses and events), including the price and publishing. Creating and deleting stay with owners and admins.

## Fixes

- The workload is shown with the decimal separator and plural of each person's language.
- Recreating a section or a space with the name of a deleted one no longer fails.

## For developers

### API

- `GET /api/courses/{id}/enrollments`: the Students tab list, paginated (owner, admin and moderator).
- `PUT /api/courses/{courseId}/modules/order` and `PUT /api/courses/module/{moduleId}/lessons/order`: save the order of all modules (or of a module's lessons) at once.
- `moduleConfig.mode` (`single` or `multi`) on Courses spaces and `course` on `POST /api/spaces`, which creates the space and the course together. A second course in a `single` space, and switching to `single` with 2 or more courses, return `409`.
- The course's `stats.enrollments` only comes back for staff. See [Order of creation](/api/ordem-de-criacao#course).
- `certificate` (`enabled`, `templateId`, `text`) on `POST` and `PUT /api/courses` and in `course` on `POST /api/spaces`; `GET /api/courses/{id}` returns `certificate` to staff and `userCertificate` (`PENDING` or `ISSUED`) to the student who completed. Errors on `certificate.templateId` and `certificate.text`.
- `GET /api/certificates/templates` works without `spaceId` for owner and admin, with `q` to search by name.
- Classifieds: `GET` and `PUT /api/classifieds/spaces/{spaceId}`, `GET` and `POST /api/classifieds/ads`, `GET`, `PUT` and `DELETE /api/classifieds/ads/{id}`, the interests at `/api/classifieds/ads/{id}/interests`, the images at `/api/upload/classifieds/ads/{adId}/images` and the queue at `/api/moderation/classifieds`. See [Classifieds](/espacos/classificados#in-the-api).
- Courses: `requireSequential` on `POST` and `PUT /api/courses`; `availableAt` or `availableAfterDays` on modules; `locked`, `lockReason` and `unlocksAt` on the course `GET`; `409` when completing a locked lesson. Moderators and finance receive lesson content without enrolling.
- Images: `PUT /api/events/{id}` accepts `bannerUrl` and `featuredImageUrl` (`null` removes) and `PUT /api/upload/gallery/images/{imageId}` replaces the file of a gallery image.
- Campaigns: `GET` and `POST /api/campaigns`, `GET`, `PUT` and `DELETE /api/campaigns/{id}` (draft), `POST .../audience-preview`, `POST .../test`, `POST .../send`, `GET /api/campaigns/quota` and `GET /api/campaigns/opt-outs`; the person's preference at `GET` and `PUT /api/me/email-preferences`; public unsubscribing at `/api/public/unsubscribe/{token}`. See [E-mail campaigns](/notificacoes/campanhas-de-email#in-the-api).
- Courses: `POST /api/courses/{courseId}/leave`; discussions at `/api/courses/{courseId}/comments` (with `lessonId` for the lesson) and reactions; `POST` and `DELETE .../favorite`; `GET .../leaderboard`; `instructorProfileId`, `learningPoints` and `leaderboardEnabled` on create and edit; `instructor`, `learningPoints`, `studentsCount` and `isSaved` in the response.
- Campaigns: `POST /api/campaigns/{id}/schedule` (`scheduleKind` `DAILY` or `WEEKLY`), `.../pause`, `.../resume`, `.../cancel`, `GET .../runs`, `.../report` and `.../preview`; `GET /api/campaigns/automatic` and `PUT /api/campaigns/automatic/{systemKey}`; `POST` and `DELETE /api/upload/campaigns/image`; blocks `latestPosts`, `upcomingEvents`, `newCourses`, `newClassifieds`, `course`, `event` and `product`.
- Quiz: lesson `type: quiz` with `quiz` (`passPercent`, `maxAttempts`, `questions`); `POST` and `GET /api/courses/{courseId}/lesson/{lessonId}/quiz/attempts`; `userFinalGrade`, `finalGrade` and `certificateMinGrade`; `userCertificate.status` `BELOW_MIN_GRADE`.
- Lesson media: `POST /api/courses/lesson/{lessonId}/media/upload-url`, `.../media/confirm` and `DELETE .../media`; `GET /api/courses/{courseId}/lesson/{lessonId}/media` returns the temporary link; `awaitingMedia` and the `file` type on `POST /api/courses/lesson`; `GET /api/communities/media-usage`.
- Products: `kind` (`digital`, `physical`, `event`, `course`, `download`) and the `GET /api/products?kind=` filter; `price` accepts `0`; `capacity` on `PUT /api/products/{id}`; `includedProductIds` on `POST` and `PUT /api/subscription-groups` and `includedInPlanIds` on `PUT /api/products/{id}`; `product` in course and event responses. The waitlist at `/api/products/{id}/waitlist`. Free purchase without `paymentMethod` (`paymentMethod: "FREE"`).
- Downloads: `GET` and `PUT /api/downloads/spaces/{spaceId}`, `GET` and `POST /api/downloads/items`, `GET`, `PUT` and `DELETE /api/downloads/items/{id}`, the files at `/api/downloads/items/{id}/files`, `POST /api/downloads/files/{fileId}/download`, `GET /api/me/downloads`, `GET /api/downloads/items/{id}/stats` and the queue `GET /api/moderation/downloads/pending`.
- Hosted media: video in posts, recordings in events and private images in the gallery and classifieds, with a temporary link.
- The new errors are in [Responses and errors](/api/respostas-e-erros).

### MCP: technical details

- New: `list_course_enrollments` (moderator or above), `reorder_course_modules` and `reorder_lessons` (admin).
- `create_space` and `update_space` accept `mode`; `create_space` accepts `course`; `create_course` accepts `mode`. `list_spaces` and `get_course` show the mode.
- `enroll_in_course`: `already_enrolled` is only true for an in-progress or completed enrollment. See [Tools · Courses](/mcp/ferramentas-cursos).
- Course certificate: `create_course`, `update_course` and `create_space` accept `certificate`; `get_course` and `list_courses` show it and warn when the template is archived; `list_certificate_templates` works without a space for owner and admin, with `q`; `complete_lesson` says the certificate arrives by email and suggests `list_my_certificates`.
- 12 new Classifieds tools (225 in total): `get_classifieds_space_settings`, `update_classifieds_space_settings`, `list_classified_ads`, `get_classified_ad`, `create_classified_ad`, `update_classified_ad`, `delete_classified_ad`, `express_classified_interest`, `list_classified_interests`, `update_classified_interest_status`, `list_my_classified_interests` and `withdraw_classified_interest`. `create_space` accepts the `classifieds` module, and the moderation queue accepts the `classifieds` type. See [Tools · Content](/mcp/ferramentas-conteudo#classifieds).
- Courses: `require_sequential` on `create_course` and `update_course`; `available_at` or `available_after_days` on the module tools; `get_course` shows the locks; `complete_lesson` passes the `409` through.
- Images: whatever the app lets you add, the assistant adds, replaces and removes: `remove_banner` and `remove_featured_image` (plans, calls for papers and events), `remove_image` (courses and posts), `remove_logo`, `remove_favicon` and `remove_share_image` (settings), `video_url` and `remove_video` (posts) and the file replacement in `update_gallery_image`.
- 10 campaign tools: `list_campaigns`, `get_campaign`, `create_campaign`, `update_campaign`, `preview_campaign_audience`, `send_campaign_test`, `send_campaign` (owner and admin only, with confirmation and `consent`), `get_campaign_quota`, `delete_campaign` and `list_campaign_opt_outs`. See [Tools · Community](/mcp/ferramentas-comunidade#e-mail-campaigns).
- Courses: `leave_course` and `favorite_course`; comments and reactions accept `course` and `course_lesson`; `get_leaderboard` accepts `course`; `create_course` and `update_course` accept `instructor`, `learning_points` and `leaderboard_enabled`; `list_courses` accepts `saved`. The server now has 237 tools.
- 11 campaign tools: `schedule_campaign`, `pause_campaign`, `resume_campaign`, `cancel_campaign`, `list_campaign_runs`, `campaign_report`, `preview_campaign`, `list_automatic_campaigns`, `update_automatic_campaign`, `upload_campaign_image` and `delete_campaign_image`. See [Tools · Community](/mcp/ferramentas-comunidade#e-mail-campaigns).
- Quiz: `submit_quiz_attempt` and `list_quiz_attempts`; `create_lesson` and `update_lesson` accept `quiz` (with `max_attempts`); `create_course` and `update_course` accept `certificate_min_grade`. The server now has 250 tools.
- Lesson media: `upload_lesson_media` (by link or base64 up to 25 MB), `remove_lesson_media` (with confirmation) and `get_lesson_media_url`; `create_lesson` accepts `type: file` and `awaiting_media`. The server now has 253 tools. See [Tools · Courses](/mcp/ferramentas-cursos).
- Downloads (13 new tools; the server now has 275): `get_downloads_space_settings`, `update_downloads_space_settings`, `list_download_items`, `get_download_item`, `create_download_item`, `update_download_item`, `delete_download_item`, `upload_download_file`, `remove_download_file`, `reorder_download_files`, `get_download_url`, `get_download_stats` and `list_my_downloads`. See [Tools · Downloads](/mcp/ferramentas-downloads).
- Seats and free products: `join_waitlist`, `leave_waitlist`, `my_waitlist_position`, `list_waitlist` and `claim_free_product`. `create_course` and `create_event` return the product; `update_product`, `create_product` and `update_plan` accept kind, seats and included products.
- Media: `get_media_url`, `remove_post_video` and `remove_event_recording`; `create_post`, `update_post` and `update_event` accept hosted video and recordings. By role: moderator 178, finance 203 and member 120.
