Why this matters
The ServiceNow integration is in Labs now, which means any CloudZero admin can switch it on and start routing cost work into their incident queue the same day.
What that gives you is a full loop between the money and the work. A monthly Optimize pass surfaces recommendations with a dollar figure on each one. Pick the ones worth acting on, open incidents for all of them at once, and each ticket shows up carrying the resource, the finding, and the context an engineer needs. You can route them to whoever owns the resource and the usual SLAs apply.
Status stays in sync, so CloudZero shows where every ticket you opened actually stands. You can see what’s already in progress before filing another one, and what’s been sitting unassigned while the spend continues. At quarter-end, the savings number comes from resolved tickets instead of a manual spreadsheet.
Anomalies run the same loop. A spike becomes an incident with an owner and a resolution date, and the anomaly in CloudZero reflects where that work stands.
What we built
ServiceNow is a Labs feature. Open Labs from your profile menu, find it, and flip For me to try it or Org wide to turn it on for everyone. Admins own the org-wide toggle, and either one can be switched off later.
It works the way the Jira integration does. Open a ticket from a single Optimize Recommendation or Anomaly, or select a batch and file them together. No cap on how many. Status changes sync between the two systems on a 15-minute polling window.
The OAuth application lives in your own ServiceNow instance rather than a shared CloudZero app. You register an endpoint, hand CloudZero the instance URL, client ID, and secret, and CloudZero authenticates with the client credentials grant. Rotating the secret means replacing it on your Application Registry entry and reconnecting. Revoking access is unchecking Active.
How it works
Turn on ServiceNow in Labs, then connect the two systems.
Your ServiceNow admin handles three prerequisites: Washington DC or later, glide.oauth.inbound.client.credential.grant_type.enabled set to true, and an OAuth endpoint with Client Type set to Integration as a Service. That application user needs the itil role to create and update tickets. Give CloudZero a dedicated entry so you can audit and revoke it on its own.
In CloudZero, go to Settings > App Integrations, select Connect ServiceNow, and enter the instance URL, client ID, and secret.
From there the working pattern looks like this:
- Open Optimize > Recommendations and sort by cost impact.
- Select what you plan to act on this month.
- File incidents for all of them at once, assigned to the groups that own the resources.
- Do the same from Anomalies when a spike needs an owner.
- Check CloudZero for status as your teams work the queue.
- Build the quarter’s savings number from the tickets that resolved.
Disconnect the integration later and the tickets you created stay in ServiceNow.