Custom CR Template or Form - How to Create One?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
yesterday
Hello. I am an Oracle database administrator who has been tasked with automation of routine, day-to-day user requests. I have done so in the JIRA domain. Now I need to do the same here, in ServiceNow. But I am having issues. I don't know how to create a custom form or a Change Request template which will have all the necessary user request details. These fields are not included in normal CR templates.
Lets consider an example.
Currently (this is the legacy approach I am supposed to improve) an end user opens a regular CR requesting to reset his/her password. An Oracle DBA needs only four parameters:
1) User Oracle username;
2) The database or several of them to change the password in;
The DBA then receives the "CR Open" notification, resets the password and passes it to the end user.
Here is what I have build in JIRA and need to build in ServiceNow.
The same user opens a Change Request template or a form (not sure which is better). The form will already have the text boxes or dropdowns with both the database and username entries. The user chooses whatever entries are relevant to the particular request. Next, there is an Ansible automation server which polls the PDI URL every 60 seconds, the server detects the CR opened. The automation workflow then parses particular CR custom fields for username and password. Then it connects to the database server and actually resets the password without the help of a database admin. It then updates the CR with the new password and notifies the user.
I dont need any help with the Ansible automation playbooks, I know that part well. But I do need help with:
a) Determining which way to go in ServiceNow as far as the user interface is concerned. Should it be a CR template? A custom form? Something else? What then?
b) How do I add the custom fields to that entity? Like user, database, etc?
c) How do I find these entities in my PDI?
Here is an example of what Ansible can get by parsing the CR metadata.
"record": {
"active": "true",
"activity_due": "",
"additional_assignee_list": "",
"approval": "not requested",
"approval_history": "",
"approval_set": "",
"assigned_to": "",
"assignment_group": "",
"attachments": [],
"backout_plan": "",
"business_duration": "",
"business_service": "",
"cab_date_time": "",
"cab_delegate": "",
"cab_recommendation": "",
"cab_required": "false",
"calendar_duration": "",
"category": "Other",
"change_plan": "",
"chg_model": "007c4001c343101035ae3f52c1d3aeb2",
"chg_model_template": "",
"close_code": "",
"close_notes": "",
"closed_at": "",
"closed_by": "",
"cmdb_ci": "",
"comments": "",
"comments_and_work_notes": "",
"company": "",
"conflict_last_run": "",
"conflict_status": "Not Run",
"contact_type": "",
"copied_from": "",
"correlation_display": "",
"correlation_id": "",
"description": "Please Install Oracle 26ai on all DEV servers by 2026/09/30",
"due_date": "",
"end_date": "",
"escalation": "0",
"exclude_from_conflict_detection": "false",
"expected_start": "",
"follow_up": "",
"group_list": "",
"impact": "low",
"implementation_plan": "",
"justification": "",
"knowledge": "false",
"location": "",
"made_sla": "true",
"number": "CHG0030005",
"on_hold": false,
"on_hold_reason": "",
"on_hold_task": "",
"opened_at": "2026-07-19 00:50:15",
"opened_by": "9978b82fc3c607103b5af0477d01314b",
"order": "",
"outside_maintenance_schedule": "false",
"parent": "",
"phase": "requested",
"phase_state": "open",
"priority": "low",
"production_system": "false",
"reason": "",
"reassignment_count": "0",
"requested_by": "9978b82fc3c607103b5af0477d01314b",
"requested_by_date": "",
"review_comments": "",
"review_date": "",
"review_status": "",
"risk": "",
"risk_impact_analysis": "",
"route_reason": "",
"scope": "3",
"service_offering": "",
"short_description": "Install Oracle 26ai",
"sla_due": "",
"start_date": "",
"state": "new",
"std_change_producer_version": "",
"sys_class_name": "change_request",
"sys_created_by": "hyperautomation.platform",
"sys_created_on": "2026-07-19 00:50:15",
"sys_domain": "global",
"sys_domain_path": "/",
"sys_id": "64aef4a7c30a07103b5af0477d01313f",
"sys_mod_count": "0",
"sys_tags": "",
"sys_updated_by": "hyperautomation.platform",
"sys_updated_on": "2026-07-19 00:50:15",
"task_effective_number": "CHG0030005",
"test_plan": "",
"time_worked": "",
"type": "normal",
"unauthorized": "false",
"universal_request": "",
"upon_approval": "proceed",
"upon_reject": "cancel",
"urgency": "low",
"user_input": "",
"watch_list": "",
"work_end": "",
"work_notes": "",
"work_notes_list": "",
"work_start": ""This is a regular CR, without the custom fields I don't know now how to add.
For comparison, showing the JIRA functionality I am trying to replicate in ServiceNow. This is a project call Reset Password.
and here is the JIRA form the user interfaces.
and here is the JIRA Worklog entry the user sees after the password is reset by Ansible automation without the help of a person at all.
Please point me in the right direction by answering the a) , b) and c) above.
Thanks.
Hyperautomation.