> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.deepmask.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Datensätze speichern

`salesforce_save_records`

Erstellen, aktualisieren oder upserten Sie **1–25** Datensätze eines einzelnen Objekts. Feldnamen akzeptieren Bezeichnungen oder API-Namen. Werte werden gegen das Objektschema und die Auswahllisten geprüft. Aktualisierungen enthalten eine Vorher→Nachher-Differenz.

<Warning>
  **Zuerst Vorschau** mit `dry_run: true`, zeigen Sie dem Nutzer die Differenz, rufen Sie dann erneut mit `confirm: true` auf. Bestätigung ist erforderlich für `update`, `upsert` und das Erstellen mehrerer Datensätze (`create`). Das Erstellen eines einzelnen Datensatzes erfordert keine Bestätigung. Es gibt **kein Löschen**.
</Warning>

Salesforce-Automatisierung (Trigger, Flows, Zuweisungsregeln) kann nach dem Speichern weitere Felder ändern. Lesen Sie den Datensatz mit [`salesforce_get_record_overview`](/de/connectors/Salesforce/get-record-overview) erneut, um die endgültigen Werte zu erhalten.

## Parameter

| Parameter | Typ | Erforderlich | Beschreibung |
| - | - | - | - |
| `action` | `"create"` \| `"update"` \| `"upsert"` | Ja | Der Schreibvorgang. |
| `object` | string | Nein | Objektbezeichnung oder API-Name. Optional bei `update` (aus IDs abgeleitet). |
| `records` | Array (1–25) | Ja | Jedes Element: `fields` (erforderlich), plus `record_id` (update), `external_id` (upsert), optional `expected_last_modified`. |
| `records[].fields` | object | Ja | Werte nach Bezeichnung oder API-Name. Datumsangaben `YYYY-MM-DD`, Datetimes ISO-8601, Mehrfachauswahllisten als Array, `null` leert ein Feld. |
| `records[].record_id` | string | Nein | 15/18-stellige ID zum Aktualisieren. |
| `records[].external_id` | string | Nein | External-ID-Wert für Upsert. |
| `records[].expected_last_modified` | string | Nein | Zuletzt gelesenes `LastModifiedDate` (ISO-8601). Die Aktualisierung wird abgelehnt, wenn sich der Datensatz seither geändert hat. |
| `external_id_field` | string | Nein | Für Upsert: das External-ID- (oder Id-)Feld, nach dem abgeglichen wird. |
| `record_type` | string | Nein | Datensatztyp-Name, Entwicklername oder ID (create). |
| `all_or_none` | boolean | Nein | Den gesamten Stapel zurückrollen, wenn ein Datensatz fehlschlägt. Standard: `true`. |
| `allow_duplicates` | boolean | Nein | Speichern, auch wenn Duplikatregeln greifen. |
| `dry_run` | boolean | Nein | Nur prüfen und Vorschau; nichts wird geschrieben. |
| `confirm` | `true` | Bedingt | Erforderlich für Aktualisierung, Upsert und das Erstellen mehrerer Datensätze. |
| `response_format` | `"markdown"` \| `"json"` | Nein | Standard: `"markdown"`. |

## Rückgabewert

`status` ist einer von: `preview`, `created`, `updated`, `no_changes`, `partial`, `failed`.

Bei `partial` prüfen Sie Erfolg/Fehler jeder Zeile. Die strukturierten Daten enthalten neue IDs und `web_url`-Links.

## Beispielverwendung

> „Zeige eine Vorschau, wie sich die Branche von Edge Communications zu Manufacturing ändert, und wende es an, wenn ich zustimme."

> „Erstelle einen Kontakt Jane Doe unter dem Account Edge Communications."
