mirror of
https://github.com/forcedotcom/afv-library.git
synced 2026-07-30 03:09:50 +08:00
1002 lines
18 KiB
Markdown
1002 lines
18 KiB
Markdown
|
|
# API Endpoints Reference
|
||
|
|
|
||
|
|
Complete documentation for Agentforce Grid public Connect API.
|
||
|
|
|
||
|
|
## Base URL
|
||
|
|
|
||
|
|
```
|
||
|
|
/services/data/v66.0/public/grid
|
||
|
|
```
|
||
|
|
|
||
|
|
All endpoints are prefixed with this base URL.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Workbook Operations
|
||
|
|
|
||
|
|
### List All Workbooks
|
||
|
|
|
||
|
|
```
|
||
|
|
GET /workbooks
|
||
|
|
```
|
||
|
|
|
||
|
|
**Response:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"workbooks": [
|
||
|
|
{
|
||
|
|
"id": "1W4xx0000004xxxx",
|
||
|
|
"name": "My Workbook"
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**Note:** This endpoint returns minimal workbook data. Use `GET /workbooks/{id}` to get the `aiWorksheetList`.
|
||
|
|
|
||
|
|
### Create Workbook
|
||
|
|
|
||
|
|
```
|
||
|
|
POST /workbooks
|
||
|
|
```
|
||
|
|
|
||
|
|
**Request:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"name": "Agent Test Suite"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**Response:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"id": "1W4xx0000004xxxx",
|
||
|
|
"name": "Agent Test Suite"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Get Workbook
|
||
|
|
|
||
|
|
```
|
||
|
|
GET /workbooks/{workbookId}
|
||
|
|
```
|
||
|
|
|
||
|
|
**Response:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"id": "1W4xx0000004xxxx",
|
||
|
|
"name": "Agent Test Suite",
|
||
|
|
"aiWorksheetList": [
|
||
|
|
{
|
||
|
|
"id": "1W1xx0000004xxxx",
|
||
|
|
"name": "Test Cases",
|
||
|
|
"workbookId": "1W4xx0000004xxxx"
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Delete Workbook
|
||
|
|
|
||
|
|
```
|
||
|
|
DELETE /workbooks/{workbookId}
|
||
|
|
```
|
||
|
|
|
||
|
|
**Response:** 204 No Content
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Worksheet Operations
|
||
|
|
|
||
|
|
### Create Worksheet
|
||
|
|
|
||
|
|
```
|
||
|
|
POST /worksheets
|
||
|
|
```
|
||
|
|
|
||
|
|
**Request:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"name": "Agent Test Cases",
|
||
|
|
"workbookId": "1W4xx0000004xxxx"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**Response:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"autoUpdate": true,
|
||
|
|
"cells": [],
|
||
|
|
"columns": [],
|
||
|
|
"id": "1W1xx0000004xxxx",
|
||
|
|
"name": "Agent Test Cases",
|
||
|
|
"rows": [],
|
||
|
|
"workbookId": "1W4xx0000004xxxx"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Get Worksheet Metadata
|
||
|
|
|
||
|
|
```
|
||
|
|
GET /worksheets/{worksheetId}
|
||
|
|
```
|
||
|
|
|
||
|
|
**Response:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"id": "1W1xx0000004xxxx",
|
||
|
|
"name": "Agent Test Cases",
|
||
|
|
"workbookId": "1W4xx0000004xxxx",
|
||
|
|
"cells": [...],
|
||
|
|
"columns": [
|
||
|
|
{
|
||
|
|
"id": "1W5xx0000004xxxx",
|
||
|
|
"name": "Test Utterances",
|
||
|
|
"type": "Text",
|
||
|
|
"status": "New",
|
||
|
|
"config": {}, // Note: GET responses may return empty config
|
||
|
|
"precedingColumnId": null,
|
||
|
|
"worksheetId": "1W1xx0000004xxxx"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"rows": ["row-id-1", "row-id-2", "row-id-3"] // Array of row ID strings
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Get Worksheet Data (RECOMMENDED)
|
||
|
|
|
||
|
|
```
|
||
|
|
GET /worksheets/{worksheetId}/data
|
||
|
|
```
|
||
|
|
|
||
|
|
Returns complete worksheet data including all cells.
|
||
|
|
|
||
|
|
**IMPORTANT:** This is the most reliable endpoint for reading worksheet state. `GET /worksheets/{id}` may return empty columns/rows/cells even when they exist. Always use `/data` to get the full state.
|
||
|
|
|
||
|
|
**Response:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"id": "1W1xx0000004xxxx",
|
||
|
|
"name": "Agent Test Cases",
|
||
|
|
"columns": [...],
|
||
|
|
"rows": [...],
|
||
|
|
"columnData": {
|
||
|
|
"column-id-1": [
|
||
|
|
{
|
||
|
|
"id": "cell-id-1",
|
||
|
|
"worksheetColumnId": "column-id-1",
|
||
|
|
"worksheetRowId": "row-id-1",
|
||
|
|
"displayContent": "Hello, I need help",
|
||
|
|
"status": "Complete"
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Get Worksheet Data (Generic Format)
|
||
|
|
|
||
|
|
```
|
||
|
|
GET /worksheets/{worksheetId}/data-generic
|
||
|
|
```
|
||
|
|
|
||
|
|
Returns data in a generic JSON format.
|
||
|
|
|
||
|
|
### Update Worksheet
|
||
|
|
|
||
|
|
```
|
||
|
|
PUT /worksheets/{worksheetId}
|
||
|
|
```
|
||
|
|
|
||
|
|
**Request:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"name": "Updated Worksheet Name"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Delete Worksheet
|
||
|
|
|
||
|
|
```
|
||
|
|
DELETE /worksheets/{worksheetId}
|
||
|
|
```
|
||
|
|
|
||
|
|
**Response:** 204 No Content
|
||
|
|
|
||
|
|
### Get Supported Column Types
|
||
|
|
|
||
|
|
```
|
||
|
|
GET /worksheets/{worksheetId}/supported-columns
|
||
|
|
```
|
||
|
|
|
||
|
|
Returns column types available for this worksheet.
|
||
|
|
|
||
|
|
**Response:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"columnTypes": [
|
||
|
|
{"category": null, "description": null, "icon": null, "label": "AI", "name": "AI"},
|
||
|
|
{"category": null, "description": null, "icon": null, "label": "Object", "name": "Object"},
|
||
|
|
{"category": null, "description": null, "icon": null, "label": "Agent", "name": "Agent"},
|
||
|
|
{"category": null, "description": null, "icon": null, "label": "AgentTest", "name": "AgentTest"}
|
||
|
|
]
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Column Operations
|
||
|
|
|
||
|
|
### Add Column to Worksheet
|
||
|
|
|
||
|
|
```
|
||
|
|
POST /worksheets/{worksheetId}/columns
|
||
|
|
```
|
||
|
|
|
||
|
|
**Request (Text Column) - MUST include nested config with `type`:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"name": "Test Utterances",
|
||
|
|
"type": "Text",
|
||
|
|
"config": {
|
||
|
|
"type": "Text",
|
||
|
|
"autoUpdate": true,
|
||
|
|
"config": {
|
||
|
|
"autoUpdate": true
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**CRITICAL:** An empty `"config": {}` will fail with a deserialization error. Always include the `type` field.
|
||
|
|
|
||
|
|
**Request (AgentTest Column):**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"name": "Agent Output",
|
||
|
|
"type": "AgentTest",
|
||
|
|
"config": {
|
||
|
|
"type": "AgentTest",
|
||
|
|
"numberOfRows": 50,
|
||
|
|
"queryResponseFormat": {"type": "EACH_ROW"},
|
||
|
|
"autoUpdate": true,
|
||
|
|
"config": {
|
||
|
|
"autoUpdate": true,
|
||
|
|
"agentId": "0Xxxx0000000001CAA",
|
||
|
|
"agentVersion": "0X9xx0000000001CAA",
|
||
|
|
"inputUtterance": {
|
||
|
|
"columnId": "utterance-col-id",
|
||
|
|
"columnName": "Test Utterances",
|
||
|
|
"columnType": "Text"
|
||
|
|
},
|
||
|
|
"contextVariables": []
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**Response:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"id": "1W5xx0000004xxxx",
|
||
|
|
"name": "Agent Output",
|
||
|
|
"worksheetId": "1W1xx0000004xxxx",
|
||
|
|
"type": "AgentTest",
|
||
|
|
"status": "New",
|
||
|
|
"config": {...},
|
||
|
|
"precedingColumnId": "previous-col-id"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Update Column
|
||
|
|
|
||
|
|
**IMPORTANT:** Column operations use `/worksheets/{wsId}/columns/{colId}/...` path, NOT `/columns/{colId}/...`.
|
||
|
|
|
||
|
|
```
|
||
|
|
PUT /worksheets/{worksheetId}/columns/{columnId}
|
||
|
|
```
|
||
|
|
|
||
|
|
**Request:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"name": "Updated Column Name",
|
||
|
|
"config": {
|
||
|
|
// updated configuration
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Delete Column
|
||
|
|
|
||
|
|
```
|
||
|
|
DELETE /worksheets/{worksheetId}/columns/{columnId}
|
||
|
|
```
|
||
|
|
|
||
|
|
**Response:** 204 No Content
|
||
|
|
|
||
|
|
### Save Column (Without Processing)
|
||
|
|
|
||
|
|
```
|
||
|
|
POST /worksheets/{worksheetId}/columns/{columnId}/save
|
||
|
|
```
|
||
|
|
|
||
|
|
Saves column configuration without triggering cell processing.
|
||
|
|
|
||
|
|
**Request:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"type": "Text",
|
||
|
|
"name": "Column Name",
|
||
|
|
"config": {}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**Note:** The `type` field is required in the save request body.
|
||
|
|
|
||
|
|
### Reprocess Column
|
||
|
|
|
||
|
|
```
|
||
|
|
POST /worksheets/{worksheetId}/columns/{columnId}/reprocess
|
||
|
|
```
|
||
|
|
|
||
|
|
Reprocesses all cells in the column. Request body: `{}`
|
||
|
|
|
||
|
|
### Get Column Data
|
||
|
|
|
||
|
|
```
|
||
|
|
GET /worksheets/{worksheetId}/columns/{columnId}/data
|
||
|
|
```
|
||
|
|
|
||
|
|
Returns all cell data for the column.
|
||
|
|
|
||
|
|
**Response:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"cells": [
|
||
|
|
{
|
||
|
|
"id": "cell-id-1",
|
||
|
|
"worksheetColumnId": "column-id",
|
||
|
|
"worksheetRowId": "row-id-1",
|
||
|
|
"displayContent": "Agent response text...",
|
||
|
|
"fullContent": {...},
|
||
|
|
"status": "Complete",
|
||
|
|
"statusMessage": null
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Row Operations
|
||
|
|
|
||
|
|
### Add Rows
|
||
|
|
|
||
|
|
```
|
||
|
|
POST /worksheets/{worksheetId}/rows
|
||
|
|
```
|
||
|
|
|
||
|
|
**Request:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"numberOfRows": 10,
|
||
|
|
"anchorRowId": "existing-row-id"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**Note:** `anchorRowId` is required when the worksheet already has rows.
|
||
|
|
|
||
|
|
**Response:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"rowIds": [],
|
||
|
|
"rowsAdded": 10,
|
||
|
|
"success": true
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Delete Rows
|
||
|
|
|
||
|
|
```
|
||
|
|
POST /worksheets/{worksheetId}/delete-rows
|
||
|
|
```
|
||
|
|
|
||
|
|
**Request:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"rowIds": ["row-id-1", "row-id-2", "row-id-3"]
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Cell Operations
|
||
|
|
|
||
|
|
### Update Cells
|
||
|
|
|
||
|
|
```
|
||
|
|
PUT /worksheets/{worksheetId}/cells
|
||
|
|
```
|
||
|
|
|
||
|
|
**IMPORTANT:** Cell updates use `fullContent` (an object), NOT `displayContent` (which is read-only).
|
||
|
|
|
||
|
|
**Request:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"cells": [
|
||
|
|
{
|
||
|
|
"id": "cell-id-1",
|
||
|
|
"fullContent": {"text": "New cell value"}
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**Note:** The `displayContent` field is read-only and cannot be used for updates. Use `fullContent` with an appropriate object structure. For populating cells with text data, prefer the Paste endpoint instead.
|
||
|
|
```
|
||
|
|
|
||
|
|
### Paste Data
|
||
|
|
|
||
|
|
```
|
||
|
|
POST /worksheets/{worksheetId}/paste
|
||
|
|
```
|
||
|
|
|
||
|
|
Paste a matrix of data into the worksheet. **Uses `matrix` field (not `data`).**
|
||
|
|
|
||
|
|
**Request:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"startColumnId": "column-id",
|
||
|
|
"startRowId": "row-id",
|
||
|
|
"matrix": [
|
||
|
|
[{"displayContent": "row1-col1"}, {"displayContent": "row1-col2"}],
|
||
|
|
[{"displayContent": "row2-col1"}, {"displayContent": "row2-col2"}]
|
||
|
|
]
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Trigger Row Execution
|
||
|
|
|
||
|
|
```
|
||
|
|
POST /worksheets/{worksheetId}/trigger-row-execution
|
||
|
|
```
|
||
|
|
|
||
|
|
Triggers processing for specified rows.
|
||
|
|
|
||
|
|
**Request:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"trigger": "RUN_ROW",
|
||
|
|
"rowIds": ["row-id-1", "row-id-2"]
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**Trigger Types:**
|
||
|
|
- `RUN_ROW` - Process all columns for specified rows (most common)
|
||
|
|
- `RUN_SELECTION` - Process specific cells (use `seedCellIds` instead of `rowIds`)
|
||
|
|
- `EDIT` - Re-trigger after cell edit (use `editedCells` array)
|
||
|
|
- `PASTE` - Re-trigger after paste (use `startColumnId` and `matrix`)
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Run Worksheet
|
||
|
|
|
||
|
|
### Run Worksheet
|
||
|
|
|
||
|
|
```
|
||
|
|
POST /run-worksheet
|
||
|
|
```
|
||
|
|
|
||
|
|
Runs a worksheet with specific row inputs and column configuration. Returns a job ID for polling via `GET /run-worksheet/{jobId}`.
|
||
|
|
|
||
|
|
**Request (default -- all columns in parallel):**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"worksheetId": "1W1xx0000004xxxx",
|
||
|
|
"rowInputs": [...],
|
||
|
|
"columnConfig": {...}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**Request (sequential -- columns run one at a time):**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"worksheetId": "1W1xx0000004xxxx",
|
||
|
|
"rowInputs": [...],
|
||
|
|
"columnConfig": {...},
|
||
|
|
"runStrategy": "ColumnByColumn"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**Parameters:**
|
||
|
|
|
||
|
|
| Field | Type | Required | Description |
|
||
|
|
|-------|------|----------|-------------|
|
||
|
|
| `worksheetId` | string | Yes | The worksheet to run |
|
||
|
|
| `rowInputs` | array | Yes | Row input data |
|
||
|
|
| `columnConfig` | object | Yes | Column configuration |
|
||
|
|
| `runStrategy` | string | No | Execution strategy. Omit (default) to run all columns in parallel. Set to `"ColumnByColumn"` to run columns sequentially, one at a time. |
|
||
|
|
|
||
|
|
**Response:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"jobId": "job-id-string"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
Use `GET /run-worksheet/{jobId}` to poll for results.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## CSV Import
|
||
|
|
|
||
|
|
### Import CSV to Worksheet
|
||
|
|
|
||
|
|
```
|
||
|
|
POST /worksheets/{worksheetId}/import-csv
|
||
|
|
```
|
||
|
|
|
||
|
|
Creates Text columns from uploaded CSV file.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Agent Operations
|
||
|
|
|
||
|
|
### Get Available Agents
|
||
|
|
|
||
|
|
```
|
||
|
|
GET /agents
|
||
|
|
```
|
||
|
|
|
||
|
|
Returns list of active agents in the org.
|
||
|
|
|
||
|
|
**Response:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"agents": [
|
||
|
|
{
|
||
|
|
"id": "0Xxxx0000000001CAA",
|
||
|
|
"name": "Support Agent",
|
||
|
|
"activeVersion": "0X9xx0000000001CAA"
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Get Agent Variables
|
||
|
|
|
||
|
|
```
|
||
|
|
GET /agents/{activeVersionId}/variables
|
||
|
|
```
|
||
|
|
|
||
|
|
Returns context variables for an agent version. Use the `activeVersion` ID from the agents list (not the agent ID).
|
||
|
|
|
||
|
|
**Response:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"variables": [
|
||
|
|
{
|
||
|
|
"name": "VerifiedCustomerId",
|
||
|
|
"dataType": "Text",
|
||
|
|
"description": null,
|
||
|
|
"label": null
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Prompt Template Operations
|
||
|
|
|
||
|
|
### Get Available Prompt Templates
|
||
|
|
|
||
|
|
```
|
||
|
|
GET /prompt-templates
|
||
|
|
```
|
||
|
|
|
||
|
|
**Response:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"templates": [
|
||
|
|
{
|
||
|
|
"id": "Generate_Customer_Email",
|
||
|
|
"developerName": "Generate_Customer_Email",
|
||
|
|
"name": "Generate_Customer_Email"
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Get Prompt Template by Name
|
||
|
|
|
||
|
|
```
|
||
|
|
GET /prompt-templates/{promptTemplateDevName}
|
||
|
|
```
|
||
|
|
|
||
|
|
Returns detailed template information including inputs.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## SObject Operations
|
||
|
|
|
||
|
|
### Get Available SObjects
|
||
|
|
|
||
|
|
```
|
||
|
|
GET /sobjects
|
||
|
|
```
|
||
|
|
|
||
|
|
Returns list of queryable SObjects.
|
||
|
|
|
||
|
|
**Response:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"sobjects": [
|
||
|
|
{
|
||
|
|
"apiName": "Account",
|
||
|
|
"label": "Account",
|
||
|
|
"pluralLabel": "Accounts"
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Get Fields for Display
|
||
|
|
|
||
|
|
```
|
||
|
|
POST /sobjects/fields-display
|
||
|
|
```
|
||
|
|
|
||
|
|
Returns fields suitable for display.
|
||
|
|
|
||
|
|
**Request:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"sobjectList": ["Account", "Contact"]
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**Note:** Use `sobjectList` in request body (array), NOT `objectApiName` query parameter.
|
||
|
|
|
||
|
|
### Get Fields for Filtering
|
||
|
|
|
||
|
|
```
|
||
|
|
POST /sobjects/fields-filter
|
||
|
|
```
|
||
|
|
|
||
|
|
Returns fields suitable for filtering.
|
||
|
|
|
||
|
|
**Request:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"sobjectList": ["Account"]
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Get Fields for Record Update
|
||
|
|
|
||
|
|
```
|
||
|
|
POST /sobjects/fields-record-update
|
||
|
|
```
|
||
|
|
|
||
|
|
Returns fields that can be updated.
|
||
|
|
|
||
|
|
**Request:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"sobjectList": ["Account"]
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Data Cloud Operations
|
||
|
|
|
||
|
|
### Get Available Dataspaces
|
||
|
|
|
||
|
|
```
|
||
|
|
GET /dataspaces
|
||
|
|
```
|
||
|
|
|
||
|
|
**Response:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"dataspaces": [
|
||
|
|
{
|
||
|
|
"name": "default",
|
||
|
|
"label": "Default Dataspace"
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Get Data Model Objects
|
||
|
|
|
||
|
|
```
|
||
|
|
GET /dataspaces/{dataspace}/data-model-objects
|
||
|
|
```
|
||
|
|
|
||
|
|
Returns DMOs in the specified dataspace.
|
||
|
|
|
||
|
|
### Get DMO Fields
|
||
|
|
|
||
|
|
```
|
||
|
|
GET /dataspaces/{dataspace}/data-model-objects/{dmoName}/fields
|
||
|
|
```
|
||
|
|
|
||
|
|
Returns fields for a specific DMO.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Invocable Action Operations
|
||
|
|
|
||
|
|
### Get Available Invocable Actions
|
||
|
|
|
||
|
|
```
|
||
|
|
GET /invocable-actions
|
||
|
|
```
|
||
|
|
|
||
|
|
Returns list of available invocable actions (Flows, Apex, etc.).
|
||
|
|
|
||
|
|
### Describe Invocable Action
|
||
|
|
|
||
|
|
```
|
||
|
|
GET /invocable-actions/describe?actionType=FLOW&actionName=Create_Case
|
||
|
|
```
|
||
|
|
|
||
|
|
Returns detailed information about a specific action including inputs/outputs.
|
||
|
|
|
||
|
|
### Generate Invocable Action Input
|
||
|
|
|
||
|
|
```
|
||
|
|
POST /worksheets/{worksheetId}/generate-ia-input
|
||
|
|
```
|
||
|
|
|
||
|
|
Generates input payload for an invocable action.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Metadata Endpoints
|
||
|
|
|
||
|
|
### Get Column Types
|
||
|
|
|
||
|
|
```
|
||
|
|
GET /column-types
|
||
|
|
```
|
||
|
|
|
||
|
|
Returns all available column types.
|
||
|
|
|
||
|
|
### Get LLM Models
|
||
|
|
|
||
|
|
```
|
||
|
|
GET /llm-models
|
||
|
|
```
|
||
|
|
|
||
|
|
Returns available LLM models for AI columns.
|
||
|
|
|
||
|
|
**Response:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"models": [
|
||
|
|
{
|
||
|
|
"name": "sfdc_ai__DefaultGPT4Omni",
|
||
|
|
"label": "GPT 4 Omni",
|
||
|
|
"maxContentLength": 16384,
|
||
|
|
"encodingType": null
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "sfdc_ai__DefaultGPT5",
|
||
|
|
"label": "GPT 5",
|
||
|
|
"maxContentLength": 128000,
|
||
|
|
"encodingType": null
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "sfdc_ai__DefaultBedrockAnthropicClaude45Sonnet",
|
||
|
|
"label": "Anthropic Claude Sonnet 4.5 on Amazon",
|
||
|
|
"maxContentLength": 8192,
|
||
|
|
"encodingType": null
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**Note:** The model `name` field is used for both `modelId` and `modelName` in column configs. Use `GET /llm-models` to discover all available models in your org. The API returns 37 models but not all are active.
|
||
|
|
|
||
|
|
**Active models (16 total - no prefix in label):**
|
||
|
|
|
||
|
|
**OpenAI:**
|
||
|
|
- `sfdc_ai__DefaultGPT41` (GPT 4.1) - 32768 tokens
|
||
|
|
- `sfdc_ai__DefaultGPT41Mini` (GPT 4.1 Mini) - 32768 tokens
|
||
|
|
- `sfdc_ai__DefaultGPT4Omni` (GPT 4 Omni) - 16384 tokens
|
||
|
|
- `sfdc_ai__DefaultGPT4OmniMini` (GPT 4 Omni Mini) - 16384 tokens
|
||
|
|
- `sfdc_ai__DefaultGPT5` (GPT 5) - 128000 tokens
|
||
|
|
- `sfdc_ai__DefaultGPT5Mini` (GPT 5 Mini) - 128000 tokens
|
||
|
|
- `sfdc_ai__DefaultO3` (O3) - 100000 tokens
|
||
|
|
- `sfdc_ai__DefaultO4Mini` (O4 Mini) - 100000 tokens
|
||
|
|
- `sfdc_ai__DefaultOpenAIGPT4OmniMini` (OpenAI GPT 4 Omni Mini) - 16384 tokens
|
||
|
|
|
||
|
|
**Anthropic (via Amazon Bedrock):**
|
||
|
|
- `sfdc_ai__DefaultBedrockAnthropicClaude45Haiku` (Anthropic Claude Haiku 4.5 on Amazon) - 8192 tokens
|
||
|
|
- `sfdc_ai__DefaultBedrockAnthropicClaude45Sonnet` (Anthropic Claude Sonnet 4.5 on Amazon) - 8192 tokens
|
||
|
|
- `sfdc_ai__DefaultBedrockAnthropicClaude4Sonnet` (Anthropic Claude Sonnet 4 on Amazon) - 8192 tokens
|
||
|
|
|
||
|
|
**Google (via Vertex AI):**
|
||
|
|
- `sfdc_ai__DefaultVertexAIGemini25Flash001` (Google Gemini 2.5 Flash) - 65536 tokens
|
||
|
|
- `sfdc_ai__DefaultVertexAIGemini25FlashLite001` (Google Gemini 2.5 Flash Lite) - 65536 tokens
|
||
|
|
- `sfdc_ai__DefaultVertexAIGeminiPro25` (Google Gemini 2.5 Pro) - 65536 tokens
|
||
|
|
|
||
|
|
**Amazon:**
|
||
|
|
- `sfdc_ai__DefaultBedrockAmazonNovaLite` (Amazon Nova Lite) - 5000 tokens
|
||
|
|
- `sfdc_ai__DefaultBedrockAmazonNovaPro` (Amazon Nova Pro) - 5000 tokens
|
||
|
|
|
||
|
|
**Model Status Indicators:**
|
||
|
|
- **No prefix** = Active and recommended
|
||
|
|
- **(Disabled)** = Beta or disabled models
|
||
|
|
- **(Rerouted)** = Legacy models redirected to newer versions
|
||
|
|
- **(Deprecated)** = Older versions being phased out
|
||
|
|
|
||
|
|
### Get Evaluation Types
|
||
|
|
|
||
|
|
```
|
||
|
|
GET /evaluation-types
|
||
|
|
```
|
||
|
|
|
||
|
|
Returns available evaluation types.
|
||
|
|
|
||
|
|
**Response:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"types": [
|
||
|
|
{"name": "RESPONSE_MATCH", "label": null, "description": null},
|
||
|
|
{"name": "INSTRUCTION_FOLLOWING", "label": null, "description": null},
|
||
|
|
{"name": "ACTION_ASSERTION", "label": null, "description": null},
|
||
|
|
{"name": "TOPIC_ASSERTION", "label": null, "description": null},
|
||
|
|
{"name": "CUSTOM_LLM_EVALUATION", "label": null, "description": null},
|
||
|
|
{"name": "CONCISENESS", "label": null, "description": null},
|
||
|
|
{"name": "EXPRESSION_EVAL", "label": null, "description": null},
|
||
|
|
{"name": "FACTUALITY", "label": null, "description": null},
|
||
|
|
{"name": "BOT_RESPONSE_RATING", "label": null, "description": null},
|
||
|
|
{"name": "COMPLETENESS", "label": null, "description": null},
|
||
|
|
{"name": "LATENCY_ASSERTION", "label": null, "description": null},
|
||
|
|
{"name": "COHERENCE", "label": null, "description": null}
|
||
|
|
]
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**Note:** Returns `types` field (not `evaluationTypes`).
|
||
|
|
|
||
|
|
### Get Formula Functions
|
||
|
|
|
||
|
|
```
|
||
|
|
GET /formula-functions
|
||
|
|
```
|
||
|
|
|
||
|
|
Returns available formula functions for Formula columns.
|
||
|
|
|
||
|
|
### Get Formula Operators
|
||
|
|
|
||
|
|
```
|
||
|
|
GET /formula-operators
|
||
|
|
```
|
||
|
|
|
||
|
|
Returns available formula operators.
|
||
|
|
|
||
|
|
### Get Supported Types
|
||
|
|
|
||
|
|
```
|
||
|
|
GET /supported-types
|
||
|
|
```
|
||
|
|
|
||
|
|
Returns all supported types in Agentforce Grid.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## AI Generation Endpoints
|
||
|
|
|
||
|
|
### Create Column from Utterance
|
||
|
|
|
||
|
|
```
|
||
|
|
POST /worksheets/{worksheetId}/create-column-from-utterance
|
||
|
|
```
|
||
|
|
|
||
|
|
Uses AI to create a column based on natural language description.
|
||
|
|
|
||
|
|
**Request:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"utterance": "Create an AI column that summarizes the account description"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Generate SOQL from Natural Language
|
||
|
|
|
||
|
|
```
|
||
|
|
POST /generate-soql
|
||
|
|
```
|
||
|
|
|
||
|
|
Uses AI to generate SOQL from natural language.
|
||
|
|
|
||
|
|
**Request:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"text": "Get all accounts in the Technology industry"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**Response:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"soql": "SELECT Name, Id FROM Account WHERE Industry = 'Technology' LIMIT 50"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**Note:** Uses the `text` field (not `utterance` or `objectApiName`).
|
||
|
|
```
|
||
|
|
|
||
|
|
### Generate JSON Path
|
||
|
|
|
||
|
|
```
|
||
|
|
POST /worksheets/{worksheetId}/generate-json-path
|
||
|
|
```
|
||
|
|
|
||
|
|
Uses AI to generate JSON path for extracting fields.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Formula Operations
|
||
|
|
|
||
|
|
### Validate Formula
|
||
|
|
|
||
|
|
```
|
||
|
|
POST /worksheets/{worksheetId}/validate-formula
|
||
|
|
```
|
||
|
|
|
||
|
|
Validates a formula configuration.
|
||
|
|
|
||
|
|
**Request:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"formula": "CONCATENATE({$1}, ' ', {$2})",
|
||
|
|
"returnType": "string",
|
||
|
|
"referenceAttributes": [...]
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## List View Operations
|
||
|
|
|
||
|
|
### Get Available List Views
|
||
|
|
|
||
|
|
```
|
||
|
|
GET /list-views
|
||
|
|
```
|
||
|
|
|
||
|
|
Returns available list views.
|
||
|
|
|
||
|
|
### Get List View SOQL
|
||
|
|
|
||
|
|
```
|
||
|
|
GET /list-views/{listViewId}/soql
|
||
|
|
```
|
||
|
|
|
||
|
|
Returns the SOQL query for a list view.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Error Handling
|
||
|
|
|
||
|
|
All endpoints return standard error responses:
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"errorCode": "BAD_REQUEST",
|
||
|
|
"message": "Required parameter 'worksheetId' is missing"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**Common Error Codes:**
|
||
|
|
- `BAD_REQUEST` (400) - Invalid request parameters
|
||
|
|
- `UNAUTHORIZED` (401) - Authentication required
|
||
|
|
- `NOT_FOUND` (404) - Resource not found
|
||
|
|
- `INTERNAL_SERVER_ERROR` (500) - Server error
|