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

# List supplied outreach outcomes

> Read saved, attributed campaign updates and held conflicts for one website.

`list_outreach_outcomes`

Read saved, attributed campaign updates and held conflicts for one website. Dates describe supplied events, not mailbox polling coverage. No message bodies are stored.

> [!NOTE]
>
> Name recorded in the 2026-10-27 deployment. This page describes current source; verify inputs and access in your connected catalog. Provider configuration and workspace access still apply.

| Access | Behavior |
| - | - |
| `watches:read` | Reads saved data |

This operation reads or updates saved campaign records with the contacts capability enabled. It starts no verification, schedule, message or sequence and consumes no checking credits.

## Example request

Connect through [MCP](https://docs.agentlinkops.com/guides/connect-mcp.md), [CLI](https://docs.agentlinkops.com/guides/connect-cli.md), or [HTTP](https://docs.agentlinkops.com/guides/connect-http.md). Replace example identifiers with records from your workspace.

```json MCP theme={null}
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_outreach_outcomes",
    "arguments": {
      "projectId": "project_example",
      "watchId": "watch_example",
      "limit": 50
    }
  }
}
```

```bash CLI theme={null}
agentlinkops call list_outreach_outcomes --args '{"projectId":"project_example","watchId":"watch_example","limit":50}'
```

```bash HTTP theme={null}
curl --fail-with-body https://app.agentlinkops.com/v1/commands/list_outreach_outcomes \
  -H "Authorization: Bearer $AGENTLINKOPS_TOKEN" \
  -H 'Content-Type: application/json' \
  --data '{"projectId":"project_example","watchId":"watch_example","limit":50}'
```

## Returned result

Schema-validated example; IDs and dates are illustrative. MCP returns this data in `structuredContent` and in a text content block; generic HTTP and CLI return the JSON result directly.

```json theme={null}
{
  "items": [
    {
      "id": "outcome_example",
      "projectId": "project_example",
      "watchId": "watch_example",
      "contactId": null,
      "source": {
        "namespace": "manual",
        "accountRef": "workspace",
        "recordRef": "watch_example",
        "eventId": "event-one"
      },
      "outcome": "contacted",
      "occurredAt": "2026-09-13T12:00:00.000Z",
      "receivedAt": "2026-09-13T12:00:00.000Z",
      "method": "none",
      "validity": null,
      "restrictionScope": null,
      "disposition": "accepted"
    }
  ],
  "nextAfter": null
}
```

## Input fields

Omit optional fields when you do not want to supply them. Null is accepted only where listed. Unknown input properties are rejected.

| Field | Type | Presence | Meaning and constraints |
| - | - | - | - |
| `projectId` | string | Required | project ID from create/list. minLength: `1`; maxLength: `200` |
| `watchId` | string | Optional | watch ID from create/list. minLength: `1`; maxLength: `200` |
| `contactId` | string | Optional | contact ID from create/list. minLength: `1`; maxLength: `200` |
| `after` | string | Optional | minLength: `1`; maxLength: `200` |
| `limit` | integer | Required | Page/report row cap; see bounds. minimum: `1`; maximum: `100`; default: `50` |

### Validation and omitted values

Read the website journal, optionally filtered by watchId or contactId. Its supplied event date and received date do not claim mailbox polling coverage. Held events remain visible with their disposition.

Rows are ordered by event record ID. Omit after for the first page, then pass nextAfter unchanged with the same website and filters. The cursor is a continuation ID, not an event-time checkpoint.

This read starts no checks or outreach. Private contact facts erased with a deleted contact no longer appear; retained watch-owned history may have a null contact binding.

### Defaults when omitted

| Field | Default |
| - | - |
| `limit` | `50` |

## Output fields

Fields inside optional or nullable parents apply only when that parent exists. [Common schema conventions](https://docs.agentlinkops.com/reference/schemas.md) explain evidence states, empty lists and extensions.

* **`items`** (array, required): Records in this bounded page.
* **`nextAfter`** (string / null, required).

> **All fields and nested objects**
>
> Types, allowed values, limits and nested fields:
>
> | Field | Type | Presence | Meaning and constraints |
> | - | - | - | - |
> | `items` | array | Required | Records in this bounded page. |
> | `items[].id` | string | Required | Resource identifier returned by the operation. minLength: `1`; maxLength: `200` |
> | `items[].projectId` | string | Required | Identifier returned by the related operation. minLength: `1`; maxLength: `200` |
> | `items[].watchId` | string / null | Required | Identifier returned by the related operation. |
> | `items[].contactId` | string / null | Required | Identifier returned by the related operation. |
> | `items[].source` | object | Required | additional fields rejected |
> | `items[].source.namespace` | string | Required | minLength: `1`; maxLength: `200` |
> | `items[].source.accountRef` | string | Required | minLength: `1`; maxLength: `200` |
> | `items[].source.recordRef` | string | Required | minLength: `1`; maxLength: `200` |
> | `items[].source.eventId` | string | Required | Identifier returned by the related operation. minLength: `1`; maxLength: `200` |
> | `items[].outcome` | string | Required | values: `"contacted"`, `"replied"`, `"publication_promised"`, `"declined"`, `"publication_claimed"`, `"bounced"`, `"send_error"`, `"wrong_person"`, `"do_not_contact"`, `"email_health"` |
> | `items[].occurredAt` | string | Required | |
> | `items[].receivedAt` | string | Required | |
> | `items[].method` | string | Required | values: `"email"`, `"contact_url"`, `"none"` |
> | `items[].validity` | string / null | Required | |
> | `items[].restrictionScope` | string / null | Required | |
> | `items[].disposition` | string | Required | values: `"accepted"`, `"older"`, `"contact_changed"`, `"closed"`, `"verified_win"` |
> | `nextAfter` | string / null | Required | |

[Download input schema](https://docs.agentlinkops.com/schemas/list_outreach_outcomes.input.json) · [Download output schema](https://docs.agentlinkops.com/schemas/list_outreach_outcomes.output.json)

## Errors and retries

Follow the error recovery before retrying this read. Preserve the selected workspace, project, filters and feed. Recovering a read does not require an idempotency key or another verification job. Operation-specific errors include `UNAUTHORIZED`, `INSUFFICIENT_SCOPE`, `CAMPAIGN_RECORDS_NOT_READY`, `OUTCOME_ACCESS_DENIED`, `CAMPAIGN_SCOPE_CLOSED`, `INVALID_OUTCOME_INPUT`, `WATCH_NOT_FOUND`.

See [error recovery](https://docs.agentlinkops.com/reference/errors.md) for status, scope, cooldown, cursor and retry handling. Unknown observations are result data and do not establish loss.

## HTTP resource routes

This operation has no separate resource alias. Use its generic command route in a matching environment.

## Continue

[get\_prospect](https://docs.agentlinkops.com/reference/commands/get_prospect.md) · [list\_contacts](https://docs.agentlinkops.com/reference/commands/list_contacts.md)

Follow the [related workflow](https://docs.agentlinkops.com/guides/monitor-changes.md). See [capability status](https://docs.agentlinkops.com/capability-status.md) for availability or the [command index](https://docs.agentlinkops.com/reference/index.md) for another operation.


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