It's surprising that there is no First name and last name field from RT event table. So I decided to extend the RT event table by adding First name and Last name field to map the data from the SOAP API. I don't want to map the data from CTX as it's difficult to export the CTX data to CSV .
I used <%= rtEvent.firstName %> in HTML to populate the first name from SOAP call, however, when I receive the email, it says this field is "undefined". Has anyone has successfully populated the fields from the extended RT event table?
You can create a link in the custom rtEvent table as follows:
<element integrity="neutral" label="Recipient" name="recipient" revLink="rtEvent"
<join xpath-dst="@email" xpath-src="@email"/>
More details: Database mapping
You can retrieve firstname from the linked recipient table. It can be like the following:
<%= rtEvent.recipient.firstName %>
It works for me. Make sure you publish the delivery template after you make changes. If the contact is a new one, which is not available in the recipient table that will not work.
Check when did you extended the field. Sometimes it will take upto 24hours to capture data in newly created fields. Hope this helps.
Have you saved your firstName in your rtEvent table. As you have created firstName fields in your rtEvent table, please check if values are stored in your table.
When you do <%= rtEvent.ctx.firstName %>, it fetches data directly from the event recieved from webservice call and that is reason you get value.
Thanks for sending this over. I wonder how you get to see the "Recipient" from the Available fields. I only see the Real time events fields below. It seems like you linked RT event table to the Recipient table? If so, How did you link these two tables?
I just tried using <%= rtEvent.recipient.firstName %>, it didn't work as there is no recipient table in RT event.
When I use <%= rtEvent.ctx.firstName %>, it works as the first name stored in CTX. However I have extended the RT event table and added the first name field, so I guess the syntax will be <%= rtEvent.firstName %>, the following is the code I used, but the first name is not populated in HTML email.
<rtEvent type="welcome_member" email="firstname.lastname@example.org" firstName="Jason" wishedChannel="0">