Before you start
You'll need:
- A ConvertKit (Kit) account with subscriber-export permission
- An AcelleMail installation up and running
- ~30 minutes for <100k subscribers
ConvertKit was rebranded to Kit in 2024. The UI shifted but the export flow remains the same — this guide uses the current Kit screen names.
Export from Kit (ConvertKit)
In Kit's top nav, click Subscribers. Filter by tag, segment, form, or "all subscribers" — whichever scope you want to migrate. Then click Export in the toolbar.
Kit asks for format (CSV) and field selection — pick all the custom fields you've defined. The file prepares in the background; Account → Imports & Exports shows the download link when ready (usually <5 minutes).
Exported CSV includes: email, first name, all custom fields, tags (comma-separated), confirmed-at timestamp, source.
Import into AcelleMail (the same 6 clicks for every source)
Once you have the CSV exported from your previous platform, the import flow in AcelleMail is identical regardless of where the data came from.
1. Open your destination list
In AcelleMail's sidebar, click Audience → choose the list that will receive the migrated subscribers (or create a new one — New list button top-right).

You'll see a per-list overview card with subscriber counts:

2. Click "Import" in the list toolbar
The wizard entrypoint is on the list detail page:

3. Upload your CSV
Drop the CSV file from the previous platform into the upload area:

AcelleMail parses the file and confirms detection:

4. Map the columns
The wizard auto-detects standard columns (email, first_name, last_name) and shows green Mapped to EMAIL chips. Adjust manually for any non-standard column from the source:

5. Pick duplicate handling
In the same screen, choose what AcelleMail does when a subscriber already exists in this list:
- Skip — keep the existing row, don't overwrite
- Update — overwrite name/tags/custom fields with values from the CSV
- Unsubscribe — mark existing rows as unsubscribed (rare; used when re-importing an opted-out list)
6. Run the import
Click Start import. The job runs in the background — close the popup, work elsewhere, return to Audience → [list] → Import to see progress:

You'll see Pending → Running → Complete per import job, with rows-imported / rows-skipped / errors counts.
After the import
- Verify list count matches your expected size (rows that failed validation appear in the Errors column with a downloadable error CSV).
- Re-tag if needed — for behavioural data that doesn't fit a CSV column (e.g. "opened campaign X"), you may need to re-create the tag via segmentation rules.
- Pause for warm-up — if the imported list is large (>10k) and your sending IP is new or recently rotated, run a short warm-up campaign to your most-engaged 10% before the full send. See IP warm-up best practices for the schedule.
Rebuilding Kit (ConvertKit) automations
Kit's automations (formerly called "sequences" + "rules") map to AcelleMail's Automations. Equivalent triggers:
| Kit trigger | AcelleMail trigger |
|---|---|
| Subscribes via form | Subscribed to list |
| Tag added | Tag added |
| Clicks link in email | Link clicked |
| Purchases (via integration) | Custom event (API) |
| Date condition | Date relative |
| Form submission | Subscribed to list (form's target list) |
Kit's "Visual Automations" (drag-and-drop sequence builder) closely mirror AcelleMail's automation canvas — the rebuild is largely 1:1 with the same node primitives.
Merge-tag syntax differences
| Kit (ConvertKit) | AcelleMail |
|---|---|
{{ subscriber.first_name }} |
{{ subscriber.first_name }} (no change!) |
{{ subscriber.email_address }} |
{{ subscriber.email }} |
{{ subscription.unsubscribe_url }} |
{{ unsubscribe_url }} |
Kit uses Liquid templating, very close to AcelleMail's own syntax. Most templates copy-paste with only the email_address → email rename and unsubscribe-URL rename.
Advanced: API-driven migration with Kit's subscribers endpoint
Export from Kit via API:
# Kit (v4) API key from Account → API & Apps
curl -X GET "https://api.kit.com/v4/subscribers?per_page=1000" \
-H "Authorization: Bearer <KIT_API_KEY>" \
-o kit-subscribers.json
Paginate via after cursor; loop until response pagination.has_next_page is false.
Import into AcelleMail:
ACELLE_TOKEN="..."
ACELLE_LIST_UID="..."
jq -c '.subscribers[] | {email: .email_address, first_name: .first_name}' kit-subscribers.json \
| while read sub; do
curl -X POST "https://acellemail.com/api/v1/subscribers" \
-H "Authorization: Bearer $ACELLE_TOKEN" \
-d "{\"list_uid\":\"$ACELLE_LIST_UID\",\"subscriber\":$sub}"
done
For Kit's "Commerce" features (paid subscriptions, products), AcelleMail doesn't have direct equivalents — those workflows typically stay on Kit or move to a dedicated subscription tool.
Related articles
- Importing contacts CSV — best practices and field mapping
- Migration from Mailchimp to AcelleMail
- Building a welcome email series in AcelleMail
- Re-engagement campaigns — win back inactive subscribers
7 bình luận