---
updatedAt: 2026-08-06T18:42:17.000Z
agentTools:
  siteIndex: https://documentation.bloomreach.com/llms.txt
  projectIndex: https://documentation.bloomreach.com/content/llms.txt
---

# Configure a custom integration

## Introduction

### Goal

Configure a custom integration in your Content SaaS environment.

### Background

It is possible to [integrate your apps](https://documentation.bloomreach.com/content/docs/integrations-library) in the UI of Content SaaS using predefined extension points. This page explains how to add and configure your custom integration.

> 👍 Bloomreach Content Marketplace
>
> Bloomreach provides a repository of example and out-of-the-box integrations at the Content SaaS [Marketplace](https://documentation.bloomreach.com/content/docs/marketplace).

## Manage integrations

In the left navigation, select *Setup*, then *Content integrations*. You will see the following screen:

![](https://files.readme.io/d0258f7-Screen_Shot_2022-10-31_at_11.49.29_AM.png "Screen Shot 2022-10-31 at 11.49.29 AM.png")

If you have previously added any integrations, they are listed under *Added integrations*. Click on an added integration to modify its configuration.

Click on *Custom integration* under *Available integrations* to add a new custom integration.

## Configuration

A custom integration is configured through a form:

![](https://files.readme.io/63abbe6-Screen_Shot_2022-10-31_at_11.49.10_AM.png "Screen Shot 2022-10-31 at 11.49.10 AM.png")

The form contains the following fields:

[block:parameters]
{
  "data": {
    "h-0": "Field",
    "h-1": "Description",
    "h-2": "Example(s)",
    "h-3": "Default value",
    "0-0": "Name  \n(required)",
    "0-1": "The display name for your custom integration. This can be any String.",
    "0-2": "My Custom Integration",
    "0-3": "",
    "1-0": "Integration ID",
    "1-1": "The _Integration ID_ is automatically generated based on the value entered in the _Name_ field.",
    "1-2": "mycustomintegration",
    "1-3": "",
    "2-0": "Description",
    "2-1": "Optional description to be displayed for the integration in the _Added integrations_ list.",
    "2-2": "This is an example of a custom integration's description.",
    "2-3": "",
    "3-0": "Type",
    "3-1": "The type of integration. Currently there is only one supported type (document.field).",
    "3-2": "document.field",
    "3-3": "document.field",
    "4-0": "Configuration  \n(required)",
    "4-1": "A JSON object containing any configuration parameters for your integration.  \n  \n_Configuration_ is a required field but accepts an empty object (`{}`).",
    "4-2": "`{ \"foo\": \"bar\" }`  \n  \n`{}`",
    "4-3": "",
    "5-0": "Application URL  \n(required)",
    "5-1": "The URL at which your custom integration is accessible.",
    "5-2": "ht<span>tps://example.com/mycustomintegration",
    "5-3": "",
    "6-0": "Height (px)",
    "6-1": "The height in pixels of the iframe in which the custom integration is rendered.",
    "6-2": "100",
    "6-3": "60",
    "7-0": "CSP Properties",
    "7-1": "Because custom integrations run on an external host and are displayed in an iframe in the UI, you must add the relevant domain(s) to the [Content Security Policy](https://en.wikipedia.org/wiki/Content_Security_Policy) of your Content SaaS environment.  \n  \nSelect the relevant _CSP Property_ in the dropdown and enter the domain in the text field next to the dropdown. You can add additional CSP properties using the _+_ button.  \n  \nAny changes to an integration's CSP properties will only take effect after refreshing the browser or logging out and back in.",
    "7-2": "frame-src: <http://example.com> or <https://example.com>",
    "7-3": ""
  },
  "cols": 4,
  "rows": 8,
  "align": [
    "left",
    "left",
    "left",
    "left"
  ]
}
[/block]

Once you have entered all the relevant configurations, click on *Add* (when adding a new custom integration) or *Save* (when modifying an already added integration) to persist your changes.

> ❗️ Important
>
> Any changes to an integration's CSP properties will only take effect after refreshing the browser or logging out and back in.