How to remove a context variable in Watson Assistant service on IBM Cloud

I am using this, but this only sets it to empty,

{
  "context": {
    "time": "",
    "place": "",
    "things": "",
    "transport": ""
  },
  "output": {}
}

I also tried "time": "null" and "time": "$time.remove"


Solution 1:

For those using Watson Assistant on an older API version:

The best is to use context.remove() in the output section. I usually have an extra child node for cleanup.

{
  "output": {
    "text": {},
    "deleted": "<? context.remove('eventName') ?> <? context.remove('queryPredicate') ?>"
  }
}

Because deleted is not part of the context section it won't be carried forward.

For those on recent API versions of Watson Assistant:

Set the variable to null. Here is the doc on "Deleting a context variable".

{
  "context": {
    "myvariable": null
  }
}

Setting the variable to null can also be performed in the dialog form when assigning values to variables.

Solution 2:

You can also add a child node and add jump to the child node after response with the condition set to true and set the context variable to null there.