Now Assist Skill Kit: build your first custom AI skill
What Now Assist Skill Kit is, what you need before you start, how to build, test and deploy a custom generative AI skill, and the best places to learn more.
Out-of-box Now Assist skills cover the common jobs: summarising incidents, drafting resolution notes, generating knowledge articles. Sooner or later every team wants something specific to their process. Now Assist Skill Kit is how you build it: your own generative AI skill, with your own prompt and your own data, running inside your instance and deployed wherever your users work.
ServiceNow now also calls it AI Skill Kit; you’ll see both names in the product and the community. This guide uses Skill Kit.
What a skill actually is
Every skill, out-of-box or custom, follows the same four steps:
- Gather inputs: a record (an incident, a knowledge article), plain values, or both.
- Add context with tools (optional): run a script, a subflow, a flow action, an AI Search retriever or even another skill to fetch extra data.
- Build the prompt: your instructions, with the inputs and tool results inserted.
- Generate and return: the LLM’s answer comes back as JSON that a UI action, flow, agent or panel can use.
Thinking in these four steps makes design decisions much easier: most problems with a skill turn out to be a missing input, missing context, or an unclear prompt.
Before you start
- Release: Skill Kit arrived in Xanadu. Newer tools and deployment options arrive with newer versions of the Skill Kit app, so keep it up to date.
- Plugin: it ships with the Generative AI Controller plugin. Update it (and your other Now Assist plugins) from System Definition > Plugins.
- Licence: you need an active Now Assist licence for the product area you’re building in (ITSM, HRSD, CSM…), and its field-of-use rules apply to your skills.
- Roles:
sn_skill_builder.adminto build;sn_skill_builder.viewerfor read-only access. - No PDIs: Skill Kit isn’t available on Personal Developer Instances. Plan to build in a licensed sub-production instance.
Build it: an incident handover summary
Our example: a skill that writes a short handover summary of an incident for the next shift. It needs one input (the incident record) and produces a few short paragraphs.
1. Create the skill
- In the All menu, search for skill kit and open Now Assist Skill Kit > Home.
- Select Create skill and give it a clear name and a description of what it does and when to use it. Future you, and your AI agents, will rely on that description.
- Choose the provider. The out-of-box choice is the ServiceNow-managed model (Now LLM Service with Now LLM Generic in current examples). Skill Kit can also use external models (Azure OpenAI, Google Gemini, Anthropic Claude, or any LLM through the generic connector) if your organisation has set one up.
- Pick how to start the prompt: from scratch, from the prompt library, or AI-generated. AI-generated is the fastest start; you become the editor.
2. Add inputs
Select + Add under inputs. For a record-based skill, add an input of type Record pointing to the incident table and name it incident.
Keep inputs minimal. Every field you send costs tokens and adds noise; send what the prompt actually needs.
3. Add context with a tool (optional)
Our summary is better with the latest work notes. You could add them as an extra input, but a tool keeps the skill self-contained: a Script or Subflow tool that collects the last few work notes and returns them as text for the prompt.
Tools are also where you call AI Search through a Retriever (RAG over your knowledge), check a Predictive Intelligence model, or chain another published Skill. Use a Decision node to run a tool only when it’s needed.
4. Write the prompt
Structure it like a brief to a new team member: role, task, rules, output format. Insert inputs with the Insert inputs option rather than typing them; fields on a record input are referenced like {{incident.short_description}}.
## Role
You are a senior service desk analyst writing a shift handover.
## Task
Summarise this incident for the next shift in under 120 words.
## Incident
Number: {{incident.number}}
Short description: {{incident.short_description}}
Description: {{incident.description}}
Priority: {{incident.priority}}
State: {{incident.state}}
## Rules
- Use only the information above. If something is unknown, say so.
- No names, phone numbers or other personal data.
- End with one line starting "Next step:".
## Output format
Plain text, three short paragraphs: situation, what has been tried, next step.
Being explicit about format pays off. The model can’t guess that you need exactly three paragraphs and a “Next step” line.
5. Test, measure and tune
- Select Run tests under the prompt editor and try several real-looking records, including messy ones: empty descriptions, very long notes, mixed languages.
- Check test history (the clock icon) for the exact request, response and token counts.
- Use evaluation to score a prompt against a dataset, with an LLM judging faithfulness and correctness. It turns “this looks better” into a number you can compare between prompt versions.
- For repeatable, factual output keep temperature low (0–0.5); raise it only when you want variety.
6. Finalise and publish
When the prompt is right, lock it and select Publish to make it the default. Locked prompts can’t be edited; to change one later, copy it, improve the copy, test, and publish again. Your live deployments keep working while you iterate.
7. Deploy it where people work
In Skill Settings > Deployment Settings, choose one or more places for the skill:
| Deployment | Good for |
|---|---|
| UI Action | A button on a form, e.g. “Summarise for handover” |
| Now Assist Panel | Conversational use from the sparkle icon |
| Flow Action | Calling the skill inside Workflow Studio flows |
| Now Assist Context Menu | Text help directly on a field |
| Virtual Agent | Surfacing the skill to requesters in portals |
| AI Agents | Using the skill as a tool an agent can call |
| UI Builder (Zurich) | Custom workspaces and pages |
Some deployments also need the skill activated in Now Assist Admin before users see it.
Calling a skill from a script
When you add a UI Action deployment, Skill Kit generates a working server script with the right IDs already filled in. Start from that script instead of writing the request yourself. The result comes back keyed by capability, and the model’s text sits in a JSON string:
// `request` is the object from the script Skill Kit generated for your UI Action
try {
var raw =
sn_one_extend.OneExtendUtil.execute(request)['capabilities'][request.executionRequests[0].capabilityId][
'response'
];
var summary = JSON.parse(raw).model_output;
current.work_notes = 'Handover summary (AI-generated, please review):\n' + summary;
current.update();
} catch (e) {
gs.error('Handover skill failed: ' + e);
gs.addErrorMessage('Could not generate the summary. Please try again.');
}
action.setRedirectURL(current);
Writing the output to work notes, clearly labelled as AI-generated, keeps a person in the loop and leaves an audit trail.
Build skills as code
If your team works in source control, the ServiceNow SDK can define skills as code with NowAssistSkillConfig: the same inputs, providers, prompts, tools and security controls, but reviewed in pull requests and deployed like the rest of your app. The SDK’s Now Assist skills guide (linked below) walks through the full shape.
Gotchas
- Skills can’t be deleted. Build them inside an update set or a scoped app so they’re tracked and portable.
- Skills run as the user. ACLs apply, so test with a non-admin account that matches your real users.
- Cloned out-of-box skills are restricted. You can change the prompt, but not inputs, outputs or deployment. Build a new skill when you need those.
- Tokens are a budget. Raising the maximum response tokens leaves fewer tokens for the request (configurable for non-ServiceNow providers).
- Mind the data. Don’t send more record fields than the prompt needs, and keep personal data out unless your policies explicitly allow it.
Learn more
The best material is on ServiceNow’s own sites. These are the sources we used and recommend, in a sensible reading order:
- AI Skill Kit / Now Assist Skill Kit (NASK) FAQ: requirements, roles, providers and limits in one place.
- Tool and deployment options: every tool and deployment type, with the version each arrived in.
- Creating a custom skill, part 1: a recent click-by-click walkthrough.
- Trigger a custom skill from a UI Action, part 1: the deployment side in detail.
- Build custom AI skills: step-by-step demo and Skill Kit live coding from the Developer Advocate team.
- Worked use cases: Knowledge Article Coach and your first assistive AI agent with Skill Kit.
- Knowledge 2025 lab: build a custom GenAI skill: the conference lab guide.
- ServiceNow SDK: Now Assist skills guide: skills as code.
- MVP insights: small skill, big impact: practical advice from the community.
- ServiceNow Docs: search “Now Assist Skill Kit”: the official product documentation for your release.
Skill Kit changes with every release. Check the FAQ and your release’s documentation for anything version-specific before you build.