Yogesh Shinde
ServiceNow Employee
ServiceNow Employee
This post addresses a common issue encountered during skill activation - failure at the Record Clustering step due to insufficient case volume.
Issue:
The clustering process requires a minimum of 500 resolved cases in your instance. If this threshold is not met, the skill activation will fail.
Workaround:
To overcome this, you can generate synthetic data to meet the required volume. While GenAI tools offer various ways to do this, for convenience, a Python script is provided below. This script creates a .csv file with sample records, which can be imported into a staging table and then mapped into the sn_customerservice_case table using a Transform Map. 
Assumption: Python is installed on your machine.
 
import csv
import random

short_descriptions = [
    "Password reset issue", "Email not syncing", "Unable to login", "Printer not working",
    "VPN connection failure", "Software installation error", "Account locked",
    "Wi-Fi connectivity issue", "Email delivery delay", "Application crash",
    "Laptop overheating", "Slow internet", "Two-factor auth failure", "Outlook crashes",
    "Software license expired", "Monitor flickering", "Phone not charging",
    "Access to shared drive", "Zoom audio issue", "Keyboard not working",
    "Mobile app login issue", "Network printer offline", "Email bounce back",
    "CRM data sync issue", "Laptop won't boot", "Access request pending",
    "Wi-Fi drops frequently", "Outlook calendar sync", "Software update failed",
    "USB ports not working", "VPN login timeout", "Shared mailbox access",
    "CRM report error", "Laptop battery drains fast", "Access to HR portal",
    "Network slowness", "Email rules not working", "App install blocked",
    "Laptop screen flicker", "Remote desktop lag", "Access to finance folder",
    "Email auto-reply issue", "CRM login error", "Laptop won't shut down",
    "Wi-Fi authentication error", "Outlook search broken", "Software crash on launch",
    "Access to reports dashboard", "Printer paper jam", "Access to project folder"
]

descriptions = [
    "User unable to reset password via portal", "Outlook not syncing with mobile device",
    "Login fails with error code 403", "Printer offline and not responding",
    "VPN drops every 10 minutes", "Error during installation of MS Teams",
    "User account locked after failed attempts", "User unable to connect to office Wi-Fi",
    "Emails delayed by 30 minutes", "CRM app crashes on login",
    "Laptop heats up during normal use", "User reports slow internet in office",
    "2FA not working for remote login", "Outlook crashes when opening calendar",
    "User unable to access licensed software", "Monitor flickers intermittently",
    "Company phone not charging properly", "User cannot access team shared folder",
    "User can't hear audio in Zoom meetings", "Keyboard unresponsive on laptop",
    "User can't log into mobile CRM app", "Shared printer not reachable",
    "Emails bouncing from external domain", "Customer data not syncing to CRM",
    "Laptop stuck on boot screen", "User access request not approved",
    "Wi-Fi disconnects every few minutes", "Calendar events not syncing",
    "Update fails with error code 0x80070005", "USB devices not detected",
    "VPN login times out after credentials", "User can't access shared mailbox",
    "Error generating monthly report", "Battery drains within 1 hour",
    "User denied access to HR portal", "Slow network in conference room",
    "Outlook rules not applying", "Security blocks app installation",
    "Screen flickers when moved", "Remote session lags heavily",
    "User denied access to finance folder", "Auto-reply not triggering",
    "Login fails with SSO error", "Stuck on shutting down screen",
    "Wi-Fi asks for credentials repeatedly", "Search returns no results",
    "App crashes immediately on open", "User can't view reports dashboard",
    "Frequent paper jams in printer", "User can't access project files on SharePoint"
]

resolutions = [
    "Guided user through password reset steps", "Reconfigured account and cleared cache",
    "Reset user credentials and unlocked user", "Restarted printer and updated drivers",
    "Updated VPN client and network settings", "Installed dependencies and re-ran installer",
    "Unlocked account and advised on password policy", "Reset network adapter and reconnected",
    "Restarted mail service and cleared queue", "Updated app and cleared local cache",
    "Cleaned vents and updated BIOS", "Checked bandwidth and reset router",
    "Reset 2FA settings and re-enrolled user", "Repaired Outlook profile and cleared cache",
    "Renewed license and reactivated software", "Replaced HDMI cable and updated drivers",
    "Replaced charger and battery", "Granted permissions and synced drive",
    "Checked audio settings and reinstalled Zoom", "Reconnected keyboard driver and tested",
    "Reset app credentials and cleared cache", "Restarted print spooler and reconnected",
    "Whitelisted domain and checked SPF records", "Restarted sync job and fixed mapping",
    "Repaired OS and restored from backup", "Manually approved request and notified user",
    "Updated drivers and changed frequency band", "Reconnected calendar and cleared cache",
    "Granted permissions and re-ran update", "Updated chipset drivers and tested ports",
    "Extended timeout and checked firewall", "Granted delegate access and synced",
    "Fixed report filters and regenerated", "Replaced battery and optimized power settings",
    "Updated user role and tested login", "Replaced switch and tested throughput",
    "Recreated rules and restarted Outlook", "Whitelisted app and installed via admin",
    "Replaced display cable and tested", "Optimized RDP settings and network",
    "Granted access and logged change", "Reconfigured rules and tested",
    "Reset SSO token and re-authenticated", "Forced shutdown and updated OS",
    "Reset Wi-Fi profile and reconnected", "Rebuilt index and restarted Outlook",
    "Reinstalled app and cleared registry", "Updated role and permissions",
    "Cleared jam and cleaned rollers", "Granted access and synced folder"
]

categories = ["Access", "Email", "Hardware", "Software", "Network"]
states = ["Closed", "Resolved"]

# Ensure we generate 500 unique combinations
used_combinations = set()
rows = []

while len(rows) < 500:
    s = random.choice(short_descriptions)
    d = random.choice(descriptions)
    r = random.choice(resolutions)
    c = random.choice(categories)
    st = random.choice(states)
    key = (s, d, r, c, st)
    if key not in used_combinations:
        used_combinations.add(key)
        rows.append([s, d, r, c, st])

# Write to CSV
with open("nowassist_500_cases.csv", "w", newline="") as f:
    writer = csv.writer(f)
    writer.writerow(["short_description", "description", "resolution_notes", "category", "state"])
    writer.writerows(rows)

print("✅ nowassist_500_cases.csv created with 500 distinct records.")

 

YogeshShinde_0-1753793981606.png

 

YogeshShinde_1-1753793994900.png

 

You can verify the clustered records in sn_gaf_record_group, sn_gaf_record_group_detail tables.

 

For more details on GAF, refer to - how-to-verify-and-troubleshoot-group-action-framework-gaf 

 

#NowAssist
#CustomerServiceManagement
#CSM
#GenAI
#RecordClustering
#SkillActivation
#SyntheticData
#PythonAutomation
#TransformMap
#ServiceNowTips
#Troubleshooting