(Below is a summary of what happens in the video above)

Let’s take a look at tags, events and custom fields, and when you should use each one.

First, navigate to the Documentation screen in the footer menu of the home page.

To add tags, trigger events, and set custom fields for your subscribers, simply place a JavaScript or server side API call in your web application.

Both the client-side (JS) and server side REST APIs can set tags, trigger events and set custom fields, so it’s your choice which API you choose to consume. REST is more reliable since it’s not reliant on JS running in the browser. You can read more about the specific API calls in the docs.

In addition, we have integrations with services like Gumroad and Stripe, which will save you from having to write any code. Gumroad will ping your Drip installation and you can tag or create certain events based on someone making a purchase, for example.

Now let’s explore tags, events and custom fields, and when you should use each one.

Defining Tags, Events and Custom Fields


A tag is simply a piece of data you attach to a user. For example you might tag someone as a customer or as a trial user.


An event is like a tag but it includes a date and applies only when someone takes an action.

When creating an event,it’s best to start events with a verb. In this example we use ‘Started a registration.’

Maybe a user started a trial or started a registration. (‘starting a registration’ means they didn’t complete the registration). Or they could have purchased an eBook or an MP3 (‘Purchased eBook X’).

Why wouldn’t you just tag them? Because an event includes both a value and the date that it happened. For example, events would enable you to filter for everyone who bought in November of last year or everyone who bought more than three months ago, whereas there are no dates associated with tags.

It’s helpful to think about it this way: tags should be used to track the state of someone (they are a ‘customer’), and events are used to track when someone performed an action or something happened to them (‘visited pricing page’, or ‘became a customer’).

Custom Fields

Now let’s look at custom fields. Custom fields are names and values. In this example you see first_name and the corresponding value of Rob.

The difference between public, and private custom fields

Setting a custom field to public will expose those custom fields and their values to be accessed through a tool like the development console and our JavaScript API. If you are dealing with custom fields that hold sensitive information, it would be advised to keep those custom fields as private.

Deciding Between Tags, Events and Custom Fields

Cart Abandonment

Let’s say you wanted to track cart abandonment and you wanted to label a subscriber in Drip as someone who had abandoned their cart. How would you do that?

  • Should you tag them with the term ‘abandon’?
  • Should you create a custom field that says ‘cart abandonment’ and it has a 1 or a 0 based on whether they’ve abandoned?
  • Should you use an event?

In this case we’d use an event because cart abandonment has a date attached to it. And knowing the date will be important in the future.


How about a purchase? What if someone purchases an eBook from you? I’d recommend two things when someone makes a purchase.

  1. Tag them as a customer
  2. Fire an event of ‘purchased eBook 1,’ for example.

This way you can easily filter all your customers with a single criteria by just looking at the customer tag, and you can also have the ‘purchased eBook 1’ event with a date attached to it.

Trial Signups

On the other hand if you’re promoting a Software-as-a-service (Saas) application and you want to track trial signups, use an event because:

  1. They’ve signed up for the trial and
  2. There’s a date attached to it.

Finally, what if you wanted to track someone’s trial duration to use that value in an email to say ‘You’re 10 days into your 30 day trial,’ and you might want those 30 days to be dynamic because they might have promo codes, or they might have different trial lengths.

In this scenario use a custom field because you need both a name and a value. For example, you could use ‘trial length’ as the name, and ‘duration’ could be your value.

If you still have questions, please contact us.