Custom Actions
Your HTTPS endpoints as named actions for workflows, the copilot and record pages
Objects, their fields and the schema field types the editors offer
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Actions a person may run from a record page of this object
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Query Parameters
objectTypeRequiredstringManualCustomActionArray
List
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
CustomActionViewArray
Register an action; the signing secret is returned once
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Request Body
application/jsonRequiredapiNameRequiredstringStable identifier, also the copilot tool suffix
"^[a-z][a-z0-9_]{1,47}$"labelRequiredstring120descriptionstring1000urlstringhttps:// endpoint that receives signed POSTs (omit when functionId is set)
2048functionIdstringA serverless function that implements the action instead of an endpoint; null to switch back to url
64namedCredentialIdstringA named credential to call instead of url: the request goes to its base URL + calloutPath with its auth. null to switch back to url
64calloutPathstringPath under the named credential's base URL (default /)
2048inputSchemaRequiredobjectJSON Schema (object of scalar fields) for the request input
outputSchemaRequiredobjectJSON Schema (object of scalar fields) the response must match
kindRequiredstringWRITE actions need confirmation in the copilot and approval for agents
"READ" | "WRITE"idempotentbooleanSafe to repeat: enables retries (same Idempotency-Key)
maxRetriesnumber0Maximum: 3timeoutMsnumber10000Minimum: 500Maximum: 30000objectTypesarray<string>allowManualbooleanShow a Run action button on record pages
exposeAsToolbooleanOffer the action to the copilot as a tool
toolDescriptionstringWhat the assistant is told the tool does
1000inputMappingobject{ inputName: "record.field" | { value } } for record runs
outputMappingobject{ outputName: "recordField" } written back after record runs
isActivebooleanCustomActionWithSecret
Get
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Path Parameters
idRequiredstringCustomActionView
Update
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Request Body
application/jsonRequiredlabelstring120descriptionstring1000urlstringhttps:// endpoint that receives signed POSTs (omit when functionId is set)
2048functionIdstringA serverless function that implements the action instead of an endpoint; null to switch back to url
64namedCredentialIdstringA named credential to call instead of url: the request goes to its base URL + calloutPath with its auth. null to switch back to url
64calloutPathstringPath under the named credential's base URL (default /)
2048inputSchemaobjectJSON Schema (object of scalar fields) for the request input
outputSchemaobjectJSON Schema (object of scalar fields) the response must match
kindstringWRITE actions need confirmation in the copilot and approval for agents
"READ" | "WRITE"idempotentbooleanSafe to repeat: enables retries (same Idempotency-Key)
maxRetriesnumber0Maximum: 3timeoutMsnumber10000Minimum: 500Maximum: 30000objectTypesarray<string>allowManualbooleanShow a Run action button on record pages
exposeAsToolbooleanOffer the action to the copilot as a tool
toolDescriptionstringWhat the assistant is told the tool does
1000inputMappingobject{ inputName: "record.field" | { value } } for record runs
outputMappingobject{ outputName: "recordField" } written back after record runs
isActivebooleanPath Parameters
idRequiredstringHeader Parameters
Idempotency-KeystringUnique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.
255CustomActionView
Remove
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Path Parameters
idRequiredstringDeletedResponse
Replace the signing secret (returned once)
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Path Parameters
idRequiredstringSecretResponse
Call the endpoint with sample input; returns the request and response
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Request Body
application/jsonRequiredinputobjectSample input (validated against the input schema)
Path Parameters
idRequiredstringHeader Parameters
Idempotency-KeystringUnique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.
255ActionRunResult
Run the action on a record (record inputs mapped, outputs written back)
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Request Body
application/jsonRequiredobjectTypeRequiredstringLEAD | CONTACT | ACCOUNT | OPPORTUNITY | TASK | custom:
recordIdRequiredstringinputobjectValues for inputs the record mapping does not fill
Path Parameters
idRequiredstringHeader Parameters
Idempotency-KeystringUnique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.
255ManualActionRunResult
Invocations page
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Path Parameters
idRequiredstringQuery Parameters
pagestring1limitstring20statusstring"SUCCEEDED" | "FAILED" | "TIMEOUT" | "BLOCKED" | "REJECTED" | "CIRCUIT_OPEN"ExtensionInvocationPage
Invocation
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Path Parameters
idRequiredstringinvocationIdRequiredstringExtensionInvocation
Send the same input again (new invocation id; no record write-back)
Authorization
AuthorizationRequiredBearer <token>Session token from the SalesOS web app.
In: header
X-API-Key<token>API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.
In: header
Path Parameters
idRequiredstringinvocationIdRequiredstringHeader Parameters
Idempotency-KeystringUnique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.
255ActionRunResult