---
sidebar_label: Create services based on existing ones
doc_id: 8fa66292-f600-47a8-9edd-bcc67f3e28f9
description: >-
  Learn how to create new services by copying configurations from existing ones
  to save time and ensure consistency.
keywords:
  - service creation
  - configuration reuse
  - environment promotion
  - service deployment
  - action specifications
---

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

# Create services based on existing ones

You can quickly create a new service using the configuration of one that already exists. This saves time, reduces
manual setup, and helps you promote known-good configurations across environments or regions.

This is especially useful when setting up a service in a new environment (like `staging` or `prod`) or creating
parallel services for different dimensions or scopes.

:::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

You can create a new service right from the UI:

1. Go to your application’s **Development** dashboard and open the **Services** view.
2. Find the service you want to reuse and click **Manage > New service like this**.
3. A form will open with the original service’s details already filled in.
4. Make any changes you need, such as updating the target dimensions or environment.
5. Click **Create service** to finish.

The new service will appear in your service list.


## When to use this

Use this flow when you're setting up a **new** service using a configuration that already works. It's a great fit for:

- Rolling out services to new environments  
- Creating services with different regions or dimensions, like `dev-us`, `dev-uk`, or
  `dev-eu`
- Reducing repetitive setup and config drift

If you're working with two services that already exist and want to apply updates from one to the other, consider [syncing instead](/docs/services/promote-service/sync-service).


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

You won’t be able to create a service based on an existing one if that service **doesn’t have a `create` 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. See [Schema compatibility requirements](/docs/services/promote-service/schema-compatibility) for more info. 
3. Fill in the required fields in the form:
   - Type: Set this to "create" (`"type": "create"`).
   - 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 creating a service again using **Manage > New service like this**.



:::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)
:::
