---
title: Salesforce
description: Interact with Salesforce CRM
---

import { BlockInfoCard } from "@/components/ui/block-info-card"

<BlockInfoCard 
  type="salesforce"
  color="#FFFFFF"
/>

{/* MANUAL-CONTENT-START:intro */}
The [Salesforce](https://www.salesforce.com/) tool enables you to connect directly to your Salesforce CRM and perform a wide range of customer relationship management operations within your agentic workflows. With seamless and secure integration, you can efficiently access and automate key business processes across your sales, support, and marketing data.

With the Salesforce tool, you can:

- **Retrieve accounts**: Use the `salesforce_get_accounts` operation to fetch Accounts from Salesforce with custom filters, sorting, and field selection.
- **Create accounts**: Automatically add new Accounts to Salesforce using the `salesforce_create_account` operation, specifying details like name, industry, and billing address.
- **Manage contacts**: (If provided, similar tooling available for Contacts—add, update, or fetch contacts as needed.)
- **Handle leads & opportunities**: Integrate lead and opportunity management into your workflow, letting your agents capture, qualify, and update sales pipeline data.
- **Track cases & tasks**: Automate customer support and follow-up activities by interacting with Cases and Tasks within Salesforce.

The Salesforce tool is ideal for workflows where your agents need to streamline sales, account management, lead generation, and support operations. Whether your agents are syncing data across platforms, providing real-time customer insights, or automating routine CRM updates, the Salesforce tool brings the full power and extensibility of Salesforce into your programmatic, agent-driven processes.
{/* MANUAL-CONTENT-END */}


## Usage Instructions

Integrate Salesforce into your workflow. Manage accounts, contacts, leads, opportunities, cases, and tasks, run reports and SOQL queries, and manage org schema by creating custom fields and objects via the Tooling API.



## Actions

### `salesforce_get_accounts`

Retrieve accounts from Salesforce CRM

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | The ID token from Salesforce OAuth \(contains instance URL\) |
| `instanceUrl` | string | No | The Salesforce instance URL |
| `limit` | string | No | Maximum number of results \(default: 100, max: 2000\) |
| `fields` | string | No | Comma-separated field API names \(e.g., "Id,Name,Industry,Phone"\) |
| `orderBy` | string | No | Field and direction for sorting \(e.g., "Name ASC" or "CreatedDate DESC"\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Accounts data |
|   ↳ `paging` | object | Pagination information from Salesforce API |
|     ↳ `nextRecordsUrl` | string | URL to fetch the next batch of records \(present when done is false\) |
|     ↳ `totalSize` | number | Total number of records matching the query \(may exceed records returned\) |
|     ↳ `done` | boolean | Whether all records have been returned \(false if more batches exist\) |
|   ↳ `metadata` | object | Response metadata |
|     ↳ `totalReturned` | number | Number of records returned in this response |
|     ↳ `hasMore` | boolean | Whether more records exist \(inverse of done\) |
|   ↳ `accounts` | array | Array of account objects |
|   ↳ `success` | boolean | Salesforce operation success |

### `salesforce_create_account`

Create a new account in Salesforce CRM

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `name` | string | Yes | Account name \(required\) |
| `type` | string | No | Account type \(e.g., Customer, Partner, Prospect\) |
| `industry` | string | No | Industry \(e.g., Technology, Healthcare, Finance\) |
| `phone` | string | No | Phone number |
| `website` | string | No | Website URL |
| `billingStreet` | string | No | Billing street address |
| `billingCity` | string | No | Billing city |
| `billingState` | string | No | Billing state/province |
| `billingPostalCode` | string | No | Billing postal code |
| `billingCountry` | string | No | Billing country |
| `description` | string | No | Account description |
| `annualRevenue` | string | No | Annual revenue as a number |
| `numberOfEmployees` | string | No | Number of employees as an integer |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Created account data |
|   ↳ `id` | string | The Salesforce ID of the newly created record |
|   ↳ `success` | boolean | Whether the create operation was successful |
|   ↳ `created` | boolean | Whether the record was created \(always true on success\) |

### `salesforce_update_account`

Update an existing account in Salesforce CRM

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `accountId` | string | Yes | Salesforce Account ID to update \(18-character string starting with 001\) |
| `name` | string | No | Account name |
| `type` | string | No | Account type \(e.g., Customer, Partner, Prospect\) |
| `industry` | string | No | Industry \(e.g., Technology, Healthcare, Finance\) |
| `phone` | string | No | Phone number |
| `website` | string | No | Website URL |
| `billingStreet` | string | No | Billing street address |
| `billingCity` | string | No | Billing city |
| `billingState` | string | No | Billing state/province |
| `billingPostalCode` | string | No | Billing postal code |
| `billingCountry` | string | No | Billing country |
| `description` | string | No | Account description |
| `annualRevenue` | string | No | Annual revenue as a number |
| `numberOfEmployees` | string | No | Number of employees as an integer |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Updated account data |
|   ↳ `id` | string | The Salesforce ID of the updated record |
|   ↳ `updated` | boolean | Whether the record was updated \(always true on success\) |

### `salesforce_delete_account`

Delete an account from Salesforce CRM

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `accountId` | string | Yes | Salesforce Account ID to delete \(18-character string starting with 001\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Deleted account data |
|   ↳ `id` | string | The Salesforce ID of the deleted record |
|   ↳ `deleted` | boolean | Whether the record was deleted \(always true on success\) |

### `salesforce_get_contacts`

Get contact(s) from Salesforce - single contact if ID provided, or list if not

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `contactId` | string | No | Salesforce Contact ID \(18-character string starting with 003\) to get a single contact |
| `limit` | string | No | Maximum number of results \(default: 100, max: 2000\). Only for list query. |
| `fields` | string | No | Comma-separated field API names \(e.g., "Id,FirstName,LastName,Email,Phone"\) |
| `orderBy` | string | No | Field and direction for sorting \(e.g., "LastName ASC"\). Only for list query. |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Contact\(s\) data |
|   ↳ `paging` | object | Pagination information from Salesforce API |
|     ↳ `nextRecordsUrl` | string | URL to fetch the next batch of records \(present when done is false\) |
|     ↳ `totalSize` | number | Total number of records matching the query \(may exceed records returned\) |
|     ↳ `done` | boolean | Whether all records have been returned \(false if more batches exist\) |
|   ↳ `metadata` | object | Response metadata |
|     ↳ `totalReturned` | number | Number of records returned in this response |
|     ↳ `hasMore` | boolean | Whether more records exist \(inverse of done\) |
|   ↳ `contacts` | array | Array of contacts \(list query\) |
|   ↳ `contact` | object | Single contact \(by ID\) |
|   ↳ `singleContact` | boolean | Whether single contact was returned |
|   ↳ `success` | boolean | Salesforce operation success |

### `salesforce_create_contact`

Create a new contact in Salesforce CRM

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `lastName` | string | Yes | Last name \(required\) |
| `firstName` | string | No | First name |
| `email` | string | No | Email address |
| `phone` | string | No | Phone number |
| `accountId` | string | No | Salesforce Account ID \(18-character string starting with 001\) |
| `title` | string | No | No description |
| `department` | string | No | Department |
| `mailingStreet` | string | No | Mailing street |
| `mailingCity` | string | No | Mailing city |
| `mailingState` | string | No | Mailing state |
| `mailingPostalCode` | string | No | Mailing postal code |
| `mailingCountry` | string | No | Mailing country |
| `description` | string | No | Contact description |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Created contact data |
|   ↳ `id` | string | The Salesforce ID of the newly created record |
|   ↳ `success` | boolean | Whether the create operation was successful |
|   ↳ `created` | boolean | Whether the record was created \(always true on success\) |

### `salesforce_update_contact`

Update an existing contact in Salesforce CRM

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `contactId` | string | Yes | Salesforce Contact ID to update \(18-character string starting with 003\) |
| `lastName` | string | No | Last name |
| `firstName` | string | No | First name |
| `email` | string | No | Email address |
| `phone` | string | No | Phone number |
| `accountId` | string | No | Salesforce Account ID \(18-character string starting with 001\) |
| `title` | string | No | No description |
| `department` | string | No | Department |
| `mailingStreet` | string | No | Mailing street |
| `mailingCity` | string | No | Mailing city |
| `mailingState` | string | No | Mailing state |
| `mailingPostalCode` | string | No | Mailing postal code |
| `mailingCountry` | string | No | Mailing country |
| `description` | string | No | Contact description |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Updated contact data |
|   ↳ `id` | string | The Salesforce ID of the updated record |
|   ↳ `updated` | boolean | Whether the record was updated \(always true on success\) |

### `salesforce_delete_contact`

Delete a contact from Salesforce CRM

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `contactId` | string | Yes | Salesforce Contact ID to delete \(18-character string starting with 003\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Deleted contact data |
|   ↳ `id` | string | The Salesforce ID of the deleted record |
|   ↳ `deleted` | boolean | Whether the record was deleted \(always true on success\) |

### `salesforce_get_leads`

Retrieve lead(s) from Salesforce CRM

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `leadId` | string | No | Salesforce Lead ID \(18-character string starting with 00Q\) to get a single lead |
| `limit` | string | No | Maximum number of results to return \(default: 100\) |
| `fields` | string | No | Comma-separated list of field API names to return |
| `orderBy` | string | No | Field and direction for sorting \(e.g., LastName ASC\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Lead data |
|   ↳ `paging` | object | Pagination information from Salesforce API |
|     ↳ `nextRecordsUrl` | string | URL to fetch the next batch of records \(present when done is false\) |
|     ↳ `totalSize` | number | Total number of records matching the query \(may exceed records returned\) |
|     ↳ `done` | boolean | Whether all records have been returned \(false if more batches exist\) |
|   ↳ `metadata` | object | Response metadata |
|     ↳ `totalReturned` | number | Number of records returned in this response |
|     ↳ `hasMore` | boolean | Whether more records exist \(inverse of done\) |
|   ↳ `lead` | object | Single lead object \(when leadId provided\) |
|   ↳ `leads` | array | Array of lead objects \(when listing\) |
|   ↳ `singleLead` | boolean | Whether single lead was returned |
|   ↳ `success` | boolean | Operation success status |

### `salesforce_create_lead`

Create a new lead

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `lastName` | string | Yes | Last name \(required\) |
| `company` | string | Yes | Company name \(required\) |
| `firstName` | string | No | First name |
| `email` | string | No | Email address |
| `phone` | string | No | Phone number |
| `status` | string | No | Lead status \(e.g., Open, Working, Closed\) |
| `leadSource` | string | No | Lead source \(e.g., Web, Referral, Campaign\) |
| `title` | string | No | No description |
| `description` | string | No | Lead description |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Created lead data |
|   ↳ `id` | string | The Salesforce ID of the newly created record |
|   ↳ `success` | boolean | Whether the create operation was successful |
|   ↳ `created` | boolean | Whether the record was created \(always true on success\) |

### `salesforce_update_lead`

Update an existing lead

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `leadId` | string | Yes | Salesforce Lead ID to update \(18-character string starting with 00Q\) |
| `lastName` | string | No | Last name |
| `company` | string | No | Company name |
| `firstName` | string | No | First name |
| `email` | string | No | Email address |
| `phone` | string | No | Phone number |
| `status` | string | No | Lead status \(e.g., Open, Working, Closed\) |
| `leadSource` | string | No | Lead source \(e.g., Web, Referral, Campaign\) |
| `title` | string | No | No description |
| `description` | string | No | Lead description |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Updated lead data |
|   ↳ `id` | string | The Salesforce ID of the updated record |
|   ↳ `updated` | boolean | Whether the record was updated \(always true on success\) |

### `salesforce_delete_lead`

Delete a lead

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `leadId` | string | Yes | Salesforce Lead ID to delete \(18-character string starting with 00Q\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Deleted lead data |
|   ↳ `id` | string | The Salesforce ID of the deleted record |
|   ↳ `deleted` | boolean | Whether the record was deleted \(always true on success\) |

### `salesforce_get_opportunities`

Get opportunity(ies) from Salesforce

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `opportunityId` | string | No | Salesforce Opportunity ID \(18-character string starting with 006\) to get a single opportunity |
| `limit` | string | No | Maximum number of results to return \(default: 100\) |
| `fields` | string | No | Comma-separated list of field API names to return |
| `orderBy` | string | No | Field and direction for sorting \(e.g., CloseDate DESC\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Opportunity data |
|   ↳ `paging` | object | Pagination information from Salesforce API |
|     ↳ `nextRecordsUrl` | string | URL to fetch the next batch of records \(present when done is false\) |
|     ↳ `totalSize` | number | Total number of records matching the query \(may exceed records returned\) |
|     ↳ `done` | boolean | Whether all records have been returned \(false if more batches exist\) |
|   ↳ `metadata` | object | Response metadata |
|     ↳ `totalReturned` | number | Number of records returned in this response |
|     ↳ `hasMore` | boolean | Whether more records exist \(inverse of done\) |
|   ↳ `opportunity` | object | Single opportunity object \(when opportunityId provided\) |
|   ↳ `opportunities` | array | Array of opportunity objects \(when listing\) |
|   ↳ `success` | boolean | Operation success status |

### `salesforce_create_opportunity`

Create a new opportunity

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `name` | string | Yes | Opportunity name \(required\) |
| `stageName` | string | Yes | Stage name \(required, e.g., Prospecting, Qualification, Closed Won\) |
| `closeDate` | string | Yes | Close date in YYYY-MM-DD format \(required\) |
| `accountId` | string | No | Salesforce Account ID \(18-character string starting with 001\) |
| `amount` | string | No | Deal amount as a number |
| `probability` | string | No | Win probability as integer \(0-100\) |
| `description` | string | No | Opportunity description |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Created opportunity data |
|   ↳ `id` | string | The Salesforce ID of the newly created record |
|   ↳ `success` | boolean | Whether the create operation was successful |
|   ↳ `created` | boolean | Whether the record was created \(always true on success\) |

### `salesforce_update_opportunity`

Update an existing opportunity

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `opportunityId` | string | Yes | Salesforce Opportunity ID to update \(18-character string starting with 006\) |
| `name` | string | No | Opportunity name |
| `stageName` | string | No | Stage name \(e.g., Prospecting, Qualification, Closed Won\) |
| `closeDate` | string | No | Close date in YYYY-MM-DD format |
| `accountId` | string | No | Salesforce Account ID \(18-character string starting with 001\) |
| `amount` | string | No | Deal amount as a number |
| `probability` | string | No | Win probability as integer \(0-100\) |
| `description` | string | No | Opportunity description |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Updated opportunity data |
|   ↳ `id` | string | The Salesforce ID of the updated record |
|   ↳ `updated` | boolean | Whether the record was updated \(always true on success\) |

### `salesforce_delete_opportunity`

Delete an opportunity

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `opportunityId` | string | Yes | Salesforce Opportunity ID to delete \(18-character string starting with 006\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Deleted opportunity data |
|   ↳ `id` | string | The Salesforce ID of the deleted record |
|   ↳ `deleted` | boolean | Whether the record was deleted \(always true on success\) |

### `salesforce_get_cases`

Get case(s) from Salesforce

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `caseId` | string | No | Salesforce Case ID \(18-character string starting with 500\) to get a single case |
| `limit` | string | No | Maximum number of results to return \(default: 100\) |
| `fields` | string | No | Comma-separated list of field API names to return |
| `orderBy` | string | No | Field and direction for sorting \(e.g., CreatedDate DESC\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Case data |
|   ↳ `paging` | object | Pagination information from Salesforce API |
|     ↳ `nextRecordsUrl` | string | URL to fetch the next batch of records \(present when done is false\) |
|     ↳ `totalSize` | number | Total number of records matching the query \(may exceed records returned\) |
|     ↳ `done` | boolean | Whether all records have been returned \(false if more batches exist\) |
|   ↳ `metadata` | object | Response metadata |
|     ↳ `totalReturned` | number | Number of records returned in this response |
|     ↳ `hasMore` | boolean | Whether more records exist \(inverse of done\) |
|   ↳ `case` | object | Single case object \(when caseId provided\) |
|   ↳ `cases` | array | Array of case objects \(when listing\) |
|   ↳ `success` | boolean | Operation success status |

### `salesforce_create_case`

Create a new case

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `subject` | string | Yes | Case subject \(required\) |
| `status` | string | No | Status \(e.g., New, Working, Escalated\) |
| `priority` | string | No | Priority \(e.g., Low, Medium, High\) |
| `origin` | string | No | Origin \(e.g., Phone, Email, Web\) |
| `contactId` | string | No | Salesforce Contact ID \(18-character string starting with 003\) |
| `accountId` | string | No | Salesforce Account ID \(18-character string starting with 001\) |
| `description` | string | No | Case description |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Created case data |
|   ↳ `id` | string | The Salesforce ID of the newly created record |
|   ↳ `success` | boolean | Whether the create operation was successful |
|   ↳ `created` | boolean | Whether the record was created \(always true on success\) |

### `salesforce_update_case`

Update an existing case

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `caseId` | string | Yes | Salesforce Case ID to update \(18-character string starting with 500\) |
| `subject` | string | No | Case subject |
| `status` | string | No | Status \(e.g., New, Working, Escalated, Closed\) |
| `priority` | string | No | Priority \(e.g., Low, Medium, High\) |
| `origin` | string | No | Origin \(e.g., Phone, Email, Web\) |
| `contactId` | string | No | Salesforce Contact ID \(18-character string starting with 003\) |
| `accountId` | string | No | Salesforce Account ID \(18-character string starting with 001\) |
| `description` | string | No | Case description |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Updated case data |
|   ↳ `id` | string | The Salesforce ID of the updated record |
|   ↳ `updated` | boolean | Whether the record was updated \(always true on success\) |

### `salesforce_delete_case`

Delete a case

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `caseId` | string | Yes | Salesforce Case ID to delete \(18-character string starting with 500\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Deleted case data |
|   ↳ `id` | string | The Salesforce ID of the deleted record |
|   ↳ `deleted` | boolean | Whether the record was deleted \(always true on success\) |

### `salesforce_get_tasks`

Get task(s) from Salesforce

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `taskId` | string | No | Salesforce Task ID \(18-character string starting with 00T\) to get a single task |
| `limit` | string | No | Maximum number of results to return \(default: 100\) |
| `fields` | string | No | Comma-separated list of field API names to return |
| `orderBy` | string | No | Field and direction for sorting \(e.g., ActivityDate DESC\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Task data |
|   ↳ `paging` | object | Pagination information from Salesforce API |
|     ↳ `nextRecordsUrl` | string | URL to fetch the next batch of records \(present when done is false\) |
|     ↳ `totalSize` | number | Total number of records matching the query \(may exceed records returned\) |
|     ↳ `done` | boolean | Whether all records have been returned \(false if more batches exist\) |
|   ↳ `metadata` | object | Response metadata |
|     ↳ `totalReturned` | number | Number of records returned in this response |
|     ↳ `hasMore` | boolean | Whether more records exist \(inverse of done\) |
|   ↳ `task` | object | Single task object \(when taskId provided\) |
|   ↳ `tasks` | array | Array of task objects \(when listing\) |
|   ↳ `success` | boolean | Operation success status |

### `salesforce_create_task`

Create a new task

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `subject` | string | Yes | Task subject \(required\) |
| `status` | string | No | Status \(e.g., Not Started, In Progress, Completed\) |
| `priority` | string | No | Priority \(e.g., Low, Normal, High\) |
| `activityDate` | string | No | Due date in YYYY-MM-DD format |
| `whoId` | string | No | Related Contact ID \(003...\) or Lead ID \(00Q...\) |
| `whatId` | string | No | Related Account ID \(001...\) or Opportunity ID \(006...\) |
| `description` | string | No | Task description |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Created task data |
|   ↳ `id` | string | The Salesforce ID of the newly created record |
|   ↳ `success` | boolean | Whether the create operation was successful |
|   ↳ `created` | boolean | Whether the record was created \(always true on success\) |

### `salesforce_update_task`

Update an existing task

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `taskId` | string | Yes | Salesforce Task ID to update \(18-character string starting with 00T\) |
| `subject` | string | No | Task subject |
| `status` | string | No | Status \(e.g., Not Started, In Progress, Completed\) |
| `priority` | string | No | Priority \(e.g., Low, Normal, High\) |
| `activityDate` | string | No | Due date in YYYY-MM-DD format |
| `whoId` | string | No | Related Contact ID \(003...\) or Lead ID \(00Q...\) |
| `whatId` | string | No | Related Account ID \(001...\) or Opportunity ID \(006...\) |
| `description` | string | No | Task description |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Updated task data |
|   ↳ `id` | string | The Salesforce ID of the updated record |
|   ↳ `updated` | boolean | Whether the record was updated \(always true on success\) |

### `salesforce_delete_task`

Delete a task

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `taskId` | string | Yes | Salesforce Task ID to delete \(18-character string starting with 00T\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Deleted task data |
|   ↳ `id` | string | The Salesforce ID of the deleted record |
|   ↳ `deleted` | boolean | Whether the record was deleted \(always true on success\) |

### `salesforce_list_reports`

Get a list of up to 200 recently viewed reports for the current user

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `searchTerm` | string | No | Filter reports by name \(case-insensitive partial match\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Reports data |
|   ↳ `totalReturned` | number | Number of items returned |
|   ↳ `success` | boolean | Salesforce operation success |
|   ↳ `reports` | array | Array of report objects |

### `salesforce_get_report`

Get the describe (definition and metadata) for a specific report

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `reportId` | string | Yes | Salesforce Report ID \(18-character string starting with 00O\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Report metadata |
|   ↳ `report` | object | Report metadata object |
|   ↳ `reportId` | string | Report ID |
|   ↳ `success` | boolean | Salesforce operation success |

### `salesforce_run_report`

Execute a report and retrieve the results

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `reportId` | string | Yes | Salesforce Report ID \(18-character string starting with 00O\) |
| `includeDetails` | string | No | Include detail rows \(true/false, default: true\) |
| `filters` | string | No | JSON array of report filter objects to apply |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Report results |
|   ↳ `reportId` | string | Report ID |
|   ↳ `reportMetadata` | object | Report metadata including name, format, and filter definitions |
|   ↳ `reportExtendedMetadata` | object | Extended metadata for aggregate columns and groupings |
|   ↳ `factMap` | object | Report data organized by groupings with aggregates and row data |
|   ↳ `groupingsDown` | object | Row grouping hierarchy and values |
|   ↳ `groupingsAcross` | object | Column grouping hierarchy and values |
|   ↳ `hasDetailRows` | boolean | Whether the report includes detail-level row data |
|   ↳ `allData` | boolean | Whether all data is returned \(false if truncated due to size limits\) |
|   ↳ `reportName` | string | Display name of the report |
|   ↳ `reportFormat` | string | Report format type \(TABULAR, SUMMARY, MATRIX, JOINED\) |
|   ↳ `success` | boolean | Salesforce operation success |

### `salesforce_list_report_types`

Get a list of available report types

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Report types data |
|   ↳ `totalReturned` | number | Number of items returned |
|   ↳ `success` | boolean | Salesforce operation success |
|   ↳ `reportTypes` | array | Array of report type objects |

### `salesforce_list_dashboards`

Get a list of recently used dashboards for the current user

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Dashboards data |
|   ↳ `totalReturned` | number | Number of items returned |
|   ↳ `success` | boolean | Salesforce operation success |
|   ↳ `dashboards` | array | Array of dashboard objects |

### `salesforce_get_dashboard`

Get details and results for a specific dashboard

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `dashboardId` | string | Yes | Salesforce Dashboard ID \(18-character string starting with 01Z\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Dashboard data |
|   ↳ `dashboard` | object | Full dashboard details object |
|   ↳ `dashboardId` | string | Dashboard ID |
|   ↳ `components` | array | Array of dashboard component data with visualizations and filters |
|   ↳ `dashboardName` | string | Display name of the dashboard |
|   ↳ `dashboardMetadata` | object | Structured dashboard metadata \(attributes, component definitions, layout\) |
|   ↳ `runningUser` | object | User context under which the dashboard data was retrieved |
|   ↳ `success` | boolean | Salesforce operation success |

### `salesforce_refresh_dashboard`

Refresh a dashboard to get the latest data

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `dashboardId` | string | Yes | Salesforce Dashboard ID \(18-character string starting with 01Z\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Refreshed dashboard data |
|   ↳ `dashboard` | object | Full dashboard details object |
|   ↳ `dashboardId` | string | Dashboard ID |
|   ↳ `components` | array | Array of dashboard component data with fresh visualizations |
|   ↳ `status` | object | Dashboard refresh status \(dashboardStatus\), when returned by the refresh |
|   ↳ `statusUrl` | string | URL of the status resource to poll for refresh completion |
|   ↳ `dashboardName` | string | Display name of the dashboard |
|   ↳ `dashboardMetadata` | object | Structured dashboard metadata \(attributes, component definitions, layout\) |
|   ↳ `success` | boolean | Salesforce operation success |

### `salesforce_query`

Execute a custom SOQL query to retrieve data from Salesforce

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `query` | string | Yes | SOQL query to execute \(e.g., SELECT Id, Name FROM Account LIMIT 10\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Query results |
|   ↳ `records` | array | Array of sObject records matching the query |
|   ↳ `query` | string | The executed SOQL query |
|   ↳ `metadata` | object | Response metadata |
|     ↳ `totalReturned` | number | Number of records returned in this response |
|     ↳ `hasMore` | boolean | Whether more records exist \(inverse of done\) |
|   ↳ `success` | boolean | Salesforce operation success |

### `salesforce_query_more`

Retrieve additional query results using the nextRecordsUrl from a previous query

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `nextRecordsUrl` | string | Yes | The nextRecordsUrl value from a previous query response \(e.g., /services/data/v59.0/query/01g...\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Query results |
|   ↳ `records` | array | Array of sObject records matching the query |
|   ↳ `metadata` | object | Response metadata |
|     ↳ `totalReturned` | number | Number of records returned in this response |
|     ↳ `hasMore` | boolean | Whether more records exist \(inverse of done\) |
|   ↳ `success` | boolean | Salesforce operation success |

### `salesforce_describe_object`

Get metadata and field information for a Salesforce object

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `objectName` | string | Yes | Salesforce object API name \(e.g., Account, Contact, Lead, Custom_Object__c\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Object metadata |
|   ↳ `objectName` | string | API name of the object \(e.g., Account, Contact\) |
|   ↳ `label` | string | Human-readable singular label for the object |
|   ↳ `labelPlural` | string | Human-readable plural label for the object |
|   ↳ `fields` | array | Array of field metadata objects |
|     ↳ `name` | string | API name of the field |
|     ↳ `label` | string | Display label of the field |
|     ↳ `type` | string | Field data type \(string, boolean, int, double, date, etc.\) |
|     ↳ `length` | number | Maximum length for text fields |
|     ↳ `precision` | number | Precision for numeric fields |
|     ↳ `scale` | number | Scale for numeric fields |
|     ↳ `nillable` | boolean | Whether the field can be null |
|     ↳ `unique` | boolean | Whether values must be unique |
|     ↳ `createable` | boolean | Whether field can be set on create |
|     ↳ `updateable` | boolean | Whether field can be updated |
|     ↳ `defaultedOnCreate` | boolean | Whether field has default value on create |
|     ↳ `calculated` | boolean | Whether field is a formula field |
|     ↳ `autoNumber` | boolean | Whether field is auto-number |
|     ↳ `externalId` | boolean | Whether field is an external ID |
|     ↳ `idLookup` | boolean | Whether field can be used in ID lookup |
|     ↳ `inlineHelpText` | string | Help text for the field |
|     ↳ `picklistValues` | array | Available picklist values for picklist fields |
|     ↳ `referenceTo` | array | Objects this field can reference \(for lookup fields\) |
|     ↳ `relationshipName` | string | Relationship name for lookup fields |
|     ↳ `custom` | boolean | Whether this is a custom field |
|     ↳ `filterable` | boolean | Whether field can be used in SOQL filter |
|     ↳ `groupable` | boolean | Whether field can be used in GROUP BY |
|     ↳ `sortable` | boolean | Whether field can be used in ORDER BY |
|   ↳ `keyPrefix` | string | Three-character prefix used in record IDs \(e.g., "001" for Account\) |
|   ↳ `queryable` | boolean | Whether the object can be queried via SOQL |
|   ↳ `createable` | boolean | Whether records can be created for this object |
|   ↳ `updateable` | boolean | Whether records can be updated for this object |
|   ↳ `deletable` | boolean | Whether records can be deleted for this object |
|   ↳ `childRelationships` | array | Array of child relationship metadata for related objects |
|   ↳ `recordTypeInfos` | array | Array of record type information for the object |
|   ↳ `fieldCount` | number | Total number of fields on the object |
|   ↳ `success` | boolean | Salesforce operation success |

### `salesforce_list_objects`

Get a list of all available Salesforce objects

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Objects list |
|   ↳ `objects` | array | Array of sObject metadata |
|     ↳ `name` | string | API name of the object |
|     ↳ `label` | string | Display label of the object |
|     ↳ `labelPlural` | string | Plural display label |
|     ↳ `keyPrefix` | string | Three-character ID prefix |
|     ↳ `custom` | boolean | Whether this is a custom object |
|     ↳ `queryable` | boolean | Whether object can be queried |
|     ↳ `createable` | boolean | Whether records can be created |
|     ↳ `updateable` | boolean | Whether records can be updated |
|     ↳ `deletable` | boolean | Whether records can be deleted |
|     ↳ `searchable` | boolean | Whether object is searchable |
|     ↳ `triggerable` | boolean | Whether triggers are supported |
|     ↳ `layoutable` | boolean | Whether page layouts are supported |
|     ↳ `replicateable` | boolean | Whether object can be replicated |
|     ↳ `retrieveable` | boolean | Whether records can be retrieved |
|     ↳ `undeletable` | boolean | Whether records can be undeleted |
|     ↳ `urls` | object | URLs for accessing object resources |
|   ↳ `encoding` | string | Character encoding for the organization \(e.g., UTF-8\) |
|   ↳ `maxBatchSize` | number | Maximum number of records that can be returned in a single query batch \(typically 200\) |
|   ↳ `totalReturned` | number | Number of objects returned |
|   ↳ `success` | boolean | Salesforce operation success |

### `salesforce_create_custom_field`

Create a custom field on a Salesforce object (e.g., Account) using the Tooling API

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `objectName` | string | Yes | API name of the object to add the field to \(e.g., Account, Contact, Lead, MyObject__c\) |
| `fieldName` | string | Yes | API name of the new field; the __c suffix is added automatically \(e.g., Region\) |
| `label` | string | No | Display label shown in the UI \(defaults to the field name when omitted\) |
| `fieldType` | string | Yes | Field data type: Text, TextArea, LongTextArea, Html, Number, Currency, Percent, Checkbox, Date, DateTime, Time, Phone, Email, Url, Picklist, or MultiselectPicklist |
| `length` | number | No | Maximum length for Text \(1-255\), LongTextArea, Html, or MultiselectPicklist fields |
| `precision` | number | No | Total number of digits for Number, Currency, or Percent fields \(1-18\) |
| `scale` | number | No | Number of digits to the right of the decimal for numeric fields |
| `visibleLines` | number | No | Number of visible lines for LongTextArea, Html, or MultiselectPicklist fields |
| `required` | boolean | No | Whether the field is required on record create/edit |
| `unique` | boolean | No | Whether the field enforces unique values |
| `externalId` | boolean | No | Whether the field is an external ID \(for Text, Number, or Email fields\) |
| `defaultValue` | string | No | Default value; for Checkbox fields use true or false |
| `description` | string | No | Internal description of the field |
| `inlineHelpText` | string | No | Help text shown next to the field in the UI |
| `picklistValues` | string | No | Comma-separated values for Picklist or MultiselectPicklist fields |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Created custom field metadata |
|   ↳ `id` | string | Tooling API Id of the newly created custom field |
|   ↳ `fullName` | string | Full API name of the field, including object \(e.g., Account.Region__c\) |
|   ↳ `success` | boolean | Whether the create operation was successful |
|   ↳ `created` | boolean | Whether the field was created \(always true on success\) |

### `salesforce_update_custom_field`

Update an existing custom field on a Salesforce object using the Tooling API

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `fieldId` | string | Yes | Tooling API Id of the custom field to update \(find it via the Tooling Query tool\) |
| `label` | string | No | Display label shown in the UI |
| `length` | number | No | Maximum length for Text, LongTextArea, Html, or MultiselectPicklist fields |
| `precision` | number | No | Total number of digits for Number, Currency, or Percent fields |
| `scale` | number | No | Number of digits to the right of the decimal for numeric fields |
| `visibleLines` | number | No | Number of visible lines for LongTextArea, Html, or MultiselectPicklist fields |
| `required` | boolean | No | Whether the field is required on record create/edit |
| `unique` | boolean | No | Whether the field enforces unique values |
| `externalId` | boolean | No | Whether the field is an external ID |
| `defaultValue` | string | No | Default value; for Checkbox fields use true or false |
| `description` | string | No | Internal description of the field |
| `inlineHelpText` | string | No | Help text shown next to the field in the UI |
| `picklistValues` | string | No | Comma-separated values to add to a Picklist or MultiselectPicklist field \(existing values are kept\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Updated custom field metadata |
|   ↳ `id` | string | Tooling API Id of the updated custom field |
|   ↳ `updated` | boolean | Whether the field was updated \(always true on success\) |

### `salesforce_delete_custom_field`

Delete a custom field from a Salesforce object using the Tooling API

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `fieldId` | string | Yes | Tooling API Id of the custom field to delete \(find it via the Tooling Query tool\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Deleted custom field metadata |
|   ↳ `id` | string | Tooling API Id of the deleted custom field |
|   ↳ `deleted` | boolean | Whether the field was deleted \(always true on success\) |

### `salesforce_create_custom_object`

Create a custom object in Salesforce using the Tooling API

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `objectName` | string | Yes | API name of the new object; the __c suffix is added automatically \(e.g., Project\) |
| `label` | string | Yes | Singular display label for the object \(e.g., Project\) |
| `pluralLabel` | string | Yes | Plural display label for the object \(e.g., Projects\) |
| `nameFieldLabel` | string | No | Label for the standard Name field \(defaults to "&lt;label&gt; Name"\) |
| `description` | string | No | Internal description of the object |
| `sharingModel` | string | No | Org-wide sharing model: ReadWrite, Read, Private, or ControlledByParent \(default ReadWrite\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Created custom object metadata |
|   ↳ `id` | string | Tooling API Id of the newly created custom object |
|   ↳ `fullName` | string | Full API name of the object \(e.g., Project__c\) |
|   ↳ `success` | boolean | Whether the create operation was successful |
|   ↳ `created` | boolean | Whether the object was created \(always true on success\) |

### `salesforce_tooling_query`

Execute a SOQL query against the Tooling API to inspect metadata objects

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `query` | string | Yes | Tooling SOQL query \(e.g., SELECT Id, DeveloperName FROM CustomField WHERE TableEnumOrId = 'Account'\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Tooling query results |
|   ↳ `records` | array | Array of Tooling API records matching the query |
|   ↳ `query` | string | The executed Tooling SOQL query |
|   ↳ `metadata` | object | Response metadata |
|     ↳ `totalReturned` | number | Number of records returned in this response |
|     ↳ `hasMore` | boolean | Whether more records exist \(inverse of done\) |
|   ↳ `success` | boolean | Salesforce operation success |



## Triggers

A **Trigger** is a block that starts a workflow when an event happens in this service.

### Salesforce Case Status Changed

Trigger workflow when a case status changes

#### Configuration

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `webhookSecret` | string | Yes | Required. Use the same value in your Salesforce HTTP Callout as Bearer token or X-Sim-Webhook-Secret. |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `eventType` | string | The type of event |
| `simEventType` | string | Optional alias from the payload \(`simEventType`\). Empty when only `eventType` is sent. |
| `objectType` | string | Salesforce object type \(Case\) |
| `recordId` | string | Case ID |
| `timestamp` | string | When the event occurred \(ISO 8601\) |
| `record` | object | record output from the tool |
|   ↳ `Id` | string | Case ID |
|   ↳ `Subject` | string | Case subject |
|   ↳ `Status` | string | Current case status |
|   ↳ `Priority` | string | Case priority |
|   ↳ `CaseNumber` | string | Case number |
|   ↳ `AccountId` | string | Related Account ID |
|   ↳ `ContactId` | string | Related Contact ID |
|   ↳ `OwnerId` | string | Case owner ID |
| `previousStatus` | string | Previous case status |
| `newStatus` | string | New case status |
| `payload` | json | Full webhook payload |


---

### Salesforce Opportunity Stage Changed

Trigger workflow when an opportunity stage changes

#### Configuration

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `webhookSecret` | string | Yes | Required. Use the same value in your Salesforce HTTP Callout as Bearer token or X-Sim-Webhook-Secret. |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `eventType` | string | The type of event |
| `simEventType` | string | Optional alias from the payload \(`simEventType`\). Empty when only `eventType` is sent. |
| `objectType` | string | Salesforce object type \(Opportunity\) |
| `recordId` | string | Opportunity ID |
| `timestamp` | string | When the event occurred \(ISO 8601\) |
| `record` | object | record output from the tool |
|   ↳ `Id` | string | Opportunity ID |
|   ↳ `Name` | string | Opportunity name |
|   ↳ `StageName` | string | Current stage name |
|   ↳ `Amount` | string | Deal amount |
|   ↳ `CloseDate` | string | Expected close date |
|   ↳ `Probability` | string | Win probability |
|   ↳ `AccountId` | string | Related Account ID \(standard Opportunity field\) |
|   ↳ `OwnerId` | string | Opportunity owner ID |
| `previousStage` | string | Previous stage name |
| `newStage` | string | New stage name |
| `payload` | json | Full webhook payload |


---

### Salesforce Record Created

Trigger workflow when a Salesforce record is created

#### Configuration

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `webhookSecret` | string | Yes | Required. Use the same value in your Salesforce HTTP Callout as Bearer token or X-Sim-Webhook-Secret. |
| `objectType` | string | No | When set, the payload must include matching object type metadata \(for example objectType, sobjectType, or attributes.type\) or the event is rejected. |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `eventType` | string | The type of event \(e.g., created, updated, deleted\) |
| `simEventType` | string | Optional alias from the payload \(`simEventType`\). Empty when only `eventType` is sent. |
| `objectType` | string | Salesforce object type \(e.g., Account, Contact, Lead\) |
| `recordId` | string | ID of the affected record |
| `timestamp` | string | When the event occurred \(ISO 8601\) |
| `record` | object | record output from the tool |
|   ↳ `Id` | string | Record ID |
|   ↳ `Name` | string | Record name |
|   ↳ `CreatedDate` | string | Record creation date |
|   ↳ `LastModifiedDate` | string | Last modification date |
|   ↳ `OwnerId` | string | Record owner ID \(standard field when sent in the Flow body\) |
|   ↳ `SystemModstamp` | string | System modstamp from the record \(ISO 8601\) when included in the payload |
| `changedFields` | json | Fields that were changed \(for update events\) |
| `payload` | json | Full webhook payload |


---

### Salesforce Record Deleted

Trigger workflow when a Salesforce record is deleted

#### Configuration

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `webhookSecret` | string | Yes | Required. Use the same value in your Salesforce HTTP Callout as Bearer token or X-Sim-Webhook-Secret. |
| `objectType` | string | No | When set, the payload must include matching object type metadata \(for example objectType, sobjectType, or attributes.type\) or the event is rejected. |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `eventType` | string | The type of event \(e.g., created, updated, deleted\) |
| `simEventType` | string | Optional alias from the payload \(`simEventType`\). Empty when only `eventType` is sent. |
| `objectType` | string | Salesforce object type \(e.g., Account, Contact, Lead\) |
| `recordId` | string | ID of the affected record |
| `timestamp` | string | When the event occurred \(ISO 8601\) |
| `record` | object | record output from the tool |
|   ↳ `Id` | string | Record ID |
|   ↳ `Name` | string | Record name |
|   ↳ `CreatedDate` | string | Record creation date |
|   ↳ `LastModifiedDate` | string | Last modification date |
|   ↳ `OwnerId` | string | Record owner ID \(standard field when sent in the Flow body\) |
|   ↳ `SystemModstamp` | string | System modstamp from the record \(ISO 8601\) when included in the payload |
| `changedFields` | json | Fields that were changed \(for update events\) |
| `payload` | json | Full webhook payload |


---

### Salesforce Record Updated

Trigger workflow when a Salesforce record is updated

#### Configuration

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `webhookSecret` | string | Yes | Required. Use the same value in your Salesforce HTTP Callout as Bearer token or X-Sim-Webhook-Secret. |
| `objectType` | string | No | When set, the payload must include matching object type metadata \(for example objectType, sobjectType, or attributes.type\) or the event is rejected. |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `eventType` | string | The type of event \(e.g., created, updated, deleted\) |
| `simEventType` | string | Optional alias from the payload \(`simEventType`\). Empty when only `eventType` is sent. |
| `objectType` | string | Salesforce object type \(e.g., Account, Contact, Lead\) |
| `recordId` | string | ID of the affected record |
| `timestamp` | string | When the event occurred \(ISO 8601\) |
| `record` | object | record output from the tool |
|   ↳ `Id` | string | Record ID |
|   ↳ `Name` | string | Record name |
|   ↳ `CreatedDate` | string | Record creation date |
|   ↳ `LastModifiedDate` | string | Last modification date |
|   ↳ `OwnerId` | string | Record owner ID \(standard field when sent in the Flow body\) |
|   ↳ `SystemModstamp` | string | System modstamp from the record \(ISO 8601\) when included in the payload |
| `changedFields` | json | Fields that were changed \(for update events\) |
| `payload` | json | Full webhook payload |


---

### Salesforce Webhook (All Events)

Trigger workflow on any Salesforce webhook event

#### Configuration

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `webhookSecret` | string | Yes | Required. Use the same value in your Salesforce HTTP Callout as Bearer token or X-Sim-Webhook-Secret. |
| `objectType` | string | No | When set, the payload must include matching object type metadata \(for example objectType, sobjectType, or attributes.type\) or the event is rejected. |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `eventType` | string | The type of event |
| `simEventType` | string | Optional alias from the payload \(`simEventType`\). Empty when only `eventType` is sent. |
| `objectType` | string | Salesforce object type |
| `recordId` | string | ID of the affected record |
| `timestamp` | string | When the event occurred \(ISO 8601\) |
| `record` | json | Full record data |
| `payload` | json | Full webhook payload |

