v1

latestOpenAPI 3.0.12026-07-22120163333.7 KB
Lead Manual Log

Add a manual log entry

Creates a manual log entry (logCall, logEmail or logText) for the target lead.

Notes:

  • Persistence is asynchronous. The response returns the new entry's ID once the write is enqueued; the entry becomes readable after a short delay.
  • Caller must have access to the lead (owner, shared agent, or assigned lender), and the lead must not be trashed. Otherwise 404 LEAD_NOT_EXIST.
  • leadId, logType and content are required for all channels.
  • content is silently truncated to 5000 characters.
  • outboundOrInbound must be exactly 'outbound' or 'inbound' when supplied; omitted values default to 'outbound'.
  • For logCall: leadPhoneNumber is required (max 20 characters). callingOutcome is optional (max 20 characters); values outside the known set are silently normalized to 'Talked' during persistence.
  • For logEmail: emailSubject / toEmail / fromEmail are optional and accepted as-is.
post/v1.0/logType

Headers

Authorizationstring required

Bearer [access_token]

Content-Typestring required

application/json

Request body

leadIdinteger required

ID of the lead to attach this log to. Must be accessible to the caller.

logType'logCall' | 'logEmail' | 'logText' required

Channel of the manual log entry.

leadPhoneNumberstring

Phone number that was called. Required when logType = logCall. Max 20 characters.

callingOutcome'Talked' | 'VoiceMessage' | 'NoAnswer' | 'BadNumber' | 'DNCNumber' | 'DNCContact'

Outcome of the call. Only meaningful when logType = logCall. Max 20 characters.

contentstring required

Free-text body of the log entry: call notes, email body, or SMS content. Silently truncated to 5000 characters.

outboundOrInbound'outbound' | 'inbound'

Direction of the communication from the agent's point of view. 'outbound' = agent -> lead; 'inbound' = lead -> agent. Defaults to 'outbound' when omitted.

isPinboolean

Whether to pin this entry to the top of the lead's timeline.

emailSubjectstring

Email subject. Only meaningful when logType = logEmail; ignored otherwise.

toEmailstring

Recipient email address. Only meaningful when logType = logEmail; ignored otherwise.

fromEmailstring

Sender email address. Only meaningful when logType = logEmail; ignored otherwise.

Example request

{
  "leadId": 563172647619608,
  "logType": "logCall",
  "leadPhoneNumber": "5865865860",
  "callingOutcome": "VoiceMessage",
  "content": "Discussed Austin inventory, will send pre-approval doc tomorrow.",
  "outboundOrInbound": "outbound",
  "emailSubject": "Follow-up on Austin listings",
  "toEmail": "sarah.johnson@example.com",
  "fromEmail": "agent@lofty.com"
}

Response

Entry accepted for persistence. The response contains the newly assigned ID.

Example response

{
  "logType": {
    "id": 563172647619608,
    "leadId": 100001,
    "leadPhoneNumber": "5865865860",
    "callingOutcome": "VoiceMessage",
    "content": "Discussed Austin inventory, will send pre-approval doc tomorrow.",
    "createTime": "2026-04-22 10:15:30",
    "outboundOrInbound": "outbound",
    "agentId": 100234,
    "emailSubject": "Follow-up on Austin listings",
    "toEmail": "sarah.johnson@example.com",
    "fromEmail": "agent@lofty.com"
  }
}