Skip to content

Create Environment Unified Model ​


Install a unified model in a specific environment, optionally with overrides. If a record already exists for that (environment_id, unified_model_id) pair, the existing record is returned. You have the flexibility to customize a Unified Model and its configuration to better suit your specific needs. Customizing the models allow you to override default mappings, add new resources, and tailor the unified apis to fit seamlessly within your environment. Read more about Installing Unified Models An example of how you can override the properties of the base Unified Model Mapping-

{
  "override":{
      "resources":{
        "orders":{
            "integration_mapping":{
              "bigcommerce":{
                  "list":{
                    "request_body_mapping":"{\n  \"id\": response.id & '',\n 
                                    \"currency\": response.currency_code"
                  }
              }
            }
        }
      }
  }
}

Like wise use the override key to specify any overrides on the Base Unified Model.

Endpoint ​

http
POST /environment-unified-model

Request Body ​

unified_model_id
string · uuid

The ID of the unified model to install.

Example: 7c5c8cc2-e68e-4af8-84d1-4ceea1489338
override
object

Optional override object for resources, scopes, webhooks, or docs. Deep-merged on top of the base unified model.

resources
object

Resource-level overrides keyed by resource name.

scopes
object

Per-integration extra OAuth scopes appended to the base unified-model scopes.

webhooks
object

Per-integration JSONata expressions that route inbound webhooks to unified-model resources.

docs
object

Per-integration documentation overrides.

Response Body ​

id
string · uuid

The ID of the environment-unified-model record.

Example: 4af1e38e-1d84-4bea-8ef4-2d705aec43bc
unified_model_id
string · uuid

The ID of the unified model being installed or overridden.

Example: 7c5c8cc2-e68e-4af8-84d1-4ceea1489338
environment_id
string · uuid

The ID of the environment where this unified model is installed.

Example: 1ba1f401-7183-47c5-9e39-e8e257e3c795
override
object

An optional object containing environment-level overrides for the unified model. Deep-merged on top of the base unified model. See EnvironmentUnifiedModelOverride for the typed shape.

Example: { "resources": { "users": { "description": "Overrides the user resource description for this environment.", "integration_mapping": { "my_integration": { "list": { "path_mapping": "/v2/users" } } } } } }
resources
object

Resource-level overrides keyed by resource name.

scopes
object

Per-integration extra OAuth scopes appended to the base unified-model scopes.

webhooks
object

Per-integration JSONata expressions that route inbound webhooks to unified-model resources.

docs
object

Per-integration documentation overrides.

created_at
string · date-time

Timestamp when this record was created.

Example: 2024-01-10T10:00:00.000Z
updated_at
string · date-time

Timestamp when this record was last updated.

Example: 2024-01-11T12:30:00.000Z
unified_model
object

The full unified model object, with any overrides merged in.

Example: { "id": "7c5c8cc2-e68e-4af8-84d1-4ceea1489338", "name": "user-directory", "sharing": "deny", "resources": { "users": { "schema": { "type": "object", "properties": { "id": { "type": "string" } } }, "integration_mapping": { "my_integration": { "list": { "method": "get", "resource": "/users" } } } } } }
id
string · uuid

The ID of the unified model.

Example: 7c5c8cc2-e68e-4af8-84d1-4ceea1489338
name
string

The name of the unified model.

Example: user-directory
category
string

The category of the unified model.

Example: hris
description
string

A brief description of what this unified model represents.

Example: This model provides a user directory interface for various HRIS integrations.
team_id
string · uuid

The ID of the team that owns this unified model.

Example: 05daecaf-4365-42e8-8370-8127de5dd717
sharing
string

The sharing policy of the unified model.

All possible enum values:
  • allow
  • ask
  • deny
Example: deny
resources
object

Map of resource name (e.g. users, contacts) → resource definition (UnifiedModelResource).

Example: { "users": { "description": "A resource representing user objects", "schema": { "type": "object", "properties": { "id": { "type": "string" }, "email": { "type": "string" } } }, "integration_mapping": { "my_integration": { "list": { "resource": "/users", "method": "get" } } } } }
docs
object

Per-resource documentation (pricing plan / scopes / instructions).

scopes
object

Per-resource OAuth/permission scopes required to call its methods.

webhooks
object

Per-resource webhook routing expression (JSONata that decides whether an inbound webhook should be delivered to this resource).

created_at
string · date-time

The date and time when the unified model was created.

Example: 2021-08-10T10:00:00.000Z
updated_at
string · date-time

The date and time when the unified model was last updated.

Example: 2021-08-10T10:30:00.000Z
version
number

The current version of the unified model.

Example: 3
installed_environment
string[]

A list of environment IDs where this unified model is installed.

team
object

The team object that owns this unified model.

id
string · uuid

The ID of the team.

Example: 05daecaf-4365-42e8-8370-8127de5dd717
name
string

The name of the team.

Example: My Awesome Team
domain
string

The domain of the team.

Example: example.com
logo
string

The URL of the team's logo.

Example: https://example.com/logo.png
is_verified
boolean

Whether the team is verified or not.

Example: true
is_white_label
boolean

Whether the team is white-labeled or not.

tos_link
string

A link to the team's Terms of Service, if available.

Example: https://example.com/tos
allow_impersonation
boolean

Whether the team allows impersonation.

created_at
string · date-time

The date and time when the team was created.

Example: 2021-08-10T10:00:00.000Z
updated_at
string · date-time

The date and time when the team was last updated.

Example: 2021-08-10T10:00:00.000Z
id
string · uuid

The ID of the environment-unified-model record.

Example: 4af1e38e-1d84-4bea-8ef4-2d705aec43bc
unified_model_id
string · uuid

The ID of the unified model being installed or overridden.

Example: 7c5c8cc2-e68e-4af8-84d1-4ceea1489338
environment_id
string · uuid

The ID of the environment where this unified model is installed.

Example: 1ba1f401-7183-47c5-9e39-e8e257e3c795
override
object

An optional object containing environment-level overrides for the unified model. Deep-merged on top of the base unified model. See EnvironmentUnifiedModelOverride for the typed shape.

Example: { "resources": { "users": { "description": "Overrides the user resource description for this environment.", "integration_mapping": { "my_integration": { "list": { "path_mapping": "/v2/users" } } } } } }
resources
object

Resource-level overrides keyed by resource name.

scopes
object

Per-integration extra OAuth scopes appended to the base unified-model scopes.

webhooks
object

Per-integration JSONata expressions that route inbound webhooks to unified-model resources.

docs
object

Per-integration documentation overrides.

created_at
string · date-time

Timestamp when this record was created.

Example: 2024-01-10T10:00:00.000Z
updated_at
string · date-time

Timestamp when this record was last updated.

Example: 2024-01-11T12:30:00.000Z
unified_model
object

The full unified model object, with any overrides merged in.

Example: { "id": "7c5c8cc2-e68e-4af8-84d1-4ceea1489338", "name": "user-directory", "sharing": "deny", "resources": { "users": { "schema": { "type": "object", "properties": { "id": { "type": "string" } } }, "integration_mapping": { "my_integration": { "list": { "method": "get", "resource": "/users" } } } } } }
id
string · uuid

The ID of the unified model.

Example: 7c5c8cc2-e68e-4af8-84d1-4ceea1489338
name
string

The name of the unified model.

Example: user-directory
category
string

The category of the unified model.

Example: hris
description
string

A brief description of what this unified model represents.

Example: This model provides a user directory interface for various HRIS integrations.
team_id
string · uuid

The ID of the team that owns this unified model.

Example: 05daecaf-4365-42e8-8370-8127de5dd717
sharing
string

The sharing policy of the unified model.

All possible enum values:
  • allow
  • ask
  • deny
Example: deny
resources
object

Map of resource name (e.g. users, contacts) → resource definition (UnifiedModelResource).

Example: { "users": { "description": "A resource representing user objects", "schema": { "type": "object", "properties": { "id": { "type": "string" }, "email": { "type": "string" } } }, "integration_mapping": { "my_integration": { "list": { "resource": "/users", "method": "get" } } } } }
docs
object

Per-resource documentation (pricing plan / scopes / instructions).

scopes
object

Per-resource OAuth/permission scopes required to call its methods.

webhooks
object

Per-resource webhook routing expression (JSONata that decides whether an inbound webhook should be delivered to this resource).

created_at
string · date-time

The date and time when the unified model was created.

Example: 2021-08-10T10:00:00.000Z
updated_at
string · date-time

The date and time when the unified model was last updated.

Example: 2021-08-10T10:30:00.000Z
version
number

The current version of the unified model.

Example: 3
installed_environment
string[]

A list of environment IDs where this unified model is installed.

team
object

The team object that owns this unified model.

id
string · uuid

The ID of the team.

Example: 05daecaf-4365-42e8-8370-8127de5dd717
name
string

The name of the team.

Example: My Awesome Team
domain
string

The domain of the team.

Example: example.com
logo
string

The URL of the team's logo.

Example: https://example.com/logo.png
is_verified
boolean

Whether the team is verified or not.

Example: true
is_white_label
boolean

Whether the team is white-labeled or not.

tos_link
string

A link to the team's Terms of Service, if available.

Example: https://example.com/tos
allow_impersonation
boolean

Whether the team allows impersonation.

created_at
string · date-time

The date and time when the team was created.

Example: 2021-08-10T10:00:00.000Z
updated_at
string · date-time

The date and time when the team was last updated.

Example: 2021-08-10T10:00:00.000Z