Search Records Task
curl --request POST \
--url 'https://actionkit.useparagon.com/projects/{project_id}/tools/#SALESFORCE_SEARCH_RECORDS_TASK' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"tool": "SALESFORCE_SEARCH_RECORDS_TASK",
"parameters": {
"sortBy": "<string>",
"includeAllFields": true,
"paginationParameters": {
"pageCursor": "<string>"
}
}
}
'import requests
url = "https://actionkit.useparagon.com/projects/{project_id}/tools/#SALESFORCE_SEARCH_RECORDS_TASK"
payload = {
"tool": "SALESFORCE_SEARCH_RECORDS_TASK",
"parameters": {
"sortBy": "<string>",
"includeAllFields": True,
"paginationParameters": { "pageCursor": "<string>" }
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
tool: 'SALESFORCE_SEARCH_RECORDS_TASK',
parameters: {
sortBy: '<string>',
includeAllFields: true,
paginationParameters: {pageCursor: '<string>'}
}
})
};
fetch('https://actionkit.useparagon.com/projects/{project_id}/tools/#SALESFORCE_SEARCH_RECORDS_TASK', 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://actionkit.useparagon.com/projects/{project_id}/tools/#SALESFORCE_SEARCH_RECORDS_TASK",
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([
'tool' => 'SALESFORCE_SEARCH_RECORDS_TASK',
'parameters' => [
'sortBy' => '<string>',
'includeAllFields' => true,
'paginationParameters' => [
'pageCursor' => '<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;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://actionkit.useparagon.com/projects/{project_id}/tools/#SALESFORCE_SEARCH_RECORDS_TASK"
payload := strings.NewReader("{\n \"tool\": \"SALESFORCE_SEARCH_RECORDS_TASK\",\n \"parameters\": {\n \"sortBy\": \"<string>\",\n \"includeAllFields\": true,\n \"paginationParameters\": {\n \"pageCursor\": \"<string>\"\n }\n }\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))
}HttpResponse<String> response = Unirest.post("https://actionkit.useparagon.com/projects/{project_id}/tools/#SALESFORCE_SEARCH_RECORDS_TASK")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"tool\": \"SALESFORCE_SEARCH_RECORDS_TASK\",\n \"parameters\": {\n \"sortBy\": \"<string>\",\n \"includeAllFields\": true,\n \"paginationParameters\": {\n \"pageCursor\": \"<string>\"\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://actionkit.useparagon.com/projects/{project_id}/tools/#SALESFORCE_SEARCH_RECORDS_TASK")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"tool\": \"SALESFORCE_SEARCH_RECORDS_TASK\",\n \"parameters\": {\n \"sortBy\": \"<string>\",\n \"includeAllFields\": true,\n \"paginationParameters\": {\n \"pageCursor\": \"<string>\"\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"records": {
"done": true,
"totalSize": 1,
"records": [
{
"attributes": {
"type": "Task",
"url": "/services/data/v68.0/sobjects/Task/00T5e00fr2WhHuAAAA"
},
"Id": "00T5e00fr2WhHuAAAA",
"WhoId": null,
"WhatId": null,
"Subject": "Docs Example Task",
"ActivityDate": null,
"Status": "In Progress",
"Priority": "Normal",
"IsHighPriority": false,
"OwnerId": "0055e00ppLgwe7JAAA",
"Description": null,
"IsDeleted": false,
"AccountId": null,
"IsClosed": false,
"CreatedDate": "2026-10-16T06:17:25.000+0000",
"CreatedById": "0055e00ppLgwe7JAAA",
"LastModifiedDate": "2026-10-16T06:17:26.000+0000",
"LastModifiedById": "0055e00ppLgwe7JAAA",
"SystemModstamp": "2026-10-16T06:17:26.000+0000",
"IsArchived": false,
"CallDurationInSeconds": null,
"CallType": null,
"CallDisposition": null,
"CallObject": null,
"ReminderDateTime": null,
"IsReminderSet": false,
"RecurrenceActivityId": null,
"IsRecurrence": false,
"RecurrenceStartDateOnly": null,
"RecurrenceEndDateOnly": null,
"RecurrenceTimeZoneSidKey": null,
"RecurrenceType": null,
"RecurrenceInterval": null,
"RecurrenceDayOfWeekMask": null,
"RecurrenceDayOfMonth": null,
"RecurrenceInstance": null,
"RecurrenceMonthOfYear": null,
"RecurrenceRegeneratedType": null,
"TaskSubtype": "Task",
"CompletedDateTime": null
}
]
}
}Tools
Search Records Task
POST
/
projects
/
{project_id}
/
tools
/
#SALESFORCE_SEARCH_RECORDS_TASK
Search Records Task
curl --request POST \
--url 'https://actionkit.useparagon.com/projects/{project_id}/tools/#SALESFORCE_SEARCH_RECORDS_TASK' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"tool": "SALESFORCE_SEARCH_RECORDS_TASK",
"parameters": {
"sortBy": "<string>",
"includeAllFields": true,
"paginationParameters": {
"pageCursor": "<string>"
}
}
}
'import requests
url = "https://actionkit.useparagon.com/projects/{project_id}/tools/#SALESFORCE_SEARCH_RECORDS_TASK"
payload = {
"tool": "SALESFORCE_SEARCH_RECORDS_TASK",
"parameters": {
"sortBy": "<string>",
"includeAllFields": True,
"paginationParameters": { "pageCursor": "<string>" }
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
tool: 'SALESFORCE_SEARCH_RECORDS_TASK',
parameters: {
sortBy: '<string>',
includeAllFields: true,
paginationParameters: {pageCursor: '<string>'}
}
})
};
fetch('https://actionkit.useparagon.com/projects/{project_id}/tools/#SALESFORCE_SEARCH_RECORDS_TASK', 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://actionkit.useparagon.com/projects/{project_id}/tools/#SALESFORCE_SEARCH_RECORDS_TASK",
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([
'tool' => 'SALESFORCE_SEARCH_RECORDS_TASK',
'parameters' => [
'sortBy' => '<string>',
'includeAllFields' => true,
'paginationParameters' => [
'pageCursor' => '<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;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://actionkit.useparagon.com/projects/{project_id}/tools/#SALESFORCE_SEARCH_RECORDS_TASK"
payload := strings.NewReader("{\n \"tool\": \"SALESFORCE_SEARCH_RECORDS_TASK\",\n \"parameters\": {\n \"sortBy\": \"<string>\",\n \"includeAllFields\": true,\n \"paginationParameters\": {\n \"pageCursor\": \"<string>\"\n }\n }\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))
}HttpResponse<String> response = Unirest.post("https://actionkit.useparagon.com/projects/{project_id}/tools/#SALESFORCE_SEARCH_RECORDS_TASK")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"tool\": \"SALESFORCE_SEARCH_RECORDS_TASK\",\n \"parameters\": {\n \"sortBy\": \"<string>\",\n \"includeAllFields\": true,\n \"paginationParameters\": {\n \"pageCursor\": \"<string>\"\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://actionkit.useparagon.com/projects/{project_id}/tools/#SALESFORCE_SEARCH_RECORDS_TASK")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"tool\": \"SALESFORCE_SEARCH_RECORDS_TASK\",\n \"parameters\": {\n \"sortBy\": \"<string>\",\n \"includeAllFields\": true,\n \"paginationParameters\": {\n \"pageCursor\": \"<string>\"\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"records": {
"done": true,
"totalSize": 1,
"records": [
{
"attributes": {
"type": "Task",
"url": "/services/data/v68.0/sobjects/Task/00T5e00fr2WhHuAAAA"
},
"Id": "00T5e00fr2WhHuAAAA",
"WhoId": null,
"WhatId": null,
"Subject": "Docs Example Task",
"ActivityDate": null,
"Status": "In Progress",
"Priority": "Normal",
"IsHighPriority": false,
"OwnerId": "0055e00ppLgwe7JAAA",
"Description": null,
"IsDeleted": false,
"AccountId": null,
"IsClosed": false,
"CreatedDate": "2026-10-16T06:17:25.000+0000",
"CreatedById": "0055e00ppLgwe7JAAA",
"LastModifiedDate": "2026-10-16T06:17:26.000+0000",
"LastModifiedById": "0055e00ppLgwe7JAAA",
"SystemModstamp": "2026-10-16T06:17:26.000+0000",
"IsArchived": false,
"CallDurationInSeconds": null,
"CallType": null,
"CallDisposition": null,
"CallObject": null,
"ReminderDateTime": null,
"IsReminderSet": false,
"RecurrenceActivityId": null,
"IsRecurrence": false,
"RecurrenceStartDateOnly": null,
"RecurrenceEndDateOnly": null,
"RecurrenceTimeZoneSidKey": null,
"RecurrenceType": null,
"RecurrenceInterval": null,
"RecurrenceDayOfWeekMask": null,
"RecurrenceDayOfMonth": null,
"RecurrenceInstance": null,
"RecurrenceMonthOfYear": null,
"RecurrenceRegeneratedType": null,
"TaskSubtype": "Task",
"CompletedDateTime": null
}
]
}
}Provider API: Salesforce REST API (Latest version available to the connected org).
Authorizations
Your Paragon User Token (JWT), which you can generate using your project's signing keys.
Path Parameters
Your Paragon Project ID. You can copy your Project ID from your dashboard URL or by clicking Copy Project ID under the Environment switcher.
Body
application/json
Response
200 - application/json
A page of Salesforce query results. records is the Salesforce query response, with the matching records in records.records. When more results are available, nextPageCursor is the nextRecordsUrl from Salesforce; pass it as paginationParameters.pageCursor to load the next page. On the last page, nextRecordsUrl and nextPageCursor are omitted. If includeAllFields is true, nextPageCursor is an offset-based cursor such as OFFSET__200 and is always returned, including on the last page.