Skip to main content

I'm trying to record user source on the profile and would like to be very specific about it (form name if via form, survey name, import source, etc). Iterable has the very generic Import, API source types, but they don't tell me where that data came from in creating the user.

I also want to make sure my recorded user source isn't overwritten, because it's no use recording the source if it's just going to be lost.

So first step, I created two fields: userSource and lastSource. For each incoming source, a value gets written to lastSource, then a Journey picks up that profile change and does a quick check: is userSource set? If not, I set it equal to lastSource using the Update Profile tile and a JSON payload: { "userSource" : "{{lastSource}}" }

That part works great.

The part that's failing is when I try to use the same method to set lastSource.

For example, I have a custom event called formSubmit and a datafield within called formName that contains the full form name as brought through the integration. I thought I could get away with { "lastSource" : "Form - {{formSubmit.formName}}" }, but that just returns a value of "Form - ".

Is this just a limitation of handlebars that they can pull from user profile but not custom events? If so, my solution might be populating lastSource directly via the integrations, though that's an extra API call.

Or is there some formatting I'm getting wrong here?

Be the first to reply!

Reply