IBM Watson Assistant

The Watson Assistant action connects to the IBM Watson chatbot powered by artificial intelligence to integrate conversational chat for incoming SMS messages.

Note: You must have an IBM cloud account with Assistant enabled in order to use it with SmartFlows.

Having trouble with setting up IBM Watson? 

Watson Assistant Overview Video 

Getting started with Watson Assistant 

Watson Assistant Overview Docs 

Click here to learn how to create flows with Watson Assistant.



Input Name


Password/API Key

Your password for your IBM Watson account.

Workspace URL

The Workspace URL found in Watson’s API details.

WorkSpace ID

The ID which can be found in the API details of the Assistant Skill associated with the configured Watson Assistant.

Session Timeout (Minutes)

The number of minutes that the chat session will continue for. After this time, the session resets.


Locating your Watson Credentials 

  1. From the IBM Watson Assistant homepage go to “Assistants”

Screenshot of the Watson “Assistants” page

2. Click “View API Details” from the menu to the right of the specific skill you would like to use. You’ll be brought to a page with your API Details as seen below.

Take note of the green boxed fields, as these will be the values of your Input fields in SmartFlows. 

Screenshot of the Watson Assistant API Details page 


The Watson Assistant action creates the following variables to be used and evaluated in the rest of the flow:

Variable Name



Entire response from Watson Assistant.

$WATSONASSIST _#.statuscode

Code that indicates the status of the API response. 

(200 = success, 404 = not found, 403 = forbidden)


$WATSONASSIST -#.response.output.text[0]

       Text response returned by Watson Assistant.

Exit Ports

The flow has two possibilities of where it will continue after the Watson Assistant action. This is  determined by:

Port Name


On Success

If the API request to Watson was successful

On Failure

If an error occurs with the API request to Watson. To determine what went wrong, you can access the error code  in the statuscode variable