The NCCO node is a means to communicate and use the features that Voice API hosts. NCCO or Nexmo Call Control Object is a generic JSON object that can be used in order to control voice based conversations.

Currently, the NCCO node is the only means of harnessing and communicating with Voice API.

How does it work?

The NCCO node is similar to the Webhook node in the sense that during the conversation the NCCO JSON request will be sent to Voice API.

If parameters are included in the body, they will be used in the same way that the parameters included in Webhooks are.

The order of actions affects the flow of the call. Actions that are dependent on the completion of another action can be considered synchronous whilst independent ones are asynchronous, which means that unless they are stopped by a condition they will continue to execute.

Here's an example body of an asynchronous action - Record, used to record a part or the whole of a call.

"action": "connect",
"eventUrl": [""],
"endpoint": [
"type": "phone",
"number": "447700900001"

NCCO nodes are built specifically for Voice API requests and thus are not included within WhatsApp, SMS and HTTP channels.

Things to look out for:-

  • Please note that unlike Webhooks, invalid NCCO commands will halt a conversation. There is no body validation for the JSON currently.

  • Arrays are currently unsupported. Please do not use them to make sure your node works as planned.

  • Telephony tests (normal calling as well as calling within the tester) are currently the only means of testing out this node.

  • Certain actions such as the ‘input’ and ‘pay’ action will not work since the flow continues to run past the NCCO request. If you need to use the ‘input’ action, use the Collect Input node instead.

To learn more about what is possible with the NCCO node please visit this page.

Last updated