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

# Salesforce Developer Toolkit

export const MultiRelatedLinks = ({sections = []}) => {
  if (!sections || sections.length === 0) {
    return null;
  }
  return <div className="space-y-8">
      {sections.map((section, index) => <RelatedLinks key={index} title={section.title} items={section.items} />)}
    </div>;
};

export const RelatedLinks = ({title, items = []}) => {
  const getBadgeClass = badge => {
    if (!badge) return "badge-default";
    const badgeType = badge.toLowerCase().replace(/\s+/g, "-");
    return `badge-${badge === "ガイド" ? "guide" : badgeType}`;
  };
  if (!items || items.length === 0) {
    return null;
  }
  return <div className="my-8">
      {}
      <h3 className="text-sm font-bold uppercase tracking-wider mb-4">{title}</h3>

      {}
      <div className="flex flex-col gap-3">
        {items.map((item, index) => <a key={index} href={item.href} className="py-2 px-3 rounded related_link hover:bg-[#f2f2f2] dark:hover:bg-[#111827] flex items-center gap-3 group no-underline hover:no-underline border-b-0">
            {}
            <span className={`px-2 py-1 rounded-full text-xs font-semibold uppercase tracking-wide flex-shrink-0 ${getBadgeClass(item.badge)}`}>
              {item.badge}
            </span>

            {}
            <span className="text-base">{item.label}</span>
          </a>)}
      </div>
    </div>;
};

The Box for Salesforce Developer Toolkit allows customers to programmatically
customize the behavior of the Box for Salesforce integration. The Toolkit
consists of several global APEX methods that can be used to trigger and extend
the default behavior. The global methods can update the internal Salesforce
record to Box folder mapping and handle permission management.

<Note>
  This functionality is part of the latest Box for
  [Salesforce package][sf-package].
</Note>

<Warning>
  **What the Toolkit does NOT provide**

  The Toolkit is not a full-featured APEX wrapper for the BOX Content API. If
  this is what you are looking for, have a look at the
  [Box SDK for Salesforce][sf-sdk].
</Warning>

## Authentication

A solution for authentication is to allow API calls to use the service
account credentials.

This means that Salesforce Admins need to restrict access to the Toolkit global
APEX class. As these methods allow direct modification of Box content and
collaborations, Salesforce administrators should take appropriate precautions
by restricting access to the global Toolkit APEX class.

Toolkit methods that take `accessToken` as a parameter can use the service
account credentials by sending `null` for the `accessToken` value.

If a value is passed in `accessToken`, the API call to Box is done with
the access token sent. It is up to the developer to ensure the token being
passed is valid and the user associated with the token has permissions to
perform the requested operation.

[sf-package]: https://support.box.com/hc/en-us/articles/360044195713-Installing-and-Configuring-Box-For-Salesforce

[sf-sdk]: https://github.com/box/box-salesforce-sdk

<RelatedLinks
  title="RELATED GUIDES"
  items={[
{ label: translate("Install Salesforce SDK"), href: "/guides/tooling/sdks/salesforce", badge: "GUIDE" }
]}
/>
