Expand my Community achievements bar.

Transactional messaging on V8

Avatar

Level 1

Hi All,

 

I hope you're doing well.

 

I have been working on Transactional Messaging in the V8 instance and followed all the steps outlined in the Adobe documentation—from setting up the Control/Execution instance to executing an email using a SOAP call. Everything worked as expected.

 

However, I have a query regarding how this feature can be utilized for real-time executions, such as cart drop-offs. The documentation walks through the process manually, without any mention of integrating with a live website or similar setup for real-time testing. Could someone provide guidance on how to achieve this?

 

Additionally, can someone explain what rtEvent.ctx is and where this data gets stored?

 

Regards,

Neelam

2 Replies

Avatar

Level 2

Hi!

 

Adobe Message Center is basically a SOAP Web Service. So external systems make calls to the your Message Center web host using the "PushEvent" service. The payload that they must push to that service includes an XML structure that starts and ends with <ctx> - everything in between the start and end tags represent dynamic data that you map into your Message Center template.

For example, if your website called Message Center with this payload:

<soapenv:Body>
  <urn:PushEvent>
     <urn:domEvent>
        <rtEvent wishedChannel="0" type="com.myorg.basketcheckout" email="customer@email.co.uk" origin="TestOrigin" externalId="TestExtId">
            <ctx>
              <customer>
                <firstName>Bob</firstName>
                <lastName>Smith</lastName>
              </customer>
            </ctx>
        ...
        

 

You'd have a template that looked something like this, which would result in a personalised email being sent using the email address passed into the SOAP call:

Hello <%= rtEvent.ctx.customer.firstName %> <%= rtEvent.ctx.customer.lastName %>,

Thanks for visiting our website today!

...

So the content of "rtEvent.ctx" isn't "stored" anywhere - it's the actual personalisation data that your external web site is sending when it calls Message Center. Message Centers job is simply to substitute that data into placeholders that you define in your templates.

 

In terms of "real life" implementation, we have an Azure middleware component that sits in front of Message Center, listening for events from our website. These events are basically JSON messages that are generated by the website when a customer does something - like checks out a basket or asks for more information. These events contain information relating to the activity, such as the customer's name, email address, what items they checked out etc. When our middleware picks up an event, that information is mapped to the "rtEvent.ctx" XML and that whole payload is submitted to the Message Center SOAP URL. The result is a "real time" email sent to the customer, with all the relevant data in place.

 

One of the biggest challenges for our organisation was to understand that Message Center has no "data store" as such - it doesn't work like traditional Adobe Campaign. All of the personalistion data, and logic for driving personalisation, must be provided in the playload submitted by the external system.

 

The reason you don't see much detail about this in Adobe documentation is that it's really up to you how you call the service. Different organisations will have different technologies driving their websites, distribution centers etc, and would typically have integration teams who know how to bring a SOAP based web service into their integration architecture.

 

Does that help at all?