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

# salesforce

> Objects, queries, records, and reports

**Server path:** `/salesforce` | **Type:** Application | **PCID required:** Yes

## Tools

| Tool                                                          | Description                                                                                                                                                                                                                                                                                                                                            |
| ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [`salesforce_query`](#salesforce_query)                       | Execute SOQL queries to search, filter, and retrieve records from any Salesforce object. Supports pagination for large result sets. Use for finding records, aggregations, and custom data retrieval. Actions: query (execute SOQL), query\_more (get next page of results).                                                                           |
| [`salesforce_search`](#salesforce_search)                     | Execute SOSL queries for global search across multiple objects. More efficient than SOQL for text-based searches across many objects.                                                                                                                                                                                                                  |
| [`salesforce_records`](#salesforce_records)                   | Perform CRUD operations on any Salesforce object. Generic interface for all standard and custom objects. Use upsert to insert or update based on external ID. Actions: create, update, delete, get, clone, upsert. Note: Uses Salesforce API v65.0. The get/clone actions retrieve limited fields; use salesforce\_query for specific field selection. |
| [`salesforce_describe`](#salesforce_describe)                 | Get metadata about Salesforce objects and the org. Includes available fields, field types, picklist values, relationships, and permissions. Actions: describe\_object, list\_objects, describe\_global.                                                                                                                                                |
| [`salesforce_metadata`](#salesforce_metadata)                 | Retrieve Salesforce org metadata including API limits, org details, and current user information. Essential for monitoring and governance. Actions: get\_limits, get\_org\_info, get\_user\_info.                                                                                                                                                      |
| [`salesforce_accounts`](#salesforce_accounts)                 | Manage Account records with simplified interface. List accounts with common filters, create new accounts, or update existing account information. Actions: list, create, update, get.                                                                                                                                                                  |
| [`salesforce_contacts`](#salesforce_contacts)                 | Manage Contact records. List contacts with filters, create new contacts with account associations, or update contact information. Actions: list, create, update, get.                                                                                                                                                                                  |
| [`salesforce_leads`](#salesforce_leads)                       | Manage Lead records. List leads, create new leads, update lead info, or convert qualified leads into Account/Contact/Opportunity. Actions: list, create, update, get, convert.                                                                                                                                                                         |
| [`salesforce_opportunities`](#salesforce_opportunities)       | Manage Opportunity records. List opportunities, create new deals, update opportunity stages and details, or quickly close as won/lost. Actions: list, create, update, get, close\_won, close\_lost.                                                                                                                                                    |
| [`salesforce_cases`](#salesforce_cases)                       | Manage Case records for customer support. List cases, create new cases, update case details, or close resolved cases. Actions: list, create, update, get, close.                                                                                                                                                                                       |
| [`salesforce_bulk`](#salesforce_bulk)                         | Perform bulk operations using Salesforce Bulk API 2.0 for processing large data volumes (10,000+ records). Asynchronous operations with job status tracking. Actions: bulk\_create, bulk\_update, bulk\_delete, get\_job\_status.                                                                                                                      |
| [`salesforce_batch`](#salesforce_batch)                       | Perform batch operations on multiple records (up to 2,000) in a single API call. Synchronous operations with immediate results. Actions: batch\_create, batch\_update, batch\_delete.                                                                                                                                                                  |
| [`salesforce_merge`](#salesforce_merge)                       | Merge duplicate Account, Contact, or Lead records into a master record. Automatically reassigns child records (opportunities, cases, activities, etc.) to the master.                                                                                                                                                                                  |
| [`salesforce_flows`](#salesforce_flows)                       | Manage Salesforce Flows. List available auto-launched flows, trigger/run flows with input variables, check execution status, or cancel running flows. Actions: list, trigger, get\_status, cancel.                                                                                                                                                     |
| [`salesforce_approvals`](#salesforce_approvals)               | Manage approval processes. List approval processes, submit records for approval, approve/reject pending approvals, or recall submitted approvals. Actions: list\_processes, submit, approve, reject, recall, list\_pending.                                                                                                                            |
| [`salesforce_record_types`](#salesforce_record_types)         | Query and manage record types. Get available record types for an object, retrieve record type details, or filter records by record type. Actions: list, get, get\_by\_object.                                                                                                                                                                          |
| [`salesforce_email`](#salesforce_email)                       | Send emails through Salesforce. Send individual or mass emails, list available email templates, or send using pre-built templates. Emails are logged in activity history. Actions: send, send\_mass, list\_templates, send\_with\_template.                                                                                                            |
| [`salesforce_chatter`](#salesforce_chatter)                   | Manage Chatter posts and feeds. Post to a record's Chatter feed, retrieve feed items, add comments, or like posts. Great for team collaboration. Actions: post, get\_feed, comment, like, delete\_post.                                                                                                                                                |
| [`salesforce_activities`](#salesforce_activities)             | Manage activities and calendar. Log phone calls, create tasks with due dates, create calendar events, or list activity history for a record. Actions: log\_call, create\_task, create\_event, list, update\_task, complete\_task.                                                                                                                      |
| [`salesforce_files`](#salesforce_files)                       | Manage files and attachments using ContentVersion/ContentDocument. List files on a record, upload new files, download existing files, or share files with records. Actions: list, upload, download, delete, share.                                                                                                                                     |
| [`salesforce_attachments`](#salesforce_attachments)           | Manage legacy Attachments. For compatibility with older implementations or specific use cases requiring the Attachment object. Actions: list, upload, download, delete.                                                                                                                                                                                |
| [`salesforce_notes`](#salesforce_notes)                       | Manage notes on records using ContentNote. Create notes attached to any record, list existing notes, or update note content. Actions: create, list, update, delete.                                                                                                                                                                                    |
| [`salesforce_reports`](#salesforce_reports)                   | Manage Salesforce Reports. List available reports, run reports to retrieve results, get report metadata, or export report data. Actions: list, run, get\_metadata, export.                                                                                                                                                                             |
| [`salesforce_dashboards`](#salesforce_dashboards)             | Manage Salesforce Dashboards. List available dashboards, retrieve dashboard metadata, get component data, or refresh dashboard. Actions: list, get, get\_component\_data, refresh.                                                                                                                                                                     |
| [`salesforce_campaigns`](#salesforce_campaigns)               | Manage Campaigns and campaign membership. List available campaigns, create new campaigns, add contacts or leads to campaigns, update member status, or remove members. Actions: list, create, update, add\_member, remove\_member, update\_member\_status.                                                                                             |
| [`salesforce_products`](#salesforce_products)                 | Manage Products, Pricebooks, and PricebookEntries. List products, create new products, update product details, or manage pricing across different pricebooks. Actions: list, create, update, get\_pricebook\_entries, add\_to\_pricebook.                                                                                                              |
| [`salesforce_users`](#salesforce_users)                       | Manage Salesforce users and record ownership. List users with filters, get user details, transfer record ownership to another user, or update user information. Actions: list, get, assign\_owner, deactivate, update.                                                                                                                                 |
| [`salesforce_queues`](#salesforce_queues)                     | Manage Salesforce queues. List available queues, get queue details, assign records (leads, cases, etc.) to a queue, or remove from queue. Actions: list, get, assign, remove.                                                                                                                                                                          |
| [`salesforce_permissions`](#salesforce_permissions)           | Check permissions and access levels. Verify object and field-level permissions for current user, retrieve profile details, or list assigned permission sets. Actions: check\_object\_access, check\_field\_access, get\_profile, get\_permission\_sets.                                                                                                |
| [`salesforce_knowledge`](#salesforce_knowledge)               | Manage Knowledge articles. Search knowledge base, retrieve articles, create new articles, publish drafts, or archive outdated content. Actions: search, get\_article, list\_articles, create\_article, publish, archive.                                                                                                                               |
| [`salesforce_recent_items`](#salesforce_recent_items)         | Retrieve recently viewed or recently updated items for current user. Useful for quick access to recent work.                                                                                                                                                                                                                                           |
| [`salesforce_favorites`](#salesforce_favorites)               | Manage user favorites. List favorited records, add records to favorites, or remove from favorites. Actions: list, add, remove.                                                                                                                                                                                                                         |
| [`salesforce_validation_rules`](#salesforce_validation_rules) | List validation rules for an object, get rule details, or evaluate if a record would pass validation (dry run). Actions: list, get, evaluate.                                                                                                                                                                                                          |
| [`salesforce_schema`](#salesforce_schema)                     | Manage Salesforce custom field schema using the Metadata API. Create, read, update, delete, and list custom fields on any standard or custom object. Use this to set up custom fields (e.g., checkboxes, picklists, lookups) without manual Salesforce Setup. Actions: create\_field, read\_field, update\_field, delete\_field, list\_fields.         |
| [`salesforce_poll_trigger`](#salesforce_poll_trigger)         | Poll for record changes (create, update, delete) in Salesforce objects. Used by polling triggers.                                                                                                                                                                                                                                                      |

***

## salesforce\_query

Execute SOQL queries to search, filter, and retrieve records from any Salesforce object. Supports pagination for large result sets. Use for finding records, aggregations, and custom data retrieval. Actions: query (execute SOQL), query\_more (get next page of results).

**Parameters:**

| Parameter        | Type   | Required | Default | Description                                                                                                                                                          |
| ---------------- | ------ | -------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`         | string | Yes      | —       | (required) Action to perform: "query" = execute SOQL query and retrieve records; "query\_more" = fetch next page of results using nextRecordsUrl from previous query |
| `query`          | string | No       | —       | SOQL query to execute (required for query action). Example: "SELECT Id, Name FROM Account LIMIT 100"                                                                 |
| `nextRecordsUrl` | string | No       | —       | URL from previous query result (required for query\_more action)                                                                                                     |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "query",
          "query_more"
        ],
        "description": "(required) Action to perform: \"query\" = execute SOQL query and retrieve records; \"query_more\" = fetch next page of results using nextRecordsUrl from previous query"
      },
      "query": {
        "type": "string",
        "description": "SOQL query to execute (required for query action). Example: \"SELECT Id, Name FROM Account LIMIT 100\""
      },
      "nextRecordsUrl": {
        "type": "string",
        "description": "URL from previous query result (required for query_more action)"
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## salesforce\_search

Execute SOSL queries for global search across multiple objects. More efficient than SOQL for text-based searches across many objects.

**Parameters:**

| Parameter    | Type      | Required | Default | Description                                                                                                                         |
| ------------ | --------- | -------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| `searchText` | string    | Yes      | —       | Text to search for across Salesforce objects. Example: "John Smith" or "acme.com"                                                   |
| `objects`    | string\[] | No       | —       | Optional list of specific objects to search. Example: \["Account", "Contact", "Lead"]. If omitted, searches all searchable objects. |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "searchText": {
        "type": "string",
        "description": "Text to search for across Salesforce objects. Example: \"John Smith\" or \"acme.com\""
      },
      "objects": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Optional list of specific objects to search. Example: [\"Account\", \"Contact\", \"Lead\"]. If omitted, searches all searchable objects."
      }
    },
    "required": [
      "PCID",
      "searchText"
    ]
  }
  ```
</Expandable>

***

## salesforce\_records

Perform CRUD operations on any Salesforce object. Generic interface for all standard and custom objects. Use upsert to insert or update based on external ID. Actions: create, update, delete, get, clone, upsert. Note: Uses Salesforce API v65.0. The get/clone actions retrieve limited fields; use salesforce\_query for specific field selection.

**Parameters:**

| Parameter         | Type   | Required | Default | Description                                                                                                                                                                                                                                                                                                                                    |
| ----------------- | ------ | -------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`          | string | Yes      | —       | (required) CRUD operation: "create" = insert new record; "update" = modify existing record; "delete" = remove record; "get" = retrieve single record by ID (returns basic fields only); "clone" = duplicate existing record; "upsert" = insert or update based on external ID field                                                            |
| `sobject`         | string | Yes      | —       | Salesforce object API name. Examples: "Account", "Contact", "CustomObject\_\_c"                                                                                                                                                                                                                                                                |
| `recordId`        | string | No       | —       | Record ID (required for update, delete, get, clone actions). Example: "001xx000003DGb2AAG"                                                                                                                                                                                                                                                     |
| `record`          | object | No       | —       | Record data fields (required for create, update actions). Example: \{"Name": "Acme Corp", "Industry": "Technology"}                                                                                                                                                                                                                            |
| `externalIdField` | string | No       | —       | External ID field name (required for upsert action). MUST be a field marked as "External ID" in Salesforce. Standard fields like Name, Email are NOT external IDs unless explicitly configured. Use custom fields like "External\_ID\_\_c" that have the External ID checkbox enabled. Example: "External\_ID\_\_c", "Legacy\_System\_ID\_\_c" |
| `externalIdValue` | string | No       | —       | External ID value to match (required for upsert action). This value will be used to find existing records. Example: "EXT-12345"                                                                                                                                                                                                                |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "create",
          "update",
          "delete",
          "get",
          "clone",
          "upsert"
        ],
        "description": "(required) CRUD operation: \"create\" = insert new record; \"update\" = modify existing record; \"delete\" = remove record; \"get\" = retrieve single record by ID (returns basic fields only); \"clone\" = duplicate existing record; \"upsert\" = insert or update based on external ID field"
      },
      "sobject": {
        "type": "string",
        "description": "Salesforce object API name. Examples: \"Account\", \"Contact\", \"CustomObject__c\""
      },
      "recordId": {
        "type": "string",
        "description": "Record ID (required for update, delete, get, clone actions). Example: \"001xx000003DGb2AAG\""
      },
      "record": {
        "type": "object",
        "additionalProperties": true,
        "description": "Record data fields (required for create, update actions). Example: {\"Name\": \"Acme Corp\", \"Industry\": \"Technology\"}"
      },
      "externalIdField": {
        "type": "string",
        "description": "External ID field name (required for upsert action). MUST be a field marked as \"External ID\" in Salesforce. Standard fields like Name, Email are NOT external IDs unless explicitly configured. Use custom fields like \"External_ID__c\" that have the External ID checkbox enabled. Example: \"External_ID__c\", \"Legacy_System_ID__c\""
      },
      "externalIdValue": {
        "type": "string",
        "description": "External ID value to match (required for upsert action). This value will be used to find existing records. Example: \"EXT-12345\""
      }
    },
    "required": [
      "PCID",
      "action",
      "sobject"
    ]
  }
  ```
</Expandable>

***

## salesforce\_describe

Get metadata about Salesforce objects and the org. Includes available fields, field types, picklist values, relationships, and permissions. Actions: describe\_object, list\_objects, describe\_global.

**Parameters:**

| Parameter | Type   | Required | Default | Description                                                                                                                                                                                |
| --------- | ------ | -------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `action`  | string | Yes      | —       | (required) Metadata action: "describe\_object" = get full schema for specific object; "list\_objects" = list all available objects in org; "describe\_global" = get summary of all objects |
| `sobject` | string | No       | —       | Object API name (required for describe\_object). Example: "Account", "Opportunity"                                                                                                         |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "describe_object",
          "list_objects",
          "describe_global"
        ],
        "description": "(required) Metadata action: \"describe_object\" = get full schema for specific object; \"list_objects\" = list all available objects in org; \"describe_global\" = get summary of all objects"
      },
      "sobject": {
        "type": "string",
        "description": "Object API name (required for describe_object). Example: \"Account\", \"Opportunity\""
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## salesforce\_metadata

Retrieve Salesforce org metadata including API limits, org details, and current user information. Essential for monitoring and governance. Actions: get\_limits, get\_org\_info, get\_user\_info.

**Parameters:**

| Parameter | Type   | Required | Default | Description                                                                                                                                                  |
| --------- | ------ | -------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `action`  | string | Yes      | —       | (required) Metadata type: "get\_limits" = API limits and usage; "get\_org\_info" = organization details; "get\_user\_info" = current authenticated user info |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "get_limits",
          "get_org_info",
          "get_user_info"
        ],
        "description": "(required) Metadata type: \"get_limits\" = API limits and usage; \"get_org_info\" = organization details; \"get_user_info\" = current authenticated user info"
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## salesforce\_accounts

Manage Account records with simplified interface. List accounts with common filters, create new accounts, or update existing account information. Actions: list, create, update, get.

**Parameters:**

| Parameter   | Type   | Required | Default | Description                                                                                                                                                      |
| ----------- | ------ | -------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`    | string | Yes      | —       | (required) Account action: "list" = query accounts with filters; "create" = insert new account; "update" = modify account; "get" = retrieve single account by ID |
| `accountId` | string | No       | —       | Account ID (required for get, update actions). Example: "001xx000003DGb2AAG"                                                                                     |
| `fields`    | object | No       | —       | Account fields for create/update. Example: \{"Name": "Acme Corp", "Industry": "Technology", "Phone": "555-1234"}                                                 |
| `filters`   | object | No       | —       | Query filters for list action. Example: \{"Industry": "Technology", "AnnualRevenue": \{">": 1000000}}                                                            |
| `limit`     | number | No       | —       | Maximum records to return for list action (default: 100)                                                                                                         |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list",
          "create",
          "update",
          "get"
        ],
        "description": "(required) Account action: \"list\" = query accounts with filters; \"create\" = insert new account; \"update\" = modify account; \"get\" = retrieve single account by ID"
      },
      "accountId": {
        "type": "string",
        "description": "Account ID (required for get, update actions). Example: \"001xx000003DGb2AAG\""
      },
      "fields": {
        "type": "object",
        "additionalProperties": true,
        "description": "Account fields for create/update. Example: {\"Name\": \"Acme Corp\", \"Industry\": \"Technology\", \"Phone\": \"555-1234\"}"
      },
      "filters": {
        "type": "object",
        "additionalProperties": true,
        "description": "Query filters for list action. Example: {\"Industry\": \"Technology\", \"AnnualRevenue\": {\">\": 1000000}}"
      },
      "limit": {
        "type": "number",
        "description": "Maximum records to return for list action (default: 100)"
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## salesforce\_contacts

Manage Contact records. List contacts with filters, create new contacts with account associations, or update contact information. Actions: list, create, update, get.

**Parameters:**

| Parameter   | Type   | Required | Default | Description                                                                                                                                                             |
| ----------- | ------ | -------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`    | string | Yes      | —       | (required) Contact action: "list" = query contacts with filters; "create" = insert new contact; "update" = modify contact; "get" = retrieve contact by ID               |
| `contactId` | string | No       | —       | Contact ID (required for get, update actions). Example: "003xx000004TmiUAAS"                                                                                            |
| `fields`    | object | No       | —       | Contact fields for create/update. Example: \{"FirstName": "John", "LastName": "Smith", "Email": "[john@example.com](mailto:john@example.com)", "AccountId": "001xx..."} |
| `filters`   | object | No       | —       | Query filters for list action. Example: \{"AccountId": "001xx...", "Email": \{"LIKE": "%@acme.com"}}                                                                    |
| `limit`     | number | No       | —       | Maximum records to return for list action (default: 100)                                                                                                                |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list",
          "create",
          "update",
          "get"
        ],
        "description": "(required) Contact action: \"list\" = query contacts with filters; \"create\" = insert new contact; \"update\" = modify contact; \"get\" = retrieve contact by ID"
      },
      "contactId": {
        "type": "string",
        "description": "Contact ID (required for get, update actions). Example: \"003xx000004TmiUAAS\""
      },
      "fields": {
        "type": "object",
        "additionalProperties": true,
        "description": "Contact fields for create/update. Example: {\"FirstName\": \"John\", \"LastName\": \"Smith\", \"Email\": \"john@example.com\", \"AccountId\": \"001xx...\"}"
      },
      "filters": {
        "type": "object",
        "additionalProperties": true,
        "description": "Query filters for list action. Example: {\"AccountId\": \"001xx...\", \"Email\": {\"LIKE\": \"%@acme.com\"}}"
      },
      "limit": {
        "type": "number",
        "description": "Maximum records to return for list action (default: 100)"
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## salesforce\_leads

Manage Lead records. List leads, create new leads, update lead info, or convert qualified leads into Account/Contact/Opportunity. Actions: list, create, update, get, convert.

**Parameters:**

| Parameter                | Type    | Required | Default | Description                                                                                                                                                                                                     |
| ------------------------ | ------- | -------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`                 | string  | Yes      | —       | (required) Lead action: "list" = query leads with filters; "create" = insert new lead; "update" = modify lead; "get" = retrieve lead by ID; "convert" = convert qualified lead into Account/Contact/Opportunity |
| `leadId`                 | string  | No       | —       | Lead ID (required for get, update, convert actions). Example: "00Qxx000001gDwDEAU"                                                                                                                              |
| `fields`                 | object  | No       | —       | Lead fields for create/update. Example: \{"FirstName": "Jane", "LastName": "Doe", "Company": "Acme", "Email": "[jane@acme.com](mailto:jane@acme.com)"}                                                          |
| `filters`                | object  | No       | —       | Query filters for list action. Example: \{"Status": "Open - Not Contacted", "Rating": "Hot"}                                                                                                                    |
| `limit`                  | number  | No       | —       | Maximum records to return for list action (default: 100)                                                                                                                                                        |
| `doNotCreateOpportunity` | boolean | No       | —       | For convert action: set true to skip opportunity creation (default: false)                                                                                                                                      |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list",
          "create",
          "update",
          "get",
          "convert"
        ],
        "description": "(required) Lead action: \"list\" = query leads with filters; \"create\" = insert new lead; \"update\" = modify lead; \"get\" = retrieve lead by ID; \"convert\" = convert qualified lead into Account/Contact/Opportunity"
      },
      "leadId": {
        "type": "string",
        "description": "Lead ID (required for get, update, convert actions). Example: \"00Qxx000001gDwDEAU\""
      },
      "fields": {
        "type": "object",
        "additionalProperties": true,
        "description": "Lead fields for create/update. Example: {\"FirstName\": \"Jane\", \"LastName\": \"Doe\", \"Company\": \"Acme\", \"Email\": \"jane@acme.com\"}"
      },
      "filters": {
        "type": "object",
        "additionalProperties": true,
        "description": "Query filters for list action. Example: {\"Status\": \"Open - Not Contacted\", \"Rating\": \"Hot\"}"
      },
      "limit": {
        "type": "number",
        "description": "Maximum records to return for list action (default: 100)"
      },
      "doNotCreateOpportunity": {
        "type": "boolean",
        "description": "For convert action: set true to skip opportunity creation (default: false)"
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## salesforce\_opportunities

Manage Opportunity records. List opportunities, create new deals, update opportunity stages and details, or quickly close as won/lost. Actions: list, create, update, get, close\_won, close\_lost.

**Parameters:**

| Parameter       | Type   | Required | Default | Description                                                                                                                                                                                                                                                      |
| --------------- | ------ | -------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`        | string | Yes      | —       | (required) Opportunity action: "list" = query opportunities with filters; "create" = insert new opportunity; "update" = modify opportunity; "get" = retrieve opportunity by ID; "close\_won" = mark opportunity as won; "close\_lost" = mark opportunity as lost |
| `opportunityId` | string | No       | —       | Opportunity ID (required for get, update, close\_won, close\_lost). Example: "006xx000003DH5TAAW"                                                                                                                                                                |
| `fields`        | object | No       | —       | Opportunity fields for create/update. Example: \{"Name": "Acme Deal", "StageName": "Prospecting", "CloseDate": "2024-12-31", "Amount": 50000}                                                                                                                    |
| `filters`       | object | No       | —       | Query filters for list action. Example: \{"StageName": "Closed Won", "Amount": \{">": 10000}}                                                                                                                                                                    |
| `limit`         | number | No       | —       | Maximum records to return for list action (default: 100)                                                                                                                                                                                                         |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list",
          "create",
          "update",
          "get",
          "close_won",
          "close_lost"
        ],
        "description": "(required) Opportunity action: \"list\" = query opportunities with filters; \"create\" = insert new opportunity; \"update\" = modify opportunity; \"get\" = retrieve opportunity by ID; \"close_won\" = mark opportunity as won; \"close_lost\" = mark opportunity as lost"
      },
      "opportunityId": {
        "type": "string",
        "description": "Opportunity ID (required for get, update, close_won, close_lost). Example: \"006xx000003DH5TAAW\""
      },
      "fields": {
        "type": "object",
        "additionalProperties": true,
        "description": "Opportunity fields for create/update. Example: {\"Name\": \"Acme Deal\", \"StageName\": \"Prospecting\", \"CloseDate\": \"2024-12-31\", \"Amount\": 50000}"
      },
      "filters": {
        "type": "object",
        "additionalProperties": true,
        "description": "Query filters for list action. Example: {\"StageName\": \"Closed Won\", \"Amount\": {\">\": 10000}}"
      },
      "limit": {
        "type": "number",
        "description": "Maximum records to return for list action (default: 100)"
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## salesforce\_cases

Manage Case records for customer support. List cases, create new cases, update case details, or close resolved cases. Actions: list, create, update, get, close.

**Parameters:**

| Parameter | Type   | Required | Default | Description                                                                                                                                                               |
| --------- | ------ | -------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`  | string | Yes      | —       | (required) Case action: "list" = query cases with filters; "create" = insert new case; "update" = modify case; "get" = retrieve case by ID; "close" = mark case as closed |
| `caseId`  | string | No       | —       | Case ID (required for get, update, close actions). Example: "500xx000001gABCAAM"                                                                                          |
| `fields`  | object | No       | —       | Case fields for create/update. Example: \{"Subject": "Cannot login", "Description": "User forgot password", "Priority": "High", "Status": "New"}                          |
| `filters` | object | No       | —       | Query filters for list action. Example: \{"Status": "Open", "Priority": "High"}                                                                                           |
| `limit`   | number | No       | —       | Maximum records to return for list action (default: 100)                                                                                                                  |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list",
          "create",
          "update",
          "get",
          "close"
        ],
        "description": "(required) Case action: \"list\" = query cases with filters; \"create\" = insert new case; \"update\" = modify case; \"get\" = retrieve case by ID; \"close\" = mark case as closed"
      },
      "caseId": {
        "type": "string",
        "description": "Case ID (required for get, update, close actions). Example: \"500xx000001gABCAAM\""
      },
      "fields": {
        "type": "object",
        "additionalProperties": true,
        "description": "Case fields for create/update. Example: {\"Subject\": \"Cannot login\", \"Description\": \"User forgot password\", \"Priority\": \"High\", \"Status\": \"New\"}"
      },
      "filters": {
        "type": "object",
        "additionalProperties": true,
        "description": "Query filters for list action. Example: {\"Status\": \"Open\", \"Priority\": \"High\"}"
      },
      "limit": {
        "type": "number",
        "description": "Maximum records to return for list action (default: 100)"
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## salesforce\_bulk

Perform bulk operations using Salesforce Bulk API 2.0 for processing large data volumes (10,000+ records). Asynchronous operations with job status tracking. Actions: bulk\_create, bulk\_update, bulk\_delete, get\_job\_status.

**Parameters:**

| Parameter | Type      | Required | Default | Description                                                                                                                                                                                                                    |
| --------- | --------- | -------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `action`  | string    | Yes      | —       | (required) Bulk action: "bulk\_create" = insert many records asynchronously; "bulk\_update" = update many records asynchronously; "bulk\_delete" = delete many records asynchronously; "get\_job\_status" = check job progress |
| `sobject` | string    | No       | —       | Object type (required for bulk\_create, bulk\_update, bulk\_delete). Example: "Account"                                                                                                                                        |
| `records` | object\[] | No       | —       | Array of records to process (required for bulk\_create, bulk\_update, bulk\_delete). Example: \[\{"Name": "Acme"}, \{"Name": "TechCo"}]                                                                                        |
| `jobId`   | string    | No       | —       | Bulk job ID (required for get\_job\_status). Returned from bulk operation initiation.                                                                                                                                          |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "bulk_create",
          "bulk_update",
          "bulk_delete",
          "get_job_status"
        ],
        "description": "(required) Bulk action: \"bulk_create\" = insert many records asynchronously; \"bulk_update\" = update many records asynchronously; \"bulk_delete\" = delete many records asynchronously; \"get_job_status\" = check job progress"
      },
      "sobject": {
        "type": "string",
        "description": "Object type (required for bulk_create, bulk_update, bulk_delete). Example: \"Account\""
      },
      "records": {
        "type": "array",
        "items": {
          "type": "object",
          "additionalProperties": true
        },
        "description": "Array of records to process (required for bulk_create, bulk_update, bulk_delete). Example: [{\"Name\": \"Acme\"}, {\"Name\": \"TechCo\"}]"
      },
      "jobId": {
        "type": "string",
        "description": "Bulk job ID (required for get_job_status). Returned from bulk operation initiation."
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## salesforce\_batch

Perform batch operations on multiple records (up to 2,000) in a single API call. Synchronous operations with immediate results. Actions: batch\_create, batch\_update, batch\_delete.

**Parameters:**

| Parameter | Type      | Required | Default | Description                                                                                                                                                                                        |
| --------- | --------- | -------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`  | string    | Yes      | —       | (required) Batch action: "batch\_create" = insert multiple records synchronously; "batch\_update" = update multiple records synchronously; "batch\_delete" = delete multiple records synchronously |
| `sobject` | string    | Yes      | —       | Object type for batch operation. Example: "Contact", "Lead"                                                                                                                                        |
| `records` | object\[] | Yes      | —       | Array of records to process (max 2000). Example: \[\{"Name": "John"}, \{"Name": "Jane"}]                                                                                                           |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "batch_create",
          "batch_update",
          "batch_delete"
        ],
        "description": "(required) Batch action: \"batch_create\" = insert multiple records synchronously; \"batch_update\" = update multiple records synchronously; \"batch_delete\" = delete multiple records synchronously"
      },
      "sobject": {
        "type": "string",
        "description": "Object type for batch operation. Example: \"Contact\", \"Lead\""
      },
      "records": {
        "type": "array",
        "items": {
          "type": "object",
          "additionalProperties": true
        },
        "description": "Array of records to process (max 2000). Example: [{\"Name\": \"John\"}, {\"Name\": \"Jane\"}]"
      }
    },
    "required": [
      "PCID",
      "action",
      "sobject",
      "records"
    ]
  }
  ```
</Expandable>

***

## salesforce\_merge

Merge duplicate Account, Contact, or Lead records into a master record. Automatically reassigns child records (opportunities, cases, activities, etc.) to the master.

**Parameters:**

| Parameter            | Type      | Required | Default | Description                                                                                                                   |
| -------------------- | --------- | -------- | ------- | ----------------------------------------------------------------------------------------------------------------------------- |
| `sobject`            | string    | Yes      | —       | Object type to merge (must be Account, Contact, or Lead). Example: "Account"                                                  |
| `masterRecordId`     | string    | Yes      | —       | ID of the master record to keep. All data will be consolidated into this record. Example: "001xx000003DGb2AAG"                |
| `duplicateRecordIds` | string\[] | Yes      | —       | Array of duplicate record IDs to merge into master (max 2 duplicates). Example: \["001xx000003DGb3AAG", "001xx000003DGb4AAG"] |
| `masterFieldValues`  | object    | No       | —       | Optional field values to set on master record after merge. Example: \{"Name": "Acme Corp"}                                    |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "sobject": {
        "type": "string",
        "description": "Object type to merge (must be Account, Contact, or Lead). Example: \"Account\""
      },
      "masterRecordId": {
        "type": "string",
        "description": "ID of the master record to keep. All data will be consolidated into this record. Example: \"001xx000003DGb2AAG\""
      },
      "duplicateRecordIds": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Array of duplicate record IDs to merge into master (max 2 duplicates). Example: [\"001xx000003DGb3AAG\", \"001xx000003DGb4AAG\"]"
      },
      "masterFieldValues": {
        "type": "object",
        "additionalProperties": true,
        "description": "Optional field values to set on master record after merge. Example: {\"Name\": \"Acme Corp\"}"
      }
    },
    "required": [
      "PCID",
      "sobject",
      "masterRecordId",
      "duplicateRecordIds"
    ]
  }
  ```
</Expandable>

***

## salesforce\_flows

Manage Salesforce Flows. List available auto-launched flows, trigger/run flows with input variables, check execution status, or cancel running flows. Actions: list, trigger, get\_status, cancel.

**Parameters:**

| Parameter        | Type   | Required | Default | Description                                                                                                                                                               |
| ---------------- | ------ | -------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`         | string | Yes      | —       | (required) Flow action: "list" = get available flows; "trigger" = execute flow with input variables; "get\_status" = check execution status; "cancel" = stop running flow |
| `flowApiName`    | string | No       | —       | Flow API name (required for trigger action). Example: "Create\_Order\_Flow"                                                                                               |
| `inputVariables` | object | No       | —       | Input variables for flow (required for trigger). Example: \{"AccountId": "001xx...", "Amount": 5000}                                                                      |
| `interviewId`    | string | No       | —       | Flow interview ID (required for get\_status, cancel). Returned from trigger action.                                                                                       |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list",
          "trigger",
          "get_status",
          "cancel"
        ],
        "description": "(required) Flow action: \"list\" = get available flows; \"trigger\" = execute flow with input variables; \"get_status\" = check execution status; \"cancel\" = stop running flow"
      },
      "flowApiName": {
        "type": "string",
        "description": "Flow API name (required for trigger action). Example: \"Create_Order_Flow\""
      },
      "inputVariables": {
        "type": "object",
        "additionalProperties": true,
        "description": "Input variables for flow (required for trigger). Example: {\"AccountId\": \"001xx...\", \"Amount\": 5000}"
      },
      "interviewId": {
        "type": "string",
        "description": "Flow interview ID (required for get_status, cancel). Returned from trigger action."
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## salesforce\_approvals

Manage approval processes. List approval processes, submit records for approval, approve/reject pending approvals, or recall submitted approvals. Actions: list\_processes, submit, approve, reject, recall, list\_pending.

**Parameters:**

| Parameter    | Type   | Required | Default | Description                                                                                                                                                                                                                                                                                         |
| ------------ | ------ | -------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`     | string | Yes      | —       | (required) Approval action: "list\_processes" = list available approval processes; "submit" = submit record for approval; "approve" = approve pending approval; "reject" = reject pending approval; "recall" = recall submitted approval; "list\_pending" = list pending approvals for current user |
| `recordId`   | string | No       | —       | Record ID to submit/recall (required for submit, recall actions). Example: "001xx000003DGb2AAG"                                                                                                                                                                                                     |
| `approvalId` | string | No       | —       | Approval request ID (required for approve, reject actions). Example: "04gxx000001gDwD"                                                                                                                                                                                                              |
| `comments`   | string | No       | —       | Comments for approval/rejection. Example: "Approved based on Q4 budget"                                                                                                                                                                                                                             |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list_processes",
          "submit",
          "approve",
          "reject",
          "recall",
          "list_pending"
        ],
        "description": "(required) Approval action: \"list_processes\" = list available approval processes; \"submit\" = submit record for approval; \"approve\" = approve pending approval; \"reject\" = reject pending approval; \"recall\" = recall submitted approval; \"list_pending\" = list pending approvals for current user"
      },
      "recordId": {
        "type": "string",
        "description": "Record ID to submit/recall (required for submit, recall actions). Example: \"001xx000003DGb2AAG\""
      },
      "approvalId": {
        "type": "string",
        "description": "Approval request ID (required for approve, reject actions). Example: \"04gxx000001gDwD\""
      },
      "comments": {
        "type": "string",
        "description": "Comments for approval/rejection. Example: \"Approved based on Q4 budget\""
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## salesforce\_record\_types

Query and manage record types. Get available record types for an object, retrieve record type details, or filter records by record type. Actions: list, get, get\_by\_object.

**Parameters:**

| Parameter      | Type   | Required | Default | Description                                                                                                                                                         |
| -------------- | ------ | -------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`       | string | Yes      | —       | (required) Record type action: "list" = get all record types; "get" = retrieve specific record type by ID; "get\_by\_object" = get record types for specific object |
| `recordTypeId` | string | No       | —       | Record type ID (required for get action). Example: "012xx000001gDwD"                                                                                                |
| `sobject`      | string | No       | —       | Object name (required for get\_by\_object action). Example: "Opportunity", "Case"                                                                                   |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list",
          "get",
          "get_by_object"
        ],
        "description": "(required) Record type action: \"list\" = get all record types; \"get\" = retrieve specific record type by ID; \"get_by_object\" = get record types for specific object"
      },
      "recordTypeId": {
        "type": "string",
        "description": "Record type ID (required for get action). Example: \"012xx000001gDwD\""
      },
      "sobject": {
        "type": "string",
        "description": "Object name (required for get_by_object action). Example: \"Opportunity\", \"Case\""
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## salesforce\_email

Send emails through Salesforce. Send individual or mass emails, list available email templates, or send using pre-built templates. Emails are logged in activity history. Actions: send, send\_mass, list\_templates, send\_with\_template.

**Parameters:**

| Parameter         | Type      | Required | Default | Description                                                                                                                                                                                                          |
| ----------------- | --------- | -------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`          | string    | Yes      | —       | (required) Email action: "send" = send individual email; "send\_mass" = send to multiple recipients; "list\_templates" = get available email templates; "send\_with\_template" = send email using pre-built template |
| `to`              | string\[] | No       | —       | Recipient email addresses (required for send, send\_with\_template). Example: \["[john@example.com](mailto:john@example.com)"]                                                                                       |
| `subject`         | string    | No       | —       | Email subject (required for send). Example: "Follow up on your inquiry"                                                                                                                                              |
| `body`            | string    | No       | —       | Email body text or HTML (required for send). Example: "Hi John, ..."                                                                                                                                                 |
| `templateId`      | string    | No       | —       | Email template ID (required for send\_with\_template). Example: "00Xxx000001gDwD"                                                                                                                                    |
| `whatId`          | string    | No       | —       | Related record ID (Account, Opportunity, Case, etc.). Example: "001xx..."                                                                                                                                            |
| `targetObjectIds` | string\[] | No       | —       | Contact or Lead IDs for mass email (required for send\_mass). Example: \["003xx...", "003yy..."]                                                                                                                     |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "send",
          "send_mass",
          "list_templates",
          "send_with_template"
        ],
        "description": "(required) Email action: \"send\" = send individual email; \"send_mass\" = send to multiple recipients; \"list_templates\" = get available email templates; \"send_with_template\" = send email using pre-built template"
      },
      "to": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Recipient email addresses (required for send, send_with_template). Example: [\"john@example.com\"]"
      },
      "subject": {
        "type": "string",
        "description": "Email subject (required for send). Example: \"Follow up on your inquiry\""
      },
      "body": {
        "type": "string",
        "description": "Email body text or HTML (required for send). Example: \"Hi John, ...\""
      },
      "templateId": {
        "type": "string",
        "description": "Email template ID (required for send_with_template). Example: \"00Xxx000001gDwD\""
      },
      "whatId": {
        "type": "string",
        "description": "Related record ID (Account, Opportunity, Case, etc.). Example: \"001xx...\""
      },
      "targetObjectIds": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Contact or Lead IDs for mass email (required for send_mass). Example: [\"003xx...\", \"003yy...\"]"
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## salesforce\_chatter

Manage Chatter posts and feeds. Post to a record's Chatter feed, retrieve feed items, add comments, or like posts. Great for team collaboration. Actions: post, get\_feed, comment, like, delete\_post.

**Parameters:**

| Parameter       | Type   | Required | Default | Description                                                                                                                                                                 |
| --------------- | ------ | -------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`        | string | Yes      | —       | (required) Chatter action: "post" = create new post; "get\_feed" = retrieve feed items; "comment" = add comment to post; "like" = like a post; "delete\_post" = remove post |
| `recordId`      | string | No       | —       | Record ID for feed context (required for post, get\_feed). Example: "001xx..."                                                                                              |
| `message`       | string | No       | —       | Message text (required for post, comment actions). Example: "Great progress on this deal!"                                                                                  |
| `feedElementId` | string | No       | —       | Feed item/post ID (required for comment, like, delete\_post). Example: "0D5xx..."                                                                                           |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "post",
          "get_feed",
          "comment",
          "like",
          "delete_post"
        ],
        "description": "(required) Chatter action: \"post\" = create new post; \"get_feed\" = retrieve feed items; \"comment\" = add comment to post; \"like\" = like a post; \"delete_post\" = remove post"
      },
      "recordId": {
        "type": "string",
        "description": "Record ID for feed context (required for post, get_feed). Example: \"001xx...\""
      },
      "message": {
        "type": "string",
        "description": "Message text (required for post, comment actions). Example: \"Great progress on this deal!\""
      },
      "feedElementId": {
        "type": "string",
        "description": "Feed item/post ID (required for comment, like, delete_post). Example: \"0D5xx...\""
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## salesforce\_activities

Manage activities and calendar. Log phone calls, create tasks with due dates, create calendar events, or list activity history for a record. Actions: log\_call, create\_task, create\_event, list, update\_task, complete\_task.

**Parameters:**

| Parameter       | Type   | Required | Default | Description                                                                                                                                                                                                                                                                        |
| --------------- | ------ | -------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`        | string | Yes      | —       | (required) Activity action: "log\_call" = log completed phone call; "create\_task" = create task with due date; "create\_event" = create calendar event/meeting; "list" = list activity history for record; "update\_task" = modify task; "complete\_task" = mark task as complete |
| `relatedToId`   | string | No       | —       | Related record ID (Account, Opportunity, etc.) for activity association. Example: "001xx..."                                                                                                                                                                                       |
| `subject`       | string | No       | —       | Activity subject/title (required for create actions). Example: "Follow up call", "Demo meeting"                                                                                                                                                                                    |
| `description`   | string | No       | —       | Activity description/notes. Example: "Discussed pricing options"                                                                                                                                                                                                                   |
| `dueDate`       | string | No       | —       | Task due date (for create\_task). ISO format: "2024-12-31" or "2024-12-31T10:00:00Z"                                                                                                                                                                                               |
| `startDateTime` | string | No       | —       | Event start time (required for create\_event). ISO format: "2024-12-31T14:00:00Z"                                                                                                                                                                                                  |
| `endDateTime`   | string | No       | —       | Event end time (required for create\_event). ISO format: "2024-12-31T15:00:00Z"                                                                                                                                                                                                    |
| `taskId`        | string | No       | —       | Task ID (required for update\_task, complete\_task). Example: "00Txx..."                                                                                                                                                                                                           |
| `priority`      | string | No       | —       | Task priority. Values: "High", "Normal", "Low". Default: "Normal"                                                                                                                                                                                                                  |
| `status`        | string | No       | —       | Task status (for update\_task). Example: "In Progress", "Waiting on someone else"                                                                                                                                                                                                  |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "log_call",
          "create_task",
          "create_event",
          "list",
          "update_task",
          "complete_task"
        ],
        "description": "(required) Activity action: \"log_call\" = log completed phone call; \"create_task\" = create task with due date; \"create_event\" = create calendar event/meeting; \"list\" = list activity history for record; \"update_task\" = modify task; \"complete_task\" = mark task as complete"
      },
      "relatedToId": {
        "type": "string",
        "description": "Related record ID (Account, Opportunity, etc.) for activity association. Example: \"001xx...\""
      },
      "subject": {
        "type": "string",
        "description": "Activity subject/title (required for create actions). Example: \"Follow up call\", \"Demo meeting\""
      },
      "description": {
        "type": "string",
        "description": "Activity description/notes. Example: \"Discussed pricing options\""
      },
      "dueDate": {
        "type": "string",
        "description": "Task due date (for create_task). ISO format: \"2024-12-31\" or \"2024-12-31T10:00:00Z\""
      },
      "startDateTime": {
        "type": "string",
        "description": "Event start time (required for create_event). ISO format: \"2024-12-31T14:00:00Z\""
      },
      "endDateTime": {
        "type": "string",
        "description": "Event end time (required for create_event). ISO format: \"2024-12-31T15:00:00Z\""
      },
      "taskId": {
        "type": "string",
        "description": "Task ID (required for update_task, complete_task). Example: \"00Txx...\""
      },
      "priority": {
        "type": "string",
        "description": "Task priority. Values: \"High\", \"Normal\", \"Low\". Default: \"Normal\""
      },
      "status": {
        "type": "string",
        "description": "Task status (for update_task). Example: \"In Progress\", \"Waiting on someone else\""
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## salesforce\_files

Manage files and attachments using ContentVersion/ContentDocument. List files on a record, upload new files, download existing files, or share files with records. Actions: list, upload, download, delete, share.

**Parameters:**

| Parameter           | Type   | Required | Default | Description                                                                                                                                                                                |
| ------------------- | ------ | -------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `action`            | string | Yes      | —       | (required) File action: "list" = list files attached to record; "upload" = upload new file; "download" = download existing file; "delete" = delete file; "share" = share file with records |
| `recordId`          | string | No       | —       | Record ID to associate file with (required for list, upload, share). Example: "001xx..."                                                                                                   |
| `fileData`          | string | No       | —       | Base64 encoded file content (required for upload). Example: "JVBERi0xLjQKJ..."                                                                                                             |
| `fileName`          | string | No       | —       | File name with extension (required for upload). Example: "proposal.pdf", "contract.docx"                                                                                                   |
| `contentVersionId`  | string | No       | —       | ContentVersion ID (required for download, delete). Example: "068xx..."                                                                                                                     |
| `contentDocumentId` | string | No       | —       | ContentDocument ID (for share action). Example: "069xx..."                                                                                                                                 |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list",
          "upload",
          "download",
          "delete",
          "share"
        ],
        "description": "(required) File action: \"list\" = list files attached to record; \"upload\" = upload new file; \"download\" = download existing file; \"delete\" = delete file; \"share\" = share file with records"
      },
      "recordId": {
        "type": "string",
        "description": "Record ID to associate file with (required for list, upload, share). Example: \"001xx...\""
      },
      "fileData": {
        "type": "string",
        "description": "Base64 encoded file content (required for upload). Example: \"JVBERi0xLjQKJ...\""
      },
      "fileName": {
        "type": "string",
        "description": "File name with extension (required for upload). Example: \"proposal.pdf\", \"contract.docx\""
      },
      "contentVersionId": {
        "type": "string",
        "description": "ContentVersion ID (required for download, delete). Example: \"068xx...\""
      },
      "contentDocumentId": {
        "type": "string",
        "description": "ContentDocument ID (for share action). Example: \"069xx...\""
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## salesforce\_attachments

Manage legacy Attachments. For compatibility with older implementations or specific use cases requiring the Attachment object. Actions: list, upload, download, delete.

**Parameters:**

| Parameter        | Type   | Required | Default | Description                                                                                                                                                                  |
| ---------------- | ------ | -------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`         | string | Yes      | —       | (required) Attachment action: "list" = list attachments on record; "upload" = upload new attachment; "download" = download existing attachment; "delete" = delete attachment |
| `parentId`       | string | No       | —       | Parent record ID (required for list, upload). Example: "001xx..."                                                                                                            |
| `attachmentData` | string | No       | —       | Base64 encoded attachment content (required for upload). Example: "JVBERi0xLjQKJ..."                                                                                         |
| `fileName`       | string | No       | —       | Attachment file name (required for upload). Example: "invoice.pdf"                                                                                                           |
| `attachmentId`   | string | No       | —       | Attachment ID (required for download, delete). Example: "00Pxx..."                                                                                                           |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list",
          "upload",
          "download",
          "delete"
        ],
        "description": "(required) Attachment action: \"list\" = list attachments on record; \"upload\" = upload new attachment; \"download\" = download existing attachment; \"delete\" = delete attachment"
      },
      "parentId": {
        "type": "string",
        "description": "Parent record ID (required for list, upload). Example: \"001xx...\""
      },
      "attachmentData": {
        "type": "string",
        "description": "Base64 encoded attachment content (required for upload). Example: \"JVBERi0xLjQKJ...\""
      },
      "fileName": {
        "type": "string",
        "description": "Attachment file name (required for upload). Example: \"invoice.pdf\""
      },
      "attachmentId": {
        "type": "string",
        "description": "Attachment ID (required for download, delete). Example: \"00Pxx...\""
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## salesforce\_notes

Manage notes on records using ContentNote. Create notes attached to any record, list existing notes, or update note content. Actions: create, list, update, delete.

**Parameters:**

| Parameter       | Type   | Required | Default | Description                                                                                                                                                        |
| --------------- | ------ | -------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `action`        | string | Yes      | —       | (required) Note action: "create" = create note attached to record; "list" = list existing notes for record; "update" = update note content; "delete" = delete note |
| `recordId`      | string | No       | —       | Record ID to attach note to (required for create, list). Example: "001xx..."                                                                                       |
| `title`         | string | No       | —       | Note title (required for create). Example: "Meeting Notes - Q4 Planning"                                                                                           |
| `content`       | string | No       | —       | Note content text (required for create, update). Can include basic HTML formatting.                                                                                |
| `contentNoteId` | string | No       | —       | ContentNote ID (required for update, delete). Example: "069xx..."                                                                                                  |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "create",
          "list",
          "update",
          "delete"
        ],
        "description": "(required) Note action: \"create\" = create note attached to record; \"list\" = list existing notes for record; \"update\" = update note content; \"delete\" = delete note"
      },
      "recordId": {
        "type": "string",
        "description": "Record ID to attach note to (required for create, list). Example: \"001xx...\""
      },
      "title": {
        "type": "string",
        "description": "Note title (required for create). Example: \"Meeting Notes - Q4 Planning\""
      },
      "content": {
        "type": "string",
        "description": "Note content text (required for create, update). Can include basic HTML formatting."
      },
      "contentNoteId": {
        "type": "string",
        "description": "ContentNote ID (required for update, delete). Example: \"069xx...\""
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## salesforce\_reports

Manage Salesforce Reports. List available reports, run reports to retrieve results, get report metadata, or export report data. Actions: list, run, get\_metadata, export.

**Parameters:**

| Parameter  | Type   | Required | Default | Description                                                                                                                                                                     |
| ---------- | ------ | -------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`   | string | Yes      | —       | (required) Report action: "list" = list available reports; "run" = execute report and retrieve results; "get\_metadata" = get report structure; "export" = download report data |
| `reportId` | string | No       | —       | Report ID (required for run, get\_metadata, export). Example: "00Oxx..."                                                                                                        |
| `filters`  | object | No       | —       | Report filters to apply when running. Example: \{"CloseDate": "THIS\_QUARTER"}                                                                                                  |
| `format`   | string | No       | —       | Export format (for export action). Options: "csv", "excel", "pdf". Default: "csv"                                                                                               |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list",
          "run",
          "get_metadata",
          "export"
        ],
        "description": "(required) Report action: \"list\" = list available reports; \"run\" = execute report and retrieve results; \"get_metadata\" = get report structure; \"export\" = download report data"
      },
      "reportId": {
        "type": "string",
        "description": "Report ID (required for run, get_metadata, export). Example: \"00Oxx...\""
      },
      "filters": {
        "type": "object",
        "additionalProperties": true,
        "description": "Report filters to apply when running. Example: {\"CloseDate\": \"THIS_QUARTER\"}"
      },
      "format": {
        "type": "string",
        "description": "Export format (for export action). Options: \"csv\", \"excel\", \"pdf\". Default: \"csv\""
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## salesforce\_dashboards

Manage Salesforce Dashboards. List available dashboards, retrieve dashboard metadata, get component data, or refresh dashboard. Actions: list, get, get\_component\_data, refresh.

**Parameters:**

| Parameter     | Type   | Required | Default | Description                                                                                                                                                                                                            |
| ------------- | ------ | -------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`      | string | Yes      | —       | (required) Dashboard action: "list" = list available dashboards; "get" = retrieve dashboard metadata; "get\_component\_data" = get data for specific component; "refresh" = refresh dashboard to update all components |
| `dashboardId` | string | No       | —       | Dashboard ID (required for get, get\_component\_data, refresh). Example: "01Zxx..."                                                                                                                                    |
| `componentId` | string | No       | —       | Dashboard component ID (required for get\_component\_data). Example: "01axx..."                                                                                                                                        |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list",
          "get",
          "get_component_data",
          "refresh"
        ],
        "description": "(required) Dashboard action: \"list\" = list available dashboards; \"get\" = retrieve dashboard metadata; \"get_component_data\" = get data for specific component; \"refresh\" = refresh dashboard to update all components"
      },
      "dashboardId": {
        "type": "string",
        "description": "Dashboard ID (required for get, get_component_data, refresh). Example: \"01Zxx...\""
      },
      "componentId": {
        "type": "string",
        "description": "Dashboard component ID (required for get_component_data). Example: \"01axx...\""
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## salesforce\_campaigns

Manage Campaigns and campaign membership. List available campaigns, create new campaigns, add contacts or leads to campaigns, update member status, or remove members. Actions: list, create, update, add\_member, remove\_member, update\_member\_status.

**Parameters:**

| Parameter          | Type   | Required | Default | Description                                                                                                                                                                                                                                                                                              |
| ------------------ | ------ | -------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`           | string | Yes      | —       | (required) Campaign action: "list" = list available campaigns; "create" = create new campaign; "update" = update campaign details; "add\_member" = add contact/lead to campaign; "remove\_member" = remove member from campaign; "update\_member\_status" = update member status (e.g., Sent, Responded) |
| `campaignId`       | string | No       | —       | Campaign ID (required for update, add\_member, remove\_member, update\_member\_status). Example: "701xx..."                                                                                                                                                                                              |
| `fields`           | object | No       | —       | Campaign fields (required for create, update). Example: \{"Name": "Q4 Email Campaign", "Type": "Email", "Status": "In Progress"}                                                                                                                                                                         |
| `memberId`         | string | No       | —       | Contact or Lead ID to add/remove (required for add\_member, remove\_member). Example: "003xx..."                                                                                                                                                                                                         |
| `memberStatus`     | string | No       | —       | Campaign member status (for add\_member, update\_member\_status). Example: "Sent", "Responded", "Interested"                                                                                                                                                                                             |
| `campaignMemberId` | string | No       | —       | CampaignMember ID (required for update\_member\_status). Example: "00vxx..."                                                                                                                                                                                                                             |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list",
          "create",
          "update",
          "add_member",
          "remove_member",
          "update_member_status"
        ],
        "description": "(required) Campaign action: \"list\" = list available campaigns; \"create\" = create new campaign; \"update\" = update campaign details; \"add_member\" = add contact/lead to campaign; \"remove_member\" = remove member from campaign; \"update_member_status\" = update member status (e.g., Sent, Responded)"
      },
      "campaignId": {
        "type": "string",
        "description": "Campaign ID (required for update, add_member, remove_member, update_member_status). Example: \"701xx...\""
      },
      "fields": {
        "type": "object",
        "additionalProperties": true,
        "description": "Campaign fields (required for create, update). Example: {\"Name\": \"Q4 Email Campaign\", \"Type\": \"Email\", \"Status\": \"In Progress\"}"
      },
      "memberId": {
        "type": "string",
        "description": "Contact or Lead ID to add/remove (required for add_member, remove_member). Example: \"003xx...\""
      },
      "memberStatus": {
        "type": "string",
        "description": "Campaign member status (for add_member, update_member_status). Example: \"Sent\", \"Responded\", \"Interested\""
      },
      "campaignMemberId": {
        "type": "string",
        "description": "CampaignMember ID (required for update_member_status). Example: \"00vxx...\""
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## salesforce\_products

Manage Products, Pricebooks, and PricebookEntries. List products, create new products, update product details, or manage pricing across different pricebooks. Actions: list, create, update, get\_pricebook\_entries, add\_to\_pricebook.

**Parameters:**

| Parameter     | Type    | Required | Default | Description                                                                                                                                                                                                                                                 |
| ------------- | ------- | -------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`      | string  | Yes      | —       | (required) Product action: "list" = list products; "create" = create new product; "update" = update product details; "get\_pricebook\_entries" = get pricing in different pricebooks; "add\_to\_pricebook" = add product to pricebook with specific pricing |
| `productId`   | string  | No       | —       | Product2 ID (required for update, get\_pricebook\_entries, add\_to\_pricebook). Example: "01txx..."                                                                                                                                                         |
| `fields`      | object  | No       | —       | Product fields (required for create, update). Example: \{"Name": "Premium Subscription", "ProductCode": "PREM-001", "IsActive": true}                                                                                                                       |
| `pricebookId` | string  | No       | —       | Pricebook2 ID (required for add\_to\_pricebook). Example: "01sxx..."                                                                                                                                                                                        |
| `unitPrice`   | number  | No       | —       | Product unit price (required for add\_to\_pricebook). Example: 99.99                                                                                                                                                                                        |
| `isActive`    | boolean | No       | —       | Whether pricebook entry is active (for add\_to\_pricebook). Default: true                                                                                                                                                                                   |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list",
          "create",
          "update",
          "get_pricebook_entries",
          "add_to_pricebook"
        ],
        "description": "(required) Product action: \"list\" = list products; \"create\" = create new product; \"update\" = update product details; \"get_pricebook_entries\" = get pricing in different pricebooks; \"add_to_pricebook\" = add product to pricebook with specific pricing"
      },
      "productId": {
        "type": "string",
        "description": "Product2 ID (required for update, get_pricebook_entries, add_to_pricebook). Example: \"01txx...\""
      },
      "fields": {
        "type": "object",
        "additionalProperties": true,
        "description": "Product fields (required for create, update). Example: {\"Name\": \"Premium Subscription\", \"ProductCode\": \"PREM-001\", \"IsActive\": true}"
      },
      "pricebookId": {
        "type": "string",
        "description": "Pricebook2 ID (required for add_to_pricebook). Example: \"01sxx...\""
      },
      "unitPrice": {
        "type": "number",
        "description": "Product unit price (required for add_to_pricebook). Example: 99.99"
      },
      "isActive": {
        "type": "boolean",
        "description": "Whether pricebook entry is active (for add_to_pricebook). Default: true"
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## salesforce\_users

Manage Salesforce users and record ownership. List users with filters, get user details, transfer record ownership to another user, or update user information. Actions: list, get, assign\_owner, deactivate, update.

**Parameters:**

| Parameter    | Type   | Required | Default | Description                                                                                                                                                                                                         |
| ------------ | ------ | -------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`     | string | Yes      | —       | (required) User action: "list" = list users with filters; "get" = get user details; "assign\_owner" = transfer record ownership to another user; "deactivate" = deactivate user; "update" = update user information |
| `userId`     | string | No       | —       | User ID (required for get, deactivate, update). Example: "005xx..."                                                                                                                                                 |
| `filters`    | object | No       | —       | User query filters (for list action). Example: \{"IsActive": true, "UserRole.Name": "Sales Rep"}                                                                                                                    |
| `recordId`   | string | No       | —       | Record ID to reassign (required for assign\_owner). Example: "001xx..."                                                                                                                                             |
| `newOwnerId` | string | No       | —       | New owner User ID (required for assign\_owner). Example: "005yy..."                                                                                                                                                 |
| `fields`     | object | No       | —       | User fields to update (for update action). Example: \{"Email": "[newemail@example.com](mailto:newemail@example.com)", "Title": "Senior Sales Rep"}                                                                  |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list",
          "get",
          "assign_owner",
          "deactivate",
          "update"
        ],
        "description": "(required) User action: \"list\" = list users with filters; \"get\" = get user details; \"assign_owner\" = transfer record ownership to another user; \"deactivate\" = deactivate user; \"update\" = update user information"
      },
      "userId": {
        "type": "string",
        "description": "User ID (required for get, deactivate, update). Example: \"005xx...\""
      },
      "filters": {
        "type": "object",
        "additionalProperties": true,
        "description": "User query filters (for list action). Example: {\"IsActive\": true, \"UserRole.Name\": \"Sales Rep\"}"
      },
      "recordId": {
        "type": "string",
        "description": "Record ID to reassign (required for assign_owner). Example: \"001xx...\""
      },
      "newOwnerId": {
        "type": "string",
        "description": "New owner User ID (required for assign_owner). Example: \"005yy...\""
      },
      "fields": {
        "type": "object",
        "additionalProperties": true,
        "description": "User fields to update (for update action). Example: {\"Email\": \"newemail@example.com\", \"Title\": \"Senior Sales Rep\"}"
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## salesforce\_queues

Manage Salesforce queues. List available queues, get queue details, assign records (leads, cases, etc.) to a queue, or remove from queue. Actions: list, get, assign, remove.

**Parameters:**

| Parameter  | Type   | Required | Default | Description                                                                                                                                                                                        |
| ---------- | ------ | -------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`   | string | Yes      | —       | (required) Queue action: "list" = list available queues; "get" = get queue details and members; "assign" = assign record to queue; "remove" = remove record from queue (reassigns to current user) |
| `queueId`  | string | No       | —       | Queue ID (Group record where Type='Queue') (required for get, assign). Example: "00Gxx..."                                                                                                         |
| `recordId` | string | No       | —       | Record ID to assign/remove (required for assign, remove). Example: "00Qxx..." (Lead), "500xx..." (Case)                                                                                            |
| `sobject`  | string | No       | —       | Object type being assigned/removed (required for assign, remove). Example: "Lead", "Case"                                                                                                          |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list",
          "get",
          "assign",
          "remove"
        ],
        "description": "(required) Queue action: \"list\" = list available queues; \"get\" = get queue details and members; \"assign\" = assign record to queue; \"remove\" = remove record from queue (reassigns to current user)"
      },
      "queueId": {
        "type": "string",
        "description": "Queue ID (Group record where Type='Queue') (required for get, assign). Example: \"00Gxx...\""
      },
      "recordId": {
        "type": "string",
        "description": "Record ID to assign/remove (required for assign, remove). Example: \"00Qxx...\" (Lead), \"500xx...\" (Case)"
      },
      "sobject": {
        "type": "string",
        "description": "Object type being assigned/removed (required for assign, remove). Example: \"Lead\", \"Case\""
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## salesforce\_permissions

Check permissions and access levels. Verify object and field-level permissions for current user, retrieve profile details, or list assigned permission sets. Actions: check\_object\_access, check\_field\_access, get\_profile, get\_permission\_sets.

**Parameters:**

| Parameter | Type   | Required | Default | Description                                                                                                                                                                                                                                                                                 |
| --------- | ------ | -------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`  | string | Yes      | —       | (required) Permission action: "check\_object\_access" = verify object-level permissions (create, read, update, delete); "check\_field\_access" = verify field-level access (read, edit); "get\_profile" = retrieve profile details; "get\_permission\_sets" = list assigned permission sets |
| `sobject` | string | No       | —       | Object name (required for check\_object\_access, check\_field\_access). Example: "Account"                                                                                                                                                                                                  |
| `field`   | string | No       | —       | Field API name (required for check\_field\_access). Example: "AnnualRevenue"                                                                                                                                                                                                                |
| `userId`  | string | No       | —       | User ID (optional for get\_profile, get\_permission\_sets). Defaults to current user.                                                                                                                                                                                                       |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "check_object_access",
          "check_field_access",
          "get_profile",
          "get_permission_sets"
        ],
        "description": "(required) Permission action: \"check_object_access\" = verify object-level permissions (create, read, update, delete); \"check_field_access\" = verify field-level access (read, edit); \"get_profile\" = retrieve profile details; \"get_permission_sets\" = list assigned permission sets"
      },
      "sobject": {
        "type": "string",
        "description": "Object name (required for check_object_access, check_field_access). Example: \"Account\""
      },
      "field": {
        "type": "string",
        "description": "Field API name (required for check_field_access). Example: \"AnnualRevenue\""
      },
      "userId": {
        "type": "string",
        "description": "User ID (optional for get_profile, get_permission_sets). Defaults to current user."
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## salesforce\_knowledge

Manage Knowledge articles. Search knowledge base, retrieve articles, create new articles, publish drafts, or archive outdated content. Actions: search, get\_article, list\_articles, create\_article, publish, archive.

**Parameters:**

| Parameter    | Type   | Required | Default | Description                                                                                                                                                                                                                                                                                                          |
| ------------ | ------ | -------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`     | string | Yes      | —       | (required) Knowledge action: "search" = search knowledge base for articles; "get\_article" = retrieve specific article details; "list\_articles" = list articles with filters; "create\_article" = create new draft article; "publish" = publish draft article to make visible; "archive" = archive outdated article |
| `searchText` | string | No       | —       | Search query text (required for search action). Example: "password reset"                                                                                                                                                                                                                                            |
| `articleId`  | string | No       | —       | Knowledge article ID (required for get\_article, publish, archive). Example: "kA0xx..."                                                                                                                                                                                                                              |
| `fields`     | object | No       | —       | Article fields (required for create\_article). Example: \{"Title": "How to Reset Password", "UrlName": "reset-password", "Summary": "..."}                                                                                                                                                                           |
| `filters`    | object | No       | —       | Query filters (for list\_articles). Example: \{"PublishStatus": "Online", "Language": "en\_US"}                                                                                                                                                                                                                      |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "search",
          "get_article",
          "list_articles",
          "create_article",
          "publish",
          "archive"
        ],
        "description": "(required) Knowledge action: \"search\" = search knowledge base for articles; \"get_article\" = retrieve specific article details; \"list_articles\" = list articles with filters; \"create_article\" = create new draft article; \"publish\" = publish draft article to make visible; \"archive\" = archive outdated article"
      },
      "searchText": {
        "type": "string",
        "description": "Search query text (required for search action). Example: \"password reset\""
      },
      "articleId": {
        "type": "string",
        "description": "Knowledge article ID (required for get_article, publish, archive). Example: \"kA0xx...\""
      },
      "fields": {
        "type": "object",
        "additionalProperties": true,
        "description": "Article fields (required for create_article). Example: {\"Title\": \"How to Reset Password\", \"UrlName\": \"reset-password\", \"Summary\": \"...\"}"
      },
      "filters": {
        "type": "object",
        "additionalProperties": true,
        "description": "Query filters (for list_articles). Example: {\"PublishStatus\": \"Online\", \"Language\": \"en_US\"}"
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## salesforce\_recent\_items

Retrieve recently viewed or recently updated items for current user. Useful for quick access to recent work.

**Parameters:**

| Parameter | Type   | Required | Default | Description                                                      |
| --------- | ------ | -------- | ------- | ---------------------------------------------------------------- |
| `limit`   | number | No       | —       | Maximum number of recent items to return (default: 50, max: 200) |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "limit": {
        "type": "number",
        "description": "Maximum number of recent items to return (default: 50, max: 200)"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## salesforce\_favorites

Manage user favorites. List favorited records, add records to favorites, or remove from favorites. Actions: list, add, remove.

**Parameters:**

| Parameter  | Type   | Required | Default | Description                                                                                                                                                |
| ---------- | ------ | -------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`   | string | Yes      | —       | (required) Favorite action: "list" = list all favorited records for current user; "add" = add record to favorites; "remove" = remove record from favorites |
| `recordId` | string | No       | —       | Record ID to add/remove from favorites (required for add, remove actions). Example: "001xx..."                                                             |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list",
          "add",
          "remove"
        ],
        "description": "(required) Favorite action: \"list\" = list all favorited records for current user; \"add\" = add record to favorites; \"remove\" = remove record from favorites"
      },
      "recordId": {
        "type": "string",
        "description": "Record ID to add/remove from favorites (required for add, remove actions). Example: \"001xx...\""
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## salesforce\_validation\_rules

List validation rules for an object, get rule details, or evaluate if a record would pass validation (dry run). Actions: list, get, evaluate.

**Parameters:**

| Parameter          | Type   | Required | Default | Description                                                                                                                                                                                    |
| ------------------ | ------ | -------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`           | string | Yes      | —       | (required) Validation action: "list" = get all validation rules for object; "get" = retrieve specific rule details; "evaluate" = test if record would pass validation without saving (dry run) |
| `sobject`          | string | No       | —       | Object API name (required for list, evaluate). Example: "Opportunity", "Account"                                                                                                               |
| `validationRuleId` | string | No       | —       | Validation rule ID (required for get action). Example: "03dxx..."                                                                                                                              |
| `recordData`       | object | No       | —       | Record field values to test (required for evaluate). Example: \{"Amount": -1000, "StageName": "Closed Won"}                                                                                    |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "list",
          "get",
          "evaluate"
        ],
        "description": "(required) Validation action: \"list\" = get all validation rules for object; \"get\" = retrieve specific rule details; \"evaluate\" = test if record would pass validation without saving (dry run)"
      },
      "sobject": {
        "type": "string",
        "description": "Object API name (required for list, evaluate). Example: \"Opportunity\", \"Account\""
      },
      "validationRuleId": {
        "type": "string",
        "description": "Validation rule ID (required for get action). Example: \"03dxx...\""
      },
      "recordData": {
        "type": "object",
        "additionalProperties": true,
        "description": "Record field values to test (required for evaluate). Example: {\"Amount\": -1000, \"StageName\": \"Closed Won\"}"
      }
    },
    "required": [
      "PCID",
      "action"
    ]
  }
  ```
</Expandable>

***

## salesforce\_schema

Manage Salesforce custom field schema using the Metadata API. Create, read, update, delete, and list custom fields on any standard or custom object. Use this to set up custom fields (e.g., checkboxes, picklists, lookups) without manual Salesforce Setup. Actions: create\_field, read\_field, update\_field, delete\_field, list\_fields.

**Parameters:**

| Parameter           | Type      | Required | Default | Description                                                                                                                                                                                                                                                               |
| ------------------- | --------- | -------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`            | string    | Yes      | —       | (required) Schema action: "create\_field" = create a new custom field; "read\_field" = read a custom field definition; "update\_field" = update a custom field; "delete\_field" = permanently delete a custom field; "list\_fields" = list all custom fields on an object |
| `objectName`        | string    | Yes      | —       | (required) Target Salesforce object API name. Examples: "Account", "Contact", "MyCustomObj\_\_c"                                                                                                                                                                          |
| `fieldName`         | string    | No       | —       | Custom field API name (required for create/read/update/delete). Must end with \_\_c. Example: "Patient\_\_c"                                                                                                                                                              |
| `label`             | string    | No       | —       | Display label for the field (required for create\_field, optional for update\_field). Example: "Patient"                                                                                                                                                                  |
| `fieldType`         | string    | No       | —       | Field data type (required for create\_field). Determines which additional parameters are needed.                                                                                                                                                                          |
| `description`       | string    | No       | —       | Field description/help text                                                                                                                                                                                                                                               |
| `required`          | boolean   | No       | —       | Whether the field is required. Default: false                                                                                                                                                                                                                             |
| `length`            | number    | No       | —       | Field length (required for Text, LongTextArea, Html). Example: 255 for Text                                                                                                                                                                                               |
| `precision`         | number    | No       | —       | Total number of digits (required for Number, Currency, Percent). Example: 18                                                                                                                                                                                              |
| `scale`             | number    | No       | —       | Number of decimal places (required for Number, Currency, Percent). Example: 2                                                                                                                                                                                             |
| `defaultValue`      | string    | No       | —       | Default value (required for Checkbox: "true" or "false")                                                                                                                                                                                                                  |
| `picklistValues`    | object\[] | No       | —       | Picklist values (required for Picklist/MultiselectPicklist). Example: \[\{"label": "Hot", "value": "Hot", "isDefault": true}]                                                                                                                                             |
| `referenceTo`       | string    | No       | —       | Target object for Lookup/MasterDetail relationships. Example: "Contact"                                                                                                                                                                                                   |
| `relationshipName`  | string    | No       | —       | Relationship name for Lookup/MasterDetail. Example: "PrimaryContact"                                                                                                                                                                                                      |
| `visibleLines`      | number    | No       | —       | Number of visible lines (required for LongTextArea, Html, MultiselectPicklist). Example: 5                                                                                                                                                                                |
| `displayFormat`     | string    | No       | —       | Display format for AutoNumber fields (required for AutoNumber). Example: "A-\{0000}" generates A-0001, A-0002, etc.                                                                                                                                                       |
| `relationshipLabel` | string    | No       | —       | Plural label for the relationship (required for Lookup/MasterDetail). Shown in related lists. Example: "Contacts"                                                                                                                                                         |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "action": {
        "type": "string",
        "enum": [
          "create_field",
          "read_field",
          "update_field",
          "delete_field",
          "list_fields"
        ],
        "description": "(required) Schema action: \"create_field\" = create a new custom field; \"read_field\" = read a custom field definition; \"update_field\" = update a custom field; \"delete_field\" = permanently delete a custom field; \"list_fields\" = list all custom fields on an object"
      },
      "objectName": {
        "type": "string",
        "description": "(required) Target Salesforce object API name. Examples: \"Account\", \"Contact\", \"MyCustomObj__c\""
      },
      "fieldName": {
        "type": "string",
        "description": "Custom field API name (required for create/read/update/delete). Must end with __c. Example: \"Patient__c\""
      },
      "label": {
        "type": "string",
        "description": "Display label for the field (required for create_field, optional for update_field). Example: \"Patient\""
      },
      "fieldType": {
        "type": "string",
        "enum": [
          "Text",
          "Checkbox",
          "Number",
          "Currency",
          "Date",
          "DateTime",
          "Email",
          "Phone",
          "Url",
          "Picklist",
          "MultiselectPicklist",
          "TextArea",
          "LongTextArea",
          "Html",
          "Lookup",
          "MasterDetail",
          "Percent",
          "AutoNumber"
        ],
        "description": "Field data type (required for create_field). Determines which additional parameters are needed."
      },
      "description": {
        "type": "string",
        "description": "Field description/help text"
      },
      "required": {
        "type": "boolean",
        "description": "Whether the field is required. Default: false"
      },
      "length": {
        "type": "number",
        "description": "Field length (required for Text, LongTextArea, Html). Example: 255 for Text"
      },
      "precision": {
        "type": "number",
        "description": "Total number of digits (required for Number, Currency, Percent). Example: 18"
      },
      "scale": {
        "type": "number",
        "description": "Number of decimal places (required for Number, Currency, Percent). Example: 2"
      },
      "defaultValue": {
        "type": "string",
        "description": "Default value (required for Checkbox: \"true\" or \"false\")"
      },
      "picklistValues": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "label": {
              "type": "string",
              "description": "Display label"
            },
            "value": {
              "type": "string",
              "description": "API value"
            },
            "isDefault": {
              "type": "boolean",
              "description": "Whether this is the default value"
            }
          }
        },
        "description": "Picklist values (required for Picklist/MultiselectPicklist). Example: [{\"label\": \"Hot\", \"value\": \"Hot\", \"isDefault\": true}]"
      },
      "referenceTo": {
        "type": "string",
        "description": "Target object for Lookup/MasterDetail relationships. Example: \"Contact\""
      },
      "relationshipName": {
        "type": "string",
        "description": "Relationship name for Lookup/MasterDetail. Example: \"PrimaryContact\""
      },
      "visibleLines": {
        "type": "number",
        "description": "Number of visible lines (required for LongTextArea, Html, MultiselectPicklist). Example: 5"
      },
      "displayFormat": {
        "type": "string",
        "description": "Display format for AutoNumber fields (required for AutoNumber). Example: \"A-{0000}\" generates A-0001, A-0002, etc."
      },
      "relationshipLabel": {
        "type": "string",
        "description": "Plural label for the relationship (required for Lookup/MasterDetail). Shown in related lists. Example: \"Contacts\""
      }
    },
    "required": [
      "PCID",
      "action",
      "objectName"
    ]
  }
  ```
</Expandable>

***

## salesforce\_poll\_trigger

Poll for record changes (create, update, delete) in Salesforce objects. Used by polling triggers.

**Parameters:**

| Parameter      | Type      | Required | Default | Description                                                                            |
| -------------- | --------- | -------- | ------- | -------------------------------------------------------------------------------------- |
| `sobject`      | string    | Yes      | —       | Salesforce object API name to poll, e.g. "Account", "Contact", "Lead"                  |
| `fields`       | string    | No       | —       | Comma-separated list of fields to fetch. System fields are always included.            |
| `conditions`   | string    | No       | —       | Additional SOQL WHERE clause conditions (no leading WHERE). Example: "IsActive = true" |
| `cursor`       | string    | No       | —       | ISO timestamp of the last seen SystemModstamp for incremental sync                     |
| `minTimestamp` | number    | No       | —       | Unix timestamp in seconds — first poll uses this to bound the initial fetch window     |
| `maxResults`   | number    | No       | `100`   | Maximum number of records to fetch (capped at 2000)                                    |
| `eventTypes`   | string\[] | Yes      | —       | Event types to emit: \["created"], \["updated"], or both. Required.                    |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "sobject": {
        "type": "string",
        "description": "Salesforce object API name to poll, e.g. \"Account\", \"Contact\", \"Lead\""
      },
      "fields": {
        "type": "string",
        "description": "Comma-separated list of fields to fetch. System fields are always included."
      },
      "conditions": {
        "type": "string",
        "description": "Additional SOQL WHERE clause conditions (no leading WHERE). Example: \"IsActive = true\""
      },
      "cursor": {
        "type": "string",
        "description": "ISO timestamp of the last seen SystemModstamp for incremental sync"
      },
      "minTimestamp": {
        "type": "number",
        "description": "Unix timestamp in seconds — first poll uses this to bound the initial fetch window"
      },
      "maxResults": {
        "type": "number",
        "default": 100,
        "description": "Maximum number of records to fetch (capped at 2000)"
      },
      "eventTypes": {
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "created",
            "updated"
          ]
        },
        "description": "Event types to emit: [\"created\"], [\"updated\"], or both. Required."
      }
    },
    "required": [
      "PCID",
      "sobject",
      "eventTypes"
    ]
  }
  ```
</Expandable>
