curl --request POST \
--url https://app.leadconduit.com/events \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"after_id": "5fd4371e940df5a34a3888b2",
"before_id": "5fd4371e940df5a34a3888b2",
"start": "2023-11-07T05:31:56Z",
"end": "2023-11-07T05:31:56Z",
"rules": [
{
"lhv": "lead.state",
"op": "is equal to",
"rhv": "TX"
}
],
"include": [
"<string>"
],
"exclude": [
"<string>"
],
"limit": 500,
"sort": "<string>"
}
'import requests
url = "https://app.leadconduit.com/events"
payload = {
"after_id": "5fd4371e940df5a34a3888b2",
"before_id": "5fd4371e940df5a34a3888b2",
"start": "2023-11-07T05:31:56Z",
"end": "2023-11-07T05:31:56Z",
"rules": [
{
"lhv": "lead.state",
"op": "is equal to",
"rhv": "TX"
}
],
"include": ["<string>"],
"exclude": ["<string>"],
"limit": 500,
"sort": "<string>"
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({
after_id: '5fd4371e940df5a34a3888b2',
before_id: '5fd4371e940df5a34a3888b2',
start: '2023-11-07T05:31:56Z',
end: '2023-11-07T05:31:56Z',
rules: [{lhv: 'lead.state', op: 'is equal to', rhv: 'TX'}],
include: ['<string>'],
exclude: ['<string>'],
limit: 500,
sort: '<string>'
})
};
fetch('https://app.leadconduit.com/events', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.leadconduit.com/events",
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([
'after_id' => '5fd4371e940df5a34a3888b2',
'before_id' => '5fd4371e940df5a34a3888b2',
'start' => '2023-11-07T05:31:56Z',
'end' => '2023-11-07T05:31:56Z',
'rules' => [
[
'lhv' => 'lead.state',
'op' => 'is equal to',
'rhv' => 'TX'
]
],
'include' => [
'<string>'
],
'exclude' => [
'<string>'
],
'limit' => 500,
'sort' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.leadconduit.com/events"
payload := strings.NewReader("{\n \"after_id\": \"5fd4371e940df5a34a3888b2\",\n \"before_id\": \"5fd4371e940df5a34a3888b2\",\n \"start\": \"2023-11-07T05:31:56Z\",\n \"end\": \"2023-11-07T05:31:56Z\",\n \"rules\": [\n {\n \"lhv\": \"lead.state\",\n \"op\": \"is equal to\",\n \"rhv\": \"TX\"\n }\n ],\n \"include\": [\n \"<string>\"\n ],\n \"exclude\": [\n \"<string>\"\n ],\n \"limit\": 500,\n \"sort\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
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))
}HttpResponse<String> response = Unirest.post("https://app.leadconduit.com/events")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"after_id\": \"5fd4371e940df5a34a3888b2\",\n \"before_id\": \"5fd4371e940df5a34a3888b2\",\n \"start\": \"2023-11-07T05:31:56Z\",\n \"end\": \"2023-11-07T05:31:56Z\",\n \"rules\": [\n {\n \"lhv\": \"lead.state\",\n \"op\": \"is equal to\",\n \"rhv\": \"TX\"\n }\n ],\n \"include\": [\n \"<string>\"\n ],\n \"exclude\": [\n \"<string>\"\n ],\n \"limit\": 500,\n \"sort\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.leadconduit.com/events")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"after_id\": \"5fd4371e940df5a34a3888b2\",\n \"before_id\": \"5fd4371e940df5a34a3888b2\",\n \"start\": \"2023-11-07T05:31:56Z\",\n \"end\": \"2023-11-07T05:31:56Z\",\n \"rules\": [\n {\n \"lhv\": \"lead.state\",\n \"op\": \"is equal to\",\n \"rhv\": \"TX\"\n }\n ],\n \"include\": [\n \"<string>\"\n ],\n \"exclude\": [\n \"<string>\"\n ],\n \"limit\": 500,\n \"sort\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body[
{
"id": "5fd4371e940df5a34a3888b2",
"outcome": "success",
"reason": "<string>",
"type": "source",
"vars": {},
"host": "<string>",
"start_timestamp": 123,
"end_timestamp": 123,
"firehose": {
"enabled": true,
"credential_id": "5fd4371e940df5a34a3888b2",
"bucket": "<string>",
"prefix": "<string>",
"services": {
"aws": {
"enabled": true,
"credential_id": "5fd4371e940df5a34a3888b2",
"bucket": "<string>",
"prefix": "<string>"
},
"azure": {
"enabled": true,
"credential_id": "5fd4371e940df5a34a3888b2",
"bucket": "<string>",
"connection_string": "<string>",
"prefix": "<string>"
}
}
},
"ms": 123,
"wait_ms": 123,
"overhead_ms": 123,
"lag_ms": 123,
"total_ms": 123,
"handler_version": "<string>",
"version": "<string>",
"cap_reached": true,
"flow_ping_limits": {
"id": "5fd4371e940df5a34a3888b2",
"name": "<string>",
"maximum": 123,
"duration": 123,
"duration_units": "<string>",
"time_zone": "America/New_York",
"created_at": "2023-11-07T05:31:56Z"
},
"source_ping_limits": {
"id": "5fd4371e940df5a34a3888b2",
"name": "<string>",
"maximum": 123,
"duration": 123,
"duration_units": "<string>",
"time_zone": "America/New_York",
"created_at": "2023-11-07T05:31:56Z"
},
"ping_limit_reached": true,
"expires_at": "2023-11-07T05:31:56Z",
"module_id": "leadconduit-salesforce.outbound.create_contact",
"package_version": "<string>",
"acceptance_criteria": {
"rule_set": {
"op": "and",
"rules": [
{
"lhv": "lead.state",
"op": "is equal to",
"rhv": "TX",
"id": "1aacd0",
"rule_set": "<unknown>"
}
],
"id": "0d144a"
},
"outcome": "failure",
"reason": "Lead must live in TX"
},
"step_count": 4,
"appended": {},
"request": {
"method": "POST",
"uri": "https://app.leadconduit.com/flows/5fd4371e940df5a34a3888b2/sources/6369a0e534c9d4ebe142e0ef/submit",
"version": "1.1",
"headers": {
"Content-Type": "application/json",
"Accept": "application/json"
},
"body": "{\"email\":\"johndoe@email.com\",\"phone_1\":\"5127891111\"}",
"timestamp": 123
},
"response": {
"version": "1.1",
"headers": {
"Content-Type": "application/json",
"Accept": "application/json"
},
"body": "{\"outcome\":\"success\",\"lead\":{\"id\":\"63cc6f0e55254d7d1c4c3037\"}}",
"timestamp": 123,
"status": 201,
"status_text": "Created"
}
}
]{
"error": "not authorized"
}{
"status": 400,
"type": "Bad Request",
"title": "LCError",
"detail": "Invalid request parameters",
"errors": [
{
"pointer": "#/entity_id",
"message": "Invalid entity ID format"
}
]
}{
"status": 400,
"type": "Bad Request",
"title": "LCError",
"detail": "Invalid request parameters",
"errors": [
{
"pointer": "#/entity_id",
"message": "Invalid entity ID format"
}
]
}List all events for exports
curl --request POST \
--url https://app.leadconduit.com/events \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"after_id": "5fd4371e940df5a34a3888b2",
"before_id": "5fd4371e940df5a34a3888b2",
"start": "2023-11-07T05:31:56Z",
"end": "2023-11-07T05:31:56Z",
"rules": [
{
"lhv": "lead.state",
"op": "is equal to",
"rhv": "TX"
}
],
"include": [
"<string>"
],
"exclude": [
"<string>"
],
"limit": 500,
"sort": "<string>"
}
'import requests
url = "https://app.leadconduit.com/events"
payload = {
"after_id": "5fd4371e940df5a34a3888b2",
"before_id": "5fd4371e940df5a34a3888b2",
"start": "2023-11-07T05:31:56Z",
"end": "2023-11-07T05:31:56Z",
"rules": [
{
"lhv": "lead.state",
"op": "is equal to",
"rhv": "TX"
}
],
"include": ["<string>"],
"exclude": ["<string>"],
"limit": 500,
"sort": "<string>"
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({
after_id: '5fd4371e940df5a34a3888b2',
before_id: '5fd4371e940df5a34a3888b2',
start: '2023-11-07T05:31:56Z',
end: '2023-11-07T05:31:56Z',
rules: [{lhv: 'lead.state', op: 'is equal to', rhv: 'TX'}],
include: ['<string>'],
exclude: ['<string>'],
limit: 500,
sort: '<string>'
})
};
fetch('https://app.leadconduit.com/events', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.leadconduit.com/events",
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([
'after_id' => '5fd4371e940df5a34a3888b2',
'before_id' => '5fd4371e940df5a34a3888b2',
'start' => '2023-11-07T05:31:56Z',
'end' => '2023-11-07T05:31:56Z',
'rules' => [
[
'lhv' => 'lead.state',
'op' => 'is equal to',
'rhv' => 'TX'
]
],
'include' => [
'<string>'
],
'exclude' => [
'<string>'
],
'limit' => 500,
'sort' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.leadconduit.com/events"
payload := strings.NewReader("{\n \"after_id\": \"5fd4371e940df5a34a3888b2\",\n \"before_id\": \"5fd4371e940df5a34a3888b2\",\n \"start\": \"2023-11-07T05:31:56Z\",\n \"end\": \"2023-11-07T05:31:56Z\",\n \"rules\": [\n {\n \"lhv\": \"lead.state\",\n \"op\": \"is equal to\",\n \"rhv\": \"TX\"\n }\n ],\n \"include\": [\n \"<string>\"\n ],\n \"exclude\": [\n \"<string>\"\n ],\n \"limit\": 500,\n \"sort\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
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))
}HttpResponse<String> response = Unirest.post("https://app.leadconduit.com/events")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"after_id\": \"5fd4371e940df5a34a3888b2\",\n \"before_id\": \"5fd4371e940df5a34a3888b2\",\n \"start\": \"2023-11-07T05:31:56Z\",\n \"end\": \"2023-11-07T05:31:56Z\",\n \"rules\": [\n {\n \"lhv\": \"lead.state\",\n \"op\": \"is equal to\",\n \"rhv\": \"TX\"\n }\n ],\n \"include\": [\n \"<string>\"\n ],\n \"exclude\": [\n \"<string>\"\n ],\n \"limit\": 500,\n \"sort\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.leadconduit.com/events")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"after_id\": \"5fd4371e940df5a34a3888b2\",\n \"before_id\": \"5fd4371e940df5a34a3888b2\",\n \"start\": \"2023-11-07T05:31:56Z\",\n \"end\": \"2023-11-07T05:31:56Z\",\n \"rules\": [\n {\n \"lhv\": \"lead.state\",\n \"op\": \"is equal to\",\n \"rhv\": \"TX\"\n }\n ],\n \"include\": [\n \"<string>\"\n ],\n \"exclude\": [\n \"<string>\"\n ],\n \"limit\": 500,\n \"sort\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body[
{
"id": "5fd4371e940df5a34a3888b2",
"outcome": "success",
"reason": "<string>",
"type": "source",
"vars": {},
"host": "<string>",
"start_timestamp": 123,
"end_timestamp": 123,
"firehose": {
"enabled": true,
"credential_id": "5fd4371e940df5a34a3888b2",
"bucket": "<string>",
"prefix": "<string>",
"services": {
"aws": {
"enabled": true,
"credential_id": "5fd4371e940df5a34a3888b2",
"bucket": "<string>",
"prefix": "<string>"
},
"azure": {
"enabled": true,
"credential_id": "5fd4371e940df5a34a3888b2",
"bucket": "<string>",
"connection_string": "<string>",
"prefix": "<string>"
}
}
},
"ms": 123,
"wait_ms": 123,
"overhead_ms": 123,
"lag_ms": 123,
"total_ms": 123,
"handler_version": "<string>",
"version": "<string>",
"cap_reached": true,
"flow_ping_limits": {
"id": "5fd4371e940df5a34a3888b2",
"name": "<string>",
"maximum": 123,
"duration": 123,
"duration_units": "<string>",
"time_zone": "America/New_York",
"created_at": "2023-11-07T05:31:56Z"
},
"source_ping_limits": {
"id": "5fd4371e940df5a34a3888b2",
"name": "<string>",
"maximum": 123,
"duration": 123,
"duration_units": "<string>",
"time_zone": "America/New_York",
"created_at": "2023-11-07T05:31:56Z"
},
"ping_limit_reached": true,
"expires_at": "2023-11-07T05:31:56Z",
"module_id": "leadconduit-salesforce.outbound.create_contact",
"package_version": "<string>",
"acceptance_criteria": {
"rule_set": {
"op": "and",
"rules": [
{
"lhv": "lead.state",
"op": "is equal to",
"rhv": "TX",
"id": "1aacd0",
"rule_set": "<unknown>"
}
],
"id": "0d144a"
},
"outcome": "failure",
"reason": "Lead must live in TX"
},
"step_count": 4,
"appended": {},
"request": {
"method": "POST",
"uri": "https://app.leadconduit.com/flows/5fd4371e940df5a34a3888b2/sources/6369a0e534c9d4ebe142e0ef/submit",
"version": "1.1",
"headers": {
"Content-Type": "application/json",
"Accept": "application/json"
},
"body": "{\"email\":\"johndoe@email.com\",\"phone_1\":\"5127891111\"}",
"timestamp": 123
},
"response": {
"version": "1.1",
"headers": {
"Content-Type": "application/json",
"Accept": "application/json"
},
"body": "{\"outcome\":\"success\",\"lead\":{\"id\":\"63cc6f0e55254d7d1c4c3037\"}}",
"timestamp": 123,
"status": 201,
"status_text": "Created"
}
}
]{
"error": "not authorized"
}{
"status": 400,
"type": "Bad Request",
"title": "LCError",
"detail": "Invalid request parameters",
"errors": [
{
"pointer": "#/entity_id",
"message": "Invalid entity ID format"
}
]
}{
"status": 400,
"type": "Bad Request",
"title": "LCError",
"detail": "Invalid request parameters",
"errors": [
{
"pointer": "#/entity_id",
"message": "Invalid entity ID format"
}
]
}Authorizations
LeadConduit uses HTTP Basic Authentication
with the username API and your API key as the password.
For example: API:1f1b96c9150d8050e858c043d543bb4eadae0e6f'
Body
Query parameters
Query parameters for retrieving events
Return only events that were created after the one with this ID (exclusive)
^[0-9a-fA-F]{24}$"5fd4371e940df5a34a3888b2"
Return only events that were created before the one with this ID (exclusive)
^[0-9a-fA-F]{24}$"5fd4371e940df5a34a3888b2"
Return only events that were created at or after this time
Return only events that were created at or before this time
Rules to select matching events
- Binary Rule
- Unary Rule
Show child attributes
Show child attributes
An array of fields to include. Cannot be used with exclude.
An array of fields to exclude. Cannot be used with include.
The maximum number of events to return (maximum limit is 1000, default 100)
1 <= x <= 1000The results are sorted by date. Use asc to sort by oldest first or desc to sort by newest first. Defaults to desc.
Response
OK
- Source Event
- Recipient Event
- Filter Event
- Feedback Received Event
- Feedback Sent Event
- Retry Event
The source event is created after all steps have been processed. It represents the outcome of lead processing from the perspective of the lead source. A source event records the below properties in addition to the event properties shown above.
The unique identifier for an a lead event
^[0-9a-fA-F]{24}$"5fd4371e940df5a34a3888b2"
The outcome of the event
success, failure, error The reason for a failure or error outcome
Recorded after a source submits a lead to a flow
source All data available at the time LeadConduit started processing this event
The number of milliseconds elapsed since epoch at the start of the step processing
The number of milliseconds elapsed since epoch at the end of the step processing
Firehose configuration for exporting event data to cloud storage. Supports a legacy flat format (AWS S3 only) and a service-based format that allows multiple cloud storage providers.
Show child attributes
Show child attributes
The number of milliseconds that elapsed while processing the lead
The number of milliseconds that LeadConduit spent waiting for all recipients to respond
The number of milliseconds of overhead that LeadConduit added while processing the step
The number of milliseconds that elapsed since the lead was submitted
The version of the lead handler
The schema version of the event
The ping limit configuration is defined in a flow on a source, or directly on the flow itself. The configuration controls the behavior of the ping limit by setting the maximum and the duration. The counter for a ping limit is kept as a standalone record which shares ping limit's ID.
Show child attributes
Show child attributes
The ping limit configuration is defined in a flow on a source, or directly on the flow itself. The configuration controls the behavior of the ping limit by setting the maximum and the duration. The counter for a ping limit is kept as a standalone record which shares ping limit's ID.
Show child attributes
Show child attributes
The time this event will be automatically deleted from LeadConduit (events are retained for 90 days)
The integration module ID configured for the source
"leadconduit-salesforce.outbound.create_contact"
The semantic version of the integration package
The acceptance criteria configured on the source when the lead was processed
Show child attributes
Show child attributes
The number of steps processed for this lead (>= 0 and <= total number of steps)
4
All data appended while handing the lead
The inbound HTTP request
Show child attributes
Show child attributes
The inbound HTTP response
Show child attributes
Show child attributes