I'm struggling with the Journey Builder documentation on firing events. I believe it's wrong, or perhaps it's right and I'm wrong.

As I understand it, an Interaction begins by firing an Event. When the Event is fired it will be heard by a Trigger, which prompts the Interaction to begin. Events are typically fired when an update is made to the data extension that is linked to the Event (the Event Source).

Now, let's turn to the documentation which states:

Events are fired using Contact Builder or Automation Studio.

Contact Builder

Incorrect statement. Event's aren't fired using Contact Builder. Events can be fired by using the contactEvents REST API method which is used in conjunction with an Event in Contact Builder. This method enables you to post data from an event and associate that data with a contact.

An Event needs to exist in Marketing Cloud before data can be posted to it. Events are created in Contact Builder and use a sendable data extension as the entity to store the event data. So, it's not actually a correct statement that "Events are fired using Contact Builder" — they're not. Technically speaking, they are fired by the contactEvents method.

Automation Studio

It's true that an interaction can be started by Automation Studio but, but not by firing an Event. At least, not an 'Event' as we know it.

Events are created in Contact Builder and use a sendable data extension as the entity to store the event data.

While Automation Studio has a 'Fire Event Activity' it's not actually firing an actual Event (that is, an Event in Contact Builder).

Fire Event Activity in Automation Studio
(source: exacttarget.com)

This 'Fire Event Activity' has actually nothing to do with an Event in Contact Builder. You link it to a Data Extension, but I belive this can be any Data Extension; it doesn't need to be the linked data extension where the serialized event data is created (which is used in an Event).

Which Option To Use

I guess, in practice, you would use the contactEvents API method to start an Interaction when you are adding data that's related to a Contact (for example, when a customer purchases a product on an eCommerce website).

You would typically use Automation Studio when a record is added to a Data Extension that's not necessarily directly related to a Contact (for example, adding a new product to a catalog which would trigger a 'new product' email to be sent to Contacts in an Interaction).

So am I right? Is this clear? Or just clear as mud?

enter image description here

  • Regarding AutomationStudio - I have found it helpful to think of the AutomationStudio FireEvent as - run the interaction on the DataExtension that has been used with the ContactBuilder and the JourneyBuilder Interaction. Dec 17, 2014 at 23:24
  • I feel your pain, got the exact same issues :-(
    – Bidstrup
    Oct 27, 2015 at 10:23

1 Answer 1


For simplicities' sake, the second option is the way to go. I understand it can be a bit 'clear as mud'. :)

Fire Events point to a sendable DE.

That sendable DE should be in the contact model (Contact Builder) as a 'root' data source. Generally you'd like it mapped 1:1, though that is no longer a requirement. Unless you've got a specific use case for 1:n, i'd just stick to 1:1 by default.

The Sendable DE is mapped to the journey via the Event Administration (formerly Trigger Administration) in Journey Builder - a simple way to do it is to have the event criteria map 'where email address is not null' - effectively, inject all subscribers who are new in the DE (since the last fire event).

All that said, as of last release, fire events are no longer required - you can configure all of that stuff in Event Administration directly in Journey Builder: Event Administration

You can select the data sources from what is configured in Contact Builder, Define how often to inject new subscribers, and what criteria a subscriber has to meet to enter the Journey.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .