Use Automated Tests to Validate "Guided Setup" Completion & Functionality.
ServiceNow Developer Pro-Tips
·
Apr 27, 2021
·
article
Here's a **Quick Pro-Tip**:
If you have an application which requires some setup or initial configuration, write **ATF tests** specifically to **validate that the application is set up properly**. Add **executing the tests** as a final step in your application's **Guided Setup**, and provide some meaningful output that directs the admin to the right place(s) to fix any issues identified by the tests.
[
](https://handbook.snc.guru)
For example, I'm building an application now which connects to an outside application running on the company's intranet. Part of the guided setup includes populating a system property with the outside application instance's base URL and encrypted credentials or API key, setting up a MID server for the REST messages, and other important steps.
If these steps aren't done, or are done incorrectly, the application will not work. Therefore, I'm writing some ATF tests to check whether the configuration is set up such that the application can log into this external service, get data from it, and properly parse that data.
I don’t have to _directly_ validate that, for example, the instance URL is correct - I don’t know their instance URL anyway. Instead, I just have to check if all of the REST messages fire and function as expected, retrieve expected data, and that that data is parseable. If something fails, I can look at the HTTP status code, and determine the likely problem.
404? URL is probably wrong.
401? Credentials are probably wrong.
500? The external application is probably misconfigured; here’s a link to the docs about how to set it up.
That’s all, folks! If you want to see my upcoming article on **how to add a Guided Setup to your application**, be sure to [**subscribe**](https://snprotips.com/subscribe) and follow me on [**LinkedIn**](http://li.snc.guru) and [**Twitter**](https://twitter.com/TheTimWoodruff), to see when that article drops!
---
## Subscribe
Sign up with your email address to receive news and updates.
First Name Last Name
Email Address Sign Up
We respect your privacy.
Thank you!
---
* [ September 2025](https://snprotips.com/blog?month=09-2025)
* Sep 29, 2025 [Find Filthy Inefficient Single-Record Queries FAST](https://snprotips.com/blog/2025/find-filthy-inefficient-single-record-queries-fast) Sep 29, 2025
* Sep 14, 2025 [Communicating Changes to Your Users (& Setting Default User Preferences in ServiceNow)](https://snprotips.com/blog/2025/communicating-servicenow-changes-to-your-users) Sep 14, 2025
* [ March 2025](https://snprotips.com/blog?month=03-2025)
* Mar 24, 2025 [Calculate Distance Between Two Locations in ServiceNow (without an API call!)](https://snprotips.com/blog/2025/calculate-the-distance-between-two-locations-without-an-api-call) Mar 24, 2025
* Mar 11, 2025 [5 Ways to Check your ServiceNow Instance for DANGEROUS CODE in Less Than 5 minutes](https://snprotips.com/blog/2023/3-ways-to-check-your-servicenow-instance-for-dangerous-code-in-less-than-5-minutes) Mar 11, 2025
* [ March 2024](https://snprotips.com/blog?month=03-2024)
* Mar 28, 2024 [How to Identify Duplicate Records by Multiple Fields in ServiceNow](https://snprotips.com/blog/2024/how-to-identify-a-duplicate-record-by-multiple-fields-in-servicenow) Mar 28, 2024
* Mar 7, 2024 [How to Merge Personal & Company ServiceNow Accounts](https://snprotips.com/blog/2024/how-to-merge-personal-amp-company-servicenow-accounts) Mar 7, 2024
* [ February 2024](https://snprotips.com/blog?month=02-2024)
* Feb 12, 2024 [5 Lessons About Programming From Richard Feynman](https://snprotips.com/blog/2024/5-lessons-about-programming-from-richard-feynman) Feb 12, 2024
* [ July 2023](https://snprotips.com/blog?month=07-2023)
* Jul 5, 2023 [Managing Instance-Specific System Properties for Dev/Test/Prod in ServiceNow](https://snprotips.com/blog/2023/managing-instance-specific-system-properties-for-devtestprod-in-servicenow) Jul 5, 2023
* [ April 2023](https://snprotips.com/blog?month=04-2023)
* Apr 28, 2023 [Your ACLs and Business Rules are Broken (Here's How to Fix Them)](https://snprotips.com/blog/2023/4/28/your-servicenow-acls-are-broken) Apr 28, 2023
* [ December 2022](https://snprotips.com/blog?month=12-2022)
* Dec 13, 2022 [ServiceNow Developers: BE THE GUIDE!](https://snprotips.com/blog/2022/12/13/be-the-guide) Dec 13, 2022
* [ October 2022](https://snprotips.com/blog?month=10-2022)
* Oct 19, 2022 [A Faster, More Efficient Client-side GlideRecord (Free tool!)](https://snprotips.com/blog/2022/10/19/efficientgliderecord-a-faster-more-efficient-client-side-gliderecord-free-tool) Oct 19, 2022
* Oct 9, 2022 [Animated Loading Message & Collapsible Details on ServiceNow Form or Field (Client-side)](https://snprotips.com/blog/2022/10/7/animated-progress-message-with-collapsible-details-on-servicenow-form-client-side) Oct 9, 2022
* [ August 2022](https://snprotips.com/blog?month=08-2022)
* Aug 23, 2022 [Using .addJoinQuery() & How to Query Records with Attachments in ServiceNow](https://snprotips.com/blog/2022/8/23/using-gliderecords-addjoinquery-amp-how-to-query-for-records-with-attachments-in-servicenow) Aug 23, 2022
* Aug 18, 2022 [Free, Simple URL Shortener for ServiceNow Nerds (snc.guru)](https://snprotips.com/blog/2022/8/18/free-simple-url-shortener-for-servicenow-nerds-sncguru) Aug 18, 2022
* Aug 16, 2022 [How to Get and Parse ServiceNow Journal Entries as Strings/HTML](https://snprotips.com/blog/2022/8/16/how-to-get-servicenow-journal-entries-as-strings) Aug 16, 2022
* Aug 14, 2022 [New tool: Get Latest Version of ServiceNow Docs Page](https://snprotips.com/blog/2022/8/10/0zsig0bjlxn1c8jvk3y8lzajj9x1ox) Aug 14, 2022
* [ March 2022](https://snprotips.com/blog?month=03-2022)
* Mar 4, 2022 [How to Set or Change ServiceNow Application's Repository URL, Credentials, or SSH Key](https://snprotips.com/blog/2022/3/4/how-to-change-servicenow-applications-repositoryurl) Mar 4, 2022
* [ February 2022](https://snprotips.com/blog?month=02-2022)
* Feb 7, 2022 [How to return a CSV file from a Scripted REST API (SRAPI) in ServiceNow](https://snprotips.com/blog/2022/2/7/how-to-return-a-csv-file-from-a-servicenow-scripted-rest-api) Feb 7, 2022
* [ May 2021](https://snprotips.com/blog?month=05-2021)
* May 3, 2021 [Adding a Guided Setup to Your ServiceNow Application](https://snprotips.com/blog/2021/4/27/adding-a-guided-setup-to-your-servicenow-application) May 3, 2021
* [ April 2021](https://snprotips.com/blog?month=04-2021)
* Apr 27, 2021 [Use Automated Tests to Validate "Guided Setup" Completion & Functionality.](https://snprotips.com/blog/2021/4/27/use-atf-to-validate-guided-setup) Apr 27, 2021
* [ February 2021](https://snprotips.com/blog?month=02-2021)
* Feb 11, 2021 ["Processors", SRAPIs, and How to Run a Script and Redirect a User From a URL in ServiceNow](https://snprotips.com/blog/2021/1/20/processors-srapis-and-how-to-run-a-script-and-redirect-a-user-from-a-url) Feb 11, 2021
* [ November 2020](https://snprotips.com/blog?month=11-2020)
* Nov 17, 2020 [SN Guys is now part of Jahnel Group!](https://snprotips.com/blog/2020/11/17/the-sn-guys-a-servicenow-consulting-firm-acquired-by-jahnel-group-an-enterprise-software-agency) Nov 17, 2020
* [ September 2020](https://snprotips.com/blog?month=09-2020)
* Sep 14, 2020 [Better ServiceNow Notifications (& Another FREE Tool!)](https://snprotips.com/blog/2020/8/27/eliminating-servicenow-notification-nuisance-amp-another-free-tool) Sep 14, 2020
* [ July 2020](https://snprotips.com/blog?month=07-2020)
* Jul 31, 2020 [Debugging Client & Catalog Client Scripts in ServiceNow](https://snprotips.com/blog/2020/7/31/debugging-client-amp-catalog-client-scripts-in-servicenow) Jul 31, 2020
* [ January 2020](https://snprotips.com/blog?month=01-2020)
* Jan 20, 2020 [Getting Help from the ServiceNow Community](https://snprotips.com/blog/2020/1/20/getting-help-from-the-servicenow-community) Jan 20, 2020
* [ December 2019](https://snprotips.com/blog?month=12-2019)
* Dec 18, 2019 [Can ServiceNow Script Includes Use the "current" Variable?](https://snprotips.com/blog/2019/12/18/can-script-includes-use-the-current-variable) Dec 18, 2019
* [ November 2019](https://snprotips.com/blog?month=11-2019)
* Nov 18, 2019 [Handling 'text/plain' and Other Unsupported Content Types in ServiceNow Scripted REST APIs](https://snprotips.com/blog/2019/11/18/handling-textplain-and-other-unsupported-content-types-in-scripted-rest-apis) Nov 18, 2019
* [ April 2019](https://snprotips.com/blog?month=04-2019)
* Apr 21, 2019 [Understanding Attachments in ServiceNow](https://snprotips.com/blog/2016/2/25/understanding-and-using-glideattachment) Apr 21, 2019
* Apr 10, 2019 [Using Custom Search Engines in Chrome to Quickly Navigate ServiceNow](https://snprotips.com/blog/2019/4/9/using-custom-search-engines-in-chrome-to-quickly-navigate-servicenow) Apr 10, 2019
* Apr 4, 2019 [Set Catalog Variables from URL Params (Free tool)](https://snprotips.com/blog/2019/4/4/set-catalog-variables-from-url-params-free-tool) Apr 4, 2019
* Apr 1, 2019 [Outlook for Android Breaks Email Approvals (+Solution)](https://snprotips.com/blog/2019/4/1/outlook-for-android-breaks-email-approvals) Apr 1, 2019
* [ March 2019](https://snprotips.com/blog?month=03-2019)
* Mar 11, 2019 [GlideFilter is Broken - Free Tool: “BetterGlideFilter”](https://snprotips.com/blog/2019/3/11/glidefilter-is-broken-heres-an-alternative) Mar 11, 2019
* [ February 2019](https://snprotips.com/blog?month=02-2019)
* Feb 27, 2019 [Making Update Sets Smarter - Free Tool](https://snprotips.com/blog/2019/2/27/making-update-sets-smarter) Feb 27, 2019
* [ November 2018](https://snprotips.com/blog?month=11-2018)
* Nov 29, 2018 [How to Learn ServiceNow](https://snprotips.com/blog/2018/10/20/how-to-learn-servicenow) Nov 29, 2018
* Nov 6, 2018 [ServiceNow & ITSM as a Career?](https://snprotips.com/blog/2018/11/6/servicenow-amp-itsm-admindevelopmentarchitecture-as-a-career) Nov 6, 2018
* [ October 2018](https://snprotips.com/blog?month=10-2018)
* Oct 19, 2018 [Asynchronous onSubmit Catalog/Client Scripts in ServiceNow](https://snprotips.com/blog/2018/10/19/synchronous-lite-onsubmit-catalogclient-scripts) Oct 19, 2018
* Oct 11, 2018 [How to do Massive, Slow Database Operations Efficiently With Event-Driven Recursion](https://snprotips.com/blog/2018/10/11/how-to-do-massive-slow-database-operations-without-slowing-down-your-instance) Oct 11, 2018
* [ September 2018](https://snprotips.com/blog?month=09-2018)
* Sep 18, 2018 [Broken Queries & Query Business Rules in ServiceNow](https://snprotips.com/blog/2018/9/18/broken-queries-and-query-rules) Sep 18, 2018
* Sep 7, 2018 [JournalRedactor - Easily Redact or Delete Journal Entries in ServiceNow!](https://snprotips.com/blog/2018/9/7/new-free-tool-journalredactor-easily-redact-or-delete-journal-entries-in-servicenow) Sep 7, 2018
* [ July 2018](https://snprotips.com/blog?month=07-2018)
* Jul 23, 2018 [Admin Duty Separation with a Single Account](https://snprotips.com/blog/2018/7/23/admin-duty-separation-with-a-single-account) Jul 23, 2018
* [ June 2018](https://snprotips.com/blog?month=06-2018)
* Jun 19, 2018 [Improving Performance on Older Instances with Table Rotation](https://snprotips.com/blog/2018/6/19/improving-performance-on-older-instances-with-table-rotation) Jun 19, 2018
* Jun 4, 2018 [New Free Tool: Login Link Generator](https://snprotips.com/blog/2016/9/23/qqbnfzgdo1cr1wwzpsuesn12thyug5) Jun 4, 2018
* [ May 2018](https://snprotips.com/blog?month=05-2018)
* May 29, 2018 [Learning ServiceNow: Second Edition!](https://snprotips.com/blog/2018/5/29/learning-servicenow-second-edition-is-now-available-for-pre-order) May 29, 2018
* [ April 2018](https://snprotips.com/blog?month=04-2018)
* Apr 17, 2018 [Upgrading From Express to Enterprise: What's Missing](https://snprotips.com/blog/2018/4/17/upgrading-express-to-enterprise-whats-missing) Apr 17, 2018
* Apr 12, 2018 [If a Genie Gave Me Three Wishes, I'd Use Them All to "Fix" Scope](https://snprotips.com/blog/2018/4/12/if-a-genie-gave-me-three-wishes-id-use-them-all-to-fix-scope) Apr 12, 2018
* [ March 2018](https://snprotips.com/blog?month=03-2018)
* Mar 19, 2018 [Service Catalog "Try in Portal" button](https://snprotips.com/blog/2018/3/15/service-catalog-try-in-portal-button) Mar 19, 2018
* Mar 15, 2018 [Video: Custom Output Transition Conditions From a Single Workflow (Script) Activity](https://snprotips.com/blog/2018/3/15/video-custom-output-transition-conditions-from-a-single-workflow-script-activity) Mar 15, 2018
* [ February 2018](https://snprotips.com/blog?month=02-2018)
* Feb 11, 2018 [We have a new book! ](https://snprotips.com/blog/2018/2/11/we-have-a-new-book) Feb 11, 2018
* [ November 2017](https://snprotips.com/blog?month=11-2017)
* Nov 6, 2017 [Requiring Attachments (& Other Miracles) in Service Portal](https://snprotips.com/blog/2017/11/5/a-better-way-to-check-for-attachments-including-service-portal) Nov 6, 2017
* [ September 2017](https://snprotips.com/blog?month=09-2017)
* Sep 12, 2017 [Handling TimeZones in ServiceNow (TimeZoneUtil)](https://snprotips.com/blog/2017/9/12/handling-timezones-in-servicenow-timezoneutil) Sep 12, 2017
* [ July 2017](https://snprotips.com/blog?month=07-2017)
* Jul 27, 2017 [How to Enable DOM Manipulation in ServiceNow Service Portal Catalog Client Scripts](https://snprotips.com/blog/2017/7/21/how-to-enable-dom-manipulation-in-the-servicenow-service-portal) Jul 27, 2017
* [ June 2017](https://snprotips.com/blog?month=06-2017)
* Jun 25, 2017 [What's New in ServiceNow: Jakarta (Pt. 1)](https://snprotips.com/blog/2017/6/25/whats-new-in-servicenow-jakarta-what-to-expect) Jun 25, 2017
* Jun 4, 2017 [Powerful Scripted Text Search in ServiceNow](https://snprotips.com/blog/2017/6/4/powerful-text-search-in-scripted-glide-record) Jun 4, 2017
* [ May 2017](https://snprotips.com/blog?month=05-2017)
* May 9, 2017 [Work at Lightspeed: ServiceNow's Plan for World Domination](https://snprotips.com/blog/2017/5/9/work-at-lightspeed-servicenows-plan-for-world-domination) May 9, 2017
* [ April 2017](https://snprotips.com/blog?month=04-2017)
* Apr 9, 2017 [Avoiding Pass-By-Reference Using getValue() & setValue()](https://snprotips.com/blog/2017/4/9/always-use-getters-and-setters) Apr 9, 2017
* Apr 4, 2017 ["Learning ServiceNow" is Now Available for Purchase!](https://snprotips.com/blog/2017/4/4/learning-servicenow-has-been-published) Apr 4, 2017
* [ March 2017](https://snprotips.com/blog?month=03-2017)
* Mar 12, 2017 [reCAPTCHA in ServiceNow CMS/Service Portal](https://snprotips.com/blog/2016/10/6/implementing-recaptcha) Mar 12, 2017
* [ December 2016](https://snprotips.com/blog?month=12-2016)
* Dec 20, 2016 [Pro Tip: Use updateMultiple() for Maximum Efficiency! ](https://snprotips.com/blog/2016/12/20/pro-tip-use-updatemultiple-for-maximum-efficiency) Dec 20, 2016
* Dec 2, 2016 [We're Writing a Book! ](https://snprotips.com/blog/2016/12/2/were-writing-a-book) Dec 2, 2016
* [ November 2016](https://snprotips.com/blog?month=11-2016)
* Nov 10, 2016 [Chrome Extension: Load in ServiceNow Frame](https://snprotips.com/blog/2016/11/10/chrome-extension-load-in-servicenow-frame) Nov 10, 2016
* [ September 2016](https://snprotips.com/blog?month=09-2016)
* Sep 7, 2016 [Force-Include Any Record Into an Update Set](https://snprotips.com/blog/2016/9/7/force-include-any-record-into-an-update-set-in-servicenow) Sep 7, 2016
* Sep 1, 2016 [GlideRecord Pagination - Page through your GlideRecord query](https://snprotips.com/blog/2016/9/1/gliderecord-pagination-page-through-records-with-ease) Sep 1, 2016
* [ July 2016](https://snprotips.com/blog?month=07-2016)
* Jul 17, 2016 [Granting Temporary Roles/Groups in ServiceNow](https://snprotips.com/blog/2016/7/17/granting-permissions-rolegroup-membership-temporarily-in-servicenow) Jul 17, 2016
* Jul 15, 2016 [Scripted REST APIs & Retrieving RITM Variables via SRAPI](https://snprotips.com/blog/2016/7/15/scripted-rest-apis-in-servicenow-how-to-retrieve-catalog-item-variables) Jul 15, 2016
* [ May 2016](https://snprotips.com/blog?month=05-2016)
* May 17, 2016 [What's New in Helsinki?](https://snprotips.com/blog/2016/5/17/whats-new-in-helsinki) May 17, 2016
* [ April 2016](https://snprotips.com/blog?month=04-2016)
* Apr 27, 2016 [Customizing UI16 Through CSS and System Properties](https://snprotips.com/blog/2016/4/9/customizing-ui16-through-css-and-system-properties) Apr 27, 2016
* Apr 5, 2016 [ServiceNow Versions: Express Vs. Enterprise](https://snprotips.com/blog/2016/4/4/servicenow-express-vs-enterprise) Apr 5, 2016
* [ March 2016](https://snprotips.com/blog?month=03-2016)
* Mar 28, 2016 [Update Set Collision Avoidance Tool: V2](https://snprotips.com/blog/2016/3/28/update-set-collision-avoidance-tool-v2) Mar 28, 2016
* Mar 18, 2016 [ServiceNow: What's New in Geneva & UI16 (Pt. 2)](https://snprotips.com/blog/2016/3/11/servicenow-geneva-ui) Mar 18, 2016
* [ February 2016](https://snprotips.com/blog?month=02-2016)
* Feb 22, 2016 [Reference Field Auto-Complete Attributes](https://snprotips.com/blog/2016/2/22/referencelist-attributes) Feb 22, 2016
* Feb 6, 2016 [GlideRecord & GlideAjax: Client-Side Vs. Server-Side](https://snprotips.com/blog/2016/2/6/gliderecord-client-side-vs-server-side) Feb 6, 2016
* Feb 1, 2016 [Make Your Log Entries Easier to Find](https://snprotips.com/blog/2016/1/26/make-your-gslog-entries-easier-to-find) Feb 1, 2016
* [ January 2016](https://snprotips.com/blog?month=01-2016)
* Jan 29, 2016 [A Better, One-Click Approval](https://snprotips.com/blog/2016/1/29/approve-or-reject-with-a-single-click) Jan 29, 2016
* Jan 25, 2016 [Quickly Move Changes Between Update Sets](https://snprotips.com/blog/2016/1/26/quickly-move-changes-between-update-sets) Jan 25, 2016
* Jan 20, 2016 [Customize the Reference Icon Pop-up](https://snprotips.com/blog/2016/1/19/using-syspopup-view-to-customize-flyoutpopup-info-on-reference-fields) Jan 20, 2016
* Jan 7, 2016 [ServiceNow: Geneva & UI16 - What's new](https://snprotips.com/blog/2016/1/7/servicenow-geneva-pro-tips-whats-new-in-geneva) Jan 7, 2016
* Jan 4, 2016 [Detect/Prevent Update Set Conflicts Before They Happen](https://snprotips.com/blog/rvicenowprotips.com/2015/11/detecting-update-set-conflicts-before.html) Jan 4, 2016
* [ December 2015](https://snprotips.com/blog?month=12-2015)
* Dec 28, 2015 [SN101: Boolean logic and ServiceNow's Condition Builder](https://snprotips.com/blog/2015/12/28/building-queries-in-servicenows-condition-builder) Dec 28, 2015
* Dec 17, 2015 [Locate any record in any table, by sys\_id in ServiceNow](https://snprotips.com/blog/sncprotips/2015/12/locate-any-record-in-any-table-by-sysidhtml) Dec 17, 2015
* Dec 16, 2015 [Detecting Duplicate Records with GlideAggregate](https://snprotips.com/blog/rvicenowprotips.com/2015/12/detecting-duplicate-records-with.html) Dec 16, 2015
* Dec 11, 2015 [Array.indexOf() not working in ServiceNow - Solution! ](https://snprotips.com/blog/sncprotips/2015/12/arrayindexof-not-working-in-servicenowhtml) Dec 11, 2015
* Dec 2, 2015 [Understanding Dynamic Filters & Checking a Record Against a Filter Using GlideFilter](https://snprotips.com/blog/sncprotips/2015/12/undocumented-apis-glidefilterhtml) Dec 2, 2015
* [ October 2015](https://snprotips.com/blog?month=10-2015)
* Oct 20, 2015 [Bookmarklet: Load the current page in the ServiceNow frame](https://snprotips.com/blog/rvicenowprotips.com/2015/10/bookmarklet-load-current-page-in.html) Oct 20, 2015
* [ August 2015](https://snprotips.com/blog?month=08-2015)
* Aug 27, 2015 [Easily Clone One User's Access to Another User](https://snprotips.com/blog/rvicenowprotips.com/2015/08/clone-one-users-access-to-another-user.html) Aug 27, 2015
https://snprotips.com/blog/2021/4/27/use-atf-to-validate-guided-setup