# Migrating Configuration

> This task requires **ServiceNow System Administrator** privileges in both the source and target instances.

YouDesign Models uses a split migration model: **YouDesign configuration moves through XML files**, while **ServiceNow platform changes move through Update Sets**. Knowing which mechanism each change belongs to is the key to clean non-production → production promotions.

This page describes the recommended workflow and lists the tables involved.

## Recommended Workflow

1. **Do configuration work in a non-production instance** — typically development. Never touch production first.
2. **Stage and verify** in a UAT or test instance before promoting to production.
3. **Promote via XML export/import** for YouDesign Models data and configuration.
4. **Promote via Update Sets** for any ServiceNow platform changes (form views, ACLs, custom tables, `cmdb_rel_type`, `cmdb_rel_type_suggest`, etc.).

> **Rule of thumb:** If the change lives in a `x_inpi_yd_*` table, use XML. If it's a ServiceNow platform change that supports your YouDesign setup (e.g. suggested relationships, form layouts), use an Update Set.

## Why Two Mechanisms?

* **XML export/import** preserves the full record data, including GUIDs (sys\_ids). This is what YouDesign Models configuration needs so that shapes, RTIs, board types, and templates all retain the identities end users have referenced.
* **Update Sets** are the standard ServiceNow platform mechanism for moving customizations like form views, scripts, client code, ACLs, and platform tables.

Mixing the two is fine — and expected. A typical promotion includes both an XML bundle and an Update Set.

## Tables Relevant for Migration

Use this table to decide how to move each kind of content.

### YouDesign Data

These hold the board content and user state. Migrate when you need to move boards, versions, templates, or filter definitions between instances.

| Table Name               | Technical Name                       | Comment                                                                                                             |
| ------------------------ | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------- |
| Board                    | `x_inpi_yd_board`                    | Board metadata — name, description, owner                                                                           |
| Board Content            | `x_inpi_yd_board_content`            | Versioned content of the board. Each shape, link, image is a separate entry with a reference to the Board table     |
| Board Content Element    | `x_inpi_yd_board_content_element`    | Fine-grained content elements                                                                                       |
| Board Realtime Indicator | `x_inpi_yd_board_realtime_indicator` | RTIs applied to a board version                                                                                     |
| Board Scope              | `x_inpi_yd_board_scope`              | Scope entries linking boards to arbitrary ServiceNow records (see [Scope](/models/work-in-the-app/editor/scope.md)) |
| Board Version            | `x_inpi_yd_board_version`            | Per-board version details (Stage, Approval Dates, RTI data)                                                         |
| Teamspaces & Folders     | `x_inpi_yd_folder`                   | Hierarchical structure of folders; the top-level (Level 0) represents the teamspace                                 |
| Filters                  | `x_inpi_yd_filter`                   | Global, Teamspace, and Personal filters                                                                             |
| Templates                | `x_inpi_yd_template`                 | Global, Teamspace, and Personal templates                                                                           |
| Attachments              | `sys_attachment`                     | Filter by `table_name = x_inpi_yd_board` to export attachments linked to boards                                     |
| Attachment Documents     | `sys_attachment_doc`                 | Filter by `sys_attachment.table_name = x_inpi_yd_board`                                                             |

### YouDesign Configuration

These hold the admin-configured metadata that shapes the user experience: shapes, RTI definitions, relationship styles, etc. Migrate these when you've updated shapes, added RTIs, or changed sharing roles.

| Migration Of              | Table Name               | Technical Name                       | Comment                                |
| ------------------------- | ------------------------ | ------------------------------------ | -------------------------------------- |
| Board Types               | Board Types              | `x_inpi_yd_board_type`               | Board type hierarchy                   |
| Board Stages              | Board Stages             | `x_inpi_yd_board_stage`              | Configured stages of YouDesign Boards  |
| Shapes & Shape Categories | Shape                    | `x_inpi_yd_shape`                    | Customized shapes                      |
|                           | Shape Category           | `x_inpi_yd_shape_category`           | Shape category hierarchy               |
| Shape Relationship Styles | Shape Relationship       | `x_inpi_yd_shape_relationship`       | Customized relationship styles         |
| Shape Fields              | Shape Field              | `x_inpi_yd_shape_field`              | Customized field definitions on shapes |
| Realtime Indicators       | Realtime Indicator       | `x_inpi_yd_realtime_indicator`       | RTI definitions                        |
|                           | Realtime Indicator Shape | `x_inpi_yd_realtime_indicator_shape` | Per-shape RTI configuration            |
|                           | Realtime Indicator Value | `x_inpi_yd_realtime_indicator_value` | Per-RTI value mapping                  |

## Tables That Don't Migrate via YouDesign

Some content depends on ServiceNow platform configuration that must travel via an **Update Set** (or be re-configured in the target instance):

* `sys_db_object` changes (custom tables, table extensions)
* `cmdb_rel_type` (new relationship types)
* `cmdb_rel_type_suggest` (new suggested relationships)
* Form views, ACLs, Business Rules, Client Scripts
* The "YouDesign Board" related list addition to custom tables (see [Scope](/models/work-in-the-app/editor/scope.md))

See [Metamodel Prerequisites](/models/admin/metamodel.md) for what must be in place before YouDesign configuration is useful.

## Typical Promotion Checklist

When promoting from nonprod to prod, work in this order to avoid broken references:

1. **Metamodel first** — Update Set for `sys_db_object`, `cmdb_rel_type`, `cmdb_rel_type_suggest`
2. **Platform extras** — Update Set for form view changes, ACLs, related list additions
3. **YouDesign configuration** — XML export for shapes, shape categories, shape fields, shape relationships, RTI definitions, board types, board stages, templates
4. **YouDesign data (if needed)** — XML export for specific boards, versions, filters

Verify each step before moving to the next. A missing suggested relationship breaks every shape that depends on it.

## Version Control

Both XML exports and Update Sets produce text artifacts you can store in Git alongside your code. Many teams keep a `/yd-migrations` folder with numbered releases so each promotion is a reviewable artifact.

## Common Pitfalls

* **Forgetting the metamodel** — you migrate shapes that reference tables that don't exist in the target. Shapes appear but can't bind.
* **Forgetting the related list** — scope still works, but ServiceNow form users don't see linked boards until the YouDesign Board related list is added to the target form view.
* **Over-migrating** — don't migrate `x_inpi_yd.gl.*_last_updated` properties manually. They're maintained by the application. See [Global Settings](/models/admin/global-settings.md).
* **Under-migrating** — committing RTIs without also committing the Realtime Indicator Shape and Realtime Indicator Value tables produces empty RTIs in the target.

## Related

* [Metamodel Prerequisites](/models/admin/metamodel.md)
* [Installation](/models/get-the-app/installation.md)
* [Updating](/models/get-the-app/updating.md)
* [Support Process](/models/reference/support.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ins-pi.com/models/get-the-app/migrating-configuration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
