ANDI PRATAMA PUTRA
ANDI PRATAMA PUTRA

Reputation: 23

Dialogflow Context

I got some problem, I can't access my parameters from context on dialogflow, i just trying using agent.getContext and agent.context.get but still not work.

there is my code for set the context

function noTelp(agent){
const telp = agent.parameters.phoneNumber;

let query = db.collection('pelanggan').where('no_telp','==',telp);
return query.get().then(snapshot => {
    if (snapshot.empty) {
      agent.add('Mohon Maaf data no telepon '+telp+' tidak ditemukan');
      agent.add('untuk menambahkan data kamu silahkan tuliskan nama kamu');
      agent.setContext({     >set the context
        name : 'tambahData',
        lifespan : 2,
        parameters : {noTelp : telp}
      });
      console.log('No matching documents.');
      return;
    }
}

and this for the calling the context

function tambahData(agent){
   const context = agent.getContext('tambahData'); >get the context
   const telp = context.parameters.noTelp; >get the parameters from context
   const nama = agent.parameters.nama;

   agent.add(nama+telp); >test calling parameters
}

Upvotes: 2

Views: 306

Answers (1)

Abhinav Kumar
Abhinav Kumar

Reputation: 3036

Used a consistent method either from V1 or V2. You can modify the code as below, it will work. I managed to work like this only.

Setting context:

agent.context.set({
        name: 'global_main_context',
        lifespan: 5,
        parameters: param
    });

Getting Context

let globalContext = agent.context.get('global_main_context');

I would suggest to keep updating the context in each of transaction because it as lifespan that will automatically kill that context if you cross a number of transactions.

Upvotes: 1

Related Questions