---
title: The Optimizely Campaign n8n integration
slug: campaign/docs/the-optimizely-campaign-n8n-integration
docTags: 
createdAt: 2026-07-20T15:45:26.056Z
---

## Basics

### About n8n

[n8n](https://n8n.io/) is a platform for automating tasks by connecting different applications and services. Please refer to the [n8n user documentation](https://docs.n8n.io/) for learning more about it. Here, the focus is on connecting Optimizely Campaign and n8n and you should have a basic understanding of n8n before reading on.

:::hint{type="info"}
**Note**

The name *n8n* is short for *nodemation* and is pronounced *n-eight-n.*
:::

### The package *n8n-nodes-optimizely-campaign*

The capabilities of n8n can be extended by adding node types. The Optimizely Campaign node types for n8n are available through [npm](https://www.npmjs.com/) in the package [@optimizely-campaign/n8n-nodes-optimizely-campaign](https://www.npmjs.com/package/@optimizely-campaign/n8n-nodes-optimizely-campaign). If you are hosting your own n8n instance, you have to install these yourself, see [Requirements and setup](docId\:uFCVJ4UQLB3Eilr07xFNi) below.

![](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/ngz5nImqphy87KhXiHCHc-20260720-145204.png)

The n8n canvas with a worfklow and some Optimizely Campaign nodes

## Requirements and setup

### User accounts

Following conditions are required for using the Optimizely Campaign n8n integration:

- If you are in the DACH region, you need an Optimizely Campaign API user who has the role *bm - Webservice User Integration-Platform*. Optimizely support will help you create an API user with the required role.
- If you are outside the DACH region, you need an Optimizely Campaign API user who has the role *epi - Webservice User Integration-Platform*. You can create such a user yourself, in case of problems please contact support.
- You have the login credentials for this API user.
- You can log in to Optimizely Campaign with another user account (not strictly required but highly recommended for testing your workflows).
- You have a user account on an n8n instance.

n8n uses the login credentials of the API user to communicate with Optimizely Campaign, see [Configuring Campaign API credentials](docId\:uFCVJ4UQLB3Eilr07xFNi) below.

:::hint{type="info"}
**Note**

With many mailbox providers, you can use email subaddressing to create a new user easily, e. g. if your address is [first.last@example.com](mailto\:first.last@example.com), you can create the user [first.last+n8n@example.com](mailto\:first.last+n8n@example.com) as a new user in Optimizely Campaign. While the Campaign users are different, email messages for both addresses will arrive in your inbox for [first.last@example.com](mailto\:first.last@example.com).
:::

### Installing the Campaign node types

**Context:** In self-hosted instances of n8n, you must add the package *n8n-nodes-optimizely-campaign* manually. 
**Prerequisites:** You are logged in in n8n, with administrator permissions.

1. In the bottom right, click on ![](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/4Xh5eVbOE15EROUI6vgYs-20260720-145204.png) (settings). → A pop-up menu displays.
2. Click *Community node*.
   → You see the page *Community nodes*.
3. Click *Install*.
   → The menu *Install community nodes* displays.
4. In the field *npm Package Name*, enter "@optimizely-campaign/n8n-nodes-optimizely-campaign".
5. Add a checkmark to confirm that you understand the risks of adding packages.
6. Click *Install*.
   → The Optimizely Campaign nodes are installed in your n8n instance.

:::hint{type="info"}
**Note**

If you prefer, you can also install the npm package through the terminal on your server with the command:
*npm install @optimizely-campaign/n8n-nodes-optimizely-campaign*
:::

### Configuring Campaign API credentials

**Context:** n8n uses a Campaign API user account to communicate with Campaign. For this, you must enter an API user's credentials in n8n.
**Prerequisites:** You know the credentials of a Campaign API user with the required role (see [User accounts](docId\:uFCVJ4UQLB3Eilr07xFNi)). You are logged in in n8n.

1. In the top left of the n8n page, click *+* (plus).
2. From the pop-up menu, select *Credential*.
   → The menu A*dd new credential* displays.
3. In the field *Select an app or service to connect to*, type "Optimizely Campaign".
4. From the drop-down list, select *Optimizely Campaign API*.
5. Click *Continue*.
6. Enter the user name (email address), password and the *client ID* of your Campaign client.
   **Note:** The client ID is visible in Campaign under *Administration > API overview.*
   → If your credentials are correct, the message *Connection tested successfully* displays.
7. Click *Save*.

## The nodes for Optimizely Campaign

### Overview

In an n8n workflow, nodes control what happens and when it happens. When adding a node in n8n, search for "Optimizely Campaign" to see the nodes from Campaign. Each node belongs to one of two categories:

- *Triggers* that control workflows,
- *Actions* that are executed in workflows.

Following triggers from Optimizely Campaign are available:

- On archive
- On blocklist
- On bounce
- On click
- On confirmedoptin
- On doubleoptin
- On filtered by blocklist
- On open
- On sent
- On singleoptin
- On spamcomplaint
- On unsubscribe

Following actions in Optimizely Campaign are available:

- Create a recipient
- Update a recipient
- Get a recipient
- Send a transactional message

In addition to the Campaign-specific nodes, there is another very powerful option:

- n8n's generic *HTTP Request* node can send requests to the [Campaign REST API](https://api.campaign.episerver.net/apidoc/index.html).

To automate a process involving Optimizely Campaign and another application, create an n8n workflow that combines a trigger or action from Optimizely Campaign with a trigger or action from the other application.

### Data transmission through triggers

Technically, the Campaign triggers in n8n are HTTP requests (webhooks). When a relevant event happens, Campaign sends a POST request to n8n. The values from the request body can then be used in the next node of the workflow.

When you add an action node after a trigger, the data fields are visible in the *input* menu on the left-hand side of the action node's *node details* view. You can drag these data fields to input fields of the action node. Then, in each run, the values provided by the trigger will be used in the action.

### Viewing the data fields provided by a trigger

**Context:** Each trigger provides a specific set of data fields that can be used in subsequent nodes.
**Prerequisites:** You are logged in in n8n.

1. Open or create a workflow.
2. Open or add a Campaign trigger.
3. On the right-hand side of the *node details* view, click *Test this trigger.*
4. Open the tab *JSON*.
   → The data fields are visible in the JSON code.
   **Note:** The following screenshot shows the default mock-up data provided for *click* events, highlighted with a green frame. You can see which data fields are available from this type of trigger.

![](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/HrgDWt_8YZp9mWUroN5Lq-20260720-145204.png)

The *node details* view of a trigger node for clicks in emails from Campaign. Variables and mock-up values are highlighted.
