.png)

ServiceNow Strategic Portfolio Management Integration Guide
Connect ServiceNow Strategic Portfolio Management with enterprise applications through REST and SOAP APIs, configured outbound callbacks, Import Sets, attachments, and scheduled workflows.
ServiceNow Strategic Portfolio Management integration options at a glance
ServiceNow Strategic Portfolio Management is primarily integrated through ServiceNow platform REST APIs, including the Table API, Import Set API, Attachment API, Aggregate API, and applicable SPM-specific APIs. SOAP web services remain available for legacy enterprise scenarios. ServiceNow can also send selected outbound REST messages and event-driven notifications when business rules, notifications, Flow Designer, or other platform configuration is in place. Martini can consume these APIs, expose REST endpoints for configured callbacks, orchestrate scheduled or event-driven workflows, transform SPM data, transfer attachments, and handle batching, pagination, retries, and reconciliation. OAuth 2.0, Basic Authentication, and certificate-based options can be secured through environment configuration.
| Integration point | Supported by ServiceNow Strategic Portfolio Management? | Common use cases | How Martini supports it |
|---|---|---|---|
| REST APIs | Yes | Use the Table API for permitted SPM tables such as Projects, Demands, Programs, Ideas, Portfolios, and Resource Plans. Import Set, Attachment, Aggregate, and application-specific APIs support specialized flows. | Martini can consume ServiceNow REST APIs, configure authentication, paginate and filter requests, transform responses, and expose APIs for controlled inbound processing. |
| SOAP APIs | Yes | ServiceNow table-oriented and scripted SOAP web services support legacy enterprise integrations or consumers that require SOAP. | Martini can consume SOAP services, map XML request and response models, configure authentication, and route SOAP errors through workflow handling. |
| Webhooks / outbound callbacks | Limited | Outbound REST messages, business rules, notifications, Flow Designer, and IntegrationHub can send selected event notifications or callbacks. Coverage depends on configuration and licensing. | Martini can expose a REST API to receive configured ServiceNow callbacks, validate notifications, retrieve the current record, and process the event idempotently. |
| Bulk / async / batch APIs | Yes | Import Set API, Transform Maps, scheduled imports, asynchronous processing, and incremental queries support controlled higher-volume ingestion and synchronization. | Martini can batch requests, invoke Import Set endpoints, coordinate transformations, checkpoint progress, and separate retryable failures from data-quality failures. |
| File / attachment APIs | Yes | The Attachment API supports documents associated with Projects, Demands, Ideas, and other permitted ServiceNow records. | Martini can transfer attachment metadata and binary content separately, validate file properties, calculate duplicate keys, and handle partial transfer failures. |
| Authentication | Yes | OAuth 2.0 and Basic Authentication are common options; mutual TLS, certificates, API keys, or custom headers may apply depending on instance configuration. | Martini can store credentials and certificates in secure environment configuration and use least-privilege API authentication for each deployment. |
| Database / analytics access | Limited | ServiceNow reporting, Performance Analytics, exports, and supported APIs can provide analytics-oriented data. Direct customer SQL or database access should not be assumed. | Martini can consume supported analytics or export interfaces and route results to enterprise targets without depending on direct ServiceNow database connectivity. |
How ServiceNow Strategic Portfolio Management exposes data and business events
ServiceNow REST APIs
ServiceNow provides platform REST APIs for permitted tables and capabilities. The Table API is a practical starting point for SPM Projects, Demands, Programs, Ideas, Portfolios, and Resource Plans, while Import Set, Attachment, Aggregate, and application-specific APIs support specialized scenarios.
Martini implementation pattern
Martini implementation pattern: Martini authenticates to the ServiceNow instance, sends filtered and paginated requests, validates responses, maps the returned data to a canonical model, and writes it to downstream systems or exposes the result through a Martini API.
Implementation sequence
ServiceNow outbound callbacks
ServiceNow can send selected notifications through outbound REST messages, business rules, notifications, Flow Designer, IntegrationHub, or scripted integrations. This is configured event coverage rather than a universal webhook stream for every SPM object.
Martini implementation pattern
Martini implementation pattern: Martini exposes a secured REST endpoint, accepts the configured callback, validates its authenticity and event type, retrieves the current ServiceNow record when necessary, and processes the change with deduplication and retry controls.
Implementation sequence
Import Set API
The Import Set API, Transform Maps, scheduled imports, and asynchronous processing support controlled ingestion when incoming data requires validation, transformation, coalescing, or staged insertion.
Martini implementation pattern
Martini implementation pattern: Martini prepares validated batches, submits them to the appropriate Import Set endpoint, tracks processing outcomes, and reconciles rejected rows separately from successful transformations.
Implementation sequence
ServiceNow SOAP APIs
ServiceNow supports table-oriented and scripted SOAP web services. SOAP remains relevant for legacy consumers even though REST is generally preferred for new integrations.
Martini implementation pattern
Martini implementation pattern: Martini consumes the SOAP contract, transforms XML payloads, invokes the required operation, validates the response and fault structure, and routes permanent and transient failures separately.
Implementation sequence
ServiceNow Attachment API
The Attachment API supports file uploads, downloads, and management for files associated with permitted ServiceNow records. File restrictions, storage limits, ACLs, and content types remain instance-specific.
Martini implementation pattern
Martini implementation pattern: Martini synchronizes attachment metadata through the record API, transfers binary content separately, validates file policy, and uses content hashes or external identifiers to prevent duplicate uploads.
Implementation sequence
Common ServiceNow Strategic Portfolio Management integration patterns
Pattern 1: Submit demands from Salesforce
When to use this pattern
Use this pattern when sales or strategic initiatives captured in Salesforce need to enter ServiceNow SPM as governed Demands. The workflow validates ownership, portfolio, priority, dates, and external identifiers before creating or updating the Demand.
Integration direction
Example Mapping
| ServiceNow Strategic Portfolio Management Field | Canonical Field | Target Field |
|---|---|---|
| Salesforce Opportunity.Id | externalDemandId | ServiceNow Demand external identifier |
| Salesforce Opportunity.Name | demandName | Demand short description |
| Salesforce Opportunity.Amount | estimatedValue | Demand estimated value |
| Salesforce Opportunity.CloseDate | targetDate | Demand requested date |
Martini implementation pattern
Martini receives a Salesforce event or scheduled extract, validates required fields and reference values, searches for an existing external demand ID, and calls the ServiceNow Table API or Import Set API. Permanent validation failures are reported for correction, while transient failures are retried.
Martini capabilities used
- APIs
- workflows
- data mapping
- business rules
- error handling
- retries
Pattern 2: Synchronize project status with delivery tools
When to use this pattern
Use this pattern to align ServiceNow Projects and Programs with Jira or Microsoft Azure DevOps delivery data. It supports scheduled incremental synchronization and controlled translation of different state, health, date, and ownership models.
Integration direction
Example Mapping
| ServiceNow Strategic Portfolio Management Field | Canonical Field | Target Field |
|---|---|---|
| ServiceNow Project.number | projectKey | Jira project key |
| ServiceNow Project.state | deliveryStatus | Jira project status |
| ServiceNow Project.percent_complete | completionPercent | Jira progress |
| ServiceNow Project.sys_updated_on | sourceUpdatedAt | Synchronization checkpoint |
Martini implementation pattern
A scheduled Martini workflow queries ServiceNow using sys_updated_on, paginates results, translates choice values, enriches records with target identifiers, and performs idempotent updates. A checkpoint with an overlap window helps handle late-arriving updates, and failed records are reconciled separately.
Martini capabilities used
- scheduled workflows
- API consumption
- pagination
- mapping and transformation
- checkpointing
- reconciliation
Pattern 3: Synchronize resource plans with Workday
When to use this pattern
Use this pattern when ServiceNow Resource Plans must reflect worker, organizational, capacity, role, or time-period information from Workday, or when approved planning data must be returned to workforce systems.
Integration direction
Example Mapping
| ServiceNow Strategic Portfolio Management Field | Canonical Field | Target Field |
|---|---|---|
| Workday Worker ID | workerExternalId | ServiceNow user reference |
| Workday Organization | organizationCode | Resource Plan organization |
| Workday Worker Type | roleType | Resource Plan role |
| Workday Effective Date | planningPeriodStart | Resource Plan period |
Martini implementation pattern
Martini retrieves changed Workday data, resolves ServiceNow users, groups, and roles through controlled lookups, validates requested versus allocated capacity, and writes approved values through REST or Import Sets. Unresolved references are quarantined rather than silently creating inaccurate plans.
Martini capabilities used
- workflows
- API consumption
- reference lookups
- data mapping
- validation
- error handling
Pattern 4: Synchronize project documents and business cases
When to use this pattern
Use this pattern when documents attached to ServiceNow Projects, Demands, or Ideas must be copied to an enterprise document or collaboration application while retaining record relationships and access controls.
Integration direction
Example Mapping
| ServiceNow Strategic Portfolio Management Field | Canonical Field | Target Field |
|---|---|---|
| ServiceNow attachment.sys_id | documentId | External document identifier |
| ServiceNow attachment.file_name | fileName | Document name |
| ServiceNow attachment.content_type | contentType | Document MIME type |
| ServiceNow attachment.size_bytes | fileSize | Document size |
Martini implementation pattern
Martini retrieves attachment metadata and binary content separately, checks file policy and content hashes, transfers the document to the target endpoint, and records the relationship to the originating SPM object. Partial metadata or binary failures are retried and reconciled.
Martini capabilities used
- Attachment API consumption
- workflows
- file handling
- mapping
- business rules
- reconciliation
Applications commonly integrated with ServiceNow Strategic Portfolio Management
ServiceNow SPM can be connected with delivery, financial, workforce, collaboration, and operational applications. The exact objects and direction depend on the customer’s ServiceNow release, licensed applications, APIs, roles, and data ownership model.
| Application | Scenario | Direction | Martini Pattern |
|---|---|---|---|
| Jira | Synchronize agile delivery status, epics, issues, project progress, and portfolio context with ServiceNow Projects and Programs. | Jira → Martini → ServiceNow Strategic Portfolio Management | Martini consumes Jira and ServiceNow APIs, maps delivery identifiers and status values, applies ownership and state rules, and performs idempotent updates with retry and reconciliation handling. |
| Microsoft Azure DevOps | Align work items, iterations, delivery metrics, and project progress with ServiceNow portfolio and project planning. | Microsoft Azure DevOps → Martini → ServiceNow Strategic Portfolio Management | A scheduled or event-driven workflow retrieves Azure DevOps delivery data, translates it into ServiceNow project or program fields, validates references, and stores cross-system identifiers for subsequent updates. |
| Salesforce | Transfer account, opportunity, and strategic initiative information into ServiceNow Ideas, Demands, or Projects when approved work originates in CRM. | Salesforce → Martini → ServiceNow Strategic Portfolio Management | Martini receives or polls Salesforce data, validates portfolio and ownership mappings, creates or updates ServiceNow Demands through REST APIs, and optionally returns project status to Salesforce. |
| Workday | Synchronize workers, organizational structures, staffing information, and workforce planning inputs with ServiceNow Resource Plans. | Workday → Martini → ServiceNow Strategic Portfolio Management | Martini maps Workday worker and organization identifiers to ServiceNow references, filters changes incrementally, validates access and planning states, and routes rejected reference values for review. |
| SAP S/4HANA | Connect portfolio costs, budgets, financial plans, procurement information, and project financials with SPM planning records. | SAP S/4HANA → Martini → ServiceNow Strategic Portfolio Management | Martini orchestrates financial extracts and ServiceNow API calls, normalizes currencies and project identifiers, applies financial ownership rules, and retries transient failures without duplicating updates. |
| Oracle Fusion Cloud Applications | Synchronize financial planning, budgets, projects, procurement, and workforce information with ServiceNow SPM. | Oracle Fusion Cloud Applications → Martini → ServiceNow Strategic Portfolio Management | A Martini workflow consumes Oracle APIs and ServiceNow REST endpoints, transforms financial and project models, validates reference data, and records checkpoints for repeatable synchronization. |
| Microsoft Teams | Deliver project notifications, approvals, collaboration messages, and status updates to stakeholders. | ServiceNow Strategic Portfolio Management → Martini → Microsoft Teams | Martini receives selected ServiceNow events or polls for changed projects, formats concise collaboration messages, applies notification rules, and sends them to configured Teams endpoints. |
| ServiceNow IT Service Management | Connect portfolio planning with incidents, changes, problems, service requests, and operational work on the ServiceNow platform. | ServiceNow Strategic Portfolio Management → Martini → ServiceNow IT Service Management | Martini can orchestrate cross-table synchronization where an external integration boundary is required, using ServiceNow APIs, reference lookups, state mappings, and controlled updates. |
How to build a ServiceNow Strategic Portfolio Management integration in Martini
Objective
Establish controlled access to the ServiceNow instance and any target applications using a dedicated integration identity and environment-specific configuration.
Instructions in Martini
- Select OAuth 2.0, Basic Authentication, mutual TLS, or another confirmed ServiceNow method
- Use a dedicated integration user with least-privilege roles and ACL access
- Store credentials, tokens, and certificates outside workflow source code
- Separate development, test, and production configuration
Objective
Select event-driven callbacks, scheduled polling, API invocation, or batch processing according to the SPM object and event coverage available in the instance.
Instructions in Martini
- Use a Martini REST API for configured ServiceNow callbacks
- Use a scheduler for incremental queries based on sys_updated_on
- Use Import Set processing for controlled bulk ingestion
- Define created, updated, approved, rejected, closed, cancelled, or converted event semantics
Objective
Retrieve the relevant ServiceNow object or attachment while controlling volume, reference resolution, and checkpoint behavior.
Instructions in Martini
- Use sysparm_query and sysparm_fields to limit the response
- Paginate with supported ServiceNow paging parameters
- Retrieve related reference data through stable identifiers
- Transfer attachment metadata and binary content as separate concerns
Objective
Coordinate ServiceNow calls, target-system operations, enrichment, branching, and asynchronous work in a maintainable Martini workflow.
Instructions in Martini
- Separate extraction, validation, transformation, target writes, and reconciliation
- Use reusable services or workflow components for common lookups
- Bound concurrency to protect the ServiceNow instance
- Persist synchronization checkpoints and cross-system identifiers
Objective
Transform ServiceNow table fields, internal choice values, references, dates, and identifiers into the target data model without relying on display labels alone.
Instructions in Martini
- Map internal choice values deliberately
- Resolve users, groups, portfolios, companies, and other references by stable identifiers
- Validate required fields and business keys before writes
- Externalize mappings that may change by instance or release
Objective
Apply duplicate prevention, state-transition controls, ownership rules, and data-quality policies before creating or updating SPM objects.
Instructions in Martini
- Use external IDs or Import Set coalesce fields for idempotency
- Check permitted state transitions and required related records
- Route invalid references and permanent validation errors for review
- Account for business rules, approvals, notifications, and asynchronous side effects
Common ServiceNow Strategic Portfolio Management data objects used in integrations
| Object | Typical Use | Common target systems | Martini handling |
|---|---|---|---|
| Projects | Synchronize delivery status, schedules, ownership, costs, benefits, milestones, and related work. | SAP S/4HANA, Oracle Fusion Cloud Applications, Jira, Microsoft Azure DevOps, Microsoft Teams | Martini queries the permitted project table incrementally, resolves references, maps state and date values, and upserts using sys_id or an external project identifier. |
| Demands | Capture proposed work before approval or conversion into a project, enhancement, or other delivery item. | Salesforce, Jira, SAP S/4HANA, enterprise planning applications | Martini validates required portfolio, owner, priority, and date fields, detects duplicate external demand IDs, and creates or updates Demands through REST or Import Set flows. |
| Programs | Group related Projects and support portfolio-level planning and reporting. | Jira, Microsoft Azure DevOps, financial planning applications, Microsoft Teams | Martini maps program identifiers and health indicators, validates parent and reference relationships, and synchronizes changes with checkpointed workflows. |
| Ideas | Capture proposed initiatives before evaluation and progression into Demands or Projects. | Salesforce, collaboration applications, planning applications | Martini receives idea submissions through an API or scheduled extraction, applies validation and duplicate rules, and maps lifecycle states to target systems. |
| Portfolios | Group and evaluate investments, Projects, Programs, and Demands. | SAP S/4HANA, Oracle Fusion Cloud Applications, enterprise planning applications | Martini resolves portfolio references, normalizes financial and strategic attributes, and applies authorization and state-transition checks before writes. |
| Resource Plans | Represent requested or allocated capacity, labor, roles, time periods, costs, and planning states. | Workday, SAP S/4HANA, Oracle Fusion Cloud Applications, workforce planning applications | Martini maps users, groups, roles, periods, and capacity values, validates reference records, and separates requested from allocated planning data. |
Authentication and security considerations
Authentication and authorization
ServiceNow supports OAuth 2.0, Basic Authentication, and in some configurations mutual TLS, certificates, API keys, or custom headers. The effective permission set is determined by ServiceNow roles, groups, table permissions, field ACLs, OAuth scopes, application scope, and web-service policies.
- Use a dedicated integration user rather than a personal account.
- Grant only the roles and table access required for the selected SPM objects.
- Store credentials, tokens, and certificates in Martini environment configuration or secrets management.
- Use TLS-protected endpoints and restrict access to sensitive budgets, workforce data, business cases, and attachments.
- Keep development, test, and production credentials separate.
Operational considerations for ServiceNow Strategic Portfolio Management integrations
Reliable ServiceNow SPM integrations
ServiceNow instances can enforce transaction quotas, concurrency controls, ACLs, and other protections. Use narrow queries, pagination, bounded concurrency, Import Sets for suitable high-volume ingestion, and incremental checkpoints based on sys_updated_on.
- Use external identifiers, sys_id values, or Import Set coalesce fields to prevent duplicates.
- Map internal choice values rather than localized display labels.
- Resolve reference fields through stable identifiers instead of assuming display values are unique.
- Retry transient failures such as rate limits and selected 5xx responses with bounded exponential backoff.
- Test mappings against instance dictionary metadata, activated plugins, custom fields, business rules, and release changes.
- Handle attachment metadata and binary content separately, including size, type, permission, and partial-transfer failures.
- Maintain reconciliation results for records requiring manual review.
Why use Martini instead of scripts or point-to-point integrations?
Maintainable integration delivery
Point-to-point scripts often combine authentication, API calls, field mappings, business rules, retries, and operational logging in code that is difficult to govern. Martini provides a workflow-based integration layer for orchestrating ServiceNow APIs, callbacks, target systems, and reusable transformation logic.
- Centralize mappings, validation, reference lookups, and state rules.
- Use scheduled, API-led, event-driven, and batch workflows for different SPM integration needs.
- Separate retryable platform failures from permanent data-quality errors.
- Expose controlled Martini APIs for demand intake and ServiceNow callbacks.
- Support checkpointing, reconciliation, monitoring, and environment-specific security configuration.
- Extend workflows with custom logic when ServiceNow-specific business rules require additional flexibility.
Frequently asked questions
ServiceNow SPM can be integrated through ServiceNow REST APIs such as the Table API, Import Set API, Attachment API, Aggregate API, and applicable product APIs. SOAP web services remain available for legacy scenarios. Configured outbound REST messages, notifications, business rules, Flow Designer, and scheduled incremental queries can support event-driven or batch synchronization.
Yes. Martini can consume ServiceNow REST or SOAP APIs, expose REST APIs for configured ServiceNow callbacks, orchestrate scheduled and event-driven workflows, transfer attachments, and map SPM objects such as Projects, Demands, Programs, Ideas, Portfolios, and Resource Plans to other systems.
No. A dedicated ServiceNow connector is not required. Martini can use ServiceNow’s confirmed native REST and SOAP APIs, Import Set and Attachment APIs, configured outbound callbacks, authentication methods, and supported scheduling or export mechanisms.
Lonti does not charge an additional per-connector or per-vendor fee to integrate ServiceNow SPM. The integration is subject to the provisioned capacity of the Martini environment. Separate costs may apply from ServiceNow, cloud infrastructure, or other third-party systems based on licensing, usage, and deployment model.
REST is generally preferred for new integrations, with the Table API as a practical starting point when permitted. Import Sets are useful for controlled bulk ingestion and transformation, the Attachment API handles files, and SOAP remains appropriate when a legacy consumer requires it. GraphQL access to SPM was not confirmed.
ServiceNow supports selected outbound notifications and callback patterns through outbound REST messages, business rules, notifications, Flow Designer, IntegrationHub, and scripted integrations. Coverage is configuration-dependent and is not a universal webhook feed for every SPM object or field change. Martini can receive configured callbacks through an exposed REST API or use scheduled polling where events are unavailable.
A scheduled Martini workflow can query ServiceNow with an incremental filter such as sys_updated_on, paginate results, and store a checkpoint. An overlap window, stable external identifiers, and idempotent upserts help handle late updates, retries, and duplicate delivery.
Martini can validate payloads, map internal choice values and reference identifiers, apply lookup-before-create or coalesce rules, and distinguish authorization, validation, rate-limit, and transient platform failures. Retryable failures can use bounded backoff, while permanent errors and reconciliation items can be routed for review. Martini can also expose an API façade for controlled inbound submissions or callbacks.
Related Martini documentation
APIs
Connect ServiceNow Strategic Portfolio Management with Martini
Use Martini to build governed ServiceNow SPM integrations for demand intake, project synchronization, resource planning, callbacks, and document exchange.