record_outreach_outcome
Record an attributed outcome supplied by a human, agent or importer. No email is sent. Stable source events replay without duplication; bounces flag the original contact method, never abandon other opportunities. Supplied publication is not a verified win.
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.
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, 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.projectId(string, required): project ID from create/list. minLength:1; maxLength:200watchId(string, optional): watch ID from create/list. minLength:1; maxLength:200contactId(string, optional): contact ID from create/list. minLength:1; maxLength:200idempotencyKey(string, required): Caller-generated key reused only for retries of the same operation and arguments in this workspace. minLength:1; maxLength:200source(object, required): additional fields rejectedoutcome(string, required): values:"contacted","replied","publication_promised","declined","publication_claimed","bounced","send_error","wrong_person","do_not_contact","email_health"occurredAt(string, required): format:"date-time"; pattern:"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"contactRevision(string, optional): format:"uuid"; pattern:"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"associationRevision(number / string, optional).method(string, required): default:"none"; values:"email","contact_url","none"validity(string, optional): values:"valid","role","invalid","catch-all","unknown"restrictionScope(string, optional): values:"method","contact","publisher"
All fields and nested objects
All fields and nested objects
Types, allowed values, limits and nested fields:
Validation and omitted values
Record an event supplied by a human, agent or importer, with its actual occurredAt and opaque source namespace, account, record and event identifiers. receivedAt is when AgentLinkOps received it. Message bodies, reply text and contact addresses are not accepted in this event. Use the same idempotencyKey and source event after an uncertain response. The same source event with unchanged content replays without another row even under a different delivery identifier. Changed content under either identity conflicts. At least one watchId or contactId is required. A contact fact requires its current contactRevision; a watch/contact fact also binds associationRevision. Email or contact-page facts bind the saved method. Changed contact-method bindings hold method facts without applying them to a replacement. Contact-wide and publisher-wide restrictions remain recorded at their actual scope. Inspect disposition and progressChanged. Older events, closed records and verified wins do not take a new supplied progress value. A publication claim remains unverified. Drafts, opens, clicks and queued sequences are not supported outcomes. Bounce, send-error, wrong-person and supplied email-health facts prompt contact attention without abandoning linked prospects. Email health retains valid, role, invalid, catch-all or unknown with its source and date; it does not verify a mailbox. Restrictions retain method, contact or publisher scope. Sender suppression enforcement remains external. This write sends no messages and starts no verification, monitoring or sequence. Contact deletion erases private method facts; watch-owned progress history and publisher restrictions retain source-event replay protection. Workspace erasure removes the owned journal.Defaults when omitted
Output fields
Fields inside optional or nullable parents apply only when that parent exists. Common schema conventions explain evidence states, empty lists and extensions.event(object, required).replayed(boolean, required): True when the response reuses an earlier request with the same idempotency value.progressChanged(boolean, required).
All fields and nested objects
All fields and nested objects
Types, allowed values, limits and nested fields:
Errors and retries
When retrying with idempotencyKey, reuse the original value and the same arguments; preserve originally omitted optional fields. Generic HTTP puts idempotencyKey in the JSON body, while resource routes use the header where listed below. A changed payload under a reused key can conflict. Operation-specific errors includeUNAUTHORIZED, INSUFFICIENT_SCOPE, CAMPAIGN_RECORDS_NOT_READY, OUTCOME_ACCESS_DENIED, CAMPAIGN_SCOPE_CLOSED, INVALID_OUTCOME_INPUT, OUTCOME_DATE_IN_FUTURE, WATCH_NOT_FOUND, CONTACT_NOT_FOUND, CONTACT_METHOD_NOT_SAVED, OUTCOME_IDEMPOTENCY_CONFLICT, OUTCOME_REVISION_CONFLICT, CAMPAIGN_OUTCOME_CAPACITY.
See error recovery for status, scope, cooldown, cursor and retry handling. Unknown observations are result data and do not establish loss.