Revenue

Log outcome

Log outcome records They replied from the history sheet. The button sends source user and sourceEventId manual:replied plus the current time. Sending the same id again returns the stored row.

post/v1/revenue-actions/{actionId}/outcomes

Request

  • Base URL: / (relative, and the document was published on a file host, not at the API’s origin)
  • URL: /v1/revenue-actions/{actionId}/outcomes
  • Auth: HTTP bearer

Path parameters

actionIdstring uuid required

Action id.

Request body

kind'sent' | 'delivered' | 'bounced' | 'replied' | 'meeting_booked' | 'won' | 'lost' | 'dismissed' | 'bad_recommendation' required

Outcome kind.

metadataobject

Bounded metadata.

occurredAtstring date-time nullable

When the outcome occurred. Log outcome leaves this empty and the server records the current time.

source'gmail' | 'calendar' | 'crm' | 'user' | 'outbound' required

Observing source. Log outcome sends user.

sourceEventIdstring required

Source event id. Log outcome sends manual, the kind, and the current time.

Example request

{
  "kind": "replied",
  "occurredAt": "2026-07-12T14:00:00Z",
  "source": "user",
  "sourceEventId": "manual:replied:1783864800000"
}

Response

Recorded outcome.

idstring uuid required

Stable UUID primary key.

kind'sent' | 'delivered' | 'bounced' | 'replied' | 'meeting_booked' | 'won' | 'lost' | 'dismissed' | 'bad_recommendation' | 'deal_advanced' | 'onboarding_progressed' | 'renewed' | 'escalated' | 'churned' | 'corrected' required

Outcome kind.

occurredAtstring date-time required

When the outcome occurred.

source'gmail' | 'calendar' | 'crm' | 'user' | 'outbound' | 'slack' | 'meeting' | 'task' required

Observing source.

sourceEventIdstring required

Source event id used for deduplication. Log outcome sends manual, the kind, and the current time.

Example response

{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "kind": "replied",
  "occurredAt": "2026-07-12T14:00:00Z",
  "source": "user",
  "sourceEventId": "manual:replied:1783864800000"
}

Changes

No recorded changes to this operation across all 50 revisions of this API.