Luis Estéfano
ServiceNow Employee
Platform feature · Report · Export · Powerpoint

Export to PowerPoint in ServiceNow: from platform feature to branded reports in one click

Building slides is one of those quiet productivity drains nobody puts on a roadmap. Across delivery, presales, and operations teams, hours every week disappear into formatting status reports, aligning brand colors, and chasing live data that already lives inside ServiceNow.

Export to PowerPoint is the platform feature that closes that loop. You keep the data where it lives, define a template once, and generate fully branded, presentation-ready decks on demand — from any record, on any table, across any workflow.

 

Author
Luis Estéfano
Applies to
Platform feature · Workflow-agnostic · Cross-product
Release
Far ago and later releases
 
01 — Versions & Licenses

One free feature, two premium plugins

The base capability ships with the platform at no extra cost. Two premium plugins extend it with product-specific reports for Strategic Portfolio Management and Application Portfolio Management.

Platform feature · Free

Export to PowerPoint

Plugin ID: sn_ppt_export

Configurable, ready to use out of the box. Cross-product and workflow-agnostic.

Premium plugins · Paid

SPM & APM extensions

sn_ppm_ppt_export · sn_apm_ppt_export

Tailored project status report (SPM) and portfolio status report (APM), plus a manifest to author templates.

Whether you stay on the free feature or layer on the premium plugins, the underlying mechanics are the same: a report type defines the data, a PowerPoint template defines the layout, and formatters define how values appear once they land on the slide.

02 — What you can put on a slide

Five building blocks

Each slide in a template is composed from a small set of placeholders. They cover everything from a single field on a record to a full repeating slide-per-record pattern.

Component Use it for Placeholder example
Record field A single field value, optionally styled with text or background color, or a shape. ${pm_portfolio.portfolio_manager}
List of related records Tasks, risks, SLAs, CMDB relationships, impacted services — supports filters, sorting, and a row limit. ${risk.short_description}
Chart Line or bar charts driven by a JavaScript getData function. Rendered via Apache POI. Image placeholder with the chart sys_id in the link.
Repeater Replicates an entire slide automatically — one slide per record. Ideal for templated views. {repeat_slide}
Repeated field The same field value across multiple related records — quick reference and trend spotting at a glance. ${cost_plan.end_fiscal_period}
LuisEstfano_0-1778671790724.pngLuisEstfano_0-1778682683199.pngLuisEstfano_1-1778682719536.pngLuisEstfano_3-1778683030742.png

Screenshots — PowerPoint template examples for different purpouses and with different layouts (Horizontal/vertical).
03 — Configuration

Three records to set up, in order

Configuration always follows the same sequence: define what data the report needs, attach a PowerPoint file with placeholders that consume that data, and (optionally) add formatters to style values dynamically based on conditions.

STEP 1

Create the Report Type

The Report Type is a container record that declares the data structure of the report. You set a main table and then add related tables that walk the hierarchy through their parent relation column. Levels can go arbitrarily deep, and you can chase data via remote tables, integrations, or zero-copy when needed.

  • Supports any hierarchical structure for complete and relevant data export.
  • Custom PowerPoint components (charts, timelines) can be defined here; they render through Apache POI.
  • One Report Type can drive multiple templates.
LuisEstfano_2-1778674269392.png
Screenshot — PowerPoint Report Type, with related tables and scripted elements.
STEP 2

Create the Report Template

The Report Template links to a Report Type and carries a .pptx attachment. That attachment is your branded canvas — corporate colors, fonts, logos, and layouts already in place — with placeholder strings where ServiceNow data should land.

Configuration is manual: you edit the slide deck in PowerPoint, drop placeholders into the text frames, and use the chart's link property to bind it to a chart sys_id. Tables support filters, column sorting, and a maximum row limit.

Tip

Start from a copy of an existing template rather than a blank deck. Placeholder syntax is easier to learn by example, and the OOTB Project Status Report template is a good baseline.

LuisEstfano_0-1778674858967.png
Screenshot — PowerPoint Templates list and Template form with attached .pptx and linked Report Type.
STEP 3

Add Formatter Mappings (optional)

Formatters style values dynamically once they land in the deck. They're attached to a single column on a single table — only one formatter per table/column pair is allowed — and they evaluate conditions to decide what style to apply.

Three styling outputs are available:

  • Font color — change the rendered text color.
  • Background color — fill the cell or text frame.
  • Shape — replace the value with a colored shape (e.g. an ellipse for a status).
LuisEstfano_4-1778675067354.png

 


LuisEstfano_2-1778674958658.png

LuisEstfano_3-1778675040620.png
Screenshot — PowerPoint Formatter Mapping list, mapping record, and Formatter record with PowerPoint Cell Formatter conditions.
04 — Formatters in detail

Three styles, condition-driven

A formatter is a list of conditions, each paired with a JSON style. The first matching condition wins, and the style is applied to the rendered value. Conditions reference the field's own value (or other fields on the record) using the {field_name} syntax.

Formatter Condition Style
Font color {style}=green {"color":"#008450"}
Background color {work_start}<={start_date} {"backgroundColor":"#008450"}
Shape {style}=green {"color":"#008450","shape":"ELLIPSE"}
Heads-up — operator combination

The product documentation states that conditions accept ^ and ^OR. The TOI clarifies that you cannot combine ^ and ^OR in the same expression — but you can use ^NQ to express alternative branches. Worth keeping in mind when conditions get more elaborate.

What this looks like in practice

Three quick examples that show up often on status reports:

  • Status traffic light — shape + color driven by a Status field with values green, yellow, or red.
  • Empty-vs-filled cell — background red when a field is empty, green when populated. Useful to flag missing assignments or due dates at a glance.
  • Keyword highlight — font color green when the short description contains a specific keyword like Kick-off.
LuisEstfano_0-1778683782774.png
Screenshot — “Project tasks yet to be started” table showing all three formatter examples applied at once.
LuisEstfano_4-1778684041433.png

 


Screenshot — “Project tasks yet to be completed” table showing all related project tasks.
LuisEstfano_1-1778683875276.pngLuisEstfano_2-1778683891111.png

 


Screenshot — “Project Status Reports”, incorporate reports to your presentations, using ServiceNow data, in an easy way.
05 — Charts via script

A small getData function is all you need

Charts are populated by a JavaScript function that the platform calls at export time. It receives the current record's baseSysId and baseTable, plus the repeater context if applicable, and returns a single data object describing the chart.

// Returns the data structure consumed by the chart placeholder
(function getData(baseSysId, baseTable, repeatSlideSysId, repeatSlideTable) {

  // All "data" arrays should have the same length
  var data = {
    "chartTitle":    "Title",
    "chartType":     "BAR",
    "categoryCount": 1,
    "seriesCount":   2,
    "seriesArray": [
      { "seriesLabel": "Series 1", "data": [1, 2] },
      { "seriesLabel": "Series 2", "data": [3, 4] }
    ],
    "categoryArray": [{
      "categoryLabel": "Category",
      "data": ["A", "B"]
    }],
    "yAxisTitle":     "Y title",
    "barProperties":  { "direction": "BAR" },
    "legendPosition": "LEFT"
  };

  return data;
})(baseSysId, baseTable, repeatSlideSysId, repeatSlideTable);

The baseSysId and baseTable parameters give you a query anchor — typically the record the report is being generated from — so the chart's series and categories can be populated with live data through a standard GlideRecord query.

06 — Triggering the export

Three ways to fire a report

Once the configuration is in place, the export itself can be triggered from anywhere a script can run, or from the SPM Project Workspace if the premium plugin is installed, or even directly from PowerPoint with the add-in.

Out-of-the-box action (premium plugins)

With the SPM or APM plugin installed, the workspace exposes a built-in export action — pick a status report date and a template, click Export, and the deck is generated and attached to the project. No code required.

Custom script (any table, any trigger)

For everything else — Incident, Change, Case, custom tables — you wire the export into a UI Action, Business Rule, Flow Action, or Scheduled Job using the sn_ppt_export.PPTRequestHandler Script Include. The pattern is always the same: pick a template, run the generator, attach the resulting .pptx to the current record.

// UI Action — Generate a PPTx for the current Incident from a configured template
var templateId = gs.getProperty('platform.export_pptx.template.incident');

// Verify the template record has a .pptx attached
var attachmentgr = new GlideRecord('sys_attachment');
attachmentgr.addQuery('table_name', 'sn_ppt_export_ppt_template');
attachmentgr.addQuery('table_sys_id', templateId);
attachmentgr.orderByDesc('sys_created_on');
attachmentgr.setLimit(1);
attachmentgr.query();

if (attachmentgr.hasNext()) {
  var filename = 'Incident_Report_' + current.getDisplayValue('number') + '.pptx';

  var util = new sn_ppt_export.PPTRequestHandler(templateId);
  var attachmentID = util.runPPTGenerator(
    'incident', current.getValue('sys_id'),
    'incident', current.getValue('sys_id'),
    filename
  );

  gs.info('PPT ' + attachmentID + ' created for incident ' + current.getDisplayValue('number'));
}

The two 'incident' arguments to runPPTGenerator are the main table and the repeater table. When the template doesn't use a repeater, both can point to the same record. Replace 'incident' with any table name to reuse the pattern.

PowerPoint Add-in

Microsoft PowerPoint also has a ServiceNow add-in that lets template authors connect to an instance, pick a Report Type, and pull data into the active deck without leaving PowerPoint. Useful when iterating on a template's design and verifying placeholder behavior live.

The add-in needs to be enabled by the Microsoft 365 administrator (manifest file required), and the user needs the sn_ppt_export.ppt_admin or sn_ppt_export.ppt_user role.

LuisEstfano_1-1778681375700.png

LuisEstfano_2-1778681437994.png

Screenshot — PowerPoint with the ServiceNow add-in panel open, showing instance log-in and Report Type selector.
07 — Plugins & dependencies

What to activate, in what order

Plugin ID Dependencies
Export to PowerPoint sn_ppt_export POI Service (com.snc.poi_service) · ServiceNow Add-Ins for Microsoft Office (com.sn_outlook_addin)
Export to PowerPoint for Strategic Portfolio Mgt sn_ppm_ppt_export Export to PowerPoint (sn_ppt_export) · Project Portfolio Management (com.snc.financial_planning_pmo)
Export to PowerPoint for Application Portfolio Mgt sn_apm_ppt_export Export to PowerPoint (sn_ppt_export) · Application Portfolio Management (com.snc.apm)
08 — Where it pays off

Use cases across the four workflows

Anything that today gets exported manually into a deck — status reports, executive summaries, audit packets, periodic reviews — is a candidate. A few patterns worth highlighting:

  • Technology Workflow — change request summaries, major incident resolution reports, problem analysis (RCA), Get Well Plans for account escalations, CMDB health, vulnerability scans, project status updates.
  • Customer & Industry Workflow — case summary reports, regulatory compliance packets, KYC/AML documentation, dispute resolution, account statements, audit logs.
  • Employee Workflow — offer letters, onboarding packets, employee verification, performance reviews, exit interview reports, training certificates.
  • Creator Workflow — form-driven documents from custom apps, with reusable templates wired into the request flow.

Because the feature is workflow-agnostic, the same configuration pattern serves all four. The investment is in templates and formatters, not in per-product integration.

That's the whole picture: a free platform feature that takes any record on any table, runs it through a branded PowerPoint template, and hands back a deck ready to share. The plugins for SPM and APM add a turnkey path for portfolio reporting; everything else is yours to wire up.

 

#servicenow #export #powerpoint #pptx #statusreport #platform #template

 

If this article was useful, please consider marking it as helpful. Feedback is always welcome.

Kind regards — Luis Estéfano
Version history
Last update:
Wednesday
Updated by:
Contributors