---
sidebar_label: Sync one service with another
doc_id: 75506da4-bfaf-4538-8c36-37037b649686
description: >-
  Sync service configurations between environments to promote updates, roll back
  changes, or maintain consistency.
keywords:
  - service sync
  - configuration management
  - environment promotion
  - rollback
  - development staging
---

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

# Sync one service with another

You can sync a service’s configuration with another one that already exists, making it easier to promote updates, 
roll back changes, or keep environments in sync.

This flow is ideal when both services already exist (e.g., a `dev` and a `staging` version of the same service)
and you want to apply selected updates from one to the other.

:::info
This feature **does not support** imported services, such as monitoring tools (e.g., New Relic), AI services (e.g.,
OpenAI), or other third-party integrations.
:::


## How it works

1. Go to your application’s **Development** dashboard and open the **Services** view.
2. Find the service you want to sync and click **Manage > Sync service with another**.
3. Select the source service to sync from, and choose which settings to apply.
4. Review and adjust any fields as needed, such as dimensions or environment.
5. Click **Create service** to finish up.

Once finished, the service will be updated in your service list.

## When to use this

Use this when both services already exist, and you want to align them. Common cases include:

- Promoting recent updates across environments  
- Rolling back a service to match a previous configuration  
- Resolving unexpected drift over time

If you're setting up a brand new service using an existing one as a starting point,
use [Create from existing](/docs/services/promote-service/create-service-from-service) instead.

## Example: promote updates from dev to staging

Let’s say you’ve made changes to a service in `development` and want to sync those updates to `staging`.


Here’s what that looks like:

- Select the *Staging* service as the one to update.
- Choose the *Development* service as the source to sync from.
- Review a side-by-side comparison of attributes:
  - New, removed, and modified attributes
  - Fields that will be skipped (like environment-specific values or identifiers)
- Confirm the changes
  
Only the selected attributes will be updated, giving you fine-grained control over what changes get promoted.

## Set up an action spec of type `update`

You won’t be able to sync a service with another one if that service **doesn’t have an `update` action
specification** associated with its service spec.

To enable this feature, you’ll need to create an **action specification** first:

1. Go to **Platform settings > Services > Specifications** and search for the service spec you want to reuse.
2. Click **Action specifications**, then click **+ New action specification** to open the
   **Create action specification** form.
   > ℹ️ **Important:** The create action’s `parameters` schema **must match—or be compatible with—** the service’s
   `attributes` schema.
3. Fill in the required fields in the form:
   - Type: Set this to "update" (`"type": "update"`).
   - Schema: Define the `parameters` schema used when creating a service.
   - UI Schema (optional): Configure the form layout, grouping, or field behaviors if needed.
4. Then click **Create** to save it.
5. Return to **Development > Services** and try syncing a service again using **Manage > Sync service with another**.

:::tip
The action’s `parameters` schema must **match or be compatible with** the service’s `attributes` schema. If you're
using `use_default_actions: true`, compatibility is handled automatically.

More on this: [Schema compatibility requirements](/docs/services/promote-service/schema-compatibility)
:::
