Category Archives: Bluemix

Content Management Options for IBM Watson Conversation Service

The Reality

Things change very quickly in the cognitive world. The provided information is as current as of the last update date. It is very possible that, like everything, things can change. The options provided here are some of the possible options, but not limited to.

The Purpose

The topic discussed here is to provide some options of how to manage your content in Watson Conversation service.

The Considerations

Many factors such as the User Scenario, Use Cases, Requirements and Data should be used to determine what approach is taken. Some examples of things to think about regarding your Data are “Is the answer data structured or unstructured?”, “Are the answers dynamic and context-dependent?”, “How large is the answer data (units)?”

And now, here are some options…

Option 1 – WCS Provided User Interface

This option is to use the out of the box tooling provided with the Watson Conversation Service for all your content updates.


  • You can begin making content updates immediately (no additional development effort for a content management solution)
  • No additional tooling required
  • No additional cost
  • No additional components – all content managed within WCS


  • Possibility that it can get tedious to manage, depending on deployment type

Option 2 – Leverage WCS APIs

This option is to use a simple data source, such as a spreadsheet, to manage and house your content and then use that to update your WCS workspace leveraging the WCS APIs.


  • Easier to manage content updates
  • No additional orchestration of answer retrieval needed
  • No complex database needed


  • Requires development of additional component (custom code & spreadsheet configuration)
  • Maintenance – Like anything with custom code, you will need to maintain the code any time the leveraged APIs change
  • Error prone when using a spreadsheet (identifying error may be challenging)

Note: There are various different ways that this solution could be implemented, such as using a web application, that I will not dive into here.

Option 3 – Leverage a Database

This option would involve creating a custom web application to manage content updates. This option also requires a custom database to store all the WCS data, including answer data. This would require creation of some additional components to make this work such as a service orchestration engine and UI.


  • Easier to manage content updates
  • Less error prone than using Excel  (with controlled web app)
  • WCS API updates would not affect the custom web app & database which manage the answers as those are independent of the WCS APIs (however, standard changes in the application orchestration layer will apply)


  • Requires cost, development & management of additional additional components (Web App, Orchestrator & DB)

DB Considerations (some examples):

  • Type
  • Sizing
  • Regional hosting options
  • Cost

Note: There are various different ways that this solution could be implemented, but this should provide some context for different ideas.

The Conclusion

There is no one specific solution that is the best fit for every scenario. Each project will require careful consideration of the items discussed in this blog post and other factors that may not have been mentioned here that come into play. There are likely other options out there, but hopefully this has helped get you thinking about the possibilities. The key is to consider all pros and cons along with the hosting environment, team skills, and more, to make a best decision.

How to Migrate Watson Conversation service from Test to Production

You’ve created some intents, entities, answers, dialog flows. You have hopefully gone through some iterative testing cycles to validate. Now, you want to promote those changes from your Test to Production environment, so what do you do?

Promoting Your Entire Workspace

Your Watson Conversation Service (WCS) configuration, which is your intents, entities, dialogs, etc are all stored in a workspace. When you want to do a complete migration or promotion from your Test to Production environment, you want to update your Production workspace using the WCS ‘updateWorkspace‘ API. This will take your JSON export from the Test workspace and update your Production workspace with everything it contains.

The benefit to using this method is that the ‘workspace_id’ will remain the same so any external component relying on that ‘workspace_id’ will not require change.

Other Options to Move Workspace Data

Another option available to move or share workspaces, is to use the WCS tooling to export your Test workspace and import it into your Production environment. The challenge with this is that WCS will assign it a new/different ‘workspace_id’ so any existing external components relying on that will need to be updated. So be careful here.

If you only made changes to your intents or entities and you only want to promote those specific changes, you can leverage the respective APIs which are documented here to allow you to do so.

Using any of these approaches, please note that you still will need to consider some time to account for the training of the workspace updates to complete.

How to Check Your API Usage for IBM Bluemix Services

Ever wondered how to check the number of APIs calls that you have consumed with your IBM Bluemix services? If so, you already have that information right under your fingertips. Bluemix has a usage tracker that is easy to use and conveniently provides your API usage for the last 12 months. Please note that there are some services that do not report usage and send a separate bill. You also need to make sure that you have the appropriate privileges to access this information.

To access the Usage Dashboard, select the “Manage” menu item at the top right of your display then hover over “Billing and Usage” then select “Usage”.

You will now be looking at your Usage Dashboard, you will see a bar chart showing you overall usage charges for the last 12 months. The current month will be highlighted.


Now scroll down to the “Services Charges” section and you will see a list of your services. Once you’ve located the service of interest, click on the twisty (little triangle) to the right to expand the information and you will see the number of API calls and associated costs.



If you want to see usage for previous months, just scroll back up to the bar chart and select the month of interest and your services data below will refresh.

That’s all, its that simple!