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

# Overview

> Connect to Salesforce CRM platform through Grand Central

export const VendorApiVersionTag = ({versions, label = "Supports"}) => {
  useEffect(() => {
    if (!versions || versions.length === 0) {
      return undefined;
    }
    const findAndSegmentStart = (reference, target) => {
      let i = 0;
      while (i < reference.length && i < target.length && reference[i] === target[i]) {
        i += 1;
      }
      let start = i;
      while (start > 0 && (/[0-9.vR]/).test(target[start - 1])) {
        start -= 1;
      }
      return start;
    };
    const formatText = () => {
      const suffix = " operations";
      if (versions.length === 1) {
        return `${label} ${versions[0]}${suffix}`;
      }
      const [first, ...rest] = versions;
      const last = rest[rest.length - 1];
      const andStart = findAndSegmentStart(first, last);
      const lead = first.slice(0, andStart);
      if (versions.length === 2) {
        return `${label} ${first} and ${last.slice(andStart)}${suffix}`;
      }
      const stems = versions.map(version => version.slice(andStart));
      return `${label} ${lead}${stems.slice(0, -1).join(", ")}, and ${stems[stems.length - 1]}${suffix}`;
    };
    const text = formatText();
    const mountCallout = () => {
      const titleRow = document.querySelector("#page-title")?.parentElement;
      if (!titleRow) {
        return null;
      }
      let callout = titleRow.querySelector("[data-vendor-api-version-callout='true']");
      if (!callout) {
        callout = document.createElement("div");
        callout.dataset.vendorApiVersionCallout = "true";
        callout.className = "vendor-api-version-callout vendor-api-version-callout--in-title";
        titleRow.appendChild(callout);
      }
      callout.replaceChildren();
      const textEl = document.createElement("span");
      textEl.className = "vendor-api-version-text";
      textEl.textContent = text;
      callout.appendChild(textEl);
      return callout;
    };
    let callout = mountCallout();
    if (callout) {
      return () => {
        callout?.remove();
      };
    }
    const observer = new MutationObserver(() => {
      callout = mountCallout();
      if (callout) {
        observer.disconnect();
      }
    });
    observer.observe(document.body, {
      childList: true,
      subtree: true
    });
    return () => {
      observer.disconnect();
      callout?.remove();
    };
  }, [versions, label]);
  return null;
};

export const vendorApiVersions = ["Salesforce API v56.0"];

<VendorApiVersionTag versions={vendorApiVersions} />

The Salesforce CRM Connector provides pre-built connectivity with the [Salesforce](https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_concepts.htm) Customer Relationship Management platform through the Salesforce API v56.0. It integrates with customer data management and activity management for seamless CRM operations.

## Supported use cases

<CardGroup cols={2}>
  <Card title="Customer Data Management" icon="users">
    Retrieve and update customer information including contact details and personal data
  </Card>

  <Card title="Activity Management" icon="calendar">
    Create, update, and retrieve Task and Event activities linked to Salesforce parties
  </Card>

  <Card title="Real-time Synchronization" icon="arrows-rotate">
    Seamless, real-time data synchronization between Grand Central and Salesforce CRM
  </Card>
</CardGroup>

## Supported operations

The Salesforce Connector supports the following operations from the Grand Central Unified API specification:

### Party

| **Operation**        | **Endpoint**             |
| :------------------- | :----------------------- |
| Get party details    | `GET /parties/{partyId}` |
| Update party details | `PUT /parties/{partyId}` |

<Info>
  The connector retrieves and updates accurate, up-to-date customer data including email address, phone number, and postal address from Salesforce.
</Info>

### Activity

The following table shows the supported activity operations:

| **Operation**                 | **Endpoint**                   |
| :---------------------------- | :----------------------------- |
| Create activity               | `POST /activities`             |
| Update activity by ID         | `PUT /activities/{activityId}` |
| Get activities by party ID    | `POST /activities/partyId`     |
| Get activities by employee ID | `POST /activities/employeeId`  |

<Info>
  Create and update support Salesforce Task and Event sObjects. Get activities by party ID queries Tasks and Events where `WhoId` matches the Contact (party). Get activities by employee ID queries Tasks and Events where `OwnerId` matches the Salesforce User (employee). Both map results to the Grand Central activity contract, including recurrence when you configure it. Get requests also support optional pagination (`from`, `size`) and ActivityDate filtering (`fromDate`, `toDate`).
</Info>

<Note>
  For a complete list of Grand Central error codes and their descriptions, see [error codes reference](/connectors/reference/error-codes).
</Note>
