telephony

Log Attempt

Record an owner-contact attempt the operator made OFF-SYSTEM.

SAME DEPENDENCY OBJECT as /notify-owner, /call-owner and /email-owner — not a re-derived require_permission(...) call — so the four owner-contact actions on this event cannot drift apart in what they allow.

NOTHING IS SENT. This writes one notification_log row with provider_sid NULL and entered_manually=true, and it is deliberately NOT gated on consent or on telephony configuration; log_attempt's docstring carries the argument. It is a WRITE, so it gets no READ_ONLY_WRITE_ALLOWLIST entry — read-only operators must not reach it.

post/events/{event_id}/log-attempt

Request

  • Base URL
    https://api.verdun.ai (the document declares no server; this is the origin it was published from)
  • URL
    https://api.verdun.ai/events/{event_id}/log-attempt
  • Auth
    HTTP bearer

Path parameters

event_idstring required

Request body

contact_idstring required

Site contact that was contacted; must belong to the event's site

channel'call' | 'text' required

How the operator reached out. E-mail is not offered: the console's own Email tab is the only path that produces one.

result'answered' | 'voicemail' | 'no_answer' | 'busy' | 'wrong_number' | 'delivered' | 'not_delivered' | 'failed' required

What happened. Call results: answered, voicemail, no_answer, busy, wrong_number. Text results: delivered, not_delivered, failed.

atstring date-time nullable

When the attempt happened. Defaults to now; clamped server-side to [event.created_at, now] — an attempt cannot predate the event it is about, and cannot be in the future.

Example request

{
  "contact_id": "2dd7154e-21dc-408f-ac25-b2918d591e29",
  "channel": "call",
  "result": "voicemail",
  "at": "2026-09-11T22:16:00+00:00"
}

Response

Successful Response

object required

Changes

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