> For the complete documentation index, see [llms.txt](https://docs.fulfillmenttools.com/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.fulfillmenttools.com/documentation/getting-started/eventing/notification-center.md).

# Notification center

The notification center keeps users informed about relevant events within fulfillmenttools. It allows configuring email or client notifications for specific events on the network and facility level.

The following events are available:

* `PICK_JOB_CREATED`: A pick job was created in a facility.
* `UPCOMING_TIME_TRIGGERED_REROUTE`: An order will soon be re-routed.
  * Note: This event is only available for facility notifications.
* `ROUTING_PLAN_NOT_ROUTABLE`: An order couldn't be assigned to a facility.
* `ROUTING_PLAN_WAITING`: A routing plan is waiting for external events to be routed.
* `ORDER_MODIFIED`: An order was edited.
* `LOCKED_ORDER_CREATED`: An order was created with a locked status. The corresponding operative job will be released once the order is unlocked.
* `ORDER_UNLOCKED`: An order was unlocked.
* `ORDER_CANCELLED`, `ORDER_FORCE_CANCELLED`, `ORDER_CANCELLED_BY_EXPIRY`: An order was canceled.

## Notification channels

The notification center supports two types of notification channels:

1. **Email channel**

When this channel type is configured, one or more email addresses can be added as recipients.\
Whenever a triggering event occurs, all configured recipients receive an email notification containing relevant event details.

2. **Client channel**

When this channel type is configured, a database entry is created each time a triggering event occurs. External clients can retrieve and display these entries via the [notification API](/documentation/getting-started/eventing/notification-center/notification-center-endpoints.md).

## Configuration

Notifications can be configured either on the network or facility level:

* **Network-level configuration:** Notifications are received globally for all applicable facilities.
* **Facility-level configuration:** Notifications are received only for specific facilities (for example, for orders routed to that facility).

A [channel](#notification-channels) must be defined to set up a notification.

A [channel](#notification-channels) defines the source (event) and, if applicable, the target (receiver) of the notification.

We recommend defining separate channels for different receiver groups or facilities.

{% hint style="warning" %}
**Quotas may be imposed on this in the future**

fulfillmenttools reserves the right to impose a quota per customer on this feature in the future.
{% endhint %}

## Create a notification configuration

To create a notification on the network level, you'll need to use the Global notification endpoints.

To create a notification on the facility level, you'll need to use the Facility notification endpoints.

### Examples

#### Network notification for routing plan not routable

In the below example, we'll create a notification that sends an email to a user if a routing plan is not routable across the entire network.

{% tabs %}
{% tab title="Endpoint" %}

```http
PUT https://ocff-{projectId}.api.fulfillmenttools.com/api/configurations/notifications
```

{% endtab %}

{% tab title="Request body" %}

```json
{
  "channels": [
    {
      "enabled": true,
      "events": [
        "ROUTING_PLAN_NOT_ROUTABLE"
      ],
      "receiver": [
        {
          "email": "user@example.com", // you can enter as many email addresses as you like here
          "language": "en_US"
        }
      ],
      "type": "EMAIL"
    }
  ],
  "version": 1
}
```

{% endtab %}

{% tab title="Response body" %}

```json
{
    "version": 1,
    "channels": [
        {
            "enabled": true,
            "events": [
                "ROUTING_PLAN_NOT_ROUTABLE"
            ],
            "receiver": [
                {
                    "email": "user@example.com",
                    "language": "en_US"
                }
            ],
            "type": "EMAIL",
            "id": "019c0e39-9d56-76eb-9596-2dfc321dad6c"
        }
    ],
    "created": "2026-01-30T09:26:22.835Z",
    "lastModified": "2026-01-30T09:26:22.835Z"
}
```

{% endtab %}
{% endtabs %}

{% hint style="warning" %}
A scheduled `CRON_JOB` in the tenant is responsible for triggering the dispatch of emails. Depending on the configured interval of this job, a delay may occur between the actual event time and when the email is sent.
{% endhint %}

#### Facility notification for pick job creation

In the below example, we'll create a notification that sends a notification to Backoffice when a pick job is created.

{% tabs %}
{% tab title="Endpoint" %}

```http
PUT https://ocff-{projectId}.api.fulfillmenttools.com/api/facilities/{facilityRef}/configurations/notifications
```

{% endtab %}

{% tab title="Request body" %}

```json
{
  "channels": [
    {
      "enabled": true,
      "events": [
        "PICK_JOB_CREATED"
      ],
      "type": "CLIENT"
    }
  ]
}
```

{% endtab %}

{% tab title="Response body" %}

<pre class="language-json"><code class="lang-json">{
    "version": 1,
    "channels": [
        {
            "enabled": true,
            "events": [
                "PICK_JOB_CREATED"
            ],
            "type": "CLIENT",
<strong>            "id": "019c0f45-8292-76bc-98c4-9b1e4b3e961b"
</strong>        }
    ],
    "configId": "notification-center",
    "created": "2026-01-30T09:26:22.835Z",
    "lastModified": "2026-01-30T14:18:59.607Z"
}
</code></pre>

You can then use the `id` to
{% endtab %}
{% endtabs %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.fulfillmenttools.com/documentation/getting-started/eventing/notification-center.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
