curl --request POST \
--url https://api.leadping.ai/events/conversations/{conversationId}/notes \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"text": "<string>"
}
'import requests
url = "https://api.leadping.ai/events/conversations/{conversationId}/notes"
payload = { "text": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)using RestSharp;
var options = new RestClientOptions("https://api.leadping.ai/events/conversations/{conversationId}/notes");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"text\": \"<string>\"\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
HttpResponse<String> response = Unirest.post("https://api.leadping.ai/events/conversations/{conversationId}/notes")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"text\": \"<string>\"\n}")
.asString();const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({text: '<string>'})
};
fetch('https://api.leadping.ai/events/conversations/{conversationId}/notes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.leadping.ai/events/conversations/{conversationId}/notes"
payload := strings.NewReader("{\n \"text\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.leadping.ai/events/conversations/{conversationId}/notes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'text' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"id": "<string>",
"eventType": "<string>",
"eventCategory": "<string>",
"timelineType": "Message",
"timelineCategory": "<string>",
"description": "<string>",
"conversationId": "<string>",
"leadId": "<string>",
"relatedEntityType": "<string>",
"relatedEntityId": "<string>",
"summary": "<string>",
"media": [
{
"url": "<string>",
"contentType": "<string>",
"size": 123,
"sha256": "<string>",
"fileName": "<string>"
}
],
"direction": "<string>",
"status": "Pending",
"statusReason": "<string>",
"trafficType": "RealLead",
"fromPhoneNumberId": "<string>",
"outboundPhoneNumberId": "<string>",
"fromPhoneNumber": "<string>",
"toPhoneNumber": "<string>",
"selectionReason": "StickyConversation",
"wasManuallyOverridden": true,
"campaignId": "<string>",
"sourceId": "<string>",
"complianceAction": "<string>",
"billingStatus": "<string>",
"billableAmount": 123,
"errorCode": "<string>",
"retryCount": 123,
"queuedAt": "2023-11-07T05:31:56Z",
"sendingStartedAt": "2023-11-07T05:31:56Z",
"sentAt": "2023-11-07T05:31:56Z",
"deliveredAt": "2023-11-07T05:31:56Z",
"receivedAt": "2023-11-07T05:31:56Z",
"failedAt": "2023-11-07T05:31:56Z",
"undeliverableAt": "2023-11-07T05:31:56Z",
"blockedAt": "2023-11-07T05:31:56Z",
"nextRetryAt": "2023-11-07T05:31:56Z",
"scheduledFor": "2023-11-07T05:31:56Z",
"scheduledReason": "<string>",
"canceledAt": "2023-11-07T05:31:56Z",
"cancelReason": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"createdBy": "<string>",
"actorUserId": "<string>",
"actorDisplayName": "<string>",
"actorEmail": "jsmith@example.com"
}{
"type": "about:blank",
"title": "Bad Request",
"status": 400,
"detail": "The request could not be completed."
}{
"type": "about:blank",
"title": "Unauthorized",
"status": 401,
"detail": "The request could not be completed."
}{
"type": "about:blank",
"title": "Forbidden",
"status": 403,
"detail": "The request could not be completed."
}{
"type": "about:blank",
"title": "Too Many Requests",
"status": 429,
"detail": "The request could not be completed."
}Add a note to a conversation
Creates a note event on a conversation so users can document lead context, handoffs, and follow-up details.
curl --request POST \
--url https://api.leadping.ai/events/conversations/{conversationId}/notes \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"text": "<string>"
}
'import requests
url = "https://api.leadping.ai/events/conversations/{conversationId}/notes"
payload = { "text": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)using RestSharp;
var options = new RestClientOptions("https://api.leadping.ai/events/conversations/{conversationId}/notes");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"text\": \"<string>\"\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
HttpResponse<String> response = Unirest.post("https://api.leadping.ai/events/conversations/{conversationId}/notes")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"text\": \"<string>\"\n}")
.asString();const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({text: '<string>'})
};
fetch('https://api.leadping.ai/events/conversations/{conversationId}/notes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.leadping.ai/events/conversations/{conversationId}/notes"
payload := strings.NewReader("{\n \"text\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.leadping.ai/events/conversations/{conversationId}/notes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'text' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"id": "<string>",
"eventType": "<string>",
"eventCategory": "<string>",
"timelineType": "Message",
"timelineCategory": "<string>",
"description": "<string>",
"conversationId": "<string>",
"leadId": "<string>",
"relatedEntityType": "<string>",
"relatedEntityId": "<string>",
"summary": "<string>",
"media": [
{
"url": "<string>",
"contentType": "<string>",
"size": 123,
"sha256": "<string>",
"fileName": "<string>"
}
],
"direction": "<string>",
"status": "Pending",
"statusReason": "<string>",
"trafficType": "RealLead",
"fromPhoneNumberId": "<string>",
"outboundPhoneNumberId": "<string>",
"fromPhoneNumber": "<string>",
"toPhoneNumber": "<string>",
"selectionReason": "StickyConversation",
"wasManuallyOverridden": true,
"campaignId": "<string>",
"sourceId": "<string>",
"complianceAction": "<string>",
"billingStatus": "<string>",
"billableAmount": 123,
"errorCode": "<string>",
"retryCount": 123,
"queuedAt": "2023-11-07T05:31:56Z",
"sendingStartedAt": "2023-11-07T05:31:56Z",
"sentAt": "2023-11-07T05:31:56Z",
"deliveredAt": "2023-11-07T05:31:56Z",
"receivedAt": "2023-11-07T05:31:56Z",
"failedAt": "2023-11-07T05:31:56Z",
"undeliverableAt": "2023-11-07T05:31:56Z",
"blockedAt": "2023-11-07T05:31:56Z",
"nextRetryAt": "2023-11-07T05:31:56Z",
"scheduledFor": "2023-11-07T05:31:56Z",
"scheduledReason": "<string>",
"canceledAt": "2023-11-07T05:31:56Z",
"cancelReason": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"createdBy": "<string>",
"actorUserId": "<string>",
"actorDisplayName": "<string>",
"actorEmail": "jsmith@example.com"
}{
"type": "about:blank",
"title": "Bad Request",
"status": 400,
"detail": "The request could not be completed."
}{
"type": "about:blank",
"title": "Unauthorized",
"status": 401,
"detail": "The request could not be completed."
}{
"type": "about:blank",
"title": "Forbidden",
"status": 403,
"detail": "The request could not be completed."
}{
"type": "about:blank",
"title": "Too Many Requests",
"status": 429,
"detail": "The request could not be completed."
}Authorizations
Authorization header using the Bearer scheme. Accepted values are Leadping user JWT access tokens and WorkOS organization API keys beginning with sk_.
Path Parameters
The conversation identifier.
Body
The create note request payload for the operation.
Defines the input used for create note.
Plain-text note content to add to the conversation timeline.
Response
Returns the event table row.
Summarizes event timeline data in paginated and searchable results.
Unique Leadping identifier for this event timeline table row.
Event type used to classify this timeline, SMS, call, or automation event.
High-level category used to group this Leadping event.
Timeline type used to render this event in Leadping activity feeds.
Message, Sms, Mms, Call, Voicemail, Note, LeadStatusChange, LeadCreated, LeadUpdated, Notification, Payment, Warmup Timeline category used to group events for display and filtering.
Human-readable description that explains this event timeline table row to API users.
Conversation ID that links this event timeline table row to the Leadping inbox thread.
Lead ID associated with this timeline event.
Related entity type connected to this event or notification.
Related entity ID connected to this event or notification.
Short human-readable summary of this event timeline table row for lists, timelines, and notifications.
Media attached to an MMS timeline event.
Show child attributes
Show child attributes
Communication direction for this event timeline table row, such as inbound or outbound.
Provides the customer-facing outcome shown for an item in a lead or conversation timeline.
Pending, InProgress, Completed, Cancelled, Scheduled, Queued, Sending, Sent, Received, Delivered, Undeliverable, Opted out, Blocked, Initiated, Ringing, Active, Ended, Missed, Voicemail, Failed, Canceled Human-readable reason explaining the current status of this event timeline table row.
Classifies messaging traffic by conversational, informational, marketing, or other compliance-relevant purpose.
RealLead, Warmup, Test, SystemInternal, FailedAttempt Sender phone number ID used for this outbound SMS or call.
Phone number ID selected for outbound delivery.
Sender phone number used for this communication.
Recipient phone number used for this communication.
Explains why Leadping selected, rejected, or substituted an outgoing caller or messaging number.
StickyConversation, LeadAssigned, CampaignOrSource, Preferred, LocalArea, HealthyPool, FallbackDefault, ManualOverride Indicates whether a user manually overrode Leadping's automatic number selection for this event timeline table row.
Messaging campaign identifier associated with this event timeline table row.
Lead source ID used for event attribution.
Compliance action applied to this message, lead, or sender.
Billing state for this communication, charge, or transaction.
Monetary amount billed for this Leadping communication or transaction.
Machine-readable error code returned while processing this event timeline table row.
Number of retry attempts already made for this event timeline table row.
UTC timestamp when Leadping queued this event timeline table row for processing.
UTC timestamp when Leadping began sending this message.
UTC timestamp when Leadping sent this message to the provider.
UTC timestamp when the provider confirmed delivery.
UTC timestamp when Leadping received this inbound event or message.
UTC timestamp when processing failed for this event timeline table row.
UTC timestamp when the provider marked the message undeliverable.
UTC timestamp when Leadping blocked this communication.
UTC timestamp when Leadping will retry this event timeline table row.
UTC timestamp when the related delivery or workflow action is scheduled to run.
Reason Leadping scheduled this delivery for a later time.
UTC timestamp when this delivery or workflow was canceled.
Reason this delivery, run, or request was canceled.
UTC timestamp when this event timeline table row was created.
Display name or identifier for the person or system that created this event timeline table row.
User ID for the person or system that created this event timeline table row.
Display name for the person or system that created this event timeline table row.
Email address for the person who created this event timeline table row.

