Salesforce REST Port
This is the Harbor reference integration for the Salesforce REST API.
Salesforce REST Port
Purpose
This is the Harbor reference integration for the Salesforce REST API.
Use it when:
- building Salesforce actions in Harbor
- extending the Dock / Hub Salesforce entry
- teaching Codex or OpenClaw how to map CRM object discovery, bounded SOQL reads, and explicit record creation into Harbor Ports and Harbor Actions without turning Harbor into a generic Salesforce admin proxy
Harbor Port worksheet
Product
- Product: Salesforce REST API
- Publisher slug:
salesforce - Publisher name:
Salesforce - Category:
CRM - Tags:
salesforce,crm,sobjects,records,soql
Safe Harbor Port metadata
- Kind:
http_api - Label:
Salesforce REST API - Description:
Salesforce REST API connection managed locally through Harbor. - Base URL: tenant-specific Salesforce instance root, for example
https://your-domain.my.salesforce.com/ - Auth mode:
header_token - Auth header name:
Authorization - Auth token prefix:
Bearer
Hidden local config
authToken
Harbor stores the token locally only. Dock / Hub manifests must never contain it.
For Salesforce, operators should use the OAuth-returned instance URL as the Harbor base URL rather than a generic login or documentation host.
Harbor action design notes
Salesforce is a good Harbor fit when we keep the object surface explicit, SOQL readable, and record creation reviewable.
Good Harbor Salesforce starter actions:
- fixed
GETreads for global object discovery - one bounded
GETquery route with an explicitqparameter for SOQL - one reviewable
POSTroute for record creation on an explicit object API name requestBodyMode: "none"for readsrequestBodyMode: "json"for create-recordresultMode: "json_summary"for all starter actions
Avoid for now:
- arbitrary REST passthrough across the whole Salesforce surface
- metadata mutation, tooling API, or admin configuration flows
- bulk APIs, composite APIs, or delete/update operations before more policy coverage exists
- broad SOQL automation without explicit operator review of the query input
Starter Salesforce actions
Automatic read actions
describe-sobjects->GET /services/data/v66.0/sobjectsquery->GET /services/data/v66.0/query?q=...
Approval-friendly write actions
create-record->POST /services/data/v66.0/sobjects/{objectApiName}/
Why these actions
These routes fit Harbor's current safe model because they:
- stay on stable REST resources under one explicit Salesforce instance URL
- keep the object target explicit through a bounded path template
- expose SOQL as a named capability rather than generic HTTP access to every endpoint
- make writes deliberate and object-scoped instead of allowing broad mutation coverage in the first pass
Action Model notes
At execution time, callers supply values by location:
- no extra inputs are required for
describe-sobjects input.query.qforqueryinput.path.objectApiNameandinput.bodyforcreate-record
Example object discovery request:
{}
Example SOQL request:
{
"query": {
"q": "SELECT Id, Name FROM Account LIMIT 25"
}
}
Example record create request:
{
"path": {
"objectApiName": "Lead"
},
"body": {
"LastName": "Nguyen",
"Company": "Breakwater Ninja",
"Email": "alex@example.com"
}
}
For create-record, keep the body bounded to the specific object fields you intend to support in a given Harbor workflow.
Safety note for SOQL and writes
query is left automatic because it is still a read, but it should remain visible and reviewable since SOQL can access broad datasets. create-record stays on require_approval because it mutates CRM state and can trigger automation, assignment rules, and downstream business workflows.
Suggested operator workflow
- Import the Salesforce Dock entry from Dock / Hub.
- Configure the local Salesforce instance URL in Harbor Node.
- Configure the local OAuth bearer token in Harbor Node.
- Use
describe-sobjectsto confirm available object names. - Use
queryto validate the fields and object shape you need. - Keep
create-recordonrequire_approvalunless there is a very clear local policy reason not to.
Suggested agent workflow
- Inspect the existing Salesforce Harbor Port.
- Inspect live actions and drafts.
- Propose additional fixed Salesforce routes only when they remain bounded and reviewable.
- Validate and test drafts.
- Request publish instead of self-publishing unless Harbor explicitly allows it.
Agents should never:
- ask Harbor for the stored Salesforce token
- widen Salesforce into a generic tenant administration proxy
- add destructive or bulk mutation coverage without review
- hide the instance URL or object targeting behind arbitrary route input
Current update strategy
For now, Salesforce updates are manual:
- update the Dock / Hub Salesforce integration document in
apps/hub/catalog/integrations/salesforce/salesforce-rest-api.json - bump the manifest version when the action set changes materially
- re-import into Harbor or create new drafts from the updated Dock entry
Official reference starting points
- Salesforce REST API introduction:
https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/intro_rest.htm - Global sObject describe:
https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/resources_describeGlobal.htm - sObject basic information:
https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/resources_sobject_basic_info.htm - SOQL query resource:
https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/resources_query.htm