Skip to main content
Lofty’s communication APIs let you send emails and SMS messages directly to leads, retrieve their full interaction history, manage notes, and log calls or messages that took place outside the CRM. This guide covers each communication channel and explains how to keep your lead timeline accurate and up to date.

Unified activity timeline

The activity timeline endpoint returns all interactions for a lead—calls, texts, and emails—sorted chronologically. This gives you a single view of every touchpoint with a lead.
Example response

Send an email or SMS

Use the email and SMS endpoints to send messages to a lead directly from your integration.

Call history

Retrieve the call history for a lead using the call communication endpoint. Use the V2 endpoint when you need richer detail such as recordings, transcripts, and AI-generated summaries.

Resolve a webhook event to a full record

Call, email, and text webhook payloads include a timelineId that uniquely identifies the timeline entry for the event. Pass it as the communicationId path parameter of the matching V2 by-ID endpoint to fetch the full record without scanning the lead’s history.
Always round-trip with timelineId — the legacy callId / emailId / textId fields are retained for backward compatibility, but their underlying record changes between MANUAL and LOGGED events and is not safe to pass to the V2 by-ID endpoints.

Notes

Notes let you attach free-form text to a lead’s record. You can list, create, update, and delete notes using the /v1.0/notes endpoints. List notes for a lead
Create a note
Update a note
Delete a note

Log external communications

If a call, email, or text happened outside of Lofty—for example, from a personal phone or a third-party email client—you can log it manually to keep the lead’s activity timeline accurate. Send a POST request to /v1.0/leads/{leadId}/activity with the details of the interaction.
The direction field indicates who initiated the interaction:
  • "outbound" — the agent reached out to the lead
  • "inbound" — the lead reached out to the agent
Activity logging is processed asynchronously. After creating a manual activity entry, allow a short delay before querying the timeline—the entry may not appear immediately in subsequent GET requests.