1
0
mirror of synced 2025-12-19 10:00:34 -05:00
Files
airbyte/docs/ai-agents/connectors/salesforce/REFERENCE.md
devin-ai-integration[bot] b2afd6e91e docs: update terminology - Platform and AI agents (#70910)
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: ian.alton@airbyte.io <ian.alton@airbyte.io>
Co-authored-by: octavia-bot[bot] <108746235+octavia-bot[bot]@users.noreply.github.com>
2025-12-13 22:26:24 +00:00

45 KiB

Salesforce

Supported Entities and Actions

Entity Actions
Accounts List, Get, Search
Contacts List, Get, Search
Leads List, Get, Search
Opportunities List, Get, Search
Tasks List, Get, Search
Events List, Get, Search
Campaigns List, Get, Search
Cases List, Get, Search
Notes List, Get, Search
Content Versions List, Get, Download
Attachments List, Get, Download
Query List

Accounts

Accounts List

Returns a list of accounts via SOQL query. Default returns up to 200 records. For pagination, check the response: if done is false, use nextRecordsUrl to fetch the next page.

Python SDK

salesforce.accounts.list(
    q="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
    "entity": "accounts",
    "action": "list",
    "params": {
        "q": "<str>"
    }
}'

Params

Parameter Name Type Required Description
q string Yes SOQL query for accounts. Default returns up to 200 records.
To change the limit, provide your own query with a LIMIT clause.
Example: "SELECT FIELDS(STANDARD) FROM Account ORDER BY LastModifiedDate DESC LIMIT 50"
Response Schema

Records

Field Name Type Description
totalSize integer
done boolean
nextRecordsUrl string
records array<object>
records[].Id string
records[].Name string
records[].attributes object

Accounts Get

Get a single account by ID. Returns all accessible fields by default. Use the fields parameter to retrieve only specific fields for better performance.

Python SDK

salesforce.accounts.get(
    id="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
    "entity": "accounts",
    "action": "get",
    "params": {
        "id": "<str>"
    }
}'

Params

Parameter Name Type Required Description
id string Yes Salesforce Account ID (18-character ID starting with '001')
fields string No Comma-separated list of fields to retrieve. If omitted, returns all accessible fields.
Example: "Id,Name,Industry,AnnualRevenue,Website"
Response Schema

Records

Field Name Type Description
Id string
Name string
attributes object

Search for accounts using SOSL (Salesforce Object Search Language). SOSL is optimized for text-based searches across multiple fields and objects. Use SOQL (list action) for structured queries with specific field conditions.

Python SDK

salesforce.accounts.search(
    q="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
    "entity": "accounts",
    "action": "search",
    "params": {
        "q": "<str>"
    }
}'

Params

Parameter Name Type Required Description
q string Yes SOSL search query. Format: FIND {searchTerm} IN scope RETURNING Object(fields) [LIMIT n]. Examples: FIND {Acme} IN ALL FIELDS RETURNING Account(Id,Name), FIND {tech*} IN NAME FIELDS RETURNING Account(Id,Name,Industry) LIMIT 50, FIND {"exact phrase"} RETURNING Account(Id,Name,Website)
Response Schema

Records

Field Name Type Description
searchRecords array<object>

Contacts

Contacts List

Returns a list of contacts via SOQL query. Default returns up to 200 records. For pagination, check the response: if done is false, use nextRecordsUrl to fetch the next page.

Python SDK

salesforce.contacts.list(
    q="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
    "entity": "contacts",
    "action": "list",
    "params": {
        "q": "<str>"
    }
}'

Params

Parameter Name Type Required Description
q string Yes SOQL query for contacts. Default returns up to 200 records.
To change the limit, provide your own query with a LIMIT clause.
Example: "SELECT FIELDS(STANDARD) FROM Contact WHERE AccountId = '001xx...' LIMIT 50"
Response Schema

Records

Field Name Type Description
totalSize integer
done boolean
nextRecordsUrl string
records array<object>
records[].Id string
records[].Name string
records[].attributes object

Contacts Get

Get a single contact by ID. Returns all accessible fields by default. Use the fields parameter to retrieve only specific fields for better performance.

Python SDK

salesforce.contacts.get(
    id="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
    "entity": "contacts",
    "action": "get",
    "params": {
        "id": "<str>"
    }
}'

Params

Parameter Name Type Required Description
id string Yes Salesforce Contact ID (18-character ID starting with '003')
fields string No Comma-separated list of fields to retrieve. If omitted, returns all accessible fields.
Example: "Id,FirstName,LastName,Email,Phone,AccountId"
Response Schema

Records

Field Name Type Description
Id string
Name string
attributes object

Search for contacts using SOSL (Salesforce Object Search Language). SOSL is optimized for text-based searches across multiple fields.

Python SDK

salesforce.contacts.search(
    q="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
    "entity": "contacts",
    "action": "search",
    "params": {
        "q": "<str>"
    }
}'

Params

Parameter Name Type Required Description
q string Yes SOSL search query. Format: FIND {searchTerm} RETURNING Contact(fields) [LIMIT n]. Examples: FIND {John} IN NAME FIELDS RETURNING Contact(Id,FirstName,LastName,Email), FIND {*@example.com} IN EMAIL FIELDS RETURNING Contact(Id,Name,Email) LIMIT 25
Response Schema

Records

Field Name Type Description
searchRecords array<object>

Leads

Leads List

Returns a list of leads via SOQL query. Default returns up to 200 records. For pagination, check the response: if done is false, use nextRecordsUrl to fetch the next page.

Python SDK

salesforce.leads.list(
    q="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
    "entity": "leads",
    "action": "list",
    "params": {
        "q": "<str>"
    }
}'

Params

Parameter Name Type Required Description
q string Yes SOQL query for leads. Default returns up to 200 records.
To change the limit, provide your own query with a LIMIT clause.
Example: "SELECT FIELDS(STANDARD) FROM Lead WHERE Status = 'Open' LIMIT 100"
Response Schema

Records

Field Name Type Description
totalSize integer
done boolean
nextRecordsUrl string
records array<object>
records[].Id string
records[].Name string
records[].attributes object

Leads Get

Get a single lead by ID. Returns all accessible fields by default. Use the fields parameter to retrieve only specific fields for better performance.

Python SDK

salesforce.leads.get(
    id="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
    "entity": "leads",
    "action": "get",
    "params": {
        "id": "<str>"
    }
}'

Params

Parameter Name Type Required Description
id string Yes Salesforce Lead ID (18-character ID starting with '00Q')
fields string No Comma-separated list of fields to retrieve. If omitted, returns all accessible fields.
Example: "Id,FirstName,LastName,Email,Company,Status,LeadSource"
Response Schema

Records

Field Name Type Description
Id string
Name string
attributes object

Search for leads using SOSL (Salesforce Object Search Language). SOSL is optimized for text-based searches across multiple fields.

Python SDK

salesforce.leads.search(
    q="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
    "entity": "leads",
    "action": "search",
    "params": {
        "q": "<str>"
    }
}'

Params

Parameter Name Type Required Description
q string Yes SOSL search query. Format: FIND {searchTerm} RETURNING Lead(fields) [LIMIT n]. Examples: FIND {Smith} IN NAME FIELDS RETURNING Lead(Id,FirstName,LastName,Company,Status), FIND {marketing} IN ALL FIELDS RETURNING Lead(Id,Name,LeadSource) LIMIT 50
Response Schema

Records

Field Name Type Description
searchRecords array<object>

Opportunities

Opportunities List

Returns a list of opportunities via SOQL query. Default returns up to 200 records. For pagination, check the response: if done is false, use nextRecordsUrl to fetch the next page.

Python SDK

salesforce.opportunities.list(
    q="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
    "entity": "opportunities",
    "action": "list",
    "params": {
        "q": "<str>"
    }
}'

Params

Parameter Name Type Required Description
q string Yes SOQL query for opportunities. Default returns up to 200 records.
To change the limit, provide your own query with a LIMIT clause.
Example: "SELECT FIELDS(STANDARD) FROM Opportunity WHERE StageName = 'Closed Won' LIMIT 50"
Response Schema

Records

Field Name Type Description
totalSize integer
done boolean
nextRecordsUrl string
records array<object>
records[].Id string
records[].Name string
records[].attributes object

Opportunities Get

Get a single opportunity by ID. Returns all accessible fields by default. Use the fields parameter to retrieve only specific fields for better performance.

Python SDK

salesforce.opportunities.get(
    id="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
    "entity": "opportunities",
    "action": "get",
    "params": {
        "id": "<str>"
    }
}'

Params

Parameter Name Type Required Description
id string Yes Salesforce Opportunity ID (18-character ID starting with '006')
fields string No Comma-separated list of fields to retrieve. If omitted, returns all accessible fields.
Example: "Id,Name,Amount,StageName,CloseDate,AccountId"
Response Schema

Records

Field Name Type Description
Id string
Name string
attributes object

Search for opportunities using SOSL (Salesforce Object Search Language). SOSL is optimized for text-based searches across multiple fields.

Python SDK

salesforce.opportunities.search(
    q="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
    "entity": "opportunities",
    "action": "search",
    "params": {
        "q": "<str>"
    }
}'

Params

Parameter Name Type Required Description
q string Yes SOSL search query. Format: FIND {searchTerm} RETURNING Opportunity(fields) [LIMIT n]. Examples: FIND {Enterprise} IN NAME FIELDS RETURNING Opportunity(Id,Name,Amount,StageName), FIND {renewal} IN ALL FIELDS RETURNING Opportunity(Id,Name,CloseDate) LIMIT 25
Response Schema

Records

Field Name Type Description
searchRecords array<object>

Tasks

Tasks List

Returns a list of tasks via SOQL query. Default returns up to 200 records. For pagination, check the response: if done is false, use nextRecordsUrl to fetch the next page.

Python SDK

salesforce.tasks.list(
    q="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
    "entity": "tasks",
    "action": "list",
    "params": {
        "q": "<str>"
    }
}'

Params

Parameter Name Type Required Description
q string Yes SOQL query for tasks. Default returns up to 200 records.
To change the limit, provide your own query with a LIMIT clause.
Example: "SELECT FIELDS(STANDARD) FROM Task WHERE Status = 'Not Started' LIMIT 100"
Response Schema

Records

Field Name Type Description
totalSize integer
done boolean
nextRecordsUrl string
records array<object>
records[].Id string
records[].Subject string
records[].attributes object

Tasks Get

Get a single task by ID. Returns all accessible fields by default. Use the fields parameter to retrieve only specific fields for better performance.

Python SDK

salesforce.tasks.get(
    id="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
    "entity": "tasks",
    "action": "get",
    "params": {
        "id": "<str>"
    }
}'

Params

Parameter Name Type Required Description
id string Yes Salesforce Task ID (18-character ID starting with '00T')
fields string No Comma-separated list of fields to retrieve. If omitted, returns all accessible fields.
Example: "Id,Subject,Status,Priority,ActivityDate,WhoId,WhatId"
Response Schema

Records

Field Name Type Description
Id string
Subject string
attributes object

Search for tasks using SOSL (Salesforce Object Search Language). SOSL is optimized for text-based searches across multiple fields.

Python SDK

salesforce.tasks.search(
    q="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
    "entity": "tasks",
    "action": "search",
    "params": {
        "q": "<str>"
    }
}'

Params

Parameter Name Type Required Description
q string Yes SOSL search query. Format: FIND {searchTerm} RETURNING Task(fields) [LIMIT n]. Examples: FIND {follow up} IN ALL FIELDS RETURNING Task(Id,Subject,Status,Priority), FIND {call} IN NAME FIELDS RETURNING Task(Id,Subject,ActivityDate) LIMIT 50
Response Schema

Records

Field Name Type Description
searchRecords array<object>

Events

Events List

Returns a list of events via SOQL query. Default returns up to 200 records. For pagination, check the response: if done is false, use nextRecordsUrl to fetch the next page.

Python SDK

salesforce.events.list(
    q="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
    "entity": "events",
    "action": "list",
    "params": {
        "q": "<str>"
    }
}'

Params

Parameter Name Type Required Description
q string Yes SOQL query for events. Default returns up to 200 records.
To change the limit, provide your own query with a LIMIT clause.
Example: "SELECT FIELDS(STANDARD) FROM Event WHERE StartDateTime > TODAY LIMIT 50"
Response Schema

Records

Field Name Type Description
totalSize integer
done boolean
nextRecordsUrl string
records array<object>
records[].Id string
records[].Subject string
records[].attributes object

Events Get

Get a single event by ID. Returns all accessible fields by default. Use the fields parameter to retrieve only specific fields for better performance.

Python SDK

salesforce.events.get(
    id="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
    "entity": "events",
    "action": "get",
    "params": {
        "id": "<str>"
    }
}'

Params

Parameter Name Type Required Description
id string Yes Salesforce Event ID (18-character ID starting with '00U')
fields string No Comma-separated list of fields to retrieve. If omitted, returns all accessible fields.
Example: "Id,Subject,StartDateTime,EndDateTime,Location,WhoId,WhatId"
Response Schema

Records

Field Name Type Description
Id string
Subject string
attributes object

Search for events using SOSL (Salesforce Object Search Language). SOSL is optimized for text-based searches across multiple fields.

Python SDK

salesforce.events.search(
    q="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
    "entity": "events",
    "action": "search",
    "params": {
        "q": "<str>"
    }
}'

Params

Parameter Name Type Required Description
q string Yes SOSL search query. Format: FIND {searchTerm} RETURNING Event(fields) [LIMIT n]. Examples: FIND {meeting} IN ALL FIELDS RETURNING Event(Id,Subject,StartDateTime,Location), FIND {demo} IN NAME FIELDS RETURNING Event(Id,Subject,EndDateTime) LIMIT 25
Response Schema

Records

Field Name Type Description
searchRecords array<object>

Campaigns

Campaigns List

Returns a list of campaigns via SOQL query. Default returns up to 200 records. For pagination, check the response: if done is false, use nextRecordsUrl to fetch the next page.

Python SDK

salesforce.campaigns.list(
    q="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
    "entity": "campaigns",
    "action": "list",
    "params": {
        "q": "<str>"
    }
}'

Params

Parameter Name Type Required Description
q string Yes SOQL query for campaigns. Default returns up to 200 records.
To change the limit, provide your own query with a LIMIT clause.
Example: "SELECT FIELDS(STANDARD) FROM Campaign WHERE IsActive = true LIMIT 50"
Response Schema

Records

Field Name Type Description
totalSize integer
done boolean
nextRecordsUrl string
records array<object>
records[].Id string
records[].Name string
records[].attributes object

Campaigns Get

Get a single campaign by ID. Returns all accessible fields by default. Use the fields parameter to retrieve only specific fields for better performance.

Python SDK

salesforce.campaigns.get(
    id="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
    "entity": "campaigns",
    "action": "get",
    "params": {
        "id": "<str>"
    }
}'

Params

Parameter Name Type Required Description
id string Yes Salesforce Campaign ID (18-character ID starting with '701')
fields string No Comma-separated list of fields to retrieve. If omitted, returns all accessible fields.
Example: "Id,Name,Type,Status,StartDate,EndDate,IsActive"
Response Schema

Records

Field Name Type Description
Id string
Name string
attributes object

Search for campaigns using SOSL (Salesforce Object Search Language). SOSL is optimized for text-based searches across multiple fields.

Python SDK

salesforce.campaigns.search(
    q="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
    "entity": "campaigns",
    "action": "search",
    "params": {
        "q": "<str>"
    }
}'

Params

Parameter Name Type Required Description
q string Yes SOSL search query. Format: FIND {searchTerm} RETURNING Campaign(fields) [LIMIT n]. Examples: FIND {webinar} IN ALL FIELDS RETURNING Campaign(Id,Name,Type,Status), FIND {2024} IN NAME FIELDS RETURNING Campaign(Id,Name,StartDate,IsActive) LIMIT 50
Response Schema

Records

Field Name Type Description
searchRecords array<object>

Cases

Cases List

Returns a list of cases via SOQL query. Default returns up to 200 records. For pagination, check the response: if done is false, use nextRecordsUrl to fetch the next page.

Python SDK

salesforce.cases.list(
    q="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
    "entity": "cases",
    "action": "list",
    "params": {
        "q": "<str>"
    }
}'

Params

Parameter Name Type Required Description
q string Yes SOQL query for cases. Default returns up to 200 records.
To change the limit, provide your own query with a LIMIT clause.
Example: "SELECT FIELDS(STANDARD) FROM Case WHERE Status = 'New' LIMIT 100"
Response Schema

Records

Field Name Type Description
totalSize integer
done boolean
nextRecordsUrl string
records array<object>
records[].Id string
records[].CaseNumber string
records[].Subject string
records[].attributes object

Cases Get

Get a single case by ID. Returns all accessible fields by default. Use the fields parameter to retrieve only specific fields for better performance.

Python SDK

salesforce.cases.get(
    id="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
    "entity": "cases",
    "action": "get",
    "params": {
        "id": "<str>"
    }
}'

Params

Parameter Name Type Required Description
id string Yes Salesforce Case ID (18-character ID starting with '500')
fields string No Comma-separated list of fields to retrieve. If omitted, returns all accessible fields.
Example: "Id,CaseNumber,Subject,Status,Priority,ContactId,AccountId"
Response Schema

Records

Field Name Type Description
Id string
CaseNumber string
Subject string
attributes object

Search for cases using SOSL (Salesforce Object Search Language). SOSL is optimized for text-based searches across multiple fields.

Python SDK

salesforce.cases.search(
    q="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
    "entity": "cases",
    "action": "search",
    "params": {
        "q": "<str>"
    }
}'

Params

Parameter Name Type Required Description
q string Yes SOSL search query. Format: FIND {searchTerm} RETURNING Case(fields) [LIMIT n]. Examples: FIND {login issue} IN ALL FIELDS RETURNING Case(Id,CaseNumber,Subject,Status), FIND {urgent} IN NAME FIELDS RETURNING Case(Id,Subject,Priority) LIMIT 25
Response Schema

Records

Field Name Type Description
searchRecords array<object>

Notes

Notes List

Returns a list of notes via SOQL query. Default returns up to 200 records. For pagination, check the response: if done is false, use nextRecordsUrl to fetch the next page.

Python SDK

salesforce.notes.list(
    q="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
    "entity": "notes",
    "action": "list",
    "params": {
        "q": "<str>"
    }
}'

Params

Parameter Name Type Required Description
q string Yes SOQL query for notes. Default returns up to 200 records.
To change the limit, provide your own query with a LIMIT clause.
Example: "SELECT FIELDS(STANDARD) FROM Note WHERE ParentId = '001xx...' LIMIT 50"
Response Schema

Records

Field Name Type Description
totalSize integer
done boolean
nextRecordsUrl string
records array<object>
records[].Id string
records[].Title string
records[].attributes object

Notes Get

Get a single note by ID. Returns all accessible fields by default. Use the fields parameter to retrieve only specific fields for better performance.

Python SDK

salesforce.notes.get(
    id="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
    "entity": "notes",
    "action": "get",
    "params": {
        "id": "<str>"
    }
}'

Params

Parameter Name Type Required Description
id string Yes Salesforce Note ID (18-character ID starting with '002')
fields string No Comma-separated list of fields to retrieve. If omitted, returns all accessible fields.
Example: "Id,Title,Body,ParentId,OwnerId"
Response Schema

Records

Field Name Type Description
Id string
Title string
attributes object

Search for notes using SOSL (Salesforce Object Search Language). SOSL is optimized for text-based searches across multiple fields.

Python SDK

salesforce.notes.search(
    q="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
    "entity": "notes",
    "action": "search",
    "params": {
        "q": "<str>"
    }
}'

Params

Parameter Name Type Required Description
q string Yes SOSL search query. Format: FIND {searchTerm} RETURNING Note(fields) [LIMIT n]. Examples: FIND {important} IN ALL FIELDS RETURNING Note(Id,Title,ParentId), FIND {action items} IN NAME FIELDS RETURNING Note(Id,Title,Body) LIMIT 50
Response Schema

Records

Field Name Type Description
searchRecords array<object>

Content Versions

Content Versions List

Returns a list of content versions (file metadata) via SOQL query. Default returns up to 200 records. For pagination, check the response: if done is false, use nextRecordsUrl to fetch the next page. Note: ContentVersion does not support FIELDS(STANDARD), so specific fields must be listed.

Python SDK

salesforce.content_versions.list(
    q="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
    "entity": "content_versions",
    "action": "list",
    "params": {
        "q": "<str>"
    }
}'

Params

Parameter Name Type Required Description
q string Yes SOQL query for content versions. Default returns up to 200 records.
To change the limit, provide your own query with a LIMIT clause.
Example: "SELECT Id, Title, FileExtension, ContentSize FROM ContentVersion WHERE IsLatest = true LIMIT 50"
Response Schema

Records

Field Name Type Description
totalSize integer
done boolean
nextRecordsUrl string
records array<object>
records[].Id string
records[].Title string
records[].FileExtension string
records[].ContentSize integer
records[].ContentDocumentId string
records[].VersionNumber string
records[].IsLatest boolean
records[].attributes object

Content Versions Get

Get a single content version's metadata by ID. Returns file metadata, not the file content. Use the download action to retrieve the actual file binary.

Python SDK

salesforce.content_versions.get(
    id="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
    "entity": "content_versions",
    "action": "get",
    "params": {
        "id": "<str>"
    }
}'

Params

Parameter Name Type Required Description
id string Yes Salesforce ContentVersion ID (18-character ID starting with '068')
fields string No Comma-separated list of fields to retrieve. If omitted, returns all accessible fields.
Example: "Id,Title,FileExtension,ContentSize,ContentDocumentId,IsLatest"
Response Schema

Records

Field Name Type Description
Id string
Title string
FileExtension string
ContentSize integer
ContentDocumentId string
VersionNumber string
IsLatest boolean
attributes object

Content Versions Download

Downloads the binary file content of a content version. First use the list or get action to retrieve the ContentVersion ID and file metadata (size, type, etc.), then use this action to download the actual file content. The response is the raw binary file data.

Python SDK

async for chunk in salesforce.content_versions.download(    id="<str>"):# Process each chunk (e.g., write to file)
    file.write(chunk)

Note

: Download operations return an async iterator of bytes chunks for memory-efficient streaming. Use async for to process chunks as they arrive.

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
    "entity": "content_versions",
    "action": "download",
    "params": {
        "id": "<str>"
    }
}'

Params

Parameter Name Type Required Description
id string Yes Salesforce ContentVersion ID (18-character ID starting with '068').
Obtain this ID from the list or get action.
range_header string No Optional Range header for partial downloads (e.g., 'bytes=0-99')

Attachments

Attachments List

Returns a list of attachments (legacy) via SOQL query. Default returns up to 200 records. For pagination, check the response: if done is false, use nextRecordsUrl to fetch the next page. Note: Attachments are a legacy feature; consider using ContentVersion (Salesforce Files) for new implementations.

Python SDK

salesforce.attachments.list(
    q="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
    "entity": "attachments",
    "action": "list",
    "params": {
        "q": "<str>"
    }
}'

Params

Parameter Name Type Required Description
q string Yes SOQL query for attachments. Default returns up to 200 records.
To change the limit, provide your own query with a LIMIT clause.
Example: "SELECT Id, Name, ContentType, BodyLength, ParentId FROM Attachment WHERE ParentId = '001xx...' LIMIT 50"
Response Schema

Records

Field Name Type Description
totalSize integer
done boolean
nextRecordsUrl string
records array<object>
records[].Id string
records[].Name string
records[].ContentType string
records[].BodyLength integer
records[].ParentId string
records[].attributes object

Attachments Get

Get a single attachment's metadata by ID. Returns file metadata, not the file content. Use the download action to retrieve the actual file binary. Note: Attachments are a legacy feature; consider using ContentVersion for new implementations.

Python SDK

salesforce.attachments.get(
    id="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
    "entity": "attachments",
    "action": "get",
    "params": {
        "id": "<str>"
    }
}'

Params

Parameter Name Type Required Description
id string Yes Salesforce Attachment ID (18-character ID starting with '00P')
fields string No Comma-separated list of fields to retrieve. If omitted, returns all accessible fields.
Example: "Id,Name,ContentType,BodyLength,ParentId"
Response Schema

Records

Field Name Type Description
Id string
Name string
ContentType string
BodyLength integer
ParentId string
attributes object

Attachments Download

Downloads the binary file content of an attachment (legacy). First use the list or get action to retrieve the Attachment ID and file metadata, then use this action to download the actual file content. Note: Attachments are a legacy feature; consider using ContentVersion for new implementations.

Python SDK

async for chunk in salesforce.attachments.download(    id="<str>"):# Process each chunk (e.g., write to file)
    file.write(chunk)

Note

: Download operations return an async iterator of bytes chunks for memory-efficient streaming. Use async for to process chunks as they arrive.

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
    "entity": "attachments",
    "action": "download",
    "params": {
        "id": "<str>"
    }
}'

Params

Parameter Name Type Required Description
id string Yes Salesforce Attachment ID (18-character ID starting with '00P').
Obtain this ID from the list or get action.
range_header string No Optional Range header for partial downloads (e.g., 'bytes=0-99')

Query

Query List

Execute a custom SOQL query and return results. Use this for querying any Salesforce object. For pagination, check the response: if done is false, use nextRecordsUrl to fetch the next page.

Python SDK

salesforce.query.list(
    q="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
    "entity": "query",
    "action": "list",
    "params": {
        "q": "<str>"
    }
}'

Params

Parameter Name Type Required Description
q string Yes SOQL query string. Include LIMIT clause to control the number of records returned.
Examples:
  • "SELECT Id, Name FROM Account LIMIT 100"
  • "SELECT FIELDS(STANDARD) FROM Contact WHERE AccountId = '001xx...' LIMIT 50"
  • "SELECT Id, Subject, Status FROM Case WHERE CreatedDate = TODAY" |
Response Schema

Records

Field Name Type Description
totalSize integer
done boolean
nextRecordsUrl string
records array<object>

Configuration

The connector requires the following configuration variables:

Variable Type Required Default Description
instance_url string Yes https://login.salesforce.com Your Salesforce instance URL (e.g., https://na1.salesforce.com)

These variables are used to construct the base API URL. Pass them via the config parameter when initializing the connector.

Authentication

The Salesforce connector supports the following authentication methods:

Salesforce OAuth 2.0

Field Name Type Required Description
refresh_token str Yes OAuth refresh token for automatic token renewal
client_id str Yes Connected App Consumer Key
client_secret str Yes Connected App Consumer Secret

Example

Python SDK

SalesforceConnector(
  auth_config=SalesforceAuthConfig(
    refresh_token="<OAuth refresh token for automatic token renewal>",
    client_id="<Connected App Consumer Key>",
    client_secret="<Connected App Consumer Secret>"
  )
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/instances' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
  "connector_definition_id": "b117307c-14b6-41aa-9422-947e34922962",
  "auth_config": {
    "refresh_token": "<OAuth refresh token for automatic token renewal>",
    "client_id": "<Connected App Consumer Key>",
    "client_secret": "<Connected App Consumer Secret>"
  },
  "name": "My Salesforce Connector"
}'