# How to Publish a Changelog and Notify the People Who Asked

Source: https://blog.lots.team/publish-changelog-notify-people-who-asked
Published: 2026-10-14T03:31:09.294174+00:00

To publish a changelog and notify the people who asked, link each request to the task that delivers it, mark the task done, write a changelog entry linked to that task, and turn on "notify the people who asked" before you publish. In LotsTeam, publishing that entry puts it on your public changelog and sends one email to every person whose request is linked to the task and who left an email address, telling them what they asked for has shipped. You can do it from the dashboard, or ask your AI agent to do it through the LotsTeam MCP server.

In LotsTeam a "post" means a piece of product feedback: a feature request, a bug report or a question from one of your users. Below are both routes, what the email says, and how to write an entry worth sending. I ran the agent route in a demo project on 11 October 2026, and the tool output below is from that run.

## Before you start: who gets the email

The email goes to the **authors of the posts linked to the task**. That's the whole rule, and it's worth getting right before you publish:

- **Linked posts only.** A post counts when it's linked to the task the changelog entry points at. If three people asked for the same thing in three different posts, link all three to the task.
- **Authors with an email address.** Posts from your widget or public portal carry the email the person gave. In the widget settings you can collect email and make it required; on the portal, the email field is filled in for people who are signed in. A post without an email can't be notified.
- **One email per person.** If one person wrote two of the linked posts, they get a single email that lists both.
- **Not voters or commenters.** Votes on the portal are anonymous, and a "+1" comment isn't a request of its own. If someone's "+1" matters, log it as a post for them or link their own post.
- **Respecting opt-outs.** Anyone who clicked "Stop these updates" on an earlier email for that project is skipped.
- **At most 100 people per entry**, sent once. Publishing the same entry again doesn't send it twice. If an entry was published when nobody linked could be emailed, a later publish can still send it.

## Route 1: from the dashboard

1. **Link the requests to the task.** Open the task on the board. In its **Linked Feedbacks** section, click **+** and pick every post that asked for this work. You can also do it from a post: open it and link it to an existing task. Linking from the task is quickest when several posts asked for the same thing.
2. **Mark the task done.** Only done tasks appear in the changelog's task picker, which keeps you from announcing work that hasn't finished.
3. **Create the entry.** Open **Changelog** and click **New Update**. Fill in the title, the description and the tag (**New**, **Improved** or **Fixed**), then choose the task in **Link to Task**.
4. **Turn on the email.** Once a task is chosen, the form shows how many people would be emailed: **"Email the 3 people who asked for this"**, with the note that it's sent once, when the update is published, to everyone whose post is linked to the task. Tick it. If the box doesn't appear, nobody linked to that task can be emailed yet (no email address on their post, or they opted out), so go back to step 1.
5. **Publish, or save a draft.** Tick **Publish immediately** and click **Publish**. Or leave it unticked and click **Save Draft**, then open the draft later, tick **Publish immediately** and click **Update**. Once it's published, the entry's form shows how many people were emailed.

## Route 2: from your AI agent

LotsTeam's MCP server is at `https://api.lots.team/mcp`, and [lots.team/skill.md](https://lots.team/skill.md) has the connect steps for Claude, ChatGPT, Claude Code and other clients. The agent works with your permissions, and it publishes only when you ask it to. I use this route when the work was finished in the same session: the agent already knows what changed.

Here's the prompt I'd give it:

```
In my LotsTeam project "Demo App", the booking page error after a Google
Calendar reconnect is fixed.

1. Find the task for it. Link every post that asks for this fix to the task,
   then show me the linked posts and mark the task done.
2. Draft a changelog entry linked to that task: tag "fixed", a title that
   says what users can now do, and a short description of what
   changed and whether they need to do anything. Turn on notify_requesters.
3. Don't publish. Show me the draft and how many people the email would reach.
```

### What happened when I ran it

This is from a demo project with sample feedback I created for these guides, so no real customer is in it.

**1. Found the task and checked who's linked.** `list_tasks` returned the project's seven tasks, and `list_linked_posts` showed the post behind the bug, trimmed:

```json
{
  "posts": [{
    "id": "374b5781-d001-44e4-83c6-fac4abb38f49",
    "title": "Booking page shows an error after connecting Google Calendar",
    "category": "bug",
    "user_name": "Hannah (sample)",
    "email": null
  }]
}
```

The `email` field is the one that matters. This sample post has none, so publishing this entry would email nobody. On a real project, the agent can count the linked posts with an email and tell you the number before you decide.

This bug had one post behind it (another user added a "same here" comment, not a post of their own). When several posts ask for the same thing, the agent links each one with `link_post_to_task`: it adds the post to the task, linking twice changes nothing, and it refuses a post from another project. On the calendar task in the same project, two calls took the task from one linked post to three ("Sync with Outlook calendar", "Microsoft 365 integration please" and "Can I connect my Office 365 calendar?"), and `list_linked_posts` returned all three. On a real project, every one of those authors who left an email address would get the email.

**2. Marked the task done** with `update_task` and `status: "done"`:

```json
{
  "id": "9ee13153-6bc5-4758-a04a-7cf5dd6e078e",
  "title": "Fix booking page error after Google Calendar reconnect",
  "status": "done",
  "completed_at": "2026-10-11T05:43:14.993412+00:00"
}
```

**3. Drafted the entry** with `create_changelog`, passing `project_id`, `task_id`, `tag: "fixed"`, the title, the description and `notify_requesters: true`. The result, trimmed:

```json
{
  "id": "01e98987-a468-46e6-bbb4-cbef88f4189d",
  "task_id": "9ee13153-6bc5-4758-a04a-7cf5dd6e078e",
  "title": "Booking pages work again after you reconnect Google Calendar",
  "tag": "fixed",
  "is_published": false,
  "metadata": { "notify_requesters": true }
}
```

A new entry is a draft unless you ask for it to be published. `notify_requesters: true` is stored on the draft and does nothing until the entry is published.

**4. Tightened the wording** with `update_changelog` (I changed "reply to your original report" to "add a comment on your original report", so readers know exactly where to follow up), then read it back with `get_changelog`. It was still a draft, still linked to the task, with the email still switched on.

### The publish step

When you're happy with the draft, tell the agent to publish it. It calls `publish_changelog` with the entry's id and `notify_requesters: true` (or false, if you've decided not to email). The entry appears on your portal's changelog, the emails go out, and the result includes `requesters_notified`: the number of people emailed. The LotsTeam skill tells the agent to ask you before turning the email on and to report that number afterwards. Publishing needs the changelog Publish permission, the same as in the dashboard, so an agent signed in as a member without it can draft entries but not publish them.

I stopped at the draft in the demo project, because publishing is a public step I take only on a real release.

## What the people who asked receive

One email per person, sent from your project's name:

- **Subject:** your entry's title followed by "is live", for example "Booking pages work again after you reconnect Google Calendar is live".
- **Greeting** with their name, if they gave one.
- **"You asked Demo App for:"** followed by the titles of their posts, so they recognise their own words.
- **"It just shipped:"** and your entry's title, then your description, with its Markdown formatting.
- **A "See what changed" button** to your public changelog, on your portal address or your custom domain.
- **A "Stop these updates" link** at the bottom. One click opts that address out of updates from that project, and the email carries a one-click unsubscribe header for mail apps too.

That's the whole point of linking requests to tasks as you triage: the email quotes back what each person asked for. If you haven't set that habit up yet, [How to Triage Customer Feedback With Claude or ChatGPT](/triage-customer-feedback-with-claude-or-chatgpt) shows an agent grouping duplicates and linking posts to tasks.

## How to write an entry worth sending

A LotsTeam changelog entry has four fields: title, description, tag and linked task. Each one ends up somewhere specific, so write for that place.

- **Title (it's also the subject line).** The email subject is your title plus "is live", so write what the user can now do, not what you changed internally. "Booking pages work again after you reconnect Google Calendar" works as a subject. "Fix OAuth token refresh" doesn't.
- **Description (it's also the email body).** The portal and the email both render it as Markdown (headings, lists, bold, italics, code and links), so the same text reads well in both places. Say what changed, whether the reader needs to do anything, and what to do if it still doesn't work. Three short paragraphs is plenty.
- **Tag.** **New** for something that didn't exist, **Improved** for something that works better, **Fixed** for a bug. On the portal the tag is how people scan the list, so pick the honest one.
- **Linked task.** It's what decides who gets the email. Before publishing, check the posts linked to it: the dashboard shows the count, and an agent can list them. If a draft points at the wrong task, the agent can change it with `update_changelog`.
- **One entry per thing that shipped.** Each entry emails only the people behind its own task, so a combined "October updates" entry would reach nobody. Bundle several small fixes into one entry only when they share a task.
- **Decide on the email before you publish.** It's sent once, when the entry is published with people to email.

If you're comparing changelog tools by how they reach users, [The Best Changelog Tools](/best-changelog-tools) covers which ones have email and agent access.

## Try it on your own project

Give your agent this and let it set itself up:

> Read https://lots.team/skill.md and help me connect LotsTeam for you.

LotsTeam is $9 per project a month, or $24 for 3 projects, with unlimited team members, and the changelog, the requester emails, the MCP server and the REST API are on every plan. New accounts get 10,000 free credits, valid 90 days, no card. [See the pricing explained](/lotsteam-pricing-explained). If you want to know what an agent can and can't do in your workspace before you connect one, read [Is LotsTeam Safe?](/is-lotsteam-safe).

## Common questions

### How do I notify users when a feature they requested is released?

Link their requests to the task that delivered the feature, then publish a changelog entry linked to that task with "notify the people who asked" turned on. In LotsTeam each person whose post is linked, and who left an email address, gets one email naming what they asked for and what shipped.

### Does everyone who voted get the email?

No. Votes on the portal are anonymous, so there's no address to send to. The email goes to the authors of the linked posts. If a voter matters to you, ask them to post the request themselves, or log it for them with their email.

### Can I publish a changelog entry without emailing anyone?

Yes. The email is off unless you turn it on for that entry. Leave the box unticked in the dashboard, or have the agent publish with `notify_requesters` set to false, and the entry only appears on your public changelog.

### What if I publish the same entry twice?

Nobody gets a second email. LotsTeam records when it sent the emails for an entry and won't send them again for that entry.

### Can people stop these emails?

Yes. Every email has a "Stop these updates" link. One click opts that address out of updates from that project, and future entries skip them.

### Can my AI agent publish a changelog without asking me?

The agent drafts by default and publishes when you tell it to. The LotsTeam skill tells it to ask before emailing the people who asked and to report how many were emailed. Publishing also needs the changelog Publish permission, as in the dashboard: sign the agent in as a member without it and it can only draft. If you'd rather press the button yourself, ask the agent for drafts only and publish from the dashboard.

*Agent steps run on 11 October 2026 from Claude Code connected to the LotsTeam MCP server, in a demo project with sample feedback. Dashboard steps and email contents from the LotsTeam product, setup from [lots.team/skill.md](https://lots.team/skill.md), prices from [lots.team/pricing](https://lots.team/pricing), checked the same day.*
