we have a scenario where the html for the email and the users will be provided by some external system and wants to use the campaign only to send the emails( push).
What is the best approach to do that or if you can point me to the right location.
You can design workflows that would import both the recipients (and store them in the database if needed) and trigger a delivery with the imported content.
You can also directly create a delivery where you would choose "target from a file" when defining the email target. In any type of email delivery you can import content from an HTML or ZIP (with html/css files) files.
What is your version of Adobe Campaign? You should be able to find useful information from the documentation home pages for your version:
Do not hesitate to share more details about your requirements so we can point you to the right direction.
The reason that it want to use campaign is to get the delivery logs with bounce backs and other items.
The scenario is that the emails ( HTML ) is getting generated on the fly based on a recomendation engine and its a lot and complex logic that is done to generate that html. Also the html is customize to each and every users ( they get different content based on their preferences)
Currently they are using another provider by calling their API to send ( by sending the html and User email )
with that said whats the recommended approach or the best way to handle this ( just by switching the current email provider)?
As far as I understand your need, the "cheapest" way to do it (at least if you have the AC classical version without the Message Center module) is to define a workflow or web service in which you call the nms:delivery methods submitNotification and/or submitDelivery.
Documentation for JSAPI is not free, subject to license, so I can't give you it here, please see with Adobe support they provide it in your download center.
It is what I used to do for lot of use cases similar than yours.
submitNotication can call either continuous deliveries or standard/recurrent deliveries, depending on your frequency / realtime or batch load/send cases.
As Florent mentioned for regular workflows activities standard objects, with the target people to import, JS activity can do more complex things such as replacing the body and title messages dynamically. You can define the html body and raw text body either with XML or JSON syntax. (well, JXON).
But if you have chance to have more modules, not cheapest way to do it, as Amit recommended you, I strongly suggest to have a look on:
Thanks Jean-Serge for the different option that you listed on your reply.
So for all the XML/JSON option and JS activities the JSAPI would be right documentation correct? I guess I can put a ticket with Adobe Support if none of you guys in this thread can share that. We are using Campaign 6.1 the cloud version.
We do have the Message Center with our license so if that is an option I want to explore. Just keep in mind that in my scenario everything ( including the email address) will be get push by this external system that does the recomendation on the fly and build separate html for each user.
thanks In advance
Yes please download the JSAPI documentation from your download center section on Adobe Campaign extranet site; it is very useful and even mandatory for technical sophisticated stuffs.
And read the 2 methods submitNotification and submitDelivery, I am sure it will be clearer for you.
MessageCenter uses also submitNotification as well in its technical workflows, but it comes with many tools to monitor large volume of transactional messages (realtime applicative emails and batch also). So this option should be considered for your 12 M per week, most of all if these are realtime emails.
But please note that it is your marketing instance MTA that will be leveraged for delivering the messages. And if you need better performance and realtime, it is better to have a dedicated instance MTA (message center) so your realtime messages are not impacted by your marketing campaigns deliveries (MTA/SMTP bandwidth) or preparation (the applicative server).
In both cases, the MTA relies on SMTP processes, it is mainly a question of volume to consider separate instances or not.
I did Download that JSAPI Doc. I am assuming its that .chm file right? I will go through that and keep that as my reference document.
So to get to a conclusion the Message center would do the job in my scenario? so this outside Engine ( recomendation Engine) should be able to call the Message Center and push the messages or from Message center I would need to pull the messages from the engine?
Even if you have the Message Center module included in your Adobe Campaign 6.1 Cloud hosting contract, it could be quite expensive, because AC Cloud hosting fees are usually made on volume sent : so please check again carefully with your Adobe contact what costs these 12 millions of mails per week for your company, using Message Center.
And as Amit said, you may consider using alternative solution as Amazon SES if you don't need sophisticated features (you don't personalisation in your use case, you don't use html integration/customization blocks, nor interaction module).
But I do recommend having a look to Message Center if you think having other needs, other applications needing to have a transactional messaging system.
In your current use case, your recommendation engine will call the standard SOAP web service with some content parameters, the email address, the subject title and the html body. (Well, you should also have a parameter for raw text body, except if you use the standard possibility to generate txt from html, but usually better to do it yourself).
The solution of using JS (submitNotification) directly in a workflow of your marketing instance, while working technically speaking, is not adapted to large volumes to send because it would impact too much your standard campaigns management performance, as Amit Florent and me pointed out.
Hey Jean / VendimB
I've been following this thread and I just want to make understand.
If VendimB has an app that will be making a standard SOAP call with all information (email address, subject, etc) and passing that into Adobe Campaign on a regular basis. Campaign shouldn't have any issues handling that out of the box even if the volume is within 500K batches correct? or are you suggesting that Message Center be used to handle the SOAP call?
It is not a problem of SOAP call, because in allcases (Message Center or specific workflow of batch import/or dedicated WS method call), at the end there is call to submitNotification method call.
But there are 12 M of mails per week, so approximately 1.7 M per day, so it is enough large. Hence if Vendib needs real-time response time, he should use a dedicated instance, to guarantee realtime performance.
Message Center solution having distinct MTA servers than the default marketing instance, it can ensure better realtime response time, and moreover he will get other services as monitoring etc. And VendimB has already the module license included in his contract, so no problem for him (except to check the volume to send with his Adobe sales contact).
In the case of VendimB would not need realtime response time and if he could leverage the recommandation delivery sending in batch mode by importing a file of contact/email contents, it is like a standard campaign, and so he doesn't need to use submitNotification and he can generates a standard targerData personalisation and standard recurrent or continuous delivery.
(Not to mention that Message Center has also a batch mode for rcp Events).
If the volume would be, let say, about 10.000 mails per day, it could be considered to use same instance, to my mind, and have more or less acceptable response time with WS calling submitNotification directly.
Because implementing submitNotification is very easy, VendimB could have a try, and compares it to Message Center functionalities (and Amazon SES costs/functionalities suggested by Amit, as well).
do you have any example code on calling the soap just to push emails? I can look the documentation and see but I was just wandering if any of you have some sample to show how to send HTML Email content and receipient to SOAP service to send the email
So many cases that it is a bit difficult to give you correct advices and exemples codes depend on choices made.
Perhaps do you need some help from Adobe Campaign consultant team or AC integrator companies.
But let's try to sum up the different cases.
True real-time needed
Your source application and/or recommandation engine calls in real-time a Web Service (Adobe Campaign SOAP Call) for every message to an user, it means 1 SOAP call "sends" 1 message delivery to this contact.
So the WS response time must be excellent.
It means usually, for a medium volume of WS calls per day, let say, a few hundred of thousands (but it is up to Adobe company or Integrator companies that would accompany you to confirm it, even it is written as is in Adobe Campaign Message Center documentation).
It means also that you should have dedicated MTA servers/instance for this realtime behavior, not using the marketing instance.
Technically speaking, the html content (or the raw text content), in your case, is a WS parameter (XML for rtEvent Message Center, and XML or JSON for direct call to SOAP Adobe Campaign services).
In your use case, the delivery template contains nothing else than the personalisation code passed by parameter for the html content (as well for the raw text content).
Please refer to Message Center documentation if you want to know the development involved.
In case of small volume (not your case!) not using Message Center, the basic principles are the same:
1. a Web Service (you define the method to call in the methods section of the dedicated delivery mapping to use, as better way to implement it), that stores calls parameter and creates lines in the mapping target table (recipient or specifically dedicated schema)
2. there is a workflow that basically loop regularly (every 1 up to 3 minutes) on the lines created in the mapping target, and then do that kind of things:
3. the template called must be a Continuous delivery
But again, because Message Center is included in your contract, it is far better to use it than specific coding.
Batch mode only needed
You can manage high volume (as millions of mails) with your marketing instance, because all the messages to your contacts are sent in "slices", using the all the power of Adobe Campaign. Defining waves, using recurrent or continuous deliveries (to my mind continous is better).
Basically, an easy solution is to create a workflow with:
an activity to load the template
an activity to load the target contacts list
So for instance, the delivery content can be set by your JS loop either by using one of this method:
Regarding the targets list load activity, Florent has indicated in his post the different ways to do it, and I gave it also hereinbefore.
Hope I could help you enough for your architecture choice.
thanks for the explanation above. I think I am still a little confuse as the options above are more of if you are making the calls withing the campaign. My initial question and the requirements are as follow
I have an application that based on your preferences generate ( formulate) and html email for each user ( since everyone choices are different).
there is a Jenkins job that run weekly that will kick out this content to an Email provider ( in this case I want to use Adobe campaign so we can track the bounce back/opening etc)
what is the approach to accomplish that from the external call to have adobe campaign do the email sending/delivery?
do we need to set up any template in the campaign in this scenario or the html content that the job sends is enough to pass to some SOAP? the JSAPI seems to be used only internal within workflow and in my requirement the application will push ( call the campaign)
let me know if anyone can assist
Eventually you just gave more information as requested so we could help you better:
You wrote that "Jenkins job that run weekly".
So it means you don't need real-time behavior but batch mode only (the 2nd use case of my post of 1st Sep).
So please firstly, evaluate the need to do the task by web calls (SOAP calls), so 12 millions of calls on 1 day of the week, compared to a batch load of html contents on a file server acceded by Adobe Campaign applicative server (either through FTP or shared folders or Amazon S3, whatever you preferred).
Due to your use case, I strongly advise to use file folders rather than SOAP calls in that short time for such huge volume.
And so, you can do all the stuff with your marketing instance, without Message Center needed (even though there is a batch mode for rtEvents as well).
Please read again carefully what I wrote on 1st Sep in "batch mode only".
Because it doesn't seem clear, I suggest you first to modify your Jenkins job in order that it writes the html personalized data in one file per user message, in a dedicated folder.
Then do a workflow to import these html personalized contents into Adobe Campaign:
load the customized/personalized html message (if possible also raw text message, otherwise you will be able to generate with JSAPI method), either by using FTP server so workflow Transfer file activity or by using shared folders so use the Data Collection Import activity in order to load the files from that folder.
Put these different html customized messages in a dedicated table, or use the temporary xml context,as you want (dedicated tables if you want to keep history of messages or do specific reports).
In any case, you have to define the relationship between the html content to the delivery mapping targeted (either NmsRecipient or specific one), so in your workflow the additional data is linked.
Then, your delivery template is quite simple: the body is made of only one line such as <%= targetData.myContent %> that's all.
It is one way to doing that.
It avoids for you complexity of "real-time" behavior, with one call per delivery message, either using Message Center or direct submitNotification method directly.
Hope this helps.
I am trying to send an email using submit delivery method but getting an following error.
09/04/2018 09:35:41 SOP-330011 Error while executing the method 'SubmitDelivery' of service 'nms:delivery'.
09/04/2018 09:35:41 DLV-490051 Failed to analyze delivery (identifier 'unknown').
09/04/2018 09:35:41 DLV-490050 The XML document to add to the scenario does not have a valid format.
09/04/2018 09:35:41 Element 'targetPart' is unknown (see definition of element '/targets' in schema 'Deliveries (nms:delivery)').
Can I pass targets and content inside submit delivery method?
Yes, but please may you create a new ticket with your own code shared, on order to help understand the error for you?
Otherwise with older ticket it could be confusing (other subject.)
I can see in your post that we are able to pull the html content from campaign.But is it actual email content or just template we are getting out of that html?
Because I have a requirement to pull out the email content sent to the customer from campaign,Is there any way to pull the actual email content from campaign?If Yes, Can you please give me details on it
It is another subject that this initial thread subject, so I prefer not to go on with this closed ticket and keeping your other ticket below as main thread:Re: Adobe Campaign- storing delivered message content to a external file system.
Are you planning to use personalization in Adobe campaign?
What will be the frequency, how many email i an hour for peak hours, Are you looking for Real time messaging?
there are so many question which will decide the best approach.
If you are planning to use Real time messaging, you have to use on Message center, with customisation to consume HTML.
If the volume is less, you can use the method suggested by Florent.
If you just want to use Adobe campaign like esp without using personalization, then why not use a simple SMTP server instead.
will not need the personalization. Will me about 12 millions emails weekly ( as this is some recommendation that goes out). as far as using the SMTP not sure what you mean by that . SMTP with another client other than campaign or using the AC as smtp? if thats an option I want to explore that if you can point me to a correct direction. all we need to track for this emails is the outbounds /bounce back and open rates.