IBM Cloud Satellite: Build faster. Securely. Anywhere. Read more

Determine target audience and run marketing campaigns


A business runs marketing campaigns to promote products with the objective of boosting revenues. The campaigns need to reach the appropriate audience on the appropriate channels for maximum impact. A consumer who isn’t interested in a product will ignore the campaign offer. This requires integration between an analytics tool that determines the target audience and a campaign automation tool that runs campaigns.

This developer pattern demonstrates how to integrate Watson™ Studio and Watson Campaign Automation to run successful marketing campaigns.


How many times have we received offers over email, SMS, or phone calls on products we are not interested in? This wastes time for prospective customers, and there is the chance of a customer missing out even when the offer is something that might truly be of interest.

Any marketing campaign must target the right audience for maximum effectiveness. This requires advanced analytics to be run on the various sources of data – customer purchase orders, customer browsing history, customer reviews, etc. There are many channels on which a prospective customer can be contacted. A campaign automation tool can reduce the effort in running the marketing campaigns on various channels.

In this pattern, Watson Studio is used to analyze customer orders history to come up with the target audience for a campaign. The Watson Campaign Automation tool is used to demonstrate the running of email campaigns on a target audience.

This developer pattern covers the integration aspect between Watson Studio and Watson Campaign Automation to build the complete end-to-end solution.



  1. The object storage stores the data.
  2. Data is utilized as CSV files.
  3. Jupyter Notebook processes the data and generates the target audience.
  4. The Jupyter Notebook is powered by Spark.
  5. The target audience information is sent to Watson Campaign Automation to run campaigns.


Ready to put this code pattern to use? Find the detailed steps for this pattern in the README.