save_contact
Create or replace a private backlink contact by its stable externalRef at an expected revision (0 creates). Identical replay is a no-op; no outreach is sent.
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.
Example request
Connect through MCP, CLI, or HTTP. Replace example identifiers with records from your workspace.Returned result
Schema-validated example; IDs and dates are illustrative. MCP returns this data instructuredContent and in a text content block; generic HTTP and CLI return the JSON result directly.
Input fields
Omit optional fields when you do not want to supply them. Null is accepted only where listed. Unknown input properties are rejected.Validation and omitted values
The stable identity is workspace, project and externalRef. Use revision 0 to create; use the current opaque revision to replace all four supplied fields. Identical content replays without a contact write, subject to the current contact terms. Email and contact-page fields may be null. Saving a contact changes no sender record, sequence, watch schedule or verification job. If access changes after a save commits, the response may fail despite a saved record. Retain externalRef and intended content; read list_contacts when authorized before reconciling. A failed response does not prove no write. When a contact terms policy is active, list_contacts returns its current version and acceptance state. Only a current workspace owner or administrator may supply acceptTermsVersion after explicitly agreeing for everyone who saves contacts on that website. Never infer agreement from a read or import. The acknowledgment may commit before a later contact save fails; reread list_contacts.terms before reconciling. Reads, export, deletion and clearing a link’s contact stay available without acceptance.Output fields
Fields inside optional or nullable parents apply only when that parent exists. Common schema conventions explain evidence states, empty lists and extensions.contact(object, required).replayed(boolean, required): True when the response reuses an earlier request with the same idempotency value.
All fields and nested objects
All fields and nested objects
Types, allowed values, limits and nested fields: