---
sidebar_label: Promote services
doc_id: 0f3fef18-0837-40ce-924b-36a1d74485c8
description: >-
  Tools for managing service configurations across environments—compare, create,
  and sync services safely.
keywords:
  - service promotion
  - environment management
  - configuration sync
  - service comparison
  - deployment
---

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

# Promote services

When working across environments like `development`, `staging`, and `production`, you often need to reuse or align service
configurations. Nullplatform offers tools to help you:

- Identify differences between services
- Reuse known-good configurations
- Promote or synchronize changes safely

## Compare services across environments

Use this to inspect the differences between two service instances. The comparison returns structured JSON patches
that highlight which attributes were added, removed, or changed.

This helps you:

- Spot differences between environments
- Review configuration changes before syncing or promoting

## Create services based on existing ones

Use this when you need to **set up a new service** based on the configuration of an existing one. This is great for teams working
across multiple environments, countries, or dimensions.

The UI pre-fills a form with values from the original service so you can make minor adjustments and submit the new one.

## Sync one service with another

Use this when you want to **apply specific changes** from one service to another. It’s ideal for:

- Promoting updated configurations from one environment to another (e.g., dev → staging)
- Rolling back to a previous version
- Keeping existing services aligned without recreating them

You’ll get a visual diff and can choose exactly which fields to update.

## Fields that cannot be copied

Some fields, like account IDs or domains, are excluded from create and sync flows to prevent invalid configurations.
These are marked in the spec as `"comparable": false` and skipped automatically.

## Schema compatibility

Creating or syncing a service requires compatible schemas between the service and its action spec. If you’re using `use_default_actions: true`, this is handled for you.

## What's next

Here’s where you can go from here, depending on what you need to do:

- [Compare services](/docs/services/promote-service/compare-service) — check for differences between service instances  
- [Create services based on existing ones](/docs/services/promote-service/create-service-from-service) — set up a new service using an existing configuration  
- [Sync one service with another](/docs/services/promote-service/sync-service) — apply changes from one service to another  
- [What fields cannot be copied](/docs/services/promote-service/non-comparable-fields) — understand which fields are excluded from create and sync operations  
- [Schema compatibility requirements](/docs/services/promote-service/schema-compatibility) — ensure your service and action schemas are compatible
