title: Editing the context variables in Watson Assistant for a specific dialogue node using Node js
body: <p>I have a code that links Watson conversation to facebook messenger.
  Now, I want to implement the following conversation -<br>
  <strong>User: I need a vehicle<br>
  Bot: Tell the location where the vehicle is needed<br>
  User: Santa Monica Pier<br>
  Bot: ****identifies the location as a context variable ($location) from Watson Assistant*<br>
  *Finds out the ETA from node app and sends it to Watson Assistant as a context variable ($ETA) ****<br>
  Bot: Your vehicle will arrive in $ETA minutes.</strong></p>
  
  <p>My code is -</p>
  
  <pre><code>var express = require('express');
  var request = require('request');
  var bodyParser = require('body-parser');
  var watson = require('watson-developer-cloud');
  var app = express();
  var contexid = "";
  
  app.use(bodyParser.urlencoded({ extended: false }))
  app.use(bodyParser.json())
  
  var conversation_id = "";
  var w_conversation = watson.conversation({
      url: 'https://gateway.watsonplatform.net/conversation/api',
      username: process.env.CONVERSATION_USERNAME || 'username',
      password: process.env.CONVERSATION_PASSWORD || 'pass',
      version: 'v1',
      version_date: '2016-07-11'
  });
  var workspace = process.env.WORKSPACE_ID || 'id';
  
  app.get('/webhook/', function (req, res) {
      if (req.query['hub.verify_token'] === 'fb_token') {
          res.send(req.query['hub.challenge']);
      }
      res.send('Error : no token.');
  });
  
  app.post('/webhook/', function (req, res) {
      var text = null;
  
      messaging_events = req.body.entry[0].messaging;
      for (i = 0; i &lt; messaging_events.length; i++) { 
          event = req.body.entry[0].messaging[i];
          sender = event.sender.id;
  
          if (event.message &amp;&amp; event.message.text) {
              text = event.message.text;
          }else if (event.postback &amp;&amp; !text) {
              text = event.postback.payload;
          }else{
              break;
          }
  
          var params = {
              input: text,
              // context: {"conversation_id": conversation_id}
              context:contexid
          }
  
          var payload = {
              workspace_id: "id"
          };
  
          if (params) {
              if (params.input) {
                  params.input = params.input.replace("\n","");
                  payload.input = { "text": params.input };
              }
              if (params.context) {
                  payload.context = params.context;
              }
          }
          callWatson(payload, sender);
      }
      res.sendStatus(200);
  });
  
  function callWatson(payload, sender) {
      w_conversation.message(payload, function (err, convResults) {
           console.log(convResults);
          contexid = convResults.context;
  
          if (err) {
              return responseToRequest.send("Erro.");
          }
  
          if(convResults.context != null)
             conversation_id = convResults.context.conversation_id;
          if(convResults != null &amp;&amp; convResults.output != null){
              var i = 0;
              while(i &lt; convResults.output.text.length){
                  sendMessage(sender, convResults.output.text[i++]);
              }
          }
  
      });
  }
  
  function sendMessage(sender, text_) {
      text_ = text_.substring(0, 319);
      messageData = { text: text_ };
  
      request({
          url: 'https://graph.facebook.com/v2.6/me/messages',
          qs: { access_token: token },
          method: 'POST',
          json: {
              recipient: { id: sender },
              message: messageData,
          }
      }, function (error, response, body) {
          if (error) {
              console.log('Error sending message: ', error);
          } else if (response.body.error) {
              console.log('Error: ', response.body.error);
          }
      });
  };
  
  var token = "token";
  var host = (process.env.VCAP_APP_HOST || 'localhost');
  var port = (process.env.VCAP_APP_PORT || 3000);
  app.listen(port, host);
  </code></pre>
  
  <p>How do I identify the location as a context variable ($location) from Watson Assistant and send ETA from node app to Watson Assistant as a context variable?
  I was thinking of using action to make a programmatic call in my Watson dialogue node to do it but was unable to implement it.</p>