Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions apps/docs/content/docs/email-marketing/contacts.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,13 @@ automatically: email, name (or first and last name), tags, status, signup
date (`created_at`, `OPTIN_TIME`, ...), and beehiiv's `tier`, which becomes a
`tier:<value>` tag. Other columns become custom fields, or choose
"Don't import". You can add tags to every imported contact, for example
`beehiiv`.
`beehiiv`. Step-by-step guides for [beehiiv](/migrate/beehiiv),
[Substack](/migrate/substack) and [Mailchimp](/migrate/mailchimp) cover each
tool's export.

If the file has no status column, the importer asks for the status of
everyone in it, and suggests one from Mailchimp's file names
(`unsubscribed_…`, `cleaned_…`).

An import never makes a contact's status less strict. The order is
subscribed, then unsubscribed, then bounced, then complained:
Expand All @@ -27,7 +33,7 @@ subscribed, then unsubscribed, then bounced, then complained:
| --- | --- |
| Active, subscribed, empty | Subscribed |
| Paused (beehiiv) | Subscribed, tagged `paused` |
| Inactive, unsubscribed | Unsubscribed |
| Inactive, unsubscribed, deactivated | Unsubscribed |
| Bounced, cleaned (Mailchimp) | Unsubscribed and added to the suppression list |
| Complained, spam | Unsubscribed and suppressed as a complaint |
| Pending, Needs approval | Skipped, or imported unsubscribed and tagged `pending` if you choose |
Expand Down
4 changes: 3 additions & 1 deletion apps/docs/content/docs/getting-started/first-broadcast.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@ description: Compose, target, and send a one-off email.

To send a broadcast:

1. Create or import contacts.
1. Add contacts, or [import them](/email-marketing/contacts#import-contacts)
from a CSV. Moving from beehiiv, Substack or Mailchimp? Follow
[Moving your newsletter](/migrate/overview).
2. Create a template or start from a system template.
3. Create a broadcast.
4. Pick the audience filter.
Expand Down
2 changes: 2 additions & 0 deletions apps/docs/content/docs/getting-started/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,5 @@ Before sending mail in production, configure the team's sending provider in sett
![SendLit sign-in screen](/screenshots/sign-in.png)

Sign in with email OTP, then choose the team you want to work in. Every team has its own contacts, templates, automations, sending provider, API keys, and quota.

Coming from beehiiv, Substack or Mailchimp? See [Moving your newsletter](/migrate/overview).
1 change: 1 addition & 0 deletions apps/docs/content/docs/meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
"pages": [
"index",
"getting-started",
"migrate",
"email-marketing",
"email-blocks",
"workspace",
Expand Down
48 changes: 48 additions & 0 deletions apps/docs/content/docs/migrate/beehiiv.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
title: From beehiiv
description: Export your beehiiv subscribers and import them into SendLit.
---

## Export from beehiiv

1. In beehiiv, open **Settings** and select your publication.
2. Open **Export Data**.
3. Under **Export Subscribers**, choose **Export All Subscribers** (the full
export, with custom fields) or **Export All Basic Subscribers** (email,
status and tier only).
4. beehiiv emails you when the export is ready; you can also download it
from **Historical Exports** on the same page. The download link is valid
for 24 hours, so import it the same day or export again.

To keep your past issues, also choose **Export All Posts** under **Export
Posts**. SendLit can't import posts into the web archive yet, so keep that
file.

## Import into SendLit

In **Contacts → Import**, upload the CSV. SendLit recognises beehiiv's
columns: the email, the status and the `tier`, which becomes a tag such as
`tier:premium`. The full export's custom fields become custom fields; set any
column you don't need to "Don't import". Add a tag such as `beehiiv` to every
contact.

| beehiiv status | In SendLit |
| --- | --- |
| Active | Subscribed |
| Paused | Subscribed, tagged `paused` |
| Inactive | Unsubscribed |
| Pending, Needs Approval | Skipped, or unsubscribed and tagged `pending` if you tick the option |

Paused subscribers asked for a break, not to leave. Leave them out of
broadcasts with an audience filter that excludes the `paused` tag until
you're ready.

Premium subscribers keep their tier as a tag, so you can send them premium
issues. SendLit doesn't take payments; keep billing them through your
payment provider.

## Next

Connect your provider, authenticate your domain, recreate your forms and
welcome email, and go through the checklist in
[Moving your newsletter](/migrate/overview#the-steps).
46 changes: 46 additions & 0 deletions apps/docs/content/docs/migrate/mailchimp.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
title: From Mailchimp
description: Export your Mailchimp audience and import it into SendLit.
---

## Export from Mailchimp

1. In Mailchimp, open **Audience** and pick the audience if you have more
than one.
2. Choose **Export audience**, then **Export CSV**. Only Owners and Admins can
export.
3. Mailchimp emails you when the export is ready. Download the ZIP file and
unzip it.

The ZIP has a separate CSV file for each kind of contact, and the kind is in
the file name: subscribed, unsubscribed, non-subscribed and cleaned. The
files have no status column.

## Import into SendLit

Import **each file separately** in **Contacts → Import**. Because there's no
status column, the importer asks "Everyone in this file is" and picks the
answer from the file name. Check it before importing:

| Mailchimp file | Choose |
| --- | --- |
| `subscribed_…` | Subscribed |
| `unsubscribed_…` | Unsubscribed |
| `nonsubscribed_…` (never opted in) | Unsubscribed |
| `cleaned_…` (bounced addresses) | Bounced or cleaned (suppressed) |

Import the unsubscribed and cleaned files too: SendLit then knows never to
email those addresses, even if they turn up in a later import. Cleaned
addresses go on your [suppression list](/activity/suppressions).

SendLit recognises Mailchimp's columns: `Email Address`, `First Name`,
`Last Name`, `TAGS` and `OPTIN_TIME` (kept as the signup date). Other audience
fields become custom fields. Set technical columns you don't need, such as
`MEMBER_RATING`, `LEID`, `EUID`, `LATITUDE` or `CONFIRM_IP`, to "Don't import".

## Next

Connect your provider, authenticate your domain, recreate your forms and
welcome automation, and go through the checklist in
[Moving your newsletter](/migrate/overview#the-steps). Mailchimp's merge tags such as
`*|FNAME|*` become `{{ subscriber.name }}` in SendLit.
5 changes: 5 additions & 0 deletions apps/docs/content/docs/migrate/meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"title": "Migrate to SendLit",
"icon": "ArrowRightLeft",
"pages": ["overview", "beehiiv", "substack", "mailchimp"]
}
56 changes: 56 additions & 0 deletions apps/docs/content/docs/migrate/overview.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
title: Moving your newsletter
description: Bring your subscribers from beehiiv, Substack or Mailchimp to SendLit without hurting deliverability.
---

Moving a newsletter is mostly about two things: bringing every subscriber
over with the right status, and sending from your own domain without landing
in spam. Pick your current tool for the export steps:

- [From beehiiv](/migrate/beehiiv)
- [From Substack](/migrate/substack)
- [From Mailchimp](/migrate/mailchimp)

Kit (ConvertKit) and other tools work the same way: export a CSV and import
it under **Contacts → Import**; see [Import contacts](/email-marketing/contacts#import-contacts).

## The steps

1. **Export your subscribers** from the old tool (see its page). Keep the
export of your past posts too.
2. **Connect your email provider.** SendLit sends through your own Amazon SES,
Resend, Postmark, SendGrid or Mailgun account. Add it in **Settings → Email
service providers**, send a test and activate it. For Amazon SES, ask for
production access first; see [Warming up](/email-marketing/warm-up#amazon-ses-before-you-start).
3. **Authenticate your domain.** Use the shield button on the provider to
check SPF, DKIM and DMARC and add the missing DNS records; see
[Domain authentication](/email-marketing/domain-authentication).
4. **Import the CSV** under **Contacts → Import**. Check the column mapping,
and add a tag such as `beehiiv` to everyone so you can find them later.
Unsubscribed, bounced and complained contacts stay that way.
5. **Recreate signup forms and your welcome email.** Create a
[signup form](/email-marketing/signup-forms) and replace the old embed on
your site. Rebuild your welcome email as a [sequence](/email-marketing/sequences)
triggered when a subscriber is added. Imported contacts don't trigger it,
so your existing readers won't get a second welcome.
6. **Turn on your web archive** if your old tool hosted your posts; see
[Web archive](/email-marketing/web-archive).
7. **Send a test, then your first broadcast.** Use **Send test** on the
broadcast, check it in Gmail and Outlook, then schedule it.

## Before you switch

- [ ] Mailing address saved in **Settings → General** (it's in every email's
footer, and required by anti-spam law).
- [ ] Provider active, with SPF, DKIM and DMARC all set up.
- [ ] Reply-To set on the provider if replies should go somewhere other than
the From address.
- [ ] Contact counts match the old tool: subscribed, unsubscribed and
bounced. The import summary lists every skipped row and why.
- [ ] A test email received, with a working unsubscribe link.
- [ ] Old signup forms replaced, so new subscribers don't keep going to the
old tool.
- [ ] A [warm-up plan](/email-marketing/warm-up) if the domain or provider
account is new: start with your most engaged readers and grow daily.
- [ ] Old tool kept until the first few sends look healthy; then stop sending
from it so nobody gets two copies.
50 changes: 50 additions & 0 deletions apps/docs/content/docs/migrate/substack.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
---
title: From Substack
description: Export your Substack subscribers and import them into SendLit.
---

## Export from Substack

1. In your Substack dashboard, open **Subscribers**.
2. Scroll to **All subscribers**, open the **⋯** menu above the list and
choose **Export**.
3. Export **all columns** to get a CSV of your subscribers.

Substack's menus change from time to time; if yours look different, search
Substack's help for "export my email list".

Compare the number of rows in the file with the subscriber count Substack
shows before you import.

## Import into SendLit

In **Contacts → Import**, upload the CSV and check the mapping screen:

- the email column is detected automatically, and so are name and signup
date (`created_at`) columns;
- if there is a column telling paid subscribers apart (for example a plan or
paid flag), import it as **Tag from value**, so paid subscribers get a tag
you can target;
- set columns you don't need, such as revenue or activity stats, to "Don't
import".

| Substack status | In SendLit |
| --- | --- |
| Active, subscribed | Subscribed |
| Unsubscribed, deactivated, email disabled | Unsubscribed |
| Anything else | Skipped and listed in the import summary |

If the file has no status column, the importer asks for everyone's status;
the Substack export only lists current subscribers, so choose
**Subscribed**.

SendLit doesn't take payments. Paid subscribers keep paying through Substack
until you move billing to your own payment provider; tell them before you do.

## Next

Connect your provider, authenticate your domain, recreate your forms and
welcome email, and go through the checklist in
[Moving your newsletter](/migrate/overview#the-steps). Substack hosted your posts: turn
on the [web archive](/email-marketing/web-archive) so new issues get public
pages.
Loading
Loading