---
title: DAM
description: MediaPress DAM integrates with Digital Asset Management systems like Cloudinary and Bynder, allowing assets to be automatically imported into the WordPress media library when tagged appropriately.
url: https://developers.wpengine.com/docs/newsroom/mediapress/dam/
image: https://developers.wpengine.com/og/docs/newsroom/mediapress/dam.png
---

# DAM

The **MediaPress DAM** is a WordPress plugin that integrates with Digital Asset Management (DAM) systems like **Cloudinary**. It allows assets to be automatically imported into the WordPress media library when tagged appropriately in the DAM system.

## Features

- **Admin Settings Page** to configure DAM API credentials.
- **Webhook Handling** to listen for asset tag changes.
- **Asset Importing** when a valid target tag is added in the DAM.
- **Support for Multiple DAMs** (Cloudinary and Bynder with extensibility for more integrations).

## Installation

### 1. Install the Plugin

- Clone repo.
- Run `npm i`
- Run `composer install`
- Add this folder to plugin directory or use wp-env
- Activate the plugin in the WordPress admin panel.

### 2. Connect to DAMs

- Navigate to **Settings > DAM Connections** in the WordPress Admin.
- Enter the API credentials.

## Usage

### Webhook Setup

When successfully connecting to a DAM, a webhook connection will be created.

- The **Webhook Endpoint** will be the following:

[https://yourwordpresssite.com/wp-json/mediapress-dam/v1/webhook/{dam}](https://yourwordpresssite.com/wp-json/mediapress-dam/v1/webhook/%7Bdam%7D)

- `{dam}` replaced with dam name.

### Local Webhook Setup

> **Note**
>
> If you are running this locally, you will need to use a service like ngrok to expose your localhost URL.

You can define `MEDIAPRESS_CLOUDINARY_WEBHOOK_URI`to override this.

The local webhook endpoint would be:

`/index.php?rest_route=/mediapress-dam/v1/webhook/{dam}`

### Cloudinary Setup

To find your Cloudinary URL, follow these steps:

1. Go to the Cloudinary console and navigate to **API Keys**.
2. Copy your URL. It will look like this:

`cloudinary://<your_api_key>:<your_api_secret>@<cloud_name>`

3. Save this URL in the Cloudinary url field.

### Bynder Setup

1. Go to your Bynder portal and navigate to **Advanced settings > Portal settings > OAuth Apps**

2. Click **Add new app** and configure:

   - **Application name:** MediaPress WordPress Integration

   - **Integration:** WordPress

   - **Grant Type:** Client Credentials

   - **Assigned user:** Select a user with administrator profile

   - **Scopes:** Select the following:

     - `asset:read` - Fetches assets from Bynder
     - `current.user:read` - Verifies connection
     - `webhooks.config:read` - Webhook management
     - `webhooks.config:write` - Webhook management

3. Copy your **Client ID** and **Client Secret**.

4. Construct the connection URL in the following format:

`bynder://<client_id>:<client_secret>@<your-portal-domain>`

<!-- spell-checker:ignore getbynder -->

For example: `bynder://abc123:xyz789@your-company.getbynder.com`

5. Save this URL in the Bynder url field which is located in the admin panel **Mediapress > Settings > DAM**.

## How It Works

The plugin registers a `mediapress_dam_tags` meta field on posts.

When tags are added to this field, the plugin automatically fetches assets from the connected DAMs that match those tags. The assets are then imported into the WordPress media library and attached to the corresponding post.

Additionally, the plugin listens for asset tagging events in the DAMs via webhooks. When an asset is tagged in the DAM, it is automatically imported into the media library and linked to the appropriate post.

## Extending the Plugin

### Adding More DAMs

To add support for another DAM system:

1. Implement a new DAM handler class with `DAMHandlerInterface`.
2. Register the handler in `DAMManager`.
3. Define methods for fetching assets and handling webhooks.
4. Implement a new DAM connection class with `DAMConnectorInterface`
5. Register the connection class in the admin class.

## Was this helpful?

Thanks for the feedback!

```json
{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://developers.wpengine.com/#website","name":"WP Engine Product Documentation","url":"https://developers.wpengine.com/","description":"Resources for developing, deploying, and scaling on WP Engine.","inLanguage":"en-US","keywords":["API documentation","product documentation","headless WordPress","managed WordPress hosting"],"publisher":{"@id":"https://wpengine.com/#organization"}}]}
```
