We are building an application that should be distributed in the Salesforce AppExchange. Part of it is allowing the marketer to trigger journeys based on a custom event that we provide, something we call a "Neura Moment".

According to the API docs, we should create an "Event Definition" for each specific event that we would like to present in the journey builder. This way the marketer would be able to use it as an entry source.

I know that in order to create a "visible" API event we should provide sourceApplicationExtensionId with a specific value, which we can find by querying event definitions API for existing examples. Then we should somehow decide on which sourceApplicationExtensionId to choose in order to use in our "create" request.

I can't understand which of the values among the existing sourceApplicationExtensionIds we should pick, specifically when I think of an application that is supposed to be distributed in different organizations through the AppExchange. Who can promise that a suitable id will exist?

Maybe the only way for making sure it actually will be visible for the client is to create Custom Entry Source.

Please help :)



I have been down this road and would recommend you use a Journey Builder Entry Source from your Installed Package rather than trying to create a new Event Definition via Api or otherwise. Alternatively, you can use a Journey Builder Activity if this is something meant to be triggered from within the flow of a Journey.

Without understanding the architecture of what you hope to achieve it is difficult to say what approach is best, but utilizing one of these Journey Builder extensions is going to much easier and more scalable than creating and managing custom Api entry events for each customer AND each journey for which they are needed.

Documentation can be found here:



It's Nikita Sherman, I'm sorry that I'm answering from a different account and not as a comment.

Mike, I think I got what you're saying(at least partially).

Regarding the architecture:

  1. Our idea was to create for each customer list of event definitions upon application install.
  2. Then the marketers could use the event definition as an entry source for their journeys.
  3. Our service would distribute for each client a matching event via events endpoint when an event occur on our side. - I don't see how this part can be canceled in any of the scenarios.

Regarding the Custom Activity: This is for sure not something we need in our case because we would like to trigger the journey entry.

As you said we might need to create Custom Entry Source instead of using the predefined eventDefinition approach.

Mike, can you please describe in more details what was the reason that you chose to neglect the event definition path?

Thank you for your answer!

  • Your custom event definition when triggered will trigger for EVERY journey it is in. If you want to trigger only a single Journey, you'll need a separate event definition for each Journey. The entry source when placed into a Journey will create a Journey-specific event definition for that Journey along with allowing you to do some work on your back end in its configuration. – Mike Mar 12 at 22:01
  • Thank you Mike! We actually would like to trigger EVERY journey, unless there is something I'm missing. The only thing I'm concerned about is that we predefine a data extension (for each event definition) that will be shared cross journeys. I wonder if it's an issue. – Nikita Sherman Mar 13 at 8:11
  • Just to clarify the reason behind EVERY journey. For example: we can identify when a user arrived to work - So we would like to trigger all the journeys that are based on "a user arrived to work" event. BTW do you know if it's possible to override the auto generated event definition to a fixed one in the Custom Entry source? – Nikita Sherman Mar 13 at 9:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.