How to use custom events to trigger personalized messages in Iterable

If you’ve ever gotten a “Happy Birthday, [First Name]!” email from a company you barely remember, you know there’s more to “personalization” than just mail-merging a name. If you want to actually reach people with messages they care about, custom events are the secret sauce. This guide is for marketers, product folks, and anyone who wants to go beyond the basics in Iterable without drowning in vague advice or endless setup.

Let’s cut through the fluff and show you—step by step—how to use custom events to trigger messages that actually matter.


What Are Custom Events (and Why Should You Care)?

Custom events are basically records of actions your users take—anything from “clicked a button” to “watched a video to the end.” Unlike built-in events (like email opens), custom events are whatever you decide is important.

Why bother? Because custom events let you send messages based on what actually happened—not what you hope happened. That means less spam, more relevance, and a much better shot at getting noticed.

A few real examples: - A user adds an item to their cart but never checks out. - Someone finishes a certain level in your app. - A customer triggers a support ticket.

If you can track it, you can use it to make your outreach smarter.


Step 1: Decide What Actions Actually Matter

Before you go wild with event tracking, figure out which actions deserve a follow-up. Not every click or scroll is worth a message.

Ask yourself: - Will this action tell me something important about the user? - Can I respond to this action in a way that’s helpful (not annoying)? - Does this tie to a business goal—like more purchases, fewer cancellations, or better onboarding?

Pro tips: - Start with 1-2 custom events. You can always add more later. - Don’t set up a custom event just because you can—only do it if you’ll actually use it.


Step 2: Get Your Data Into Iterable

This is where most people get tripped up. For Iterable to trigger messages from a custom event, you need to send the event data into Iterable first.

You have a few options: - API calls: Your app or website makes a direct POST request to Iterable’s events API whenever the action happens. - SDKs: Iterable has SDKs for iOS, Android, and web. Handy if you’re already using one. - Third-party connectors: Tools like Segment or Zapier can send events to Iterable if you don’t want to touch code.

What you need: - An eventName (e.g., CartAbandoned, LevelCompleted) - The user’s identifier (usually email or user ID) - Any data you want to use later (like product name, price, or timestamp)

Example API payload: json { "email": "user@example.com", "eventName": "CartAbandoned", "dataFields": { "cartValue": 74.99, "items": ["Red Shirt", "Blue Jeans"], "abandonTime": "2024-06-20T15:00:00Z" } }

Gotchas: - If you send events with inconsistent data (say, sometimes with an email and sometimes with a userId), Iterable gets confused. Pick one ID and stick to it. - Make sure your engineering team actually sends the event every time the action happens. Missed events mean missed messages.


Step 3: Confirm Your Event Is Showing Up

Before you set up any messaging, check if your custom event is actually arriving in Iterable.

How to check: 1. Go to a user profile in Iterable who should have triggered the event. 2. Scroll down to Events. Look for your custom event name. 3. Click the event to see the details. Make sure the data looks right.

If it’s not there, double-check your API calls, SDK setup, or connector configuration. Don’t move on until you see the event show up.


Step 4: Build a Triggered Workflow

Now the fun part: actually sending a personalized message when your event happens.

Here’s how: 1. Go to Workflows in Iterable. 2. Create a new workflow, and set the trigger as your custom event (e.g., “When CartAbandoned happens”). 3. Add a filter step if you only want to message certain users (like those who abandoned a cart over $50). 4. Add a send action—this could be an email, SMS, push notification, whatever makes sense.

Example workflow: - Trigger: CartAbandoned - Filter: cartValue > $50 - Action: Send email “Forgot something? Here’s 10% off.”

Pro tips: - Don’t send a message instantly. Waiting 30-60 minutes feels less desperate and gives users a chance to complete the action on their own. - Add a check to make sure the user hasn’t already completed the action (like buying the product) before you send the message.


Step 5: Personalize the Message With Event Data

Here’s where custom events beat generic marketing hands down: you can pull in data from the event directly into your message.

Use Handlebars in Iterable: You can reference event fields in your email, like this:

Hey {{firstName}},

We saw you left these in your cart: {{event.items}}. Total: ${{event.cartValue}}.

Come back and finish your purchase!

  • If you sent an array (like items), you can loop through them with Handlebars.
  • You can use conditionals to change the message based on what’s in the event.

What to avoid: - Don’t overdo it. Just because you have 10 data points doesn’t mean you should cram them all into your email. - Avoid creepy stuff. If it feels intrusive, dial it back.


Step 6: Test Like a Skeptic

Never trust a live campaign without testing it yourself. Preview the emails, trigger the events manually, and check the user profile to make sure everything lines up.

Checklist: - Does the message go out only when it should? - Are the right data fields showing up in the message? - Is the timing what you expect? - Is there any chance users might get spammed with repeats?

Pro tips: - Use test user accounts (with your own email) to see exactly what happens. - If possible, have someone else review the workflow—fresh eyes catch mistakes.


Step 7: Monitor and Iterate

Set it and forget it? Nope. Custom events are only as good as the results they drive.

  • Check open rates, click rates, and conversions. If nobody’s biting, tweak the timing or the message.
  • Watch for over-messaging. If users are getting too many triggered emails, dial it back.
  • Don’t be afraid to pause or kill a workflow that’s not performing. You can always try something else.

What Works, What Doesn’t, and What to Skip

Works: - Triggering messages based on clear, meaningful actions. - Personalizing messages with event data (but not overdoing it). - Starting small and building up as you see what works.

Doesn’t work: - Tracking every possible action “just in case.” - Sending messages the moment an event happens—timing matters. - Copy-pasting generic templates without tweaking them for your brand.

Ignore: - Overly complicated workflows. If you need a flowchart to explain it, rethink your approach. - Shiny features you don’t actually need. Focus on what will move the needle right now.


Keep It Simple and Iterate

Custom events can make your messages smarter, but don’t get lost in the weeds. Start with one useful trigger, make sure it works, and build from there. Iterate, test, and be honest about what’s actually useful to your users. That’s the real secret to “personalization” that isn’t just a buzzword.