What’s the difference between GlideRecord’s addQuery() vs. encoded queries – when to use which?

dalvipranit
Giga Explorer

What’s the difference between GlideRecord’s addQuery() vs. encoded queries – when to use which?

9 REPLIES 9

_Tushar Soni
Kilo Sage
Kilo Sage

Hello @dalvipranit ,

addQuery() – Programmatic Filtering 
A method used in ServiceNow GlideRecord to add individual filter conditions one by one.

Best for: When you want to build queries dynamically using logic.

Example :
var gr = new GlideRecord('incident');
gr.addQuery('priority', 1);
gr.addQuery('active', true);
gr.query();

 

addEncodedQuery() – Compact and Reusable

A method used in GlideRecord to add multiple filter conditions in a single string.

Best for: When you already know the full query string or want to copy it from a filter in the list view.

Example :
var gr = new GlideRecord('incident');
gr.addEncodedQuery('priority=1^active=true');
gr.query();

If you found my response helpful, please consider marking it as "Helpful" or "Accept Solution." Thank you!

Community Alums
Not applicable

@dalvipranit ,

In ServiceNow, both addQuery() and encoded queries are used with GlideRecord to filter records, and both support dynamic use. The key difference lies in how the query is built: addQuery() offers step-by-step, programmatic construction, making it ideal for scripts where conditions depend on logic or user input. Encoded queries, on the other hand, are compact string-based filters often copied from list views, and are required in certain areas like UI Builder, For example, when building a dynamic incident dashboard in UI Builder, a complex encoded query string may be needed to handle multiple filter conditions that can’t be expressed using addQuery() in that context.

 

Thanks & Regards,  
Muhammad Iftikhar  

If my response helped, please mark it as the accepted solution so others can benefit as well. 

Simon Christens
Kilo Sage

There is no real difference between the 2.

addQuery is typically easier to read than addEncodedQuery but the outcome is the same in the end.

 

Typically I use addQuery when setting up scripts to run several times over time (logic).

addEncodedQuery I use for cleanup jobs typically run once because you can go to a list, filter the exact records you want to work with - right click on the filter and "Copy query". Its easy and fast and because the script only run once its not that important how "readable" is it.

 

So my 5 cents is that when builing logic - try to keep it as easy as possible to read for other people.
If you need something run once or similar then its not _that_ important how its set up.

Nawal Singh
Tera Guru

Hi @dalvipranit ,

 

addQuery()

-Adds one condition at a time

-Used when building dynamic or readable queries in scripts

gr.addQuery('active', true);
gr.addQuery('priority', 1);

 

 

addEncodedQuery()

-Adds multiple conditions at once using a filter string

-Used when copying filters from list view or for quick queries

 

gr.addEncodedQuery('active=true^priority=1');

 

If you found my response helpful, please mark it as helpful and accept it as the solution.

Thank you
Nawal Singh

aruncr0122
Mega Guru

Hi @dalvipranit ,

 

addQuery() → You build the filter step by step in your script.
Example:
gr.addQuery("state", "1");
gr.addQuery("priority", "2");
Good when conditions are dynamic (decided at runtime).


addEncodedQuery() → You paste in the whole filter string exactly like you see in the list view filter.
Example:
gr.addEncodedQuery("state=1^priority=2");
Good when you already know the exact filter and want it quickly in one line.

👉 Use addQuery() when you’re building conditions programmatically.
👉 Use addEncodedQuery() when you already have the filter string or want a shortcut.