There are affiliate links in this article. This means that if you click on the ConvertKit trial link and become a customer, I’ll get a small commission to help keep the lights on around here.

I recently moved my email list from Drip to ConvertKit. I’m going to briefly go through the reasons why first before I get into exactly how I did it.

Why I migrated

There are two primary reasons why I decided to switch from Drip to ConvertKit:

  1. Concerns over Drips handling of GDPR and the fact that they elected to not join the EU-US Privacy Shield
  2. I was looking for a tool that was simpler and less time consuming to use while still covering most of my automation needs

ConvertKit covers both of these points and then some. I reached out to them on Twitter if they were going to be GDPR compliant and join the Privacy Shield and Nathan Barry replied right away with a firm “yes!”. I’ve met Nathan a few times and I know he is a guy who’s word I can trust. Shortly after they release tools that it a lot easier for businesses like mine to be compliant and then joined the Privacy Shield. Nathan went as far as putting on webinars to go through the main GDPR issues in detail for ConvertKit customers. Throughout all of this, I was left with the impression that Nathan and the ConvertKit team care about EU customers and their needs with GDPR.

On the second point, ConvertKit has been built with a single audience in mind. Therefore, it provides a set of functionality out of the box that would require you to setup for yourself in a tool like Drip. That alone is a HUGE time saver. And I still get most of the automation that I need. I will miss some things, but do I really need those things? I’d rather save time that can then be put towards creating content for my audience.

Simplifying my funnel

Because I allowed my Drip funnel to become so complicated, I really wanted to simplify. Automation is great but if you are spending more time working on your automation than creating content, you have a problem (as I did).

I decided to simplify to the following:

  • Two 7 day courses for people looking to learn Drupal development (one for Drupal 7 and one for Drupal 8)
  • A welcome sequence for new people to the list
  • A pitch sequence for people who are interested in my books
  • Broadcast emails for new content (I attempted to automate this in Drip)
  • A handful of tags rather than the tag soup I had before

Creating segments in Drip

You can export all subscribers at once in Drip but I decided not to do this because it can include those that unsubscribed and takes a long time to run. Instead, I decided to migrate one segment at a time.

By migrating one segment at a time, I could tag subscribers in ConvertKit as I imported each segment.

After each segment was exported, I ran a bulk update for that segment to add a “migrated” tag. Every segment excluded people with the “migrated” tag, so these people would be excluded from future exports.

For all these subscribers, I added a tag “Source: Drip”. This will be handy just in case I need to identify migrated subscribers in the future.

Dealing with GDPR re-consent

I decided I was going to ask a sub set of my list to re-consent before the GDPR deadline. These were people who were based in Europe, didn’t buy one of my books and I didn’t specifically sign up for the newsletter (they signed up for a content upgrade instead).


I started off by migrating subscribers that I knew I was not going to ask to re-consent and the first group was customers of my books. Customers would be tagged with the “Customer” tag and a second tag for the product they had purchased.

Newsletter Subscribers

The second group was subscribers who specifically signed up for my Drupal newsletter. There was no reason at all to re-subscribe these people. These subscribers were tagged with the “Drupal Newsletter” tag in ConvertKit.

Everyone else

I then created segments for all other subscribers. These were people who signed up for one of my Drupal content upgrades or email courses. I split this into two types of subscriber based on the recorded timezone in Drip:

1) Those who were outside the EU

2) Those that were inside the EU, or there was no timezone at all (so I didn’t know that they were definitely inside the EU)

Subscribers who belonged to the second group were tagged with “GDPR: Re-consent required”.

Subscribers who belonged to the first group were tagged with “Drupal Newsletter”.

I then added text to educational emails for those with the “GDPR: Re-consent required” tag, asking them to re-consent.

Here is a snippet for the liquid code for a conditional block of text:

{% if subscriber.tags contains "GDPR: Re-consent required" %}
  You may have heard about the new data protection law in the European Union called the GDPR which regulates how personal data is processed. You can find out more about my privacy notice here. If you’ve been enjoying my content and would like to keep receiving it along with occasional updates on my products (books & training), just click this link:
  {{ gdpr_consent_url }}
{% else %}
  You're receiving this tip because you subscribed at or bought one of my books. I know it's been a while, but my plan is to send out more more regular emails on Drupal 8. If this is not for you, just click unsubscribe below, and I won’t email you again. You can find out more about my privacy notice here.
{% endif %}

After a few educational emails, I sent a reminder email just to the segment with the re-consent tag.

Cleanup process

I had some fun with subscribers who I knew should be getting Drupal content but were not exported in one of the segments. I had to create cleanup segments to catch those.

I had turned off all workflows and campaigns in Drip. But Drip can still send emails to subscribers in workflows even if it is off. So I checked subscribers in Drip every day for a few weeks and cross referenced against Seva just in case.

More tags

There are tags I’d still like to migrate from Drip (and will do before my annual Drip subscription ends). The strategy to do that is pretty simple:

  • Export subscribers with the relevant tags to CSV files
  • Import into ConvertKit and add the tag while they are being imported

Examples of these tags include completed email courses.

Migration nodes

Exporting to CSV

After you create a segment in Drip, you can export subscribers in that segment to CSV by clicking on the CSV button in the bottom left corner.

Importing and tagging in CK

I removed unnecessary columns from the CSV file before importing to ConvertKit, although this isn’t strictly necessary.

In ConvertKit, navigate to the Import section. After uploading the CSV file, you can map fields from the CSV to CovertKit fields.

You can also set any tags you want for that particular segment.

If you want to add more tags later for the same subscribers, you can also import the same subscribers again. ConvertKit is intelligent enough to not create a new record for the same email address. Instead, if will simply add the tags to the existing subscriber.

Changing privacy policy

I updated my privacy policy to make it clear that I’m using ConvertKit. There was some overlap where I was using both ConvertKit and Drip, so I included Drip as well.

Wrapping up

All in all, the migration from Drip to ConvertKit went as smoothly as can be expected.

My main recommendation for anyone doing this is to methodical and take it one segment at a time and test as you go.

If you haven’t yet tried ConvertKit, I high recommend giving it a trial. You can get a ConvertKit trial here.