# Send email campaigns

> Write a product update email from your changelog, by hand, with AI, or on a schedule, approve it or let Autopilot send it, and see how it did.

Source: https://lopebase.com/docs/email-campaigns
Updated: 2026-11-04
Open in the app: https://app.lopebase.com/email

Email lets you write an email to a property's subscribers in LopeBase, once or every week or month, and send it through the email service you already use. Right now that is Sequenzy. Your subscribers stay in Sequenzy: LopeBase reads the names and sizes of your lists and segments, never the people on them, and never adds, removes, or tags anyone. Sequenzy sends the email and handles unsubscribes.

> **Tip:** Go to **Grow** > **Email**, or [Open Email](https://app.lopebase.com/email).

## Before your first campaign

Only an admin can write, approve, and send campaigns. Building, previews, tests, counts, checks, reading your changelog, and sending are free on every plan. Only writing with AI spends [AI credits](https://lopebase.com/docs/ai-credits).

1. **Connect Sequenzy for the property:** Open the property on Email. Without a Sequenzy connection it shows **Connect**; that opens the Sequenzy form on Connections for that property. Use an API key that is allowed to manage campaigns. See [Connections](https://lopebase.com/docs/connections).
2. **Fill in the settings:** Open the **Settings** tab. Set the **From name**, a **From address** on a domain Sequenzy has verified, an optional **Reply-to address**, and a **Postal address**. Under **Approval**, pick **Review** or **Autopilot** (see [Review or Autopilot](#autopilot)). Then press **Save settings**. A campaign cannot be approved without the from address and the postal address. [Open Email settings](https://app.lopebase.com/email?tab=settings)
3. **Add your changelog:** Optional, but it is what product update emails are made of. See [Read your changelog](#changelog).

## Read your changelog

The **Changelog** tab lists what the property shipped, read from where you already write it down. Each source is read again every six hours, and **Refresh** reads them now. [Open Changelog](https://app.lopebase.com/email?tab=changelog)

| Source | What LopeBase reads |
| --- | --- |
| Feed | A public RSS, Atom, or JSON Feed, or a `changelog.json` list, from its address. |
| GitHub releases | The repository's published releases, through the property's [GitHub connection](https://lopebase.com/docs/connections). Draft releases are left out. |
| CHANGELOG.md | The repository's `CHANGELOG.md`, one entry per version heading. An Unreleased section is left out. |
| Adapter | A `changelog` list your app shares through its [LopeBase Adapter](https://lopebase.com/docs/lopebase-adapter#changelog). |

Press **Find sources** to look for feeds on the property's site (the ones its pages declare, and common addresses like `/changelog.json` or `/changelog/feed.xml`), the repositories its GitHub connection covers, and an adapter changelog. Press **Add** next to the one you want, or pick a kind, paste the feed address or `owner/name`, and press **Add source**.

When two sources describe the same thing, it is listed once, with the fuller description. An entry marked **Sent** already went out in a campaign. Press **Hide** on an entry to keep it out of campaigns, AI drafts, and agents; **Show** brings it back. Removing a source removes its entries too.

## Write a campaign

On the **Campaigns** tab, press **New campaign**. The campaign opens with three tabs on the left and the preview on the right. Changes save on their own a moment after you stop typing.

On **Content**, set the **Subject** and the **Preview text** (the line inboxes show after the subject), then build the body from blocks:

| Block | What it adds |
| --- | --- |
| Heading | A large or small heading. |
| Text | Paragraphs, with `**bold**`, `*italic*`, `[a link](https://example.com)`, and lines starting with `- ` for a list. |
| Changelog | Entries from your changelog. Press **Pick entries** and tick the ones to show; entries already sent in another campaign are left out. **Full** gives each its own title, date, summary, and points; **Compact** lists them on one line each. |
| Button | A button with a label and a link. |
| Image | An image from an https address, with a description for screen readers and an optional link. |
| Divider | A thin line between sections. |

Move a block with the arrows on its card, or remove it with the bin. Every link to your own site gets `utm_source=email`, `utm_medium=email`, and the campaign's own `utm_campaign` (a tag a link already has is kept). Links to other sites are left as you wrote them. That way visits and signups from the email show up in its [Stats](#stats) and in [your pageview counts](https://lopebase.com/docs/pageviews) by campaign.

Every campaign ends with a footer you cannot remove: your from name, your postal address, and an unsubscribe link Sequenzy fills in for each person. The **Internal name** at the bottom is only for you, in LopeBase and in Sequenzy.

## Write it with AI

At the top of **Content**, **Write it with AI** asks what the email is for, then writes the subject, preview text, and blocks from the changelog entries not sent yet, recent published articles, and a few facts about the property, like how many people the email goes to.

| Setting | What it does |
| --- | --- |
| What is this email for? | **Share updates** shows the best changes in full and the smaller ones in a short list. **Drive clicks** builds the whole email toward one button. **Announce** is about one big thing and how to try it. **Roundup** leads with your recent articles, then what shipped. |
| Tone | **Brand voice** uses the voice on the property's [Brand tab](https://lopebase.com/docs/properties#brand). Or pick **Friendly**, **Direct**, **Upbeat**, or **Formal** for this email. |
| Length | **Short**, **Standard**, or **Detailed**. |
| Main button | The one link the email asks people to click, like your site, your dashboard, or a new page. Leave it empty and the AI picks the most useful page on your site. **Use the site** fills in the property's address. |
| Changelog highlights | How many entries are shown in full, 1 to 6. The rest go in a short list. |
| Anything else | What to lead with, a detail to mention, or what to leave out. |

Press **Write draft**. The draft replaces what was there, and you can keep going while it runs. Other subject lines it suggests show under the button; click one to use it. Your choices stay with the campaign. Press **Make this the default** to start every new campaign, and every email the [Product update email](#recurring) template writes, from them.

With a long changelog, the draft does not list everything. LopeBase ranks the entries by how much a subscriber would care: new things people can use first, then improvements, then fixes. Chores, dependency updates, and other behind-the-scenes work are left out when there is enough else to say.

It writes in the property's brand voice, and when that is empty, in the voice you set for its articles under **Grow** > **Content**. Your content house rules, and no dashes if you turned that on, apply too.

Before it is saved, the draft is checked: links go only to your own site, your main button's link, or a changelog entry or article it was given, a changelog block names only real entries, and a paragraph with a number that none of those facts back is taken out. Read it before you send it anyway.

To rewrite one heading, paragraph, or button, press the sparkle on its card, say how to change it if you like, and press **Rewrite**. A button keeps its link.

A draft and a rewrite each spend a few AI credits; the button shows the estimate first. With your own AI key they spend none. See [AI credits](https://lopebase.com/docs/ai-credits).

## Preview it

Every campaign is drawn in the property's brand and template: its logo (or its icon and name), its brand color on buttons, links, and highlights, its page and text colors, its fonts, and its button shape, laid out as Classic, Banner, Letter, or Digest. Set them on the property's [Brand tab](https://lopebase.com/docs/properties#brand). Colors that would be hard to read are adjusted, so button text and links always stand out.

The preview shows the email at desktop or phone width, in light or dark colors. Until you run the checks it is LopeBase's own render, with a sample name in place of each person's. After **Run checks** it shows Sequenzy's own render of the saved draft, labeled **Exact, from Sequenzy**. Some inboxes, like Gmail on a phone, recolor email in dark mode on their own, which no preview can show exactly.

## Pick who it goes to

On **Audience**, pick from **Send to**: every active subscriber, one of your Sequenzy lists, or one of your saved segments, each with its count. Press **Count now** for a fresh count of who the campaign goes to. A campaign sent in waves goes to its waves' lists, so pick those on Sending instead.

## Choose how it sends

On **Sending**, **How it sends** has up to three choices. Changing it after approving puts the campaign back to draft, like any edit.

| Choice | What happens |
| --- | --- |
| All at once | Everyone gets it at the send time. |
| Their time zone | Each person gets it at the send time on their own clock, in the time zone of the browser you chose it in. Sequenzy sends anyone whose time already passed right away, and anyone with no known time zone at the send time itself. LopeBase hands it to Sequenzy before the earliest time zone reaches the send time, up to a day early, after the same last check and count. |
| In waves | Two to five waves, each to one of your own Sequenzy lists, the hours you set after the first (up to a week). Each wave is its own campaign in Sequenzy, and Stats adds them up. |

Waves only use lists you already have; LopeBase never makes a list or tags anyone. Before it saves the waves, it asks Sequenzy to count the lists one by one and then together, and saves them only when the two agree, so nobody is on two lists and gets the email twice. The same check runs again right before sending. When waves cannot be offered, for example with fewer than two lists, How it sends says why. Segments cannot be waves, because Sequenzy cannot count two segments together.

## Check, test, approve, and send

1. **Run the checks:** On **Sending**, press **Run checks**. LopeBase saves the draft in Sequenzy, counts the recipients, and checks the subject, the from and postal address, the unsubscribe link, that every link and image uses https, that the email is under 100 KB (Gmail cuts off longer ones), and any merge tag with no value. Sequenzy's own content check runs too, with its grade. Errors block approval; warnings do not.
2. **Send yourself a test:** Under **Send a test**, tick who gets it and press **Send test**. Tests only go to people on your workspace's team.
3. **Approve it:** Press **Approve**. The checks run again with a fresh count, and the approval holds for exactly this email and audience. Edit anything a reader would see after approving, and it goes back to draft: approve it again.
4. **Send it now or later:** Press **Send now**, then **Send it** to confirm; it goes to Sequenzy and sends in about five minutes. Or pick a time under **Or send at** and press **Schedule**. A scheduled campaign goes to Sequenzy up to 15 minutes before its time, after one last check and count, and **Unschedule** takes it off until then.

Right before a campaign goes to Sequenzy, LopeBase counts the audience again. If there is no count, a check fails, or the count changed by more than a tenth (or more than 25 people, whichever is more) since you approved it, the campaign is **Held** and nothing is sent. The Sending tab says why. Every step, from approval to the hand-off, is in the [audit log](https://lopebase.com/docs/audit-log).

If something stops LopeBase halfway through handing a campaign to Sequenzy, it asks Sequenzy what it already has before trying again, and never sends the same email twice. An answer it does not understand keeps the campaign held for you.

## Review or Autopilot

**Approval** in Email settings decides who approves a property's campaigns. A campaign you write and send yourself is always approved by you on its page. The choice matters for the [product update email that writes itself](#recurring).

| Approval | What happens |
| --- | --- |
| Review | Each email waits for a person to read it and approve it. You get an email and a notice when one is ready. |
| Autopilot | An email approves itself when every rule below passes, then waits out the cancel window before it goes to Sequenzy. If any rule fails, it waits for a person, like Review, and its page says why. |

Autopilot sends only when all of these are true:

- Sequenzy gave an exact count of who it goes to, taken just now, and again right before sending.
- That count is at or under the **Autopilot limit** in Email settings, 5,000 people unless you change it (up to 50,000).
- The property has sent a campaign before that a person approved. A property's first campaign always needs a person.
- The count did not move by more than a tenth, or 25 people, since it approved itself.

After it approves itself, it waits for the **Cancel window** in Email settings: 60 minutes unless you change it, and never less than 15. While it waits, the campaign page shows **Sending soon** with a **Cancel** button, the bell shows a notice, and the people who get the property's content notices get an email. Press **Cancel** and it is never sent.

## Send a product update every week or month

The **Product update email** template on [Pipelines](https://lopebase.com/docs/pipelines) writes and sends an update email from what shipped. Its steps are **Gather what shipped**, **Write the update email**, **You read the email**, and **Send the update email**.

1. **Set up Email for the property:** Connect Sequenzy, fill in the from address and postal address, and add a [changelog source](#changelog). The template cannot start until the property has these, and says what is missing.
2. **Run it on a schedule:** On **Pipelines**, open **Product update email** and add a schedule for the property, every week or month. See [Run it on a schedule](https://lopebase.com/docs/pipelines#schedule).
3. **Approve each email, or let Autopilot:** Each run writes one email with AI from the changelog entries not in an email yet. On Review, the run waits for you: open the email from the notice, read it, and press **Approve and send** on its page, which also moves the run on. On Autopilot, the check step is skipped when the email approved itself, and it sends after the cancel window.

A run with nothing new in the changelog writes nothing. A scheduled one does not start at all, and the schedule says it was skipped and why. Writing the email spends AI credits, so a run only starts when the workspace has enough for the most it can cost. Every email a run writes shows on the Campaigns tab like any other.

## After it goes to Sequenzy

| Status | What it means |
| --- | --- |
| With the email service | Sequenzy has it and sends it at the time shown. |
| In the service's review | Sequenzy is checking it before it sends, which is common for new senders. It sends once they approve it. |
| Sending, Sent | On its way, or done. |
| Held | Stopped, not sent. The Sending tab says why, including when Sequenzy declined it or sending is paused there. |

Press **Check status** to ask Sequenzy where it is now; LopeBase also checks every 15 minutes. Until it starts sending, **Cancel campaign** cancels it in Sequenzy too, every wave of it.

The bell and the Notifications page show a campaign waiting for approval, one sending soon on Autopilot, one held, one that failed or only partly sent, and one Sequenzy is reviewing. An email from a scheduled run that waits for your approval, one sending soon on Autopilot, and one held while LopeBase was sending it on its own also come by email, to the people who get the property's content notices (every admin, unless you chose addresses in Content settings).

## See how it did

Once a campaign is sending or sent, its page opens on the **Stats** tab. LopeBase asks Sequenzy for the numbers every hour on the first day, then once a day for 30 days; **Update now** asks right away.

- **Email**: sent, delivered, opens, clicks, unsubscribes, bounces, and complaints, from Sequenzy. A number Sequenzy does not report shows as **Not reported**, never as zero; Sequenzy does not report complaints. Opens are approximate, because some email apps load images on their own and others block them.
- **Clicks per link**: the links people clicked most, from Sequenzy.
- **On the site**: visits that started from a link in the email, and signups or other conversions credited to it, from [LopeBase's pageview counter](https://lopebase.com/docs/pageviews) by the email's `utm_campaign`. Without the counter on the site, they show as Not reported.

## Let an agent help

An agent connected to [LopeBase's MCP server](https://lopebase.com/docs/mcp-server) with the manage scope can read your changelog, read and set the property's brand and sender, preview any email as it will look, hide a changelog entry, write a campaign with AI (with a goal, tone, and main button) or by hand, choose how it sends, count who it goes to, send a test to your team, read its stats, unschedule it, and cancel it. Approving a send to your subscribers stays with you: in the property's Email settings, **Let agents approve sends** is off unless you turn it on. While it is off, an agent that tries is told to ask you, and nothing is sent.

## If something goes wrong

### Why can't I approve my campaign?

A check failed. Run the checks on the Sending tab and fix each error it lists. The usual ones are a missing postal address or from address in Settings, an http link, or an empty subject.

### It says the API key cannot manage campaigns

The Sequenzy key you connected can only read. In Sequenzy, open Settings, then API keys, give the key permission to send campaigns (or make a new key with it), and paste it again on the property's Sequenzy connection.

### My campaign is held

LopeBase stopped before sending it. The Sending tab says why: the count changed a lot since approval, a check failed, or Sequenzy did not answer. Fix the cause and approve again. If it says LopeBase will check with the email service, press Check status first, so the same email is never sent twice.

### It says Sequenzy is reviewing my campaign

Sequenzy checks some campaigns before they go out, often for new accounts or domains. Nothing is needed in LopeBase; it sends once Sequenzy approves it. Check your Sequenzy dashboard if it waits long.

### Sequenzy says the from address is not verified

Sequenzy only sends from a domain you verified there. Verify the domain in Sequenzy, or change the from address in Email settings to one on a verified domain.

### Find sources found nothing

LopeBase only looks on the property's own site, at feeds its pages declare and a few common addresses. Paste the feed address yourself under the Sources list, or add the GitHub repository. A feed must be RSS, Atom, JSON Feed, or a changelog.json list.

### A GitHub source says to connect GitHub

GitHub sources read through the property's GitHub connection. Connect GitHub for the property on Connections, with the LopeBase GitHub App given access to that repository, then press Refresh.

### The AI draft left something out

A paragraph with a number that the facts LopeBase gave it do not back, or a link to another site, is taken out before the draft is saved. With many changelog entries, the ones that read as behind-the-scenes work are left out, and only your number of highlights is shown in full. Add it back by hand if it is right, raise Changelog highlights, or press Write draft again with a note under Anything else.

### My logo does not show in the email

Gmail and Outlook do not show SVG or WebP images, so an email with one shows your icon and name instead. A white logo only shows on the Banner template's band, since it would vanish on a white card. On the property's Brand tab, use a PNG or JPG at an https address, or pick Banner.

### Write draft says there is nothing new to write about

Every changelog entry has been sent, is hidden, or there is no source yet. Add a source on the Changelog tab, or type what the email is about in the note and press Write draft again.

### Autopilot did not send my update email

One of its rules did not pass, so it waits for you. The campaign page says which: it is the property's first campaign, it goes to more people than the Autopilot limit, Sequenzy gave no exact count, or the count moved since it approved itself. Read it and approve it, or raise the limit in Email settings.

### How do I stop an email that is sending soon?

Open it from the notice or the Campaigns tab and press Cancel in the Sending soon box before the time shown. It is never handed to Sequenzy.

### Why can't I send in waves?

How it sends says why: waves need at least two Sequenzy lists, and only lists, since Sequenzy cannot count segments together. If saving waves says people are on more than one list, pick lists nobody shares, so nobody gets the email twice.

### My scheduled update email was skipped

Nothing new was in the changelog since the last email, so there was nothing to write. Check the Changelog tab: a source with an error, or entries you hid, leave it empty. The next run starts on time.

### Stats say Not reported

Sequenzy does not report that number, or has not yet. Site visits show as Not reported when the pageview counter is not on the property's site. Numbers update every hour on the first day, then daily.

### My edit undid the approval

That is on purpose: an approval covers exactly the email and audience you approved. Changing only the internal name keeps it. Approve again to send the new version.

## Where to go next

- [Connections](https://lopebase.com/docs/connections): connect Sequenzy for a property.
- [Pageview counter](https://lopebase.com/docs/pageviews): see visits and signups by campaign.
- [Pipelines](https://lopebase.com/docs/pipelines): schedule the Product update email.
- [AI credits](https://lopebase.com/docs/ai-credits): what AI drafts cost.
- [Team](https://lopebase.com/docs/operators): who is an admin.
