> ## 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.

# Set a link contact

> Associate one saved contact with a prospect or monitored link at the association revision (0 creates).

`set_link_contact`

Associate one saved contact with a prospect or monitored link at the association revision (0 creates). Null clears; no check or outreach starts.

> [!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:write` | Writes or admits work; can change or remove existing state |

## 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": "set_link_contact",
    "arguments": {
      "projectId": "project_example",
      "watchId": "watch_example",
      "contactId": "contact_example",
      "revision": 0
    }
  }
}
```

```bash CLI theme={null}
agentlinkops call set_link_contact --args '{"projectId":"project_example","watchId":"watch_example","contactId":"contact_example","revision":0}'
```

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

## 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}
{
  "watchId": "watch_example",
  "contactId": "contact_example",
  "revision": "e61fed8c-85c3-4f30-a4d8-d84934f27698"
}
```

## 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 | Required | watch ID from create/list. minLength: `1`; maxLength: `200` |
| `contactId` | string / null | Required | contact ID from create/list. |
| `revision` | number / string | Required | Current association revision from list\_contacts; 0 creates the first association. |

### Validation and omitted values

One project contact can serve multiple links in that project. Supply the association revision from list\_contacts; 0 creates its first association. Null clears the selection.

Contact and watch must belong to the same accessible project. This changes the selected contact without starting a check or outreach.

## 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.

| Field | Type | Presence | Meaning and constraints |
| - | - | - | - |
| `watchId` | string | Required | Identifier returned by the related operation. minLength: `1`; maxLength: `200` |
| `contactId` | string / null | Required | Identifier returned by the related operation. |
| `revision` | number / string | Required | Current association revision from list\_contacts; 0 creates the first association. |

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

## Errors and retries

This write is annotated idempotent without a caller-supplied idempotency key. Reconcile saved state after an uncertain response, then use the same inputs for the same intended operation. Do not add an unsupported key.

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

[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.