OBLYTECH Logo
OBLYTECH Logo
ServiceNow Integration Pattern Explained
Home / Guides, Services and Solutions / Concepts Explained / ServiceNow Integration Pattern Explained

ServiceNow Integration Pattern Explained

Definition in Plain Language

An Integration Pattern in ServiceNow is a reusable template or design approach for connecting ServiceNow to external systems. Instead of building custom integration code for each external system, integration patterns provide a proven structure (inbound, outbound, bidirectional) and best practices (error handling, data mapping, authentication) that can be adapted for different systems and use cases.

The key value of patterns is reusability and consistency. Your first integration with an HR system takes considerable effort; if you use a pattern and adapt it, the second integration takes noticeably less time. All integrations follow the same structure, so teams can troubleshoot and maintain them using familiar approaches. Without patterns, each integration is custom, complex, and hard to support.

ServiceNow provides built-in integration patterns through Integration Hub (a module for building integrations) and through pre-built connectors for common systems (Salesforce, Workday, Active Directory). Using these patterns accelerates implementation and reduces risk of custom integration bugs.

How Integration Patterns Work in the Platform

ServiceNow Integration Hub uses flow designer to build integrations visually. You define a flow (sequence of steps) that connects ServiceNow to an external system. Each step in the flow is an action: “Call external API,” “Transform data,” “Log result.” Flows can be triggered by events (a ServiceNow record is created, automatically call the external system) or scheduled (run periodically to sync data).

Integration patterns define the flow template. An inbound pattern might define: “External system calls ServiceNow API, ServiceNow retrieves data, transforms it, creates a record.” An outbound pattern might define: “ServiceNow record is updated, flow reads updated fields, calls external system API, returns result.” Patterns include error handling (retry failed calls, log errors) and data mapping (fields from external system map to ServiceNow fields).

Pre-built connectors package patterns for specific systems. A Salesforce connector knows how to authenticate to Salesforce, call its APIs, and map Salesforce fields to ServiceNow. Using a pre-built connector saves configuration time and reduces errors compared to building from scratch.

A Worked Example

Imagine you want to sync employee data between ServiceNow and an HR system. The HR system is the source of truth for employee records; ServiceNow should always reflect current HR data. You could build custom integration code, or you could use an integration pattern: inbound sync from HR to ServiceNow.

The pattern defines: HR system sends employee data via API to ServiceNow. ServiceNow flow receives the data, validates it (does the employee ID exist?), transforms it (HR date format to ServiceNow date format), and updates the ServiceNow user record. If an error occurs (invalid data, update fails), the flow logs it and can retry or escalate to an admin.

By using a pattern, you do not build custom code; you configure the flow (which fields sync, which triggers the sync, what errors are acceptable). If you need to add another HR field to the sync, you update the flow configuration, not custom code. The pattern provides the structure; you provide the details.

Common Integration Patterns

Request-reply: External system sends data to ServiceNow and waits for a response. ServiceNow processes the data and returns a result synchronously. This pattern works for simple, fast operations but fails if processing takes long (customer times out waiting for reply).

Fire-and-forget: External system sends data to ServiceNow and does not wait for response. ServiceNow processes data asynchronously. This pattern works for high-volume, non-urgent data. Failure handling must be reliable because the external system does not know if processing succeeded.

Bidirectional sync: ServiceNow and external system exchange data in both directions. Changes in either system sync to the other. This pattern is powerful but complex; conflicts (both systems change the same field) must be handled gracefully. Avoid unless both systems are equally authoritative.

Polling: ServiceNow periodically queries the external system for new data. This pattern is simple and does not require the external system to support webhooks or callbacks. Downside is delay (polling every hour means up to 1 hour delay before new data is seen).

Choosing and Implementing the Right Pattern

Choose the pattern based on your requirements. If the external system is always available and speed matters, use request-reply. If speed does not matter and reliability does, use fire-and-forget with reliable error handling. If both systems must stay in sync, use bidirectional sync. If the external system cannot proactively send updates, use polling.

When implementing a pattern, customise the configuration (field mapping, authentication, error handling) without modifying the underlying pattern. If you find yourself heavily modifying the pattern logic, you may have chosen the wrong pattern. Reconsider and switch to a different approach.

Integration patterns should be documented. Record: what systems are being integrated, which pattern is used, what data flows in each direction, what happens on errors, who owns the integration. This documentation helps future teams maintain the integration and reduces support load.

Choosing the pattern from the failure you can tolerate

Many integration debates are really debates about what happens when something goes wrong. If the external system is unavailable for an hour, can the business accept delayed data, or must the transaction fail immediately for the user? If the same event arrives twice, is that harmless or does it create a second order? Those answers point to a pattern far more reliably than a preference for real-time or batch. Write the tolerance down for each data flow before the design starts, including the longest acceptable delay and the consequence of a duplicate, and let that drive the choice.

Tolerance profile Pattern that usually fits Main thing to design for
User is waiting and needs the answer now Synchronous request and reply Timeouts and a clear message when the far side is down
Work can complete later and nobody waits Queued or event-driven delivery Retry handling and a dead-letter review
Both systems change the same data Two-way sync with a stated owner per field Conflict resolution and loop prevention
Source has no events and changes slowly Scheduled pull Change detection and deletion handling

Building the flow so the pattern is visible to operators

In Integration Hub the pattern is expressed through flows, actions and the connection and credential setup that a spoke uses. A good build keeps the business logic in the flow and the technical plumbing in the connection, so that a change of credentials does not require touching the flow. Name each step after what it does to the data rather than the technology it calls, because the person reading a failed run late at night is often not the person who built it.

  1. Write the data contract first: the fields, the identifiers and which system owns each field.
  2. Build the connection and test it under the service account that production will use, not an administrator account.
  3. Add a validation step at the front of the flow that rejects malformed input with a reason before any write happens.
  4. Place the outbound call behind an error branch that records the failure and decides whether to retry, queue or stop.
  5. Test a failure on each branch deliberately, including a slow response and a partial success, before the flow goes live.

Where a MID Server changes the design

When the external system sits inside a private network, a MID Server is usually part of the pattern. That adds a hop, a component to patch and a dependency that can fail on its own. Design for it explicitly. Know which integrations depend on each MID Server, monitor its availability separately, and decide what the flow does when the server is down. A flow that fails silently because its only route is an offline server is a surprise that teams often meet in production.

Signs a pattern was chosen for the wrong reason

A pattern picked because it was the first one the team learned tends to show up in the run history. Synchronous calls that time out under normal load, polling jobs that run every few seconds against a system that changes once a day, and two-way syncs with no owner for conflicts are all symptoms of that choice. When a flow needs constant manual correction, go back to the tolerance profile and check whether the chosen pattern still matches it.

When not to integrate yet

An integration built before the source data is governed simply moves the mess faster. If the external system has duplicate records, unclear ownership or no agreed identifier, fix that first, or limit the integration to read-only use until it is fixed. A one-way feed into a reporting view is a much safer first step than a two-way write-back that changes records in both systems.

Checklist before a pattern goes into production

  • A tolerance profile for the flow, covering delay, duplicates and outages.
  • A written owner for each field and for the rules that resolve conflicts.
  • A service account with the least access the flow needs, and a documented rotation process.
  • Monitoring on the flow’s failures, with a named person who reviews them.
  • A test record set that can be replayed after a change without touching live customer data.

Frequently asked questions about integration design

Should every integration use the same pattern for consistency?

Standardize the parts that repeat, such as authentication, logging and error categories. Forcing one delivery pattern on flows with different tolerances creates either needless latency or unsafe duplication.

How do we decide between an event and a scheduled pull?

Use events where the source reliably emits them and the consumer can act on each one. Use a scheduled pull where the source cannot emit events, or where a bulk comparison is simpler than handling each change. Check that the scheduled pull can detect deletions, since a pull that only sees current rows will never report removals.

Can one flow serve several external systems?

It can, but each system’s failure behavior is different. Keep system-specific handling in its own branch so that a problem in one system does not block the others.

What should a failed integration run produce?

The input, the step that failed, the error class and the decision taken. A message that only says the call failed leaves the operator with nothing to act on.

Next step

The integrations library gives an overview of connecting ServiceNow to existing systems, and the guide to integrating ServiceNow with other platforms covers why connectivity matters across a stack.

Frequently asked questions

Should we use pre-built connectors or build custom integrations?

Pre-built connectors are faster and lower-risk if they support your use case. They come with built-in authentication, error handling, and field mapping. Custom integration is only worth the effort if the pre-built connector does not support your system or specific requirements. Even then, consider extending a connector rather than building from scratch.

What happens if an integration fails?

Depends on error handling configuration. Reliable integrations retry failed operations, log detailed error messages, and alert teams if repeated failures occur. Fire-and-forget integrations must handle failure gracefully since the caller does not know if data was processed. Request-reply integrations can return error messages immediately.

How do we avoid duplicate or conflicting data in bidirectional sync?

Design bidirectional sync with clear ownership: one system is authoritative for certain fields, the other system is authoritative for others. Avoid overlapping ownership (both systems updating the same field). Use deduplication logic and reconciliation to catch conflicts. Some teams avoid bidirectional sync altogether, choosing unidirectional (one system is authoritative) instead.

Talk to Oblytech

Planning, running or fixing a ServiceNow programme? Tell us where you are and we will suggest a sensible next step.

Contact us