Sorry, took me a bit to remember what Dashboard I was working on at the time. 
So, a little background on this one so what you’ll see below makes more sense… The dashboard I was creating was just sales activity against Customer accounts. So, the user would search for the CustID (or enter it manually) and it would trigger two different BAQ’s to run. One returned historical quotes for that customer, the other would return sales orders.
Our account activity often gets “muddy”. We have Account Managers, and also Account Associates (junior sales persons if you will). So, these BAQs would break the Sales Order salesreplist into independent columns (SalesRep1, SalesRep2, SalesRep3, etc.). It would also list sales persons on the quotes from QuoteReps to SalesRep1, SalesRep2, etc.
After running the BAQ’s I could then filter the BAQ grids for a specific sales rep and see only the records they were involved with (thus getting a slightly better idea of how much activity they were actually participating in for a specific customer account). And also filter the grids by date so we could see how active a specific sales person has been with a specific account over a specific time period.
Anyway… not overly important…
I had a Customer search… just a textbox

I bound that to KeyFields.CustID:

I also set “Enable Search” to true under Advanced.
I had one set of events firing based on the “On Search Click” behavior which drove the primary Customer Search.
For when they were typing it in (this is the part you’re interested in)… I had the below event:

So, with the textbox bound to KeyFields.CustID, the trigger picks up any time that value changes:

The condition makes sure the CustID is not blank or ‘undefined’
'{KeyFields.CustID}' === '' || '{KeyFields.CustID}' === 'undefined'
If that returns false, it goes to event next… which was my Customer Rest call using GetByCustID (based on the user’s CustID input value):

After that, it went into another event-next “nfm_onchange_CustID”. This one simply re-ran the two BAQ’s discussed above to pull back updated records based on the new CustID value.

The other thing to keep in mind… since this was a new dashboard built from scratch… if you remember, I had bound my CustID field to KeyFields.CustID. Well, the KeyFields dataview didn’t exist in a fresh dashboard… so if you do something like that, remember you have to manually create the KeyFields DataView.
Nothing in it… just create it:
You also have to initiate it when the form loads via event(s).

As you can see I was initiating both KeyFields and TransView dataviews. So, after the window loads, this event fires, which runs two other events. These just include a row update:

In the row update… I just set my KeyField to an empty value: “”
But that’s enough to initialize the dataview so I can use it in my dashboard.

Clear as mud?
