[Limited Availability]{class="badge informative"}

Set up a custom channel create-custom-channel

To be able to use a custom channel in campaigns and journeys, an administrator must first create the channel. This involves defining the endpoint, authentication, throttling policy, and message payload structure.

The Channel Builder section is the central interface for defining new custom channels. It enables you to create and configure custom channels, but also manage API credentials, and delegate subdomains.

IMPORTANT
To access the Channel Builder, create and manage custom channels, you must have the View custom channels and Manage custom channels permissions granted. Learn how to manage permissions in this section.

Access and manage custom channels access-channel-builder

To access the Channel Builder and manage your custom channels, follow the steps below.

  1. Go to Administration > Channels in the left navigation rail.

  2. Select Custom channels under the Channel builder section.

    Custom channels inventory {width="70%"}

  3. The inventory lists all custom channels in your sandbox, including their current status and the authentification type used to connect to the external endpoint.

  4. You can filter the custom channels by status (Draft, Active, or Archived), who created them, and search by name.

  5. To edit a channel, click its name in the inventory, make your changes, and save. For active channels, you can only edit certain fields - learn more.

    note caution
    CAUTION
    Modifying throttling or retry settings on an active channel takes effect immediately for all in-flight and future executions.
  6. To archive a channel, open it from the inventory and click Archive.

    Archiving an active channel removes it from all selection drop-downs — campaign action selector, journey actions palette, orchestrated campaigns channel list, channel configurations, and content templates. Existing journeys and campaigns that already use the channel continue to function normally.

Create a custom channel create-channel

To create a new custom channel, follow the steps below.

  1. Click the Create custom channel button to open the channel creation form. Start by defining the general settings for your custom channel.

    General settings {width="70%"}

  2. In the Properties section, enter a Name for your custom channel. This name will appear in the journeys canvas, campaign action selector, and orchestrated campaigns channel list.

    note
    NOTE
    The name must be unique, begin with a letter (A-Z), include only alpha-numeric characters or special chars ( _, ., -) and should be greater than 1 character.
  3. You can select an icon from the default icon library, or select a SVG file from your computer.

    note
    NOTE
    The file must be no larger than 150KB.

    This icon will be displayed next to the channel name in the journey canvas. If no icon is uploaded, the default icon is used.

  4. Enter an optional Description.

Set the endpoint configuration endpoint-configuration

You must configure the endpoint, which is the HTTP URL of your external messaging system. Journey Optimizer sends a POST request to this endpoint with the personalized payload when a profile qualifies in a campaign or journey.

Endpoint configuration {width="70%"}

  1. In the Endpoint configuration section, enter the host URL of your external messaging system.

    note important
    IMPORTANT
    Your external messaging system must expose an HTTPS endpoint that Journey Optimizer can call via HTTP POST. The endpoint must:
    • Accept the payload format your channel defines (JSON).
    • Support one of the authentication methods available in the Channel Builder. Learn more
    • Return an HTTP 2xx response to acknowledge successful receipt of the request.
  2. Add Headers as needed. Headers are key-value pairs transmitted at the HTTP request level. They are sent alongside every request to your endpoint and are typically used for authentication tokens, content type specification, or any other metadata required by your external system.

    Headers configuration

    For each header, you can define whether its value is:

    • Constant – A static value set once and included in every request. For example, you can define theContent-Typeparameter with the value application/json or the Charset parameter with the value UTF-8.
    • Variable – If a default value is entered here, it is used unless overridden in the channel configuration. For example, you can define a variable for the user ID that is resolved at runtime. Learn more
  3. Optionally, add Query parameters using the same constant/variable pattern. Query parameters are appended to the endpoint URL at delivery time. Constant parameters are always added with the same value; variable parameters are resolved at send time, for example to pass a user identifier from the profile.

    Query parameters {width="70%"}

  4. In the Policy configuration section, define how Journey Optimizer handles request throughput and failures. This is important to ensure that your external system can handle the volume of requests and to avoid overwhelming it.

    Policy configuration

    • Enable throttling – Disabled by default. Set the maximum number of requests per second (default: 5,000c). Once the limit is reached, requests are queued and sent as soon as possible.
    • Enable retry – Enabled by default. Set the maximum retry count (default: 3, configurable range: 0–10) for failed requests. This helps to avoid overwhelming the endpoint during transient failures.
    • Timeout – Default: 5,000 milliseconds. Set the maximum time to wait for a response from the endpoint before considering the request failed.

Authentication settings authentication-settings

Select the Authentication type that you need to use for this channel. The available options depend on the authentication methods supported by your external messaging system.

Authentication type {width="70%"}

Provide the authentication details as required by your endpoint.

  • None – The request is sent without credentials.
  • API Key – Provide the key name, value, and location (query parameter or header).
  • Basic auth – Provide a username and password.
  • OAuth 2.0 – Configure the payload for OAuth 2.0 authentication.

When the authentication type is anything other than None, Journey Optimizer automatically generates an initial set of API credentials for this channel when it is activated. You can change these credentials and create new ones in the API credentials inventory. Learn more

However, the authentication details are needed here to test the connection to your endpoint before activating the channel. A Test connection button is available to validate the authentication setup. Learn more

Payload configuration payload-configuration

The payload is sent to the endpoint when a profile qualifies in a campaign or journey.

In the payload configuration, define the structure of the message payload and which fields marketers can author and personalize.

  1. Click Define payload, and choose how to define the payload:

    • Paste sample JSON payload – Paste a representative JSON object, and Journey Optimizer automatically infers a schema from it.

    • Import JSON schema (Coming soon) – Upload a complete JSON schema file.

      note availability
      AVAILABILITY
      This capability is not available yet. It will be added in a future release.
  2. After the schema is generated, Journey Optimizer displays all detected fields in a form view.

  3. For each field, configure the following settings:

    table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2
    Setting Description
    Default value Optional. Used if no personalized value is provided at authoring time.
    Type Read-only, derived from the payload. Supported types: string, integer, decimal, boolean, dateTime, dateTimeOnly, dateOnly, listObject, listString, listInteger, listDecimal, listBoolean, listDateTime, listDateTimeOnly, listDateOnly.
    Required If enabled, the field must have a value when the channel is used in a campaign or journey. Missing required fields trigger a validation error that prevents activation.
    Channel config If enabled, the field appears in the channel configuration, allowing administrators to set different values per configuration (for example, a different sender ID per brand or region). Learn how

    Nested fields are represented using dot notation (for example, image.id).

Test and activate test-activate

While the channel is in Draft status, use the Test connection button on top of the screen to send a test request to your endpoint and validate the end-to-end connection.

Test connection button {width="70%"}

Check your external system’s logs to confirm that the request was received with the expected authentication and payload.

Once the test is successful, you can save or activate the channel.

  • Click Save as draft to save your progress without making the channel available.
  • Click Activate to make the channel available for use in channel configurations, campaigns, and journeys.
IMPORTANT
After a channel is activated, only the following fields remain editable: name, description, icon, throttling, and retry configuration. Endpoint URL, headers, query parameters, authentication, and payload structure are locked.

Next steps next-steps

Your custom channel is now created. Complete the configuration by following the remaining steps:

recommendation-more-help
journey-optimizer-help