Showing Offers and capture response in external web channel for a specific customer
the simplified version of the requirement/use case I have in my project is as below
After Customer login into company's self service portal (built using different language, not using Pega), in some section/portion of the self service portal dashboard, we need to show top 3 offers for that specific customer (against customer id), and Customer will have option to select any one of those.
Pega CDH is running in different server, where Pega Marketing pack is also installed.
I can think of 2 ways to implement this
Option 1: Using custom REST/SOAP service for fetching offers and responding back the customer response. Headless decisioning using real time data via invoking service of Pega CDH from the external web application. Sample implementation in DMSample just like below
A customer who logs in to a website enters a user name (ID) and password. The Pega REST service calls the ServiceActivity activity in the DMOrg-DMSample-Int-Decision class and passes the customer's ID. The ServiceActivity activity then invokes the DecisionFlow data flow for this customer. The NextBestAction strategy that is referenced from the DecisionFlow data flow selects the banners to display on the website. When the customer clicks one of the banners, the ResponseStream data set that is the source for the StreamResponseFlow data flow picks up this event. The ResponseStrategyWithoutInteractionID strategy that is referenced from the StreamResponseFlow data flow gets a list of the customer's decision results from decision time as well as the customer properties that rank the banners by using adaptive models. This data is used to update the previous results (the pxInteractionHistory data set) and refine the adaptive models (in the pxAdaptiveAnalytics data set).
Option 2: Real-Time Container based Marketing Campaign. where the external web application can utilize the sample "realtimecontainerscript.js. and the external web application will call "/prweb/PRRestService/PegaMKTContainer/V1/Container" REST service to get the offers and then will call "/prweb/PRRestService/PegaMKTContainer/V2/CaptureResponse" REST service to capture customer response, while the Cmpaign rule will be in running mode.
I prefer the 2nd option, because I don't have to create any custom web service, also an offer flow can be initiated by external web application by calling the service "/prweb/PRRestService/PegaMKTContainer/V1/CaptureResponse/Initiat", which is not possible in option 1 easily.
Please suggest which option is better any why, and if any other better approach is available.