Best practice for passing parent record field value to new child record in Service Operations WorkspaceIssue <!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } declarative actions like 'new' on a related record list within Service Operations Workspace is implemented as a Client Script. Most of the time The script uses GlideAjax to call a Script Include, which retrieves a field value from the parent tab record and adds it to a field on the new child tab record. The user is asking if there is a better way to pass the pass a value from the parent tab record to a new record in a child tab within Service Operations Workspace. Release<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } All Resolution<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Best Practices In Service Operations Workspace, you can pass parent data directly via the URL parameters of your Workspace Declarative Action payload, bypassing GlideAjax completely.The Best Practice: URL Parameter InjectionWhen a Declarative Action opens a new record form in a Workspace tab, it passes details using the sysId and query parameters. You can inject parent field values directly into the target form initialization query. step 1: You can Update the Declarative Action Payload, Instead of making a custom Client Script that calls a Script Include, use a standard UX Page Registry Action or modify your existing Action's Payload Map.Configure your action payload map to dynamically inject the parent field value into the query parameter(somethuing like below)json{"route": "record","fields": {"table": "your_child_table_name","sysId": "-1"},"params": {"query": "parent_field_name={{current.sys_id}}^child_target_field={{current.parent_source_field}}"}}Use code with caution.parent_field_name={{current.sys_id}}: Links the new child record to the parent.child_target_field={{current.parent_source_field}}: Injects the parent's field value directly into the target field on form load. {{current.field}} references the active parent record automatically. Step 2: Ensure Target Fields are on the Form. The Workspace form engine will parse this URL query string and prepopulate the fields natively on the new tab. The user sees the value instantly without waiting for a script to finish. Alternative: SOW-Specific Screen Client Script If your logic is too complex for simple payload data binding, you should still replace GlideAjax. In Service Operations Workspace, Client Scripts can tap into the Workspace Screen API to inspect the parent tab.In your Declarative Action Client Script:javascriptfunction onClick(g_form, g_scratchpad) {// 1. Get the parent field directly from the open workspace form (No GlideAjax!)var parentValue = g_form.getValue('your_source_field'); // 2. Build the query string using the parent datavar targetQuery = 'parent=' + g_form.getUniqueValue() + '^target_field=' + parentValue; // 3. Open the new record tab natively with pre-filled fieldsg_aw.openRecord('your_child_table_name', '-1', {query: targetQuery});} Above are some of the ways that you can try, although it would require you to have a good knowledge of how declarative actions/UI builder workshttps://www.servicenow.com/community/developer-blog/declarative-actions-in-servicenow-the-complete-guide/ba-p/2781607 Why this approach is better but not necessarily simplerZero Server Calls: Eliminates the GlideAjax trip and the Script Include maintenance entirely.Instant Form Load: Values populate as the form renders, eliminating the visible "delayed flash" where a user watches a field go from empty to filled.