logo-darkPipe0

Query Salesforce (SOQL)

Run a read-only SOQL query against your Salesforce org — including native aggregates (GROUP BY / HAVING / COUNT), e.g. every owner with more than 10 accounts.

ProviderBilling ModeCredentials
Cost per page
Docs
P
Salesforce
Per Search
User
n/a

Output Fields

Dynamic output fields

This search's output columns are determined at run time and depend on the data source, so they aren't known ahead of time. Enable config.field_definitions.enabled to receive the columns alongside your results in the response field_definitions.

Code Example

const options = {
  method: 'POST',
  headers: {'content-type': 'application/json', authorization: 'Bearer <TOKEN>'},
  body: JSON.stringify({
    search: {
      search_id: 'query:salesforce@1',
      connector: {
        strategy: 'first',
        connections: [{type: 'vault', connection: 'salesforce_org-00DKJ0000001abc2AE'}]
      },
      config: {
        soql: 'SELECT OwnerId, Owner.Name, COUNT(Id) cnt FROM Account GROUP BY OwnerId, Owner.Name HAVING COUNT(Id) > 10',
        limit: 100,
        page_number: 1
      }
    }
  })
};

fetch('https://api.pipe0.com/v1/search/run', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
import requests

url = "https://api.pipe0.com/v1/search/run"

payload = { "search": {
        "search_id": "query:salesforce@1",
        "connector": {
            "strategy": "first",
            "connections": [
                {
                    "type": "vault",
                    "connection": "salesforce_org-00DKJ0000001abc2AE"
                }
            ]
        },
        "config": {
            "soql": "SELECT OwnerId, Owner.Name, COUNT(Id) cnt FROM Account GROUP BY OwnerId, Owner.Name HAVING COUNT(Id) > 10",
            "limit": 100,
            "page_number": 1
        }
    } }
headers = {
    "content-type": "application/json",
    "authorization": "Bearer <TOKEN>"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
curl --request POST \
     --url https://api.pipe0.com/v1/search/run \
     --header 'authorization: Bearer <TOKEN>' \
     --header 'content-type: application/json' \
     --data '
{
  "search": {
    "search_id": "query:salesforce@1",
    "connector": {
      "strategy": "first",
      "connections": [
        {
          "type": "vault",
          "connection": "salesforce_org-00DKJ0000001abc2AE"
        }
      ]
    },
    "config": {
      "soql": "SELECT OwnerId, Owner.Name, COUNT(Id) cnt FROM Account GROUP BY OwnerId, Owner.Name HAVING COUNT(Id) > 10",
      "limit": 100,
      "page_number": 1
    }
  }
}
'
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.pipe0.com/v1/search/run"

	payload := strings.NewReader("{\"search\":{\"search_id\":\"query:salesforce@1\",\"connector\":{\"strategy\":\"first\",\"connections\":[{\"type\":\"vault\",\"connection\":\"salesforce_org-00DKJ0000001abc2AE\"}]},\"config\":{\"soql\":\"SELECT OwnerId, Owner.Name, COUNT(Id) cnt FROM Account GROUP BY OwnerId, Owner.Name HAVING COUNT(Id) > 10\",\"limit\":100,\"page_number\":1}}}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("content-type", "application/json")
	req.Header.Add("authorization", "Bearer <TOKEN>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.pipe0.com/v1/search/run', [
  'body' => '{"search":{"search_id":"query:salesforce@1","connector":{"strategy":"first","connections":[{"type":"vault","connection":"salesforce_org-00DKJ0000001abc2AE"}]},"config":{"soql":"SELECT OwnerId, Owner.Name, COUNT(Id) cnt FROM Account GROUP BY OwnerId, Owner.Name HAVING COUNT(Id) > 10","limit":100,"page_number":1}}}',
  'headers' => [
    'authorization' => 'Bearer <TOKEN>',
    'content-type' => 'application/json',
  ],
]);

echo $response->getBody();
POST /v1/search/run HTTP/1.1

Content-Type: application/json

Authorization: Bearer <TOKEN>

Host: api.pipe0.com

Content-Length: 314



{"search":{"search_id":"query:salesforce@1","connector":{"strategy":"first","connections":[{"type":"vault","connection":"salesforce_org-00DKJ0000001abc2AE"}]},"config":{"soql":"SELECT OwnerId, Owner.Name, COUNT(Id) cnt FROM Account GROUP BY OwnerId, Owner.Name HAVING COUNT(Id) > 10","limit":100,"page_number":1}}}