Skip to content

Conversation

@shivamvish160
Copy link
Contributor

@shivamvish160 shivamvish160 commented Oct 15, 2025

PR Description:

Dynamic Record Archiving Logic

Overview

This snippet provides a reusable logic to archive or flag records in ServiceNow that are older than a specified threshold. It helps maintain data hygiene, improve performance, and support compliance with data retention policies.

You can choose between two modes:

  • Flag Mode: Marks records as archived using a custom field (u_archived).
  • Move Mode: Moves records to a corresponding archive table (e.g., incident_archive) and deletes the original.

Use Case

  • Archive incidents older than 1 year.
  • Clean up old tasks, requests, or custom records.
  • Automate data lifecycle management via Scheduled Jobs.

Parameters

Parameter Description
tableName Name of the table to archive (e.g., incident)
dateField Date field to filter by (e.g., opened_at, created_on)
archiveThresholdDays Number of days before today to consider for archiving (e.g., 365)
archiveMode 'flag' to mark records, 'move' to transfer to archive table

Example Usage

var archiver = new RecordArchiver('incident', 'opened_at', 365, 'flag');
archiver.archiveRecords();


Pull Request Checklist

Overview

  • Put an x inside of the square brackets to check each item.
  • I have read and understood the CONTRIBUTING.md guidelines
  • My pull request has a descriptive title that accurately reflects the changes and the description has been filled in above.
  • I've included only files relevant to the changes described in the PR title and description
  • I've created a new branch in my forked repository for this contribution

Code Quality

  • My code is relevant to ServiceNow developers
  • My code snippets expand meaningfully on official ServiceNow documentation (if applicable)
  • I've disclosed use of ES2021 features (if applicable)
  • I've tested my code snippets in a ServiceNow environment (where possible)

Repository Structure Compliance

  • I've placed my code snippet(s) in one of the required top-level categories:
    • Core ServiceNow APIs/
    • Server-Side Components/
    • Client-Side Components/
    • Modern Development/
    • Integration/
    • Specialized Areas/
  • I've used appropriate sub-categories within the top-level categories
  • Each code snippet has its own folder with a descriptive name

Documentation

  • I've included a README.md file for each code snippet
  • The README.md includes:
    • Description of the code snippet functionality
    • Usage instructions or examples
    • Any prerequisites or dependencies
    • (Optional) Screenshots or diagrams if helpful

Restrictions

  • My PR does not include XML exports of ServiceNow records
  • My PR does not contain sensitive information (passwords, API keys, tokens)
  • My PR does not include changes that fall outside the described scope

@bird-03 bird-03 self-assigned this Oct 15, 2025
@bird-03
Copy link
Contributor

bird-03 commented Oct 15, 2025

Hi @shivamvish160

Thank you for participating and sharing the script logic.

Helpful if you can add a description to this PR, will be happy to merge.

Thanks!

@shivamvish160
Copy link
Contributor Author

Hi @shivamvish160

Thank you for participating and sharing the script logic.

Helpful if you can add a description to this PR, will be happy to merge.

Thanks!

Hi @bird-03 Thanks for pointing that out
I have updated the description please review

@bird-03 bird-03 merged commit 45fd932 into ServiceNowDevProgram:main Oct 15, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants