I am designing an email campaign for a company - AREXONE. For this, I am using the journey builder functionality of marketing cloud (exacttarget). But, while designing the workflow - I encountered a serious problem - how should I determine which audience have registered at my website - s682586167.websitehome.co.uk/axtria/marketingiq/portals/Portal%20Page%203%20-%20Sampling%20Site.html.
As you can see, my website is not hosted by salesforce and as such I can only feel that by creating a custom activity can I achieve my goal. Hence, I want to create a custom activity which can collect the data from my website in real time and update the DE to determine which audiences have registered to my website. I also wish to trigger send a confirmation email.

Note:- This is my first time designing a custom activity on journey builder, so please forgive me if I ask some stupid questions.

Note: I have tried to attempt at the above problem statement by creating a web-to-lead form in salesforce and then use marketing cloud connector to link the salesforce contacts with my synchronized data source in marketing cloud. But since a synchronized DE cannot be used in a journey builder and a filtered DE won't update its values once it enters the journey builder - I decided to try a different (and more convenient) method.

EDIT After deploying my app on heroku (using Markus' method), I am encountering an error when I test my journey.

error incurred at jb-canvas

My code is here.

At appcentre, in the application extension, the endpoint URL I specified was - "jb-custom-split.herokuapp.com" For jwt configuration, the jwt.js file has the code-

'use strict';

module.exports = (body, secret, cb) => {
    if (!body) {
        return cb(new Error('invalid jwtdata'));

    require('jsonwebtoken').verify(body.toString('utf8'), secret, {
        algorithm: 'HS256'
    }, cb);

The sand key has been configured and added.


1 Answer 1


You can build a custom split activity which reads your website's data in the split's backend. The input argument of your custom split activity needs to be something identifying a customer on your website, which is also available in the journey. This could be the subscriber key or the email address, etc. Then the split's backend checks your websites database and returns the path accordingly.

I created something similar, that reads data from Salesforce Service Cloud. However, you can use the code and just have to swap the part reading from Service Cloud with code that reads from your database. My example includes a readme with all the steps necessary to set it up. You can find it on github.com/mslabina/sfmc-servicecloud-customsplit.

IMPORTANT: The documentation on creating journey builder split activities is rather outdated and the type you need to specify in the config.json is incorrect. You need to use RESTDECISION for a decision split to work.

Related documentation articles (that are partially outdated unfortunately):

  • Markus, I think that the syntax of require.js file has many errors. Also, rectifying them is almost impossible due to lack of any indentation (neither spaces nor returns)!! Due to this the app is unable to be deployed on heroku. Please recommend a solution to this. Commented Jun 23, 2017 at 9:08
  • Require.js is an external library which works fine. There is no indentation as it is the minified production version. However, if you still think there is an issue (which I'm pretty sure isn't the case as I'm using the same code) please raise an issue for the require.js project (I added the link in the comment on github). Commented Jun 23, 2017 at 10:15
  • @Marcus, I did exactly as you instructed in the manual and deployed the app at heroku (and it's working fine), but in the journey builder canvas I receive the following error - "One or more custom activities failed to load. Verify that custom activity endpoints are valid and refresh the Interaction." Commented Jun 27, 2017 at 15:03
  • Please check out the developer tools of your browser for any errors. Please share them here (additionally please check for errors using this extension for google chrome: Salesforce Marketing Cloud Developer Tools). Did you set everything up correctly? Seems like your endpoint isn't configured correctly or the JWT feature isn't configured correctly. Commented Jun 27, 2017 at 19:13
  • I resolved the above issue by replacing "http" with "https". But when I test my journey, an error message (as depicted in figure above) is displayed. Commented Jun 28, 2017 at 7:11

You must log in to answer this question.

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