> ## Documentation Index
> Fetch the complete documentation index at: https://docs.openlayer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Monday

> Inventory monday.com AI agents with their configuration, data access, and audit history, and trace every run of the agents you govern

![A monday.com-style mark (two slanted bars and a dot) on a purple gradient](https://mintcdn.com/openlayer-44/jmTNuz1lqkfKNL6k/images/integrations/monday_hero.png?fit=max\&auto=format\&n=jmTNuz1lqkfKNL6k\&q=85\&s=660dcd849c29124702748b4206953165)

[monday.com AI agents](https://support.monday.com/hc/en-us/articles/33347027353746-AI-Agents-on-monday-com) work inside monday.com boards: they answer
chats, act on items they are assigned to, and run scheduled jobs. Openlayer connects through a
monday.com app you create in your own account. It lists every AI agent with its configuration and
data access, keeps each agent's audit history, and writes every run of the agents you choose to
govern as a trace in their own project.

> [!NOTE]
>
> All access is **read-only**. The app requests only read scopes, and Openlayer
> never changes anything in your monday.com account.

## How it works

Once connected, Openlayer syncs from monday.com every hour by default:

1. **Discovers agents.** Every AI agent in the account is listed under **Agents**. Agents removed
   in monday.com stay listed as removed rather than disappearing.
2. **Reads each agent's configuration.** The model, tools, jobs and their triggers, and the boards
   and docs the agent can access. These come from monday.com's preview API. When an agent's
   configuration is not readable, the agent stays listed and **Coverage** says so.
3. **Keeps an audit history.** Agent lifecycle events from monday.com's audit log, such as created,
   activated, ownership transferred, and board access granted. The first sync reads the last 30
   days, and you can backfill up to 90 days.
4. **Governs the agents you enable.** Enabling an agent gives it a `monday.com · <agent>` project,
   or maps it to an existing one. From then on, each finished run of the agent becomes a trace in
   that project.

***

## Prerequisites

* A monday.com account with AI agents, and a monday.com user who can create apps in the monday.com
  Developer Center.
* An Openlayer workspace where you are an **admin**. Connecting, changing settings, enabling and
  disabling agents, and disconnecting are admin-only. Members can view the connection, the agents,
  and their audit history.

> [!NOTE]
>
> Openlayer reads monday.com as the user who authorizes the app, so it sees the
> agents and configurations that user can see. Authorize with a user who can see
> every agent you want to govern.

***

## Setup guide

### Step 1: Create a monday.com app

In Openlayer, go to **Settings → Integrations** and open **monday.com** in the **Agent builders**
section. The **Connect** form shows the **Redirect URL** and **Required scopes** for your app. Keep
it open; you copy both from there.

![The monday.com Connect form: five setup steps, the Redirect URL and Required scopes with Copy buttons, and the Client ID and Client secret fields](https://mintcdn.com/openlayer-44/jmTNuz1lqkfKNL6k/images/integrations/monday_connect.png?fit=max\&auto=format\&n=jmTNuz1lqkfKNL6k\&q=85\&s=831f672be79668e10e77b42c56bcf1da)

Then, in monday.com:

**1. Create the app**

Open the monday.com Developer Center and choose **Create app**.

**2. Add the scopes**

Go to **Build › OAuth & permissions**. On the **Scopes** tab, tick the six
scopes Openlayer lists, then choose **Save Scopes**: `me:read`,
`account:read`, `users:read`, `workspaces:read`, `boards:read`, and
`teams:read`.

**3. Turn on the New OAuth flow**

Turn the **New OAuth flow** toggle on and save. Openlayer uses this flow's
expiring, rotating tokens and does not support monday.com's older OAuth
flow. See monday.com's [guide to the new OAuth
flow](https://developer.monday.com/apps/docs/migrating-to-the-new-oauth-flow).

**4. Register the redirect URL**

On the **Redirect URLs** tab, paste the **Redirect URL** shown in Openlayer
and save.

**5. Copy the credentials**

Under **General settings › App Credentials**, copy the **Client ID** and the
**Client Secret** (**Show**, then **Copy**).

### Step 2: Connect

Back in Openlayer, paste the **Client ID** and **Client secret** into the form and click
**Connect**. A popup opens monday.com's consent page. Sign in as the user Openlayer should read
monday.com as, and authorize the app. If your browser blocks the popup, the notification has an
**Open popup** button.

When monday.com sends you back, the integration shows as connected and the first sync starts.
Agents appear on the **Agents** tab once it finishes.

Openlayer encrypts the client secret and the tokens at rest and never returns them. To use a
different app later, or to authorize this one again, click **Replace credentials** under
**Settings**. The current connection keeps working until the new authorization completes.

### Step 3: Check coverage

Open the **General** tab. **Overview** shows the connection's status, the monday.com account, the
client ID, the last sync, how far the audit history has been read, and the last error.

**Coverage** reports what this connection can read from monday.com. Click **Check access** to
check it again.

| Line | What it means |
| - | - |
| **Agents listed** | How many AI agents the authorizing user can see |
| **Configurations visible** | How many of those agents' configurations monday.com returns |
| **Audit log reachable** | Whether monday.com's audit log answers for this user and plan. Without it, agents have no audit history |
| **Vendor policy reachable** | Whether the account's AI vendor policy can be read |
| **Run telemetry readable** | Whether agent runs can be read, so enabled agents' runs sync into their projects |

![The General tab of a connected monday.com integration: Overview with status Active, account, client ID, last sync, and audit history, and Coverage with agents listed, configurations visible, audit log and vendor policy reachable, and run telemetry available](https://mintcdn.com/openlayer-44/jmTNuz1lqkfKNL6k/images/integrations/monday_general.png?fit=max\&auto=format\&n=jmTNuz1lqkfKNL6k\&q=85\&s=37ba1de7be2ff7e192a06dd40f8bcb5e)

### Step 4: Review the settings

Under **Settings** on the same tab:

* **Periodic sync** reads agents, audit events, and runs from monday.com. Turn it off to pause
  syncing without disconnecting, or click **Sync now** to queue a sync immediately.
* **Sync frequency** ranges from **Every 5 minutes** to **Every day**. The default is **Every
  hour**. monday.com limits how many API calls an app can make per day, so a very frequent sync on
  a busy account can use up the day's allowance. See monday.com's
  [rate limits](https://developer.monday.com/api-reference/docs/rate-limits).
* **Read agent configurations** (on by default) reads each agent's model, tools, and data access.
  Run telemetry also depends on it: with it off, no runs sync.
* **Auto-enable new agents** (off by default) creates a project for each agent discovered from now
  on. It never enables agents that already existed when you turned it on, or agents an admin
  disabled.
* **Store job instructions** (off by default) keeps the text of each job's instructions. A
  fingerprint (a SHA-256 hash and the length) is always kept, so you can tell when instructions
  change without storing them. Turning the setting off deletes the stored text.
* **Store run content** (on by default) keeps run inputs, outputs, tool inputs, the agent's
  reasoning, and item and board names. Turning it off applies to runs synced from then on. See
  [What lands in Openlayer](#what-lands-in-openlayer).
* **Backfill audit history** re-reads monday.com audit events from a date you choose, within the
  last 90 days. Without a date, it re-reads all 90 days. Events already stored are not duplicated.

![The Settings section of the monday.com integration: Periodic sync with Sync now, Sync frequency set to Every hour, Read agent configurations on, Auto-enable new agents off, Store job instructions off, Store run content on, Backfill audit history, and Replace credentials](https://mintcdn.com/openlayer-44/jmTNuz1lqkfKNL6k/images/integrations/monday_settings.png?fit=max\&auto=format\&n=jmTNuz1lqkfKNL6k\&q=85\&s=80dec03d6d1e251f664ad0c06767c8c0)

***

## Agents and projects

The **Agents** tab lists every agent with its status, model, data access, and when a sync last saw
it. Search by name, or filter by **Enabled**, **Not enabled**, or **Removed**. An agent whose
configuration monday.com does not return shows **Configuration not visible**.

![The Agents tab of the monday.com integration, listing Release Notes Writer, inactive and not enabled, and Ticket Triage Agent, active and enabled, with status, model, data access, and last seen](https://mintcdn.com/openlayer-44/jmTNuz1lqkfKNL6k/images/integrations/monday_agents.png?fit=max\&auto=format\&n=jmTNuz1lqkfKNL6k\&q=85\&s=e6b0357fd28d06c8abb67de908d0ab69)

To govern an agent, turn on its switch and choose:

* **Create new project** — Openlayer creates a `monday.com · <agent>` project and pipeline for the
  agent. The project joins the governance frameworks that match it.
* **Map to existing project** — choose a project and pipeline. The pipeline must use Openlayer's
  default storage. Pipelines on a BigQuery or Snowflake backend cannot receive runs.

An enabled agent's menu has **View project**, **Audit history**, and **Disable**:

* **Disable** stops governing the agent. Its project, pipeline, and existing data are kept.
* **Re-enabling** a disabled agent reuses its project and pipeline if both still exist, so it does
  not create a second project.

If **Auto-enable new agents** cannot create a project, for example because of a plan limit, the
agent stays disabled and shows the reason in the table. Enable it by hand once the cause is fixed.

### Audit history

**Audit history** in an agent's menu lists that agent's monday.com audit events, newest first and
grouped by day. Each event shows what happened, a one-line summary, how long ago it happened,
and who did it. Hover the summary, or its info icon, to see the event code, the exact time, the
actor's display name, and every stored field.

![The Audit history modal for Ticket Triage Agent: events grouped by day, each with its action, summary, age, and actor, with the details tooltip of a Connected to a board event showing its event code, time, actor, app feature, app, and board IDs](https://mintcdn.com/openlayer-44/jmTNuz1lqkfKNL6k/images/integrations/monday_audit_history.png?fit=max\&auto=format\&n=jmTNuz1lqkfKNL6k\&q=85\&s=7b0e8b8bdde1f07bb3f8bf476ad2a266)

Openlayer collects these monday.com events:

* Agent created, updated, and deleted
* Agent activated and deactivated
* Agent ownership transferred
* Agent board access granted, removed, and changed
* AI agent app installed, uninstalled, and updated
* AI settings changed

Openlayer does not store the IP address or user agent of an event, or the actor's email address.

> [!NOTE]
>
> monday.com's audit log does not record edits to an agent's configuration, such
> as its instructions or tools. The **Agents** tab always shows the current
> configuration.

***

## What lands in Openlayer

Each finished run of an enabled agent becomes one trace in the agent's pipeline. When you enable
an agent, the next sync reads its runs from the last 30 days. Later syncs read only new runs. A run
that is still in progress is written once it finishes.

![The trace of an assigned monday.com run, Triaged Q3 renewal: Model usage, two steps each with its tool call, and Agent reasoning, next to the run's metrics, input, and output](https://mintcdn.com/openlayer-44/jmTNuz1lqkfKNL6k/images/integrations/monday_trace.png?fit=max\&auto=format\&n=jmTNuz1lqkfKNL6k\&q=85\&s=7b9080ac3a5743e435942227918a2d56)

| Span | What it holds |
| - | - |
| The run | Named after monday.com's title for the run. Its input is what triggered it, for example `Assigned to item "Q3 renewal" on board "Accounts"`. Its output is the run's summary, and it carries the run's duration. A run that failed has an error status |
| **Model usage** | Named after the models the run used. The token counts monday.com reports for the run, and the model used to estimate its cost |
| Steps | Each step the agent took, with its tool calls nested inside: tool name, MCP server, and arguments. A step or tool call that failed has an error status, and a sub-agent's steps sit inside the step that started it |
| **Agent reasoning** | The agent's reasoning text, when monday.com reports it |

A few behaviors are not obvious from the trace:

* **Chat runs have no input.** monday.com does not expose the messages users send an agent in
  chat, so a chat run has the run and its model usage, but no input and no steps.
* **Cost is estimated.** monday.com reports AI credits, not money. Openlayer estimates cost from
  model list prices, and your workspace's price overrides apply. A run that used several models
  gets one combined token count from monday.com, so Openlayer prices it at the costliest of those
  models, as an upper bound. The run's AI credits are kept in `monday_ai_credits`.
* **Runs on the same item share a session.** Every run on one item lands in the same session, so
  you can follow the agent's work on that item. Other runs are each their own session.
* **Users are monday.com users.** The user ID is the monday.com ID of the user who triggered the
  run. Their display name is in `monday_actor_name`.
* **With Store run content off**, a run keeps its timings, token counts, AI credits, and step and
  tool names. Its input becomes a label such as `monday.com assigned run`, and it has no output,
  tool arguments, reasoning, `monday_outputs`, or item and board names.

Each row also carries these columns:

| Column | Value |
| - | - |
| `monday_run_source` | What started the run, such as `ASSIGNED` or `CHAT` |
| `monday_run_status`, `monday_outcome_status` | monday.com's status and outcome for the run |
| `monday_outcome_reason` | monday.com's note on the outcome, kept only with **Store run content** on |
| `monday_ai_credits` | The AI credits monday.com charged for the run |
| `monday_models` | The models the run used |
| `monday_priced_model` | The model the cost estimate uses |
| `monday_cost_basis` | `list_price` (one model), `upper_bound` (several models, priced at the costliest), or `unpriced` |
| `monday_steps_count`, `monday_tool_calls_count` | How many steps and tool calls monday.com counted |
| `monday_item_id`, `monday_board_id` | The item and board the run worked on |
| `monday_actor_name` | The display name of the user who triggered the run |
| `monday_executed_as_user_id`, `monday_executed_as_name` | The user whose permissions the run used, usually the agent's own user |
| `monday_feedback_rating`, `monday_feedback_count` | Users' feedback on the run, `POSITIVE` or `NEGATIVE`, and how many times they gave it |
| `monday_outputs` | What the run created, changed, or sent, as monday.com reports it, kept only with **Store run content** on |
| `monday_prompt_available` | `false` on runs whose prompt monday.com does not return, such as chat runs |
| `monday_content` | `run`, or `metadata_only` when **Store run content** was off |

> [!WARNING]
>
> Agent runs come from monday.com's preview API. If monday.com changes it, run
> telemetry can stop while agents, configurations, and audit history keep
> syncing. **Coverage** shows **Run telemetry readable** as **No** when runs
> cannot be read.

***

## Evaluating the ingested data

Once runs are flowing, evaluate monday.com agents the same way you evaluate application traffic:

* [Create tests](https://docs.openlayer.com/tests/overview.md) on run outputs, latency, token usage, and cost
* Detect [PII](https://docs.openlayer.com/tests/catalog/contains-p-i-i.md) in what agents write
* Use [governance frameworks](https://docs.openlayer.com/governance/overview.md) to evidence AI controls with each agent's
  configuration, audit history, and real runs

***

## Disconnecting

On the **General** tab, click **Disconnect monday.com** and confirm **Remove monday.com**.

Openlayer revokes its monday.com tokens and deletes the stored app credentials, the agent list, and
the audit history it collected. Projects, pipelines, and runs already written are kept. Delete the
app in the monday.com Developer Center afterwards if nothing else uses it.

***

## Troubleshooting

| Symptom | Likely cause | Fix |
| - | - | - |
| Connect fails with **monday.com rejected the app credentials** | The client ID or secret is wrong, or the redirect URL is not registered in the app | Re-enter both values, and paste the **Redirect URL** from the Connect form into the app's **Redirect URLs** tab |
| Connect fails with **monday.com rejected the connection** | The app's **New OAuth flow** is off | Turn on **New OAuth flow** in the app, save, and connect again |
| **The monday.com sign-in expired or was already used** | The consent page was left open too long, or was opened twice | Click **Connect** again |
| **This workspace is connected to a different monday.com account** | You authorized as a user of another monday.com account | Disconnect first, or authorize with a user of the connected account |
| Status is **reconnect required** | The app was uninstalled, its secret was rotated, or the authorizing user lost access | Click **Reconnect** and authorize again. Enter the new secret if it changed |
| **Configurations visible** is lower than **Agents listed**, or an agent shows **Configuration not visible** | **Read agent configurations** is off, or monday.com does not return that agent's configuration to the authorizing user | Turn the setting on, or authorize with a user who can see the agent |
| **Audit log reachable** is **No** | monday.com does not open the audit log to this user or plan | Authorize with a monday.com account admin. Agents and runs still sync without it |
| The last error says **monday.com's daily API limit for this app is used up** | The app reached monday.com's daily API allowance | Syncing resumes after the limit resets. Choose a lower **Sync frequency** |
| The last error says **monday.com rate limited the sync** | Too many calls in a short time | Expected. The next sync continues |
| An enabled agent has no runs | The agent has not run since it was enabled, **Read agent configurations** is off, or **Run telemetry readable** is **No** | Check **Coverage**, and turn on **Read agent configurations** |
| A run appears late | The run was still in progress at the last sync | Expected. Runs are written once they finish |
| A chat run has no input | monday.com does not expose chat messages | Expected |
| Enabling fails with **monday.com cannot write runs to a pipeline on the 'bigquery' backend** | The chosen pipeline uses a BigQuery or Snowflake backend | Choose a pipeline on Openlayer's default storage, or create a new project |
| An agent or the last error says **the user who connected monday.com is no longer a workspace member** | The Openlayer user who connected the integration left the workspace, so new projects and runs cannot be written on their behalf | Click **Replace credentials** and authorize again as a current admin. You become the connecting user, and syncing resumes. Enable by hand any agent that still shows the message |
| A member cannot connect, change settings, or enable agents | These actions are admin-only | Ask a workspace admin |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.