curl --request POST \
--url https://api.example.com/api/public/tools/list_linkedin_outreach_queue \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"view": null,
"userIds": null,
"ids": null,
"linAccountIds": null,
"operationIds": null,
"actionIds": null,
"actionTypes": null,
"flowPlanIds": null,
"requestTypes": null,
"operationStatuses": null,
"searchQuery": null,
"from": null,
"to": null,
"scheduledFrom": null,
"scheduledTo": null,
"completedFrom": null,
"completedTo": null,
"limit": null,
"cursor": null,
"orderByScheduledAt": null,
"orderByCreatedDesc": null,
"includeAwaitingRequirements": null,
"awaitingRequirementsOnly": null
}
'import requests
url = "https://api.example.com/api/public/tools/list_linkedin_outreach_queue"
payload = {
"view": None,
"userIds": None,
"ids": None,
"linAccountIds": None,
"operationIds": None,
"actionIds": None,
"actionTypes": None,
"flowPlanIds": None,
"requestTypes": None,
"operationStatuses": None,
"searchQuery": None,
"from": None,
"to": None,
"scheduledFrom": None,
"scheduledTo": None,
"completedFrom": None,
"completedTo": None,
"limit": None,
"cursor": None,
"orderByScheduledAt": None,
"orderByCreatedDesc": None,
"includeAwaitingRequirements": None,
"awaitingRequirementsOnly": None
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
view: null,
userIds: null,
ids: null,
linAccountIds: null,
operationIds: null,
actionIds: null,
actionTypes: null,
flowPlanIds: null,
requestTypes: null,
operationStatuses: null,
searchQuery: null,
from: null,
to: null,
scheduledFrom: null,
scheduledTo: null,
completedFrom: null,
completedTo: null,
limit: null,
cursor: null,
orderByScheduledAt: null,
orderByCreatedDesc: null,
includeAwaitingRequirements: null,
awaitingRequirementsOnly: null
})
};
fetch('https://api.example.com/api/public/tools/list_linkedin_outreach_queue', 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://api.example.com/api/public/tools/list_linkedin_outreach_queue",
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([
'view' => null,
'userIds' => null,
'ids' => null,
'linAccountIds' => null,
'operationIds' => null,
'actionIds' => null,
'actionTypes' => null,
'flowPlanIds' => null,
'requestTypes' => null,
'operationStatuses' => null,
'searchQuery' => null,
'from' => null,
'to' => null,
'scheduledFrom' => null,
'scheduledTo' => null,
'completedFrom' => null,
'completedTo' => null,
'limit' => null,
'cursor' => null,
'orderByScheduledAt' => null,
'orderByCreatedDesc' => null,
'includeAwaitingRequirements' => null,
'awaitingRequirementsOnly' => null
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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://api.example.com/api/public/tools/list_linkedin_outreach_queue"
payload := strings.NewReader("{\n \"view\": null,\n \"userIds\": null,\n \"ids\": null,\n \"linAccountIds\": null,\n \"operationIds\": null,\n \"actionIds\": null,\n \"actionTypes\": null,\n \"flowPlanIds\": null,\n \"requestTypes\": null,\n \"operationStatuses\": null,\n \"searchQuery\": null,\n \"from\": null,\n \"to\": null,\n \"scheduledFrom\": null,\n \"scheduledTo\": null,\n \"completedFrom\": null,\n \"completedTo\": null,\n \"limit\": null,\n \"cursor\": null,\n \"orderByScheduledAt\": null,\n \"orderByCreatedDesc\": null,\n \"includeAwaitingRequirements\": null,\n \"awaitingRequirementsOnly\": null\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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://api.example.com/api/public/tools/list_linkedin_outreach_queue")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"view\": null,\n \"userIds\": null,\n \"ids\": null,\n \"linAccountIds\": null,\n \"operationIds\": null,\n \"actionIds\": null,\n \"actionTypes\": null,\n \"flowPlanIds\": null,\n \"requestTypes\": null,\n \"operationStatuses\": null,\n \"searchQuery\": null,\n \"from\": null,\n \"to\": null,\n \"scheduledFrom\": null,\n \"scheduledTo\": null,\n \"completedFrom\": null,\n \"completedTo\": null,\n \"limit\": null,\n \"cursor\": null,\n \"orderByScheduledAt\": null,\n \"orderByCreatedDesc\": null,\n \"includeAwaitingRequirements\": null,\n \"awaitingRequirementsOnly\": null\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/public/tools/list_linkedin_outreach_queue")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"view\": null,\n \"userIds\": null,\n \"ids\": null,\n \"linAccountIds\": null,\n \"operationIds\": null,\n \"actionIds\": null,\n \"actionTypes\": null,\n \"flowPlanIds\": null,\n \"requestTypes\": null,\n \"operationStatuses\": null,\n \"searchQuery\": null,\n \"from\": null,\n \"to\": null,\n \"scheduledFrom\": null,\n \"scheduledTo\": null,\n \"completedFrom\": null,\n \"completedTo\": null,\n \"limit\": null,\n \"cursor\": null,\n \"orderByScheduledAt\": null,\n \"orderByCreatedDesc\": null,\n \"includeAwaitingRequirements\": null,\n \"awaitingRequirementsOnly\": null\n}"
response = http.request(request)
puts response.read_body{
"summary": "<string>",
"view": "in_queue",
"queue": {
"items": [
{
"kind": "real_request",
"request": {
"id": "<string>",
"linAccountId": "<string>",
"operationId": "<string>",
"operationStatus": "pending",
"operationCancelReason": "unknown",
"operationCancelDetails": "<string>",
"operationErrorId": "<string>",
"operationErrorCode": "<string>",
"operationErrorMessage": "<string>",
"operationErrorDetails": "<string>",
"operationStartedUtc": "2023-11-07T05:31:56Z",
"operationFinishedUtc": "2023-11-07T05:31:56Z",
"operationFailsStreak": 123,
"linProfileUrl": "<string>",
"linProfileIdentifier": "<string>",
"scheduledAt": "2023-11-07T05:31:56Z",
"completedAt": "2023-11-07T05:31:56Z",
"requestType": "send_connection",
"actionId": "<string>",
"created": "2023-11-07T05:31:56Z",
"updated": "2023-11-07T05:31:56Z",
"text": "<string>",
"invitationId": "<string>",
"enrollmentId": "<string>",
"flowPlanId": "<string>",
"flowPlanName": "<string>",
"audienceId": "<string>",
"audienceName": "<string>",
"teamId": "<string>",
"linProfileFullName": "<string>",
"linProfileImgUrl": "<string>",
"companyName": "<string>",
"companyDomain": "<string>",
"senderName": "<string>",
"isAwaitingRequirement": false,
"awaitingRequirementId": null,
"awaitingRequirementType": null,
"awaitingRequirementStatus": null,
"awaitingRequirementDisplayName": null,
"awaitingRequirementMessage": null,
"awaitingRequirementNextCheckAt": null,
"priority": 0,
"requestGate": null,
"conversationId": null,
"estimateStatus": null,
"estimatedExecutionTimeUtc": null,
"estimateCalculatedAtUtc": null
}
}
],
"cursor": "<string>",
"totalCount": 123
},
"warnings": [
"<string>"
],
"nextSteps": [
"<string>"
]
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}List LinkedIn Outreach Queue
Lists FirstTouch LinkedIn outreach queue rows.
Detailed usage guidance
- Use this when the customer asks for active LinkedIn actions, current LinkedIn actions, LinkedIn actions waiting to run, LinkedIn action status, where a LinkedIn request/action/outreach step stands, why a LinkedIn action has not sent yet, what needs review or approval, what is pending for a sender/source/contact, or which LinkedIn actions completed, failed, or were canceled.
- Use view for common slices: active returns pending provider requests plus pre-provider-request blockers and excludes terminal history;
review_required returns only pre-provider-request actions blocked by requirements;
in_queue returns created provider requests still pending;
done, canceled, and failed return terminal provider requests;
all returns normal outreach rows across pending, blocked, and terminal states for view_profile, send_connection, and send_message;
diagnostic_all returns an expanded debug view across all LinkedIn request types, including non-standard/internal requests;
custom uses the explicit advanced filters. - Advanced filters can narrow by sender users, LinkedIn account ids, flow plans, action/request types, ids, search text, and date ranges.
- After calling, follow response.nextSteps for task approval, activity inspection, scheduler/limit delays, account blockers, and pagination.
- This reads stored FirstTouch data only and performs no external requests.
curl --request POST \
--url https://api.example.com/api/public/tools/list_linkedin_outreach_queue \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"view": null,
"userIds": null,
"ids": null,
"linAccountIds": null,
"operationIds": null,
"actionIds": null,
"actionTypes": null,
"flowPlanIds": null,
"requestTypes": null,
"operationStatuses": null,
"searchQuery": null,
"from": null,
"to": null,
"scheduledFrom": null,
"scheduledTo": null,
"completedFrom": null,
"completedTo": null,
"limit": null,
"cursor": null,
"orderByScheduledAt": null,
"orderByCreatedDesc": null,
"includeAwaitingRequirements": null,
"awaitingRequirementsOnly": null
}
'import requests
url = "https://api.example.com/api/public/tools/list_linkedin_outreach_queue"
payload = {
"view": None,
"userIds": None,
"ids": None,
"linAccountIds": None,
"operationIds": None,
"actionIds": None,
"actionTypes": None,
"flowPlanIds": None,
"requestTypes": None,
"operationStatuses": None,
"searchQuery": None,
"from": None,
"to": None,
"scheduledFrom": None,
"scheduledTo": None,
"completedFrom": None,
"completedTo": None,
"limit": None,
"cursor": None,
"orderByScheduledAt": None,
"orderByCreatedDesc": None,
"includeAwaitingRequirements": None,
"awaitingRequirementsOnly": None
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
view: null,
userIds: null,
ids: null,
linAccountIds: null,
operationIds: null,
actionIds: null,
actionTypes: null,
flowPlanIds: null,
requestTypes: null,
operationStatuses: null,
searchQuery: null,
from: null,
to: null,
scheduledFrom: null,
scheduledTo: null,
completedFrom: null,
completedTo: null,
limit: null,
cursor: null,
orderByScheduledAt: null,
orderByCreatedDesc: null,
includeAwaitingRequirements: null,
awaitingRequirementsOnly: null
})
};
fetch('https://api.example.com/api/public/tools/list_linkedin_outreach_queue', 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://api.example.com/api/public/tools/list_linkedin_outreach_queue",
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([
'view' => null,
'userIds' => null,
'ids' => null,
'linAccountIds' => null,
'operationIds' => null,
'actionIds' => null,
'actionTypes' => null,
'flowPlanIds' => null,
'requestTypes' => null,
'operationStatuses' => null,
'searchQuery' => null,
'from' => null,
'to' => null,
'scheduledFrom' => null,
'scheduledTo' => null,
'completedFrom' => null,
'completedTo' => null,
'limit' => null,
'cursor' => null,
'orderByScheduledAt' => null,
'orderByCreatedDesc' => null,
'includeAwaitingRequirements' => null,
'awaitingRequirementsOnly' => null
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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://api.example.com/api/public/tools/list_linkedin_outreach_queue"
payload := strings.NewReader("{\n \"view\": null,\n \"userIds\": null,\n \"ids\": null,\n \"linAccountIds\": null,\n \"operationIds\": null,\n \"actionIds\": null,\n \"actionTypes\": null,\n \"flowPlanIds\": null,\n \"requestTypes\": null,\n \"operationStatuses\": null,\n \"searchQuery\": null,\n \"from\": null,\n \"to\": null,\n \"scheduledFrom\": null,\n \"scheduledTo\": null,\n \"completedFrom\": null,\n \"completedTo\": null,\n \"limit\": null,\n \"cursor\": null,\n \"orderByScheduledAt\": null,\n \"orderByCreatedDesc\": null,\n \"includeAwaitingRequirements\": null,\n \"awaitingRequirementsOnly\": null\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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://api.example.com/api/public/tools/list_linkedin_outreach_queue")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"view\": null,\n \"userIds\": null,\n \"ids\": null,\n \"linAccountIds\": null,\n \"operationIds\": null,\n \"actionIds\": null,\n \"actionTypes\": null,\n \"flowPlanIds\": null,\n \"requestTypes\": null,\n \"operationStatuses\": null,\n \"searchQuery\": null,\n \"from\": null,\n \"to\": null,\n \"scheduledFrom\": null,\n \"scheduledTo\": null,\n \"completedFrom\": null,\n \"completedTo\": null,\n \"limit\": null,\n \"cursor\": null,\n \"orderByScheduledAt\": null,\n \"orderByCreatedDesc\": null,\n \"includeAwaitingRequirements\": null,\n \"awaitingRequirementsOnly\": null\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/public/tools/list_linkedin_outreach_queue")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"view\": null,\n \"userIds\": null,\n \"ids\": null,\n \"linAccountIds\": null,\n \"operationIds\": null,\n \"actionIds\": null,\n \"actionTypes\": null,\n \"flowPlanIds\": null,\n \"requestTypes\": null,\n \"operationStatuses\": null,\n \"searchQuery\": null,\n \"from\": null,\n \"to\": null,\n \"scheduledFrom\": null,\n \"scheduledTo\": null,\n \"completedFrom\": null,\n \"completedTo\": null,\n \"limit\": null,\n \"cursor\": null,\n \"orderByScheduledAt\": null,\n \"orderByCreatedDesc\": null,\n \"includeAwaitingRequirements\": null,\n \"awaitingRequirementsOnly\": null\n}"
response = http.request(request)
puts response.read_body{
"summary": "<string>",
"view": "in_queue",
"queue": {
"items": [
{
"kind": "real_request",
"request": {
"id": "<string>",
"linAccountId": "<string>",
"operationId": "<string>",
"operationStatus": "pending",
"operationCancelReason": "unknown",
"operationCancelDetails": "<string>",
"operationErrorId": "<string>",
"operationErrorCode": "<string>",
"operationErrorMessage": "<string>",
"operationErrorDetails": "<string>",
"operationStartedUtc": "2023-11-07T05:31:56Z",
"operationFinishedUtc": "2023-11-07T05:31:56Z",
"operationFailsStreak": 123,
"linProfileUrl": "<string>",
"linProfileIdentifier": "<string>",
"scheduledAt": "2023-11-07T05:31:56Z",
"completedAt": "2023-11-07T05:31:56Z",
"requestType": "send_connection",
"actionId": "<string>",
"created": "2023-11-07T05:31:56Z",
"updated": "2023-11-07T05:31:56Z",
"text": "<string>",
"invitationId": "<string>",
"enrollmentId": "<string>",
"flowPlanId": "<string>",
"flowPlanName": "<string>",
"audienceId": "<string>",
"audienceName": "<string>",
"teamId": "<string>",
"linProfileFullName": "<string>",
"linProfileImgUrl": "<string>",
"companyName": "<string>",
"companyDomain": "<string>",
"senderName": "<string>",
"isAwaitingRequirement": false,
"awaitingRequirementId": null,
"awaitingRequirementType": null,
"awaitingRequirementStatus": null,
"awaitingRequirementDisplayName": null,
"awaitingRequirementMessage": null,
"awaitingRequirementNextCheckAt": null,
"priority": 0,
"requestGate": null,
"conversationId": null,
"estimateStatus": null,
"estimatedExecutionTimeUtc": null,
"estimateCalculatedAtUtc": null
}
}
],
"cursor": "<string>",
"totalCount": 123
},
"warnings": [
"<string>"
],
"nextSteps": [
"<string>"
]
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}Authorizations
Body
Queue slice to apply before advanced filters.
- Defaults to active for natural requests like active/current/waiting LinkedIn actions.
- Use all for normal outreach rows across all statuses, diagnostic_all for expanded debug/show-everything inspection, and custom for exact explicit filters.
in_queue, review_required, done, canceled, failed, all, custom, active, diagnostic_all, null FirstTouch team member user ids whose LinkedIn senders should be included. Omit to use only the current caller.
Exact LinkedIn queue request ids. Applies only to real provider request rows, not awaiting-requirement rows.
Exact FirstTouch LinkedIn account ids to include.
Exact operation ids to include. For real request rows this is the provider request operation; for awaiting rows this is the flow action operation.
Exact flow action ids to include.
Flow node/action types to include, such as linkedin_send_connect_v3, linkedin_send_message_v3, linkedin_visit_profile_v3, or linkedin_send_inmail_v3.
email, call, branch, manual, reassignment, ai_research, ai_research_advance, hs_enrichment, linkedin_send_connect_v3, linkedin_send_message_v3, linkedin_visit_profile_v3, linkedin_send_inmail_v3 Flow plan ids to include. Use this to narrow by source/flow context.
LinkedIn provider request types to include. Common outreach types are view_profile, send_connection, and send_message.
send_connection, send_message, view_profile, connection_withdrawal, send_in_mail_message, sync_relations, sales_navigator_import, metadata_sync, plan_sync, sync_unibox_account, sync_unibox_conversation Advanced: real provider request operation statuses to include. Awaiting-requirement rows are synthetic pre-request rows and are controlled separately by includeAwaitingRequirements or awaitingRequirementsOnly.
pending, completed, failed, canceled Search text over LinkedIn profile URL/name/identifier, operation id, action id, and some awaiting-row contact/company fields.
Created-at lower bound in UTC.
Created-at upper bound in UTC, exclusive.
Scheduled/estimated lower bound in UTC.
Scheduled/estimated upper bound in UTC, exclusive.
Completed-at lower bound in UTC for terminal real provider requests.
Completed-at upper bound in UTC for terminal real provider requests, exclusive.
Maximum rows to return. Defaults to 20, max 100.
Pagination cursor returned by a previous list_linkedin_outreach_queue response.
Advanced: order pending real requests by estimated/scheduled execution time. Defaults to true.
Advanced: order real request fallbacks/history by created time descending where applicable. Defaults to true.
Advanced: include synthetic pre-provider-request blocker rows in a mixed result. The all and diagnostic_all views set this automatically.
Advanced: return only synthetic pre-provider-request blocker rows. The review_required view sets this automatically.

