As customers engage with your product or service, you’ll likely need to send them the same messages more than once, usually after a specific event occurs, or they take a certain action. For example, sending them an order confirmation after they make a purchase, or alerting them that a process has completed.

Event based messaging lets you do exactly that. Create a Chat, Post, Mobile Carousel, Push, Custom Bot or Banner message that is triggered each time an event is tracked, with built in protection against over-messaging. Event based messages can also contain information from the event, so even your notifications are personalized.

Important: To send transactional messages like this, you must be tracking events in Intercom.

You can track events with the JavaScript API, Google Tag manager, the REST API, or apps and integrations. If you’re unsure how to track events in Intercom, you may need assistance from a developer or engineer. We recommend checking with whoever installed Intercom for your company.

Create an event based message

Start by creating (or editing) a Chat, Post, Mobile Carousel, Push, or Banner message (in this example we’ll use a Banner).

To configure how this message is triggered by an event, click “+ Add event rule” under “When” in the rules tab:

Note: This must be a dynamic message, not a fixed (one-off) message to use an event trigger.

Then, select the event that should trigger the message. In this example we want the message to trigger whenever an upload is completed, so we can encourage the user to share it:

Tip: You can choose to send a message only the first time an event occurs (after setting the message live) or every time.

For this example, we want our message to show every time. It’s an event that we’ll always want to notify them about:

Note: Events that have already occurred will not trigger the message, only those that are tracked after the message is set live.

You should also define a maximum number of times they can receive the message.

Maybe it’s a reminder that you want to send two or three times, or maybe it’s a notification that should always send unless you stop the message:

Here are some other uses for event based messages:

  • Send a mobile push to your customers when a task is assigned to them.

  • Send a mobile carousel when they unlock a new area of your app.

  • Send them a banner notification if their trial is about to expire, or their payment failed.

Next, define how often your customers should receive the message.

Note: To prevent over-messaging, the maximum frequency is once per hour, which is exactly the limit we want for this example:

Important: If more than one event is tracked during the specified period, the message is triggered by the first one, and the rest are skipped. The next event tracked after that period will trigger the message to be sent. You can see in this example, the first and fourth events trigger the message as they are an hour apart:

Filtering your message audience based on event metadata

If you track metadata with your events you can also add rules so the message will only be sent when certain criteria are met.

For our example we’re notifying customers about a finished upload, so we can ensure it only sends on uploads that took longer than 2 minutes, where they’ve left the page:

Pro tip: We highly recommend tracking event metadata for more than just filters. You can also include metadata in event based messages for a more relevant, personal experience. Learn how to track event metadata in this article, or read on to learn about including it in messages.

Where rules like “Time on page” or “Current URL” can’t be used with When rules:

With the event trigger configured, you’re ready to compose your message. 👇

Composing an event based message with metadata

Composing a message that sends when events occur, is very similar to composing any message in Intercom, with two additional considerations ✌️

The first is you can include event metadata in the message body (or subject for a mobile push). Just click the {...} menu:

Then select the appropriate metadata. In this example (which sends when a file is uploaded) you could include the file name, or a direct link to it.

Important: Metadata may take 24 hours after it is first tracked to appear as an option in the message composer.

We recommend including event data wherever relevant for more tailored and useful messages. You can use metadata to include other important information, like:

  • Purchase details.

  • Shipping information.

  • Password reset links.

  • And more...


  • Metadata isn’t formatted in your messages, so ensure it is tracked in the way you’d like it to appear. E.g.: “$9.99” for price, instead of “999”.

  • You can only include metadata in the message after selecting an event as your “When” filter.

  • An event can be tracked with up to 10 pieces of metadata.

  • Nested metadata values aren’t supported, read this article to learn more.

The second thing to keep in mind, is that your customers may see this message multiple times. So while it can (and should) be personal, they’ll be aware that it is automated and transactional. We recommend using a much simpler, more direct tone of voice. 👌

Finally, add any other audience filters as you normally would, set a goal if you'd like, and schedule your message:

Pro tip: You can use other events as audience filters too, read this article to learn more about the difference between using events as triggers, and using them as filters.

Event based messages in Series

Events can also trigger content from a rule block in Series:


  • No message in a series can be sent to a user more than once.

  • Event based rule blocks will not cause people to re-enter a series.

  • Event metadata cannot be included in messages in a series.

What’s next?

Did this answer your question?