Sample output from the Script Stacking Review prompt in the Sonar AI Prompt Library, run against a NetSuite test account. Every name and number here is test data. Back to the post · The library
SuiteStep, LLC  ·  NetSuite Platform GovernancePrepared by Sonar AI

Script Stacking Review

Active User Event and Client scripts deployed against Sales Orders, Invoices and Vendor Bills — attributed, ordered, and assessed for multi-provider stacking risk.

Production accountData extracted 3 September 2026Threshold: >3 active User Event scripts per record
38
Deployments in scope
20 distinct scripts
34
Active deployments
4 released but undeployed
3 / 3
Record types exceed the
User Event threshold
9
Distinct NetSuite products
0 third-party · 0 in-house

Verdict

Every one of the three record types is over the threshold. Sales Order carries 6 active User Event scripts, Invoice 7, Vendor Bill 6 — plus 7, 4 and 4 Client scripts respectively. On a single Sales Order save, five separate beforeSubmit handlers execute in sequence, drawn from five different products.

The stack is entirely Oracle NetSuite-published. No third-party ISV and no in-house code is deployed on these records. That lowers coordination risk — one vendor owns every layer — but does not eliminate it: the nine products were built by separate NetSuite teams, span three SuiteScript API generations (1.0, 2.0, 2.1), and none of them is aware the others are present.

The material exposure is form-manipulation collision and validation veto. Four products hide or re-type fields in beforeLoad on the same forms, and three products each hold a validateLine veto on the Sales Order item sublist. Both patterns are order-dependent, and the execution order has not been verified against the Scripted Records page (see Assumptions).

Section 01Threshold Test — Active User Event Scripts

Count of User Event deployments that are released, deployed, and whose parent script is not inactive. Client scripts are excluded from this test by definition but are reported separately below.

Invoice+4 client scripts
7
Sales Order+7 client scripts
6
Vendor Bill+4 client scripts
6
02468

One Invoice and one Vendor Bill User Event (Approvals Workflow "Delete Exception") is restricted to the DELETE event only; on create/edit the effective counts are 6 and 5 — still over threshold.

Section 02Provider Attribution

Ownership was determined from three independent signals: the script.frombundle field, the File Cabinet path of the script source (bundle folders carry SuiteBundles/Bundle NNNNN; SDF SuiteApps carry SuiteApps/com.netsuite.*), and the script.owner employee. All three agree on every script.

ProductDeliveryScripts in scopeRecords touchedDeploys
SuiteTax EngineSTE · com.netsuite.suitetaxengineBundle 237702customscript_ste_ue_transaction
customscript_ste_cs_transaction
SO · INV · VB6
US Sales Tax ReportsUSR · com.netsuite.ussalestaxreportsSDF SuiteAppcustomscript_usr_ue_transaction
customscript_usr_cs_transaction
SO · INV · VB6
Localization AssistantLRC Field Manager · com.netsuite.localizationassistantSDF SuiteAppcustomscript_lrc_field_manager_ue
customscript_lrc_field_manager_cs
SO · INV · VB6
Supply Chain ManagementSCM · Customer Part Number, Item Substitute, Landed CostBundle 47193customscript_scm_cpn_ue_transactions customscript_scm_cpn_cs_transactions
customscript_scm_is_transactions_ue customscript_scm_is_transactions_cs
customscript_scm_lc_ue_transactions customscript_scm_lc_cs_transactions
SO · INV · VB9
Electronic Bank PaymentsEBP · com.netsuite.electronicbankpaymentsBundle 533070customscript_15486_payment_info_ue (2.1)
customscript_2663_payment_info_ue (1.0, undeployed)
INV · VB4
Approvals WorkflowNAW · WD_NAWBundle 240841customscript_naw_ue_delete_exceptionINV · VB2
Pack StationPackShip · com.netsuite.packshipBundle 534418customscript_packship_cs_order_ifprocess
customscript_packship_ue_nonadvinvt (undeployed)
SO2
Available to BuildATB · com.netsuite.availabletobuildSDF SuiteAppcustomscript_atb_cs_salesorder
customscript_atb_ue_salesorder (undeployed)
SO2
RMA from CaseRAC · com.netsuite.rmafromcaseBundle 266623customscript_rac_ue_so_recordSO1
Owner field note
Eighteen of the twenty scripts carry owner = -5 (System — set at bundle/SuiteApp install). The two exceptions are the SCM Customer Part Number scripts (customscript_scm_cpn_ue_transactions, customscript_scm_cpn_cs_transactions), owned by employee 1252 — an inactive NetSuite employee record. Script-failure notifications routed to the owner (notifyowner) for those two scripts have no live recipient.

Section 03Sales Order

7 active Client scripts from 6 products; 6 active User Event scripts from 5 products (2 further UE deployments are released but switched off).

User Event scripts — execution order

#DeploymentScript · ProductAPIEntry pointsState
1customdeploy_rac_ue_so_recordRAC UE Sales Order RecordRMA from Case · Bundle 2666232.0beforeLoadbeforeSubmitafterSubmitActive
2customdeploy_ste_ue_transaction_salordSTE UE TransactionSuiteTax Engine · Bundle 2377022.0beforeLoadbeforeSubmitafterSubmitActive
–customdeploy_atb_ue_salesorderATB_UE_SalesOrderAvailable to Build · SuiteApp2.1beforeLoadReleased, not deployed
3customdeploy_scm_is_transactions_ue_soItem Substitute Transactions UESCM · Bundle 471932.0beforeLoadActive
4customdeploy_scm_cpn_ue_soSCM Transactions UESCM Customer Part Number · Bundle 471931.0beforeLoadbeforeSubmitActive
–customdeploy_packship_ue_nonadvinvtPackship — Non Advanced Inventory PKG UEPack Station · Bundle 5344182.1beforeSubmitafterSubmitReleased, not deployed
5customdeploy_lrcfm_ue_salesorderLRC Field Manager User EventLocalization Assistant · SuiteApp2.1beforeLoadbeforeSubmitActive
6customdeploy_usr_ue_tran_sales_orderUSR UE TransactionUS Sales Tax Reports · SuiteApp2.1beforeSubmitActive

Client scripts — execution order

#DeploymentScript · ProductAPIEntry pointsAudience
1customdeploy_scm_cpn_cs_soSCM Transactions CSSCM Customer Part Number1.0pageInitvalidateFieldfieldChangedAll roles
2customdeploy_atb_cs_salesorderATB_CS_SalesOrderAvailable to Build2.1pageInitvalidateFieldlineInitvalidateLineAll roles
3customdeploy_scm_is_trans_cs_soItem Substitute Transactions CSSCM Item Substitute2.0fieldChangedlineInitRestricted roles
4customdeploy_packship_cs_so_if_processPackship — Process on IF Order CSPack Station2.1pageInitfieldChangedAll roles
5customdeploy_usr_cs_tran_sales_orderUSR CS TransactionUS Sales Tax Reports2.1validateLineAll roles
6customdeploy_ste_cs_transaction_salordSTE CS TransactionSuiteTax Engine2.0pageInitsaveRecordvalidateFieldfieldChangedpostSourcinglineInitvalidateLinesublistChangedvalidateInsertvalidateDeleteAll roles
7customdeploy_lrcfm_cs_salesorderLRC Field Manager Client ScriptLocalization Assistant2.1fieldChangedpostSourcingAll roles

Red tags mark the three-way validateLine veto (ATB → USR → STE). Any handler returning false rejects the line; later handlers do not run.

Section 04Invoice

4 active Client scripts from 4 products; 7 active User Event scripts from 6 products — the highest User Event count of the three records.

User Event scripts — execution order

#DeploymentScript · ProductAPIEntry pointsState
1customdeploy_ste_ue_transaction_invoiceSTE UE TransactionSuiteTax Engine2.0beforeLoadbeforeSubmitafterSubmitActive
2customdeploy_naw_ue_delete_exp_ivNAW Delete Exception Record UEApprovals Workflow · Bundle 2408411.0beforeSubmitafterSubmitActive · DELETE only · log DEBUG
3customdeploy_scm_is_transactions_ue_inItem Substitute Transactions UESCM Item Substitute2.0beforeLoadActive
4customdeploy_scm_cpn_ue_invcSCM Transactions UESCM Customer Part Number1.0beforeLoadbeforeSubmitActive
–customdeploy_2663_payment_info_inv_ueGeneric Payment Information HiderElectronic Bank Payments (SS 1.0 predecessor)1.0beforeLoadReleased, not deployed
5customdeploy_15486_pay_info_invoice_ueGeneric Payment Information Hider SS2Electronic Bank Payments · Bundle 5330702.1beforeLoadActive
6customdeploy_lrcfm_ue_invoiceLRC Field Manager User EventLocalization Assistant2.1beforeLoadbeforeSubmitActive
7customdeploy_usr_ue_tran_invoiceUSR UE TransactionUS Sales Tax Reports2.1beforeSubmitActive

Client scripts — execution order

#DeploymentScript · ProductAPIEntry pointsAudience
1customdeploy_scm_cpn_cs_invcSCM Transactions CSSCM Customer Part Number1.0pageInitvalidateFieldfieldChangedAll roles
2customdeploy_usr_cs_tran_invoiceUSR CS TransactionUS Sales Tax Reports2.1validateLineAll roles
3customdeploy_ste_cs_transaction_invoiceSTE CS TransactionSuiteTax Engine2.0pageInitsaveRecordvalidateFieldfieldChangedpostSourcinglineInitvalidateLinesublistChangedvalidateInsertvalidateDeleteAll roles
4customdeploy_lrcfm_cs_invoiceLRC Field Manager Client ScriptLocalization Assistant2.1fieldChangedpostSourcingAll roles

Section 05Vendor Bill

4 active Client scripts from 4 products; 6 active User Event scripts from 6 products.

User Event scripts — execution order

#DeploymentScript · ProductAPIEntry pointsState
1customdeploy_ste_ue_transaction_vendbillSTE UE TransactionSuiteTax Engine2.0beforeLoadbeforeSubmitafterSubmitActive
2customdeploy_naw_ue_delete_exp_vbNAW Delete Exception Record UEApprovals Workflow1.0beforeSubmitafterSubmitActive · DELETE only · log DEBUG
3customdeploy_scm_lc_ue_vbillSCM LC Transactions UESCM Landed Cost1.0beforeLoadbeforeSubmitActive
–customdeploy_2663_payment_info_ueGeneric Payment Information HiderElectronic Bank Payments (SS 1.0 predecessor)1.0beforeLoadReleased, not deployed
4customdeploy_15486_pay_info_venbill_ueGeneric Payment Information Hider SS2Electronic Bank Payments2.1beforeLoadActive
5customdeploy_lrcfm_ue_vendorbillLRC Field Manager User EventLocalization Assistant2.1beforeLoadbeforeSubmitActive
6customdeploy_usr_ue_tran_vendor_billUSR UE TransactionUS Sales Tax Reports2.1beforeSubmitActive

Client scripts — execution order

#DeploymentScript · ProductAPIEntry pointsAudience
1customdeploy_scm_lc_cs_trans_vbillSCM LC Transactions CSSCM Landed Cost1.0pageInitsaveRecordvalidateFieldfieldChangedpostSourcinglineInitAll roles
2customdeploy_usr_cs_tran_vendor_billUSR CS TransactionUS Sales Tax Reports2.1validateLineAll roles
3customdeploy_ste_cs_transaction_vendbillSTE CS TransactionSuiteTax Engine2.0pageInitsaveRecordvalidateFieldfieldChangedpostSourcinglineInitvalidateLinesublistChangedvalidateInsertvalidateDeleteAll roles
4customdeploy_lrcfm_cs_vendor_billLRC Field Manager Client ScriptLocalization Assistant2.1fieldChangedpostSourcingAll roles

Vendor Bill is the only record with two saveRecord vetoes (SCM Landed Cost, SuiteTax Engine).

Section 06Stacking Matrix — Handlers per Event Phase

Number of distinct products with an active handler on each entry point. Cells at 3 or above are highlighted; 5 is the maximum observed. Approvals Workflow (NAW) fires on delete only and is marked †.

Entry pointSales OrderInvoiceVendor Bill
User Event — server side
beforeLoad5RAC · STE · SCM-IS · SCM-CPN · LRC5STE · SCM-IS · SCM-CPN · EBP · LRC4STE · SCM-LC · EBP · LRC
beforeSubmit5RAC · STE · SCM-CPN · LRC · USR5STE · NAW† · SCM-CPN · LRC · USR5STE · NAW† · SCM-LC · LRC · USR
afterSubmit2RAC · STE2STE · NAW†2STE · NAW†
Client — browser side
pageInit4SCM-CPN · ATB · PackShip · STE2SCM-CPN · STE2SCM-LC · STE
fieldChanged5SCM-CPN · SCM-IS · PackShip · STE · LRC3SCM-CPN · STE · LRC3SCM-LC · STE · LRC
validateField3SCM-CPN · ATB · STE2SCM-CPN · STE2SCM-LC · STE
postSourcing2STE · LRC2STE · LRC3SCM-LC · STE · LRC
lineInit3ATB · SCM-IS · STE1STE2SCM-LC · STE
validateLine veto3ATB · USR · STE2USR · STE2USR · STE
saveRecord veto1STE1STE2SCM-LC · STE
sublistChanged · validateInsert · validateDelete1STE1STE1STE

What happens when a user saves a Sales Order

Sequenced by the NetSuite record lifecycle, with the products holding a handler at each step. Highlighted steps are where a single handler can block or reshape the outcome for every product after it.

Form opens beforeLoad × 5
RAC → STE → SCM Item Substitute → SCM Customer Part Number → LRC Field Manager. Four of these alter the form (field display types, sublist columns, buttons).
Page renders pageInit × 4
SCM-CPN → ATB → PackShip → STE.
User edits lines fieldChanged × 5 · lineInit × 3 · validateLine × 3
Every keystroke on the item sublist runs five fieldChanged handlers; every committed line passes through three independent validateLine vetoes (ATB, USR, STE) in that order.
User clicks Save saveRecord × 1
STE only.
Server pre-commit beforeSubmit × 5
RAC → STE → SCM-CPN → LRC → USR. Each may mutate the record the next one reads; USR runs last and can throw to abort the save after four products have already done their work.
Committed afterSubmit × 2
RAC → STE. Both may issue follow-on writes (RMA linkage, tax records).

Section 07Risk Register

Only findings specific to this account. Severity reflects likelihood of user-visible or data-visible failure, not theoretical exposure.

R1High

Five-deep beforeSubmit chain on every record type

Five products mutate or validate the record server-side on each save. A failure in position 5 (USR) discards work done by positions 1–4 with an error message that names USR — the user will not know the other four ran.

Evidence: matrix row beforeSubmit; all three record types = 5. Order-dependent: yes.
R2High

Competing form manipulation in beforeLoad

LRC Field Manager hides/re-types fields from a plugin list; EBP hides the payment-information subtab; SCM Item Substitute and STE both add UI. Last writer wins — if LRC's plugin list ever names a field STE relies on, STE's client script will fail silently on a missing field.

Evidence: customscript_lrc_field_manager_ue description ("sets the display type to HIDE/NODISPLAY"); customscript_15486_payment_info_ue description; beforeLoad count 4–5 on all records.
R3High

Three-way validateLine veto on Sales Order lines

ATB, USR and STE each hold a line-level veto. NetSuite stops at the first false. Users see one message; the other two validations have not yet run and may reject the same line again after the first fix — a serial-rejection experience that reads as flaky behaviour.

Evidence: Section 03 client table, red tags; USR's stated purpose ("prevent … discount item as the first line item").
R4Medium

Two tax products on the same records

SuiteTax Engine and US Sales Tax Reports both deploy UE + CS to all three record types. This is a supported pairing, but STE's client script implements all ten entry points, so any STE regression is felt on every field, every line, every save.

Evidence: customscript_ste_cs_transaction — 10 of 10 entry points; deployed to SO, INV, VB.
R5Medium

Four latent deployments one toggle from the stack

Released-but-undeployed deployments do not execute today, but a bundle update or an administrator click re-enables them without a code review. Two are SS 1.0 predecessors of active SS 2.1 scripts and would double the EBP beforeLoad work if enabled.

Evidence: customdeploy_atb_ue_salesorder, customdeploy_packship_ue_nonadvinvt, customdeploy_2663_payment_info_inv_ue, customdeploy_2663_payment_info_ue — all status = RELEASED, isdeployed = F.
R6Medium

Mixed SuiteScript generations in one execution chain

SS 1.0 (SCM-CPN, SCM-LC, NAW, EBP-2663), SS 2.0 (STE, SCM-IS, RAC) and SS 2.1 (USR, LRC, ATB, PackShip, EBP-15486) interleave on the same record events. 1.0 and 2.x have different error-propagation and record-object semantics; a 1.0 script's nlapiSetFieldValue in beforeSubmit is visible to the 2.x script behind it, but not the reverse in all cases.

Evidence: API column in Sections 03–05.
R7Medium

Every deployment runs in every execution context

All 38 deployments list the full context set (37 contexts, including CSV Import, SOAP/REST Web Services, Scheduled, Map/Reduce, Workflow). A 10,000-row invoice CSV import pays the full server-side stack per row: 5 beforeLoad-equivalents are skipped, but 4 beforeSubmit and 1 afterSubmit handler run 10,000 times each.

Evidence: scriptdeployment.executioncontext — comma-separated list of 37 values on every row; no deployment restricts context.
R8Low

Execution order not confirmed against Scripted Records

The order in this report follows deployment creation sequence, which is NetSuite's default. If an administrator has re-ordered scripts on the Scripted Records page, the true order differs and R1–R3 conclusions about "who runs last" change.

Verify: Customization › Scripting › Scripted Records › Sales Order / Invoice / Vendor Bill › User Event Scripts and Client Scripts subtabs.
R9Low

Orphaned script owner

Two SCM scripts notify an inactive employee on failure. Combined with log level ERROR on 36 of 38 deployments, failures in this stack are unlikely to be seen until a user reports them.

Evidence: script.owner = 1252 (inactive) on customscript_scm_cpn_ue_transactions and customscript_scm_cpn_cs_transactions; scriptnote contains zero rows for any of the 20 scripts.

Section 08Recommendations

  1. Confirm execution order (30 minutes). Open Scripted Records for each of the three record types and compare the User Event and Client Script subtab order against Sections 03–05. If they differ, update this report; if they match, R8 closes.
  2. Restrict execution context on the display-only User Events. customdeploy_15486_pay_info_*, customdeploy_lrcfm_ue_* and customdeploy_scm_is_transactions_ue_* implement beforeLoad to shape the UI. Limiting them to User Interface context removes them from CSV import, web services and scheduled runs at no functional cost. This directly reduces R7.
  3. Delete or un-release the four latent deployments. Set status = TESTING (or remove) on the two EBP SS 1.0 deployments, the ATB UE and the PackShip UE so a future bundle update cannot silently re-arm them. Confirm with the bundle's update notes first — the 15486 script is the declared SS2 replacement for 2663.
  4. Raise log level to AUDIT on the five beforeSubmit participants for one release cycle. The execution log is currently empty for all 20 scripts because 36 deployments run at ERROR. Two weeks at AUDIT will show real per-save governance consumption and any swallowed exceptions, then revert.
  5. Reassign script ownership. Change owner on the two SCM-CPN scripts from employee 1252 to a live administrator so failure notifications land.
  6. Adopt a per-record ceiling as policy. Before any new bundle or SuiteApp install, re-run the threshold query in Section 09 and require sign-off when a record type would exceed 3 active User Events or 3 validateLine/saveRecord vetoes. The query takes under a second.
  7. Re-test the Sales Order line-entry path after each of STE, USR, ATB updates. These three share the validateLine veto; a regression in any one changes the user-visible behaviour of the other two.

Section 09Method, Assumptions and Source Queries

Scope and definitions

Assumptions

Queries

All queries are SuiteQL and ran read-only against the production account on 3 September 2026. They can be re-run as-is.

Q1 — Deployment inventory with entry points38 rows

SELECT d.id AS depid, d.scriptid AS dep, d.recordtype AS rt, d.status, d.isdeployed AS dpl,
       d.eventtype AS evt, d.loglevel AS lg, d.allroles AS ar, d.allemployees AS ae,
       s.id AS sid, s.scriptid AS sscr, s.name AS sname, s.scripttype AS st, s.apiversion AS api,
       s.frombundle AS bnd, s.owner AS own, s.isinactive AS inact, s.scriptfile AS f,
       CASE WHEN s.beforeloadfunction     IS NOT NULL THEN 'BL ' ELSE '' END
    || CASE WHEN s.beforesubmitfunction   IS NOT NULL THEN 'BS ' ELSE '' END
    || CASE WHEN s.aftersubmitfunction    IS NOT NULL THEN 'AS ' ELSE '' END
    || CASE WHEN s.pageinitfunction       IS NOT NULL THEN 'pageInit ' ELSE '' END
    || CASE WHEN s.saverecordfunction     IS NOT NULL THEN 'saveRecord ' ELSE '' END
    || CASE WHEN s.validatefieldfunction  IS NOT NULL THEN 'validateField ' ELSE '' END
    || CASE WHEN s.fieldchangedfunction   IS NOT NULL THEN 'fieldChanged ' ELSE '' END
    || CASE WHEN s.postsourcingfunction   IS NOT NULL THEN 'postSourcing ' ELSE '' END
    || CASE WHEN s.lineinitfunction       IS NOT NULL THEN 'lineInit ' ELSE '' END
    || CASE WHEN s.validatelinefunction   IS NOT NULL THEN 'validateLine ' ELSE '' END
    || CASE WHEN s.recalcfunction         IS NOT NULL THEN 'sublistChanged ' ELSE '' END
    || CASE WHEN s.validateinsertfunction IS NOT NULL THEN 'validateInsert ' ELSE '' END
    || CASE WHEN s.validatedeletefunction IS NOT NULL THEN 'validateDelete ' ELSE '' END AS entry
FROM scriptdeployment d
JOIN script s ON d.script = s.id
WHERE d.recordtype IN ('SALESORDER','INVOICE','VENDORBILL')
  AND s.scripttype IN ('USEREVENT','CLIENT')
ORDER BY d.recordtype, s.scripttype, d.id

Q2 — Default execution order (deployment creation sequence)38 rows · see A1

SELECT d.primarykey AS pk, d.scriptid AS dep, d.recordtype AS rt, s.scripttype AS st
FROM scriptdeployment d
JOIN script s ON d.script = s.id
WHERE d.recordtype IN ('SALESORDER','INVOICE','VENDORBILL')
  AND s.scripttype IN ('USEREVENT','CLIENT')
ORDER BY d.recordtype, s.scripttype, d.primarykey

Q3 — Threshold test (re-usable policy check)returns record types over the limit

SELECT d.recordtype, COUNT(*) AS active_ue
FROM scriptdeployment d
JOIN script s ON d.script = s.id
WHERE s.scripttype = 'USEREVENT'
  AND d.status = 'RELEASED' AND d.isdeployed = 'T' AND s.isinactive = 'F'
GROUP BY d.recordtype
HAVING COUNT(*) > 3
ORDER BY active_ue DESC

Q4 — Script source location and folder lineage (provider attribution)19 files

SELECT f.id, f.name, f.folder, mf.name AS foldername, pf.name AS parentname,
       f.lastmodifieddate, f.filesize
FROM file f
LEFT JOIN mediaitemfolder mf ON f.folder = mf.id
LEFT JOIN mediaitemfolder pf ON mf.parent = pf.id
WHERE f.id IN (24710,5015,7620,90318,24736,15327,5093,7568,24576,5021,23955,1148,
               5048,15869,24196,15870,5899,5092,5062);

-- folder ancestry to the SuiteBundles / SuiteApps root
SELECT f1.id, f1.name AS l1, f2.name AS l2, f3.name AS l3, f4.name AS l4, f5.name AS l5
FROM mediaitemfolder f1
LEFT JOIN mediaitemfolder f2 ON f1.parent = f2.id
LEFT JOIN mediaitemfolder f3 ON f2.parent = f3.id
LEFT JOIN mediaitemfolder f4 ON f3.parent = f4.id
LEFT JOIN mediaitemfolder f5 ON f4.parent = f5.id
WHERE f1.id IN (3129,3141,3037,2800,1667,2135,3018,401,384,2347,934,962)

Q5 — Script owner resolution

SELECT id, entityid, firstname, lastname, email, isinactive, title
FROM employee WHERE id = 1252

Q6 — Execution-context coverage per deploymentall 38 rows: 37 contexts, no restriction

SELECT d.scriptid AS dep,
       LENGTH(d.executioncontext) - LENGTH(REPLACE(d.executioncontext, ',', '')) + 1 AS ctxcount
FROM scriptdeployment d
JOIN script s ON d.script = s.id
WHERE d.recordtype IN ('SALESORDER','INVOICE','VENDORBILL')
  AND s.scripttype IN ('USEREVENT','CLIENT')

Q7 — Workflows on the same records (supplementary, A5)

SELECT internalid, scriptid, name, recordtype, recordtypes, isinactive, releasestatus,
       frombundle, initoncreate, initonvieworupdate
FROM workflow WHERE isinactive = 'F' ORDER BY recordtype

Q8 — Execution-log presence0 rows · see A4

SELECT n.scripttype AS script, n.type, COUNT(*) AS cnt
FROM scriptnote n
WHERE n.scripttype IN (2386,477,1201,3365,2389,1274,436,1155,2192,418,2051,135,
                       473,1793,2182,2098,801,1794,476,423)
GROUP BY n.scripttype, n.type ORDER BY cnt DESC

Source tables

scriptdeployment · script · file · mediaitemfolder · employee · workflow · scriptnote. Column names were verified against a single-row SELECT * on each table before use. Note that scriptnote.scripttype holds the script internal id, and workflow exposes internalid rather than id.