---
name: "salesforce_get"
area: "salesforce"
title: "Get a Salesforce record"
price: "free"
method: "POST"
url: "https://api.conecto.chat/v1/tools/salesforce_get"
mcp_server: "https://api.conecto.chat/mcp/salesforce"
auth: "Authorization: Bearer <conecto_sk_ key>"
docs_url: "https://conecto.chat/tools/salesforce/salesforce_get"
---

# Get a Salesforce record (`salesforce_get`)

One Salesforce record by object and id, with all its fields or the ones named.

One record by its object and id, with all its fields or the ones named. Free.

Price: Free up to 1,000,000 reads a month for the whole account, then $0.50 per 10,000 reads. A call that fails costs nothing.

## Use it when

A query found the record and the agent needs its details.

## Say this to your agent

> Show me the Hotel Seeblick combi steamer opportunity.

## Inputs

| Name | Type | Required | Description | Allowed values | Default |
|---|---|---|---|---|---|
| `object` | string | yes | The object's API name, like Account, Contact, Opportunity or Case. Matches ^[A-Za-z][A-Za-z0-9_]{0,79}$. |  |  |
| `id` | string | yes | The record's id. Matches ^[A-Za-z0-9]{15}([A-Za-z0-9]{3})?$. |  |  |
| `fields` | array of strings | no | The fields to show; all of them when left out. Up to 50 items. |  |  |

## Example

Written for Hansen & Voss, a restaurant-equipment wholesaler in Hamburg with 60 staff.

MCP: call `salesforce_get` on the MCP server `https://api.conecto.chat/mcp/salesforce` with these arguments:

```json
{
  "object": "Opportunity",
  "id": "0065g00000Xy1AbAAJ",
  "fields": [
    "Name",
    "StageName",
    "Amount",
    "CloseDate"
  ]
}
```

REST:

```bash
curl https://api.conecto.chat/v1/tools/salesforce_get \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"object": "Opportunity", "id": "0065g00000Xy1AbAAJ", "fields": ["Name", "StageName", "Amount", "CloseDate"]}'
```

## Response

```json
{
  "call_id": "5f0c8a2e-3b7d-4c1e-9a64-2d8e1f7b0c93",
  "tool": "salesforce_get",
  "status": "succeeded",
  "replayed": false,
  "cost_usd": "$0.00",
  "balance_usd": "$19.75",
  "result": {
    "record": {
      "Name": "Combi steamers",
      "StageName": "Proposal",
      "Amount": 18400,
      "CloseDate": "2026-11-09"
    }
  }
}
```

`result`: record: its fields.

## Errors

| Code | Status | When | Fix |
|---|---|---|---|
| `not_connected` | 409 | Salesforce isn't connected yet. | Connect it with salesforce_connect. |
| `vendor_rejected` | 502 | Salesforce refused: the app's keys, or the run-as user may not do that. | Give the run-as user the permission the message names. |
| `not_found` | 404 | Salesforce has no record with that object and id. | Query first and use its id. |
| `invalid_input` | 400 | Salesforce refused the query or the fields, or the object or id is not one. | Fix what the message names; field names are API names, like StageName. |

The refusals every tool can give (401 key, 402 balance, 429 limits) are on the errors page: https://conecto.chat/docs/errors.md

## Related

- [salesforce_connect](https://conecto.chat/tools/salesforce/salesforce_connect.md): Connects the company's Salesforce org through its own connected app. Free.
- [salesforce_query](https://conecto.chat/tools/salesforce/salesforce_query.md): Runs one SOQL SELECT statement and returns up to 200 records. Free up to 1,000,000 reads a month.
- [salesforce_create](https://conecto.chat/tools/salesforce/salesforce_create.md): Makes a record of any object the run-as user may create. $0.001 a call.
- [salesforce_update](https://conecto.chat/tools/salesforce/salesforce_update.md): Changes a Salesforce record's fields; waits for the owner by default. $0.001 a call.
- [salesforce_disconnect](https://conecto.chat/tools/salesforce/salesforce_disconnect.md): Forgets the connected app's secret; nothing in Salesforce changes. Free.
